nilac 0.0.4.1.9 → 0.0.4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/nilac +408 -411
- data/lib/nilac/version.rb +1 -1
- data/shark/test_files/correct_initialization.js +4 -4
- data/shark/test_files/correct_multiple_return.js +4 -4
- data/src/nilac.rb +406 -409
- metadata +1 -3
- data/shark/test_files/default_parameters.js +0 -21
- data/shark/test_files/string_interpolation.js +0 -17
data/src/nilac.rb
CHANGED
@@ -7,7 +7,7 @@ require 'slop'
|
|
7
7
|
require 'fileutils'
|
8
8
|
|
9
9
|
|
10
|
-
def compile(input_file_path
|
10
|
+
def compile(input_file_path, *output_file_name)
|
11
11
|
|
12
12
|
def read_file_line_by_line(input_path)
|
13
13
|
|
@@ -45,7 +45,7 @@ def compile(input_file_path,*output_file_name)
|
|
45
45
|
|
46
46
|
end
|
47
47
|
|
48
|
-
def replace_multiline_comments(input_file_contents,nila_file_path
|
48
|
+
def replace_multiline_comments(input_file_contents, nila_file_path, *output_js_file_path)
|
49
49
|
|
50
50
|
#This method will replace both the single and multiline comments
|
51
51
|
#
|
@@ -53,7 +53,7 @@ def compile(input_file_path,*output_file_name)
|
|
53
53
|
#
|
54
54
|
#Multiline comment will be replaced by => --multiline_comment[n]
|
55
55
|
|
56
|
-
def find_all_matching_indices(input_string,pattern)
|
56
|
+
def find_all_matching_indices(input_string, pattern)
|
57
57
|
|
58
58
|
locations = []
|
59
59
|
|
@@ -63,7 +63,7 @@ def compile(input_file_path,*output_file_name)
|
|
63
63
|
|
64
64
|
locations << index
|
65
65
|
|
66
|
-
index = input_string.index(pattern,index+1)
|
66
|
+
index = input_string.index(pattern, index+1)
|
67
67
|
|
68
68
|
|
69
69
|
end
|
@@ -73,7 +73,7 @@ def compile(input_file_path,*output_file_name)
|
|
73
73
|
|
74
74
|
end
|
75
75
|
|
76
|
-
def find_file_path(input_path,file_extension)
|
76
|
+
def find_file_path(input_path, file_extension)
|
77
77
|
|
78
78
|
extension_remover = input_path.split(file_extension)
|
79
79
|
|
@@ -87,7 +87,7 @@ def compile(input_file_path,*output_file_name)
|
|
87
87
|
|
88
88
|
end
|
89
89
|
|
90
|
-
def find_file_name(input_path,file_extension)
|
90
|
+
def find_file_name(input_path, file_extension)
|
91
91
|
|
92
92
|
extension_remover = input_path.split(file_extension)
|
93
93
|
|
@@ -109,9 +109,9 @@ def compile(input_file_path,*output_file_name)
|
|
109
109
|
|
110
110
|
multiline_comment_counter = 1
|
111
111
|
|
112
|
-
multiline_comments_start = find_all_matching_indices(file_contents_as_string,"=begin")
|
112
|
+
multiline_comments_start = find_all_matching_indices(file_contents_as_string, "=begin")
|
113
113
|
|
114
|
-
multiline_comments_end = find_all_matching_indices(file_contents_as_string,"=end")
|
114
|
+
multiline_comments_end = find_all_matching_indices(file_contents_as_string, "=end")
|
115
115
|
|
116
116
|
for y in 0...multiline_comments_start.length
|
117
117
|
|
@@ -121,7 +121,7 @@ def compile(input_file_path,*output_file_name)
|
|
121
121
|
|
122
122
|
multiline_comment = file_contents_as_string[start_of_multiline_comment..end_of_multiline_comment+3]
|
123
123
|
|
124
|
-
modified_file_contents = modified_file_contents.gsub(multiline_comment,"--multiline_comment[#{multiline_comment_counter}]\n\n")
|
124
|
+
modified_file_contents = modified_file_contents.gsub(multiline_comment, "--multiline_comment[#{multiline_comment_counter}]\n\n")
|
125
125
|
|
126
126
|
multiline_comment_counter += 1
|
127
127
|
|
@@ -130,11 +130,11 @@ def compile(input_file_path,*output_file_name)
|
|
130
130
|
|
131
131
|
end
|
132
132
|
|
133
|
-
temporary_nila_file = find_file_path(nila_file_path,".nila") + "temp_nila.nila"
|
133
|
+
temporary_nila_file = find_file_path(nila_file_path, ".nila") + "temp_nila.nila"
|
134
134
|
|
135
135
|
if output_js_file_path.empty?
|
136
136
|
|
137
|
-
output_js_file = find_file_path(nila_file_path,".nila") + find_file_name(nila_file_path,".nila") + ".js"
|
137
|
+
output_js_file = find_file_path(nila_file_path, ".nila") + find_file_name(nila_file_path, ".nila") + ".js"
|
138
138
|
|
139
139
|
else
|
140
140
|
|
@@ -156,7 +156,7 @@ def compile(input_file_path,*output_file_name)
|
|
156
156
|
|
157
157
|
comments = multiline_comments.dup
|
158
158
|
|
159
|
-
return line_by_line_contents,comments,temporary_nila_file,output_js_file
|
159
|
+
return line_by_line_contents, comments, temporary_nila_file, output_js_file
|
160
160
|
|
161
161
|
end
|
162
162
|
|
@@ -164,19 +164,19 @@ def compile(input_file_path,*output_file_name)
|
|
164
164
|
|
165
165
|
modified_file_contents = input_file_contents.dup
|
166
166
|
|
167
|
-
input_file_contents.each_with_index do |line,index|
|
167
|
+
input_file_contents.each_with_index do |line, index|
|
168
168
|
|
169
169
|
if line.include?("\"")
|
170
170
|
|
171
171
|
first_index = line.index("\"")
|
172
172
|
|
173
|
-
modified_line = line.sub(line[first_index..line.index("\"",first_index+1)],"--string")
|
173
|
+
modified_line = line.sub(line[first_index..line.index("\"", first_index+1)], "--string")
|
174
174
|
|
175
175
|
elsif line.include?("'")
|
176
176
|
|
177
177
|
first_index = line.index("'")
|
178
178
|
|
179
|
-
modified_line = line.sub(line[first_index..line.index("'",first_index+1)],"--string")
|
179
|
+
modified_line = line.sub(line[first_index..line.index("'", first_index+1)], "--string")
|
180
180
|
|
181
181
|
else
|
182
182
|
|
@@ -200,13 +200,13 @@ def compile(input_file_path,*output_file_name)
|
|
200
200
|
|
201
201
|
end
|
202
202
|
|
203
|
-
def compile_heredocs(input_file_contents,temporary_nila_file)
|
203
|
+
def compile_heredocs(input_file_contents, temporary_nila_file)
|
204
204
|
|
205
205
|
joined_file_contents = input_file_contents.join
|
206
206
|
|
207
|
-
possible_heredocs = input_file_contents.reject{|element| !element.include?("<<-")}
|
207
|
+
possible_heredocs = input_file_contents.reject { |element| !element.include?("<<-") }
|
208
208
|
|
209
|
-
possible_heredocs = possible_heredocs.collect {|element| element.match(/<<-(.*|\w*)/).to_a[0]}
|
209
|
+
possible_heredocs = possible_heredocs.collect { |element| element.match(/<<-(.*|\w*)/).to_a[0] }
|
210
210
|
|
211
211
|
possible_heredocs.each do |heredoc|
|
212
212
|
|
@@ -220,11 +220,11 @@ def compile(input_file_path,*output_file_name)
|
|
220
220
|
|
221
221
|
end
|
222
222
|
|
223
|
-
delimiter = delimiter.gsub("\"","") if quote == 2
|
223
|
+
delimiter = delimiter.gsub("\"", "") if quote == 2
|
224
224
|
|
225
|
-
delimiter = delimiter.gsub("'","") if quote == 1
|
225
|
+
delimiter = delimiter.gsub("'", "") if quote == 1
|
226
226
|
|
227
|
-
string_split = joined_file_contents.split(heredoc,2)
|
227
|
+
string_split = joined_file_contents.split(heredoc, 2)
|
228
228
|
|
229
229
|
string_extract = string_split[1]
|
230
230
|
|
@@ -244,7 +244,7 @@ def compile(input_file_path,*output_file_name)
|
|
244
244
|
|
245
245
|
end
|
246
246
|
|
247
|
-
joined_file_contents = joined_file_contents.sub(heredoc + heredoc_extract + delimiter,replacement_string)
|
247
|
+
joined_file_contents = joined_file_contents.sub(heredoc + heredoc_extract + delimiter, replacement_string)
|
248
248
|
|
249
249
|
end
|
250
250
|
|
@@ -263,7 +263,7 @@ def compile(input_file_path,*output_file_name)
|
|
263
263
|
|
264
264
|
def compile_interpolated_strings(input_file_contents)
|
265
265
|
|
266
|
-
def find_all_matching_indices(input_string,pattern)
|
266
|
+
def find_all_matching_indices(input_string, pattern)
|
267
267
|
|
268
268
|
locations = []
|
269
269
|
|
@@ -273,7 +273,7 @@ def compile(input_file_path,*output_file_name)
|
|
273
273
|
|
274
274
|
locations << index
|
275
275
|
|
276
|
-
index = input_string.index(pattern,index+1)
|
276
|
+
index = input_string.index(pattern, index+1)
|
277
277
|
|
278
278
|
|
279
279
|
end
|
@@ -285,7 +285,7 @@ def compile(input_file_path,*output_file_name)
|
|
285
285
|
|
286
286
|
modified_file_contents = input_file_contents.dup
|
287
287
|
|
288
|
-
single_quoted_strings = input_file_contents.reject {|element| !(element.count("'") >= 2)}
|
288
|
+
single_quoted_strings = input_file_contents.reject { |element| !(element.count("'") >= 2) }
|
289
289
|
|
290
290
|
single_quoted_strings.each do |str|
|
291
291
|
|
@@ -295,9 +295,9 @@ def compile(input_file_path,*output_file_name)
|
|
295
295
|
|
296
296
|
first_index = modified_string.index("'")
|
297
297
|
|
298
|
-
string_extract = modified_string[first_index..modified_string.index("'",first_index+1)]
|
298
|
+
string_extract = modified_string[first_index..modified_string.index("'", first_index+1)]
|
299
299
|
|
300
|
-
modified_string = modified_string.sub(string_extract,"--single_quoted")
|
300
|
+
modified_string = modified_string.sub(string_extract, "--single_quoted")
|
301
301
|
|
302
302
|
end
|
303
303
|
|
@@ -305,13 +305,13 @@ def compile(input_file_path,*output_file_name)
|
|
305
305
|
|
306
306
|
end
|
307
307
|
|
308
|
-
input_file_contents.each_with_index do |line,index|
|
308
|
+
input_file_contents.each_with_index do |line, index|
|
309
309
|
|
310
310
|
if line.include?("\#{")
|
311
311
|
|
312
312
|
modified_line = line.dup
|
313
313
|
|
314
|
-
interpol_starting_loc = find_all_matching_indices(modified_line,"\#{") + [-1]
|
314
|
+
interpol_starting_loc = find_all_matching_indices(modified_line, "\#{") + [-1]
|
315
315
|
|
316
316
|
interpolated_strings = []
|
317
317
|
|
@@ -321,7 +321,7 @@ def compile(input_file_path,*output_file_name)
|
|
321
321
|
|
322
322
|
string_extract = modified_line[interpol_starting_loc[0]+1..interpol_starting_loc[1]+1]
|
323
323
|
|
324
|
-
closed_curly_brace_index = find_all_matching_indices(string_extract,"}")
|
324
|
+
closed_curly_brace_index = find_all_matching_indices(string_extract, "}")
|
325
325
|
|
326
326
|
index_counter = 0
|
327
327
|
|
@@ -335,15 +335,15 @@ def compile(input_file_path,*output_file_name)
|
|
335
335
|
|
336
336
|
if test_string.include?("{")
|
337
337
|
|
338
|
-
test_string = test_string.reverse.sub("{","$#{index_counter}$").reverse
|
338
|
+
test_string = test_string.reverse.sub("{", "$#{index_counter}$").reverse
|
339
339
|
|
340
340
|
test_string[-1] = "@#{index_counter}@"
|
341
341
|
|
342
342
|
end
|
343
343
|
|
344
|
-
string_extract = string_extract.sub(original_string,test_string)
|
344
|
+
string_extract = string_extract.sub(original_string, test_string)
|
345
345
|
|
346
|
-
closed_curly_brace_index = find_all_matching_indices(string_extract,"}")
|
346
|
+
closed_curly_brace_index = find_all_matching_indices(string_extract, "}")
|
347
347
|
|
348
348
|
index_counter += 1
|
349
349
|
|
@@ -357,23 +357,23 @@ def compile(input_file_path,*output_file_name)
|
|
357
357
|
|
358
358
|
closing_brace_rep = interpolated_string.scan(/@\d@/)
|
359
359
|
|
360
|
-
to_be_replaced.each_with_index do |rep,index|
|
360
|
+
to_be_replaced.each_with_index do |rep, index|
|
361
361
|
|
362
|
-
interpolated_string = interpolated_string.sub(rep,"{").sub(closing_brace_rep[index],"}")
|
362
|
+
interpolated_string = interpolated_string.sub(rep, "{").sub(closing_brace_rep[index], "}")
|
363
363
|
|
364
364
|
end
|
365
365
|
|
366
366
|
interpolated_strings << interpolated_string
|
367
367
|
|
368
|
-
modified_line = modified_line.sub(interpolated_string,"--interpolate")
|
368
|
+
modified_line = modified_line.sub(interpolated_string, "--interpolate")
|
369
369
|
|
370
|
-
if find_all_matching_indices(modified_line,"\#{").empty?
|
370
|
+
if find_all_matching_indices(modified_line, "\#{").empty?
|
371
371
|
|
372
372
|
interpol_starting_loc = []
|
373
373
|
|
374
374
|
else
|
375
375
|
|
376
|
-
interpol_starting_loc = find_all_matching_indices(modified_line,"\#{") + [-1]
|
376
|
+
interpol_starting_loc = find_all_matching_indices(modified_line, "\#{") + [-1]
|
377
377
|
|
378
378
|
end
|
379
379
|
|
@@ -387,19 +387,19 @@ def compile(input_file_path,*output_file_name)
|
|
387
387
|
|
388
388
|
replacement_string = "\" + " + interpol[2...-1]
|
389
389
|
|
390
|
-
modified_file_contents[index] = modified_file_contents[index].sub(interpol+"\"",replacement_string)
|
390
|
+
modified_file_contents[index] = modified_file_contents[index].sub(interpol+"\"", replacement_string)
|
391
391
|
|
392
392
|
elsif string_split[1].eql?("\")\n")
|
393
393
|
|
394
394
|
replacement_string = "\" + " + interpol[2...-1]
|
395
395
|
|
396
|
-
modified_file_contents[index] = modified_file_contents[index].sub(interpol+"\"",replacement_string)
|
396
|
+
modified_file_contents[index] = modified_file_contents[index].sub(interpol+"\"", replacement_string)
|
397
397
|
|
398
398
|
else
|
399
399
|
|
400
400
|
replacement_string = "\" + " + interpol[2...-1] + " + \""
|
401
401
|
|
402
|
-
modified_file_contents[index] = modified_file_contents[index].sub(interpol,replacement_string)
|
402
|
+
modified_file_contents[index] = modified_file_contents[index].sub(interpol, replacement_string)
|
403
403
|
|
404
404
|
end
|
405
405
|
|
@@ -433,7 +433,7 @@ def compile(input_file_path,*output_file_name)
|
|
433
433
|
|
434
434
|
single_line_comments << comment
|
435
435
|
|
436
|
-
current_row = current_row.gsub(comment,"--single_line_comment[#{singleline_comment_counter}]\n\n")
|
436
|
+
current_row = current_row.gsub(comment, "--single_line_comment[#{singleline_comment_counter}]\n\n")
|
437
437
|
|
438
438
|
singleline_comment_counter += 1
|
439
439
|
|
@@ -445,13 +445,13 @@ def compile(input_file_path,*output_file_name)
|
|
445
445
|
|
446
446
|
end
|
447
447
|
|
448
|
-
return input_file_contents,single_line_comments
|
448
|
+
return input_file_contents, single_line_comments
|
449
449
|
|
450
450
|
end
|
451
451
|
|
452
|
-
def replace_named_functions(nila_file_contents,temporary_nila_file)
|
452
|
+
def replace_named_functions(nila_file_contents, temporary_nila_file)
|
453
453
|
|
454
|
-
def extract_array(input_array,start_index,end_index)
|
454
|
+
def extract_array(input_array, start_index, end_index)
|
455
455
|
|
456
456
|
return input_array[start_index..end_index]
|
457
457
|
|
@@ -545,7 +545,7 @@ def compile(input_file_path,*output_file_name)
|
|
545
545
|
|
546
546
|
matching_level = end_blocks[top_most_level_index]
|
547
547
|
|
548
|
-
named_code_blocks << extract_array(final_modified_file_contents,top_most_level,matching_level)
|
548
|
+
named_code_blocks << extract_array(final_modified_file_contents, top_most_level, matching_level)
|
549
549
|
|
550
550
|
start_blocks.delete_at(top_most_level_index)
|
551
551
|
|
@@ -563,7 +563,7 @@ def compile(input_file_path,*output_file_name)
|
|
563
563
|
|
564
564
|
if joined_file_contents.include?(codeblock.join)
|
565
565
|
|
566
|
-
joined_file_contents = joined_file_contents.sub(codeblock.join,"--named_function[#{codeblock_counter}]\n")
|
566
|
+
joined_file_contents = joined_file_contents.sub(codeblock.join, "--named_function[#{codeblock_counter}]\n")
|
567
567
|
|
568
568
|
codeblock_counter += 1
|
569
569
|
|
@@ -597,50 +597,50 @@ def compile(input_file_path,*output_file_name)
|
|
597
597
|
|
598
598
|
line_by_line_contents = read_file_line_by_line(temporary_nila_file)
|
599
599
|
|
600
|
-
return line_by_line_contents,named_functions,nested_functions
|
600
|
+
return line_by_line_contents, named_functions, nested_functions
|
601
601
|
|
602
602
|
|
603
603
|
end
|
604
604
|
|
605
|
-
def
|
605
|
+
def compile_parallel_assignment(input_file_contents, temporary_nila_file)
|
606
606
|
|
607
|
-
possible_variable_lines = input_file_contents.reject {|element| !element.include?"="}
|
607
|
+
possible_variable_lines = input_file_contents.reject { |element| !element.include? "=" }
|
608
608
|
|
609
|
-
|
609
|
+
possible_parallel_assignment = possible_variable_lines.reject { |element| !element.split("=")[0].include? "," }
|
610
610
|
|
611
|
-
|
611
|
+
parallel_assignment_index = []
|
612
612
|
|
613
|
-
|
613
|
+
possible_parallel_assignment.each do |statement|
|
614
614
|
|
615
|
-
location_array = input_file_contents.each_index.select { |index| input_file_contents[index] == statement}
|
615
|
+
location_array = input_file_contents.each_index.select { |index| input_file_contents[index] == statement }
|
616
616
|
|
617
|
-
|
617
|
+
parallel_assignment_index << location_array[0]
|
618
618
|
|
619
619
|
end
|
620
620
|
|
621
621
|
modified_file_contents = input_file_contents.dup
|
622
622
|
|
623
|
-
|
623
|
+
parallel_assignment_counter = 1
|
624
624
|
|
625
|
-
|
625
|
+
possible_parallel_assignment.each_with_index do |line, index|
|
626
626
|
|
627
627
|
line_split = line.split(" = ")
|
628
628
|
|
629
629
|
right_side_variables = line_split[0].split(",")
|
630
630
|
|
631
|
-
replacement_string = "
|
631
|
+
replacement_string = "_ref#{parallel_assignment_counter} = #{line_split[1]}\n\n"
|
632
632
|
|
633
633
|
variable_string = ""
|
634
634
|
|
635
|
-
right_side_variables.each_with_index do |variable,var_index|
|
635
|
+
right_side_variables.each_with_index do |variable, var_index|
|
636
636
|
|
637
|
-
variable_string = variable_string + variable.rstrip + " =
|
637
|
+
variable_string = variable_string + variable.rstrip + " = _ref#{parallel_assignment_counter}[#{var_index}]\n\n"
|
638
638
|
|
639
639
|
end
|
640
640
|
|
641
641
|
replacement_string = replacement_string + variable_string
|
642
642
|
|
643
|
-
modified_file_contents[
|
643
|
+
modified_file_contents[parallel_assignment_index[index]] = replacement_string
|
644
644
|
|
645
645
|
end
|
646
646
|
|
@@ -656,7 +656,7 @@ def compile(input_file_path,*output_file_name)
|
|
656
656
|
|
657
657
|
end
|
658
658
|
|
659
|
-
def compile_default_values(input_file_contents,temporary_nila_file)
|
659
|
+
def compile_default_values(input_file_contents, temporary_nila_file)
|
660
660
|
|
661
661
|
#This method compiles default values present in functions. An example is provided below
|
662
662
|
|
@@ -666,13 +666,13 @@ def compile(input_file_path,*output_file_name)
|
|
666
666
|
|
667
667
|
def parse_default_values(input_function_definition)
|
668
668
|
|
669
|
-
split1,split2 = input_function_definition.split("(")
|
669
|
+
split1, split2 = input_function_definition.split("(")
|
670
670
|
|
671
|
-
split2,split3 = split2.split(")")
|
671
|
+
split2, split3 = split2.split(")")
|
672
672
|
|
673
673
|
function_parameters = split2.split(",")
|
674
674
|
|
675
|
-
default_value_parameters = function_parameters.reject {|element| !element.include?"="}
|
675
|
+
default_value_parameters = function_parameters.reject { |element| !element.include? "=" }
|
676
676
|
|
677
677
|
replacement_parameters = []
|
678
678
|
|
@@ -688,27 +688,27 @@ def compile(input_file_path,*output_file_name)
|
|
688
688
|
|
689
689
|
end
|
690
690
|
|
691
|
-
return replacement_string,default_value_parameters,replacement_parameters
|
691
|
+
return replacement_string, default_value_parameters, replacement_parameters
|
692
692
|
|
693
693
|
end
|
694
694
|
|
695
|
-
possible_default_values = input_file_contents.dup.reject {|element| !element.include?("def")}
|
695
|
+
possible_default_values = input_file_contents.dup.reject { |element| !element.include?("def") }
|
696
696
|
|
697
|
-
possible_default_values = possible_default_values.reject {|element| !element.include?("=")}
|
697
|
+
possible_default_values = possible_default_values.reject { |element| !element.include?("=") }
|
698
698
|
|
699
699
|
if !possible_default_values.empty?
|
700
700
|
|
701
701
|
possible_default_values.each do |line|
|
702
702
|
|
703
|
-
current_line_index = input_file_contents.each_index.select {|index| input_file_contents[index] == line}.flatten[0]
|
703
|
+
current_line_index = input_file_contents.each_index.select { |index| input_file_contents[index] == line }.flatten[0]
|
704
704
|
|
705
|
-
replacement_string,value_parameters,replacement_parameters = parse_default_values(line)
|
705
|
+
replacement_string, value_parameters, replacement_parameters = parse_default_values(line)
|
706
706
|
|
707
707
|
modified_line = line.dup
|
708
708
|
|
709
|
-
value_parameters.each_with_index do |val,index|
|
709
|
+
value_parameters.each_with_index do |val, index|
|
710
710
|
|
711
|
-
modified_line = modified_line.sub(val,replacement_parameters[index])
|
711
|
+
modified_line = modified_line.sub(val, replacement_parameters[index])
|
712
712
|
|
713
713
|
end
|
714
714
|
|
@@ -732,23 +732,23 @@ def compile(input_file_path,*output_file_name)
|
|
732
732
|
|
733
733
|
end
|
734
734
|
|
735
|
-
def get_variables(input_file_contents,temporary_nila_file)
|
735
|
+
def get_variables(input_file_contents, temporary_nila_file)
|
736
736
|
|
737
737
|
variables = []
|
738
738
|
|
739
|
-
input_file_contents = input_file_contents.collect {|element| element.gsub("==","equalequal")}
|
739
|
+
input_file_contents = input_file_contents.collect { |element| element.gsub("==", "equalequal") }
|
740
740
|
|
741
|
-
input_file_contents = input_file_contents.collect {|element| element.gsub("!=","notequal")}
|
741
|
+
input_file_contents = input_file_contents.collect { |element| element.gsub("!=", "notequal") }
|
742
742
|
|
743
|
-
input_file_contents = input_file_contents.collect {|element| element.gsub("+=","plusequal")}
|
743
|
+
input_file_contents = input_file_contents.collect { |element| element.gsub("+=", "plusequal") }
|
744
744
|
|
745
|
-
input_file_contents = input_file_contents.collect {|element| element.gsub("-=","minusequal")}
|
745
|
+
input_file_contents = input_file_contents.collect { |element| element.gsub("-=", "minusequal") }
|
746
746
|
|
747
|
-
input_file_contents = input_file_contents.collect {|element| element.gsub("*=","multiequal")}
|
747
|
+
input_file_contents = input_file_contents.collect { |element| element.gsub("*=", "multiequal") }
|
748
748
|
|
749
|
-
input_file_contents = input_file_contents.collect {|element| element.gsub("/=","divequal")}
|
749
|
+
input_file_contents = input_file_contents.collect { |element| element.gsub("/=", "divequal") }
|
750
750
|
|
751
|
-
input_file_contents = input_file_contents.collect {|element| element.gsub("%=","modequal")}
|
751
|
+
input_file_contents = input_file_contents.collect { |element| element.gsub("%=", "modequal") }
|
752
752
|
|
753
753
|
for x in 0...input_file_contents.length
|
754
754
|
|
@@ -796,29 +796,29 @@ def compile(input_file_path,*output_file_name)
|
|
796
796
|
|
797
797
|
variable_declaration_string = "var " + variables.uniq.sort.join(", ") + "\n\n"
|
798
798
|
|
799
|
-
line_by_line_contents = [variable_declaration_string,line_by_line_contents].flatten
|
799
|
+
line_by_line_contents = [variable_declaration_string, line_by_line_contents].flatten
|
800
800
|
|
801
801
|
end
|
802
802
|
|
803
|
-
line_by_line_contents = line_by_line_contents.collect {|element| element.gsub("plusequal","+=")}
|
803
|
+
line_by_line_contents = line_by_line_contents.collect { |element| element.gsub("plusequal", "+=") }
|
804
804
|
|
805
|
-
line_by_line_contents = line_by_line_contents.collect {|element| element.gsub("minusequal","-=")}
|
805
|
+
line_by_line_contents = line_by_line_contents.collect { |element| element.gsub("minusequal", "-=") }
|
806
806
|
|
807
|
-
line_by_line_contents = line_by_line_contents.collect {|element| element.gsub("multiequal","*=")}
|
807
|
+
line_by_line_contents = line_by_line_contents.collect { |element| element.gsub("multiequal", "*=") }
|
808
808
|
|
809
|
-
line_by_line_contents = line_by_line_contents.collect {|element| element.gsub("divequal","/=")}
|
809
|
+
line_by_line_contents = line_by_line_contents.collect { |element| element.gsub("divequal", "/=") }
|
810
810
|
|
811
|
-
line_by_line_contents = line_by_line_contents.collect {|element| element.gsub("modequal","%=")}
|
811
|
+
line_by_line_contents = line_by_line_contents.collect { |element| element.gsub("modequal", "%=") }
|
812
812
|
|
813
|
-
line_by_line_contents = line_by_line_contents.collect {|element| element.gsub("equalequal","==")}
|
813
|
+
line_by_line_contents = line_by_line_contents.collect { |element| element.gsub("equalequal", "==") }
|
814
814
|
|
815
|
-
line_by_line_contents = line_by_line_contents.collect {|element| element.gsub("notequal","!=")}
|
815
|
+
line_by_line_contents = line_by_line_contents.collect { |element| element.gsub("notequal", "!=") }
|
816
816
|
|
817
|
-
return variables.uniq,line_by_line_contents
|
817
|
+
return variables.uniq, line_by_line_contents
|
818
818
|
|
819
819
|
end
|
820
820
|
|
821
|
-
def remove_question_marks(input_file_contents,variable_list,temporary_nila_file)
|
821
|
+
def remove_question_marks(input_file_contents, variable_list, temporary_nila_file)
|
822
822
|
|
823
823
|
#A method to remove question marks from global variable names. Local variables are dealt
|
824
824
|
#with in their appropriate scope.
|
@@ -845,7 +845,7 @@ def compile(input_file_path,*output_file_name)
|
|
845
845
|
|
846
846
|
if var.include? "?"
|
847
847
|
|
848
|
-
joined_file_contents = joined_file_contents.gsub(var,var[0...-1])
|
848
|
+
joined_file_contents = joined_file_contents.gsub(var, var[0...-1])
|
849
849
|
|
850
850
|
end
|
851
851
|
|
@@ -863,13 +863,13 @@ def compile(input_file_path,*output_file_name)
|
|
863
863
|
|
864
864
|
end
|
865
865
|
|
866
|
-
def compile_arrays(input_file_contents,temporary_nila_file)
|
866
|
+
def compile_arrays(input_file_contents, temporary_nila_file)
|
867
867
|
|
868
868
|
def compile_w_arrays(input_file_contents)
|
869
869
|
|
870
|
-
def extract(input_string,pattern_start,pattern_end)
|
870
|
+
def extract(input_string, pattern_start, pattern_end)
|
871
871
|
|
872
|
-
def find_all_matching_indices(input_string,pattern)
|
872
|
+
def find_all_matching_indices(input_string, pattern)
|
873
873
|
|
874
874
|
locations = []
|
875
875
|
|
@@ -879,7 +879,7 @@ def compile(input_file_path,*output_file_name)
|
|
879
879
|
|
880
880
|
locations << index
|
881
881
|
|
882
|
-
index = input_string.index(pattern,index+1)
|
882
|
+
index = input_string.index(pattern, index+1)
|
883
883
|
|
884
884
|
|
885
885
|
end
|
@@ -889,13 +889,13 @@ def compile(input_file_path,*output_file_name)
|
|
889
889
|
|
890
890
|
end
|
891
891
|
|
892
|
-
all_start_locations = find_all_matching_indices(input_string,pattern_start)
|
892
|
+
all_start_locations = find_all_matching_indices(input_string, pattern_start)
|
893
893
|
|
894
|
-
all_end_locations = find_all_matching_indices(input_string,pattern_end)
|
894
|
+
all_end_locations = find_all_matching_indices(input_string, pattern_end)
|
895
895
|
|
896
896
|
pattern = []
|
897
897
|
|
898
|
-
all_start_locations.each_with_index do |location,index|
|
898
|
+
all_start_locations.each_with_index do |location, index|
|
899
899
|
|
900
900
|
pattern << input_string[location..all_end_locations[index]]
|
901
901
|
|
@@ -917,15 +917,15 @@ def compile(input_file_path,*output_file_name)
|
|
917
917
|
|
918
918
|
modified_file_contents = input_file_contents.dup
|
919
919
|
|
920
|
-
input_file_contents.each_with_index do |line,index|
|
920
|
+
input_file_contents.each_with_index do |line, index|
|
921
921
|
|
922
922
|
if line.include?("%w{")
|
923
923
|
|
924
|
-
string_arrays = extract(line,"%w{","}")
|
924
|
+
string_arrays = extract(line, "%w{", "}")
|
925
925
|
|
926
926
|
string_arrays.each do |array|
|
927
927
|
|
928
|
-
modified_file_contents[index] = modified_file_contents[index].sub(array,compile_w_syntax(array))
|
928
|
+
modified_file_contents[index] = modified_file_contents[index].sub(array, compile_w_syntax(array))
|
929
929
|
|
930
930
|
end
|
931
931
|
|
@@ -939,31 +939,31 @@ def compile(input_file_path,*output_file_name)
|
|
939
939
|
|
940
940
|
def compile_array_indexing(input_file_contents)
|
941
941
|
|
942
|
-
possible_indexing_operation = input_file_contents.dup.reject {|element| !element.include?"[" and !element.include?"]"}
|
942
|
+
possible_indexing_operation = input_file_contents.dup.reject { |element| !element.include? "[" and !element.include? "]" }
|
943
943
|
|
944
|
-
possible_range_indexing = possible_indexing_operation.reject {|element| !element.include?".."}
|
944
|
+
possible_range_indexing = possible_indexing_operation.reject { |element| !element.include? ".." }
|
945
945
|
|
946
|
-
triple_range_indexing = possible_range_indexing.reject {|element| !element.include?"..."}
|
946
|
+
triple_range_indexing = possible_range_indexing.reject { |element| !element.include? "..." }
|
947
947
|
|
948
948
|
triple_range_indexes = []
|
949
949
|
|
950
950
|
triple_range_indexing.each do |line|
|
951
951
|
|
952
|
-
triple_range_indexes << input_file_contents.dup.each_index.select {|index| input_file_contents[index] == line}
|
952
|
+
triple_range_indexes << input_file_contents.dup.each_index.select { |index| input_file_contents[index] == line }
|
953
953
|
|
954
954
|
end
|
955
955
|
|
956
956
|
triple_range_indexes = triple_range_indexes.flatten
|
957
957
|
|
958
|
-
triple_range_indexing.each_with_index do |line,index|
|
958
|
+
triple_range_indexing.each_with_index do |line, index|
|
959
959
|
|
960
|
-
split1,split2 = line.split("[")
|
960
|
+
split1, split2 = line.split("[")
|
961
961
|
|
962
|
-
range_index,split3 = split2.split("]")
|
962
|
+
range_index, split3 = split2.split("]")
|
963
963
|
|
964
|
-
index_start,index_end = range_index.split "..."
|
964
|
+
index_start, index_end = range_index.split "..."
|
965
965
|
|
966
|
-
replacement_string =
|
966
|
+
replacement_string = nil
|
967
967
|
|
968
968
|
if index_end.strip == "end"
|
969
969
|
|
@@ -983,25 +983,25 @@ def compile(input_file_path,*output_file_name)
|
|
983
983
|
|
984
984
|
end
|
985
985
|
|
986
|
-
double_range_indexing = possible_range_indexing.reject {|element| !element.include?("..")}
|
986
|
+
double_range_indexing = possible_range_indexing.reject { |element| !element.include?("..") }
|
987
987
|
|
988
988
|
double_range_indexes = []
|
989
989
|
|
990
990
|
double_range_indexing.each do |line|
|
991
991
|
|
992
|
-
double_range_indexes << input_file_contents.dup.each_index.select {|index| input_file_contents[index] == line}
|
992
|
+
double_range_indexes << input_file_contents.dup.each_index.select { |index| input_file_contents[index] == line }
|
993
993
|
|
994
994
|
end
|
995
995
|
|
996
996
|
double_range_indexes = double_range_indexes.flatten
|
997
997
|
|
998
|
-
double_range_indexing.each_with_index do |line,index|
|
998
|
+
double_range_indexing.each_with_index do |line, index|
|
999
999
|
|
1000
|
-
split1,split2 = line.split("[")
|
1000
|
+
split1, split2 = line.split("[")
|
1001
1001
|
|
1002
|
-
range_index,split3 = split2.split("]")
|
1002
|
+
range_index, split3 = split2.split("]")
|
1003
1003
|
|
1004
|
-
index_start,index_end = range_index.split ".."
|
1004
|
+
index_start, index_end = range_index.split ".."
|
1005
1005
|
|
1006
1006
|
index_start = "" if index_start.nil?
|
1007
1007
|
|
@@ -1031,13 +1031,13 @@ def compile(input_file_path,*output_file_name)
|
|
1031
1031
|
|
1032
1032
|
end
|
1033
1033
|
|
1034
|
-
duplicating_operations = input_file_contents.dup.reject{|element| !element.include?(".dup")}
|
1034
|
+
duplicating_operations = input_file_contents.dup.reject { |element| !element.include?(".dup") }
|
1035
1035
|
|
1036
1036
|
duplicating_operation_indexes = []
|
1037
1037
|
|
1038
1038
|
duplicating_operations.each do |line|
|
1039
1039
|
|
1040
|
-
duplicating_operation_indexes << input_file_contents.dup.each_index.select {|index| input_file_contents[index] == line}
|
1040
|
+
duplicating_operation_indexes << input_file_contents.dup.each_index.select { |index| input_file_contents[index] == line }
|
1041
1041
|
|
1042
1042
|
end
|
1043
1043
|
|
@@ -1045,7 +1045,7 @@ def compile(input_file_path,*output_file_name)
|
|
1045
1045
|
|
1046
1046
|
duplicating_operation_indexes.each do |index|
|
1047
1047
|
|
1048
|
-
input_file_contents[index] = input_file_contents[index].sub(".dup",".slice(0)")
|
1048
|
+
input_file_contents[index] = input_file_contents[index].sub(".dup", ".slice(0)")
|
1049
1049
|
|
1050
1050
|
end
|
1051
1051
|
|
@@ -1053,11 +1053,11 @@ def compile(input_file_path,*output_file_name)
|
|
1053
1053
|
|
1054
1054
|
end
|
1055
1055
|
|
1056
|
-
def compile_multiline(input_file_contents,temporary_nila_file)
|
1056
|
+
def compile_multiline(input_file_contents, temporary_nila_file)
|
1057
1057
|
|
1058
|
-
possible_arrays = input_file_contents.reject {|element| !element.include?("[")}
|
1058
|
+
possible_arrays = input_file_contents.reject { |element| !element.include?("[") }
|
1059
1059
|
|
1060
|
-
possible_multiline_arrays = possible_arrays.reject {|element| element.include?("]")}
|
1060
|
+
possible_multiline_arrays = possible_arrays.reject { |element| element.include?("]") }
|
1061
1061
|
|
1062
1062
|
multiline_arrays = []
|
1063
1063
|
|
@@ -1087,11 +1087,11 @@ def compile(input_file_path,*output_file_name)
|
|
1087
1087
|
|
1088
1088
|
array_extract = modified_array[modified_array.index("[")..modified_array.index("]")]
|
1089
1089
|
|
1090
|
-
array_contents = array_extract.split("[")[1].split("]")[0].lstrip.rstrip.split(",").collect {|element| element.lstrip.rstrip}
|
1090
|
+
array_contents = array_extract.split("[")[1].split("]")[0].lstrip.rstrip.split(",").collect { |element| element.lstrip.rstrip }
|
1091
1091
|
|
1092
1092
|
array_contents = "[" + array_contents.join(",") + "]"
|
1093
1093
|
|
1094
|
-
joined_file_contents = joined_file_contents.sub(array_extract,array_contents)
|
1094
|
+
joined_file_contents = joined_file_contents.sub(array_extract, array_contents)
|
1095
1095
|
|
1096
1096
|
end
|
1097
1097
|
|
@@ -1109,11 +1109,11 @@ def compile(input_file_path,*output_file_name)
|
|
1109
1109
|
|
1110
1110
|
def compile_array_operators(input_file_contents)
|
1111
1111
|
|
1112
|
-
possible_operator_usage = input_file_contents.reject {|element| !element.include?("<<")}
|
1112
|
+
possible_operator_usage = input_file_contents.reject { |element| !element.include?("<<") }
|
1113
1113
|
|
1114
1114
|
possible_operator_usage.each do |usage|
|
1115
1115
|
|
1116
|
-
left,right = usage.split("<<")
|
1116
|
+
left, right = usage.split("<<")
|
1117
1117
|
|
1118
1118
|
input_file_contents[input_file_contents.index(usage)] = left.rstrip + ".push(#{right.lstrip})"
|
1119
1119
|
|
@@ -1127,7 +1127,7 @@ def compile(input_file_path,*output_file_name)
|
|
1127
1127
|
|
1128
1128
|
input_file_contents = compile_array_indexing(input_file_contents)
|
1129
1129
|
|
1130
|
-
input_file_contents = compile_multiline(input_file_contents,temporary_nila_file)
|
1130
|
+
input_file_contents = compile_multiline(input_file_contents, temporary_nila_file)
|
1131
1131
|
|
1132
1132
|
input_file_contents = compile_array_operators(input_file_contents)
|
1133
1133
|
|
@@ -1138,17 +1138,15 @@ def compile(input_file_path,*output_file_name)
|
|
1138
1138
|
|
1139
1139
|
def compile_strings(input_file_contents)
|
1140
1140
|
|
1141
|
-
# This method will compile %q, %Q and % syntax. Heredocs support will be added in the future
|
1142
|
-
|
1143
1141
|
def compile_small_q_syntax(input_file_contents)
|
1144
1142
|
|
1145
|
-
possible_syntax_usage = input_file_contents.reject {|element| !element.include?("%q")}
|
1143
|
+
possible_syntax_usage = input_file_contents.reject { |element| !element.include?("%q") }
|
1146
1144
|
|
1147
1145
|
possible_syntax_usage.each do |line|
|
1148
1146
|
|
1149
1147
|
modified_line = line.dup
|
1150
1148
|
|
1151
|
-
line_split = line.split("+").collect {|element| element.lstrip.rstrip}
|
1149
|
+
line_split = line.split("+").collect { |element| element.lstrip.rstrip }
|
1152
1150
|
|
1153
1151
|
line_split.each do |str|
|
1154
1152
|
|
@@ -1164,15 +1162,15 @@ def compile(input_file_path,*output_file_name)
|
|
1164
1162
|
|
1165
1163
|
if string_extract[-1].eql?(delimiter)
|
1166
1164
|
|
1167
|
-
input_file_contents[input_file_contents.index(modified_line)] = input_file_contents[input_file_contents.index(modified_line)].sub(string_extract,"'#{string_extract[3...-1]}'")
|
1165
|
+
input_file_contents[input_file_contents.index(modified_line)] = input_file_contents[input_file_contents.index(modified_line)].sub(string_extract, "'#{string_extract[3...-1]}'")
|
1168
1166
|
|
1169
|
-
modified_line = modified_line.sub(string_extract,"'#{string_extract[3...-1]}'")
|
1167
|
+
modified_line = modified_line.sub(string_extract, "'#{string_extract[3...-1]}'")
|
1170
1168
|
|
1171
1169
|
elsif delimiter.eql?(" ")
|
1172
1170
|
|
1173
|
-
input_file_contents[input_file_contents.index(modified_line)] = input_file_contents[input_file_contents.index(modified_line)].sub(string_extract,"'#{string_extract[3..-1]}'")
|
1171
|
+
input_file_contents[input_file_contents.index(modified_line)] = input_file_contents[input_file_contents.index(modified_line)].sub(string_extract, "'#{string_extract[3..-1]}'")
|
1174
1172
|
|
1175
|
-
modified_line = modified_line.sub(string_extract,"'#{string_extract[3..-1]}'")
|
1173
|
+
modified_line = modified_line.sub(string_extract, "'#{string_extract[3..-1]}'")
|
1176
1174
|
|
1177
1175
|
end
|
1178
1176
|
|
@@ -1186,13 +1184,13 @@ def compile(input_file_path,*output_file_name)
|
|
1186
1184
|
|
1187
1185
|
def compile_big_q_syntax(input_file_contents)
|
1188
1186
|
|
1189
|
-
possible_syntax_usage = input_file_contents.reject {|element| !element.include?("%Q")}
|
1187
|
+
possible_syntax_usage = input_file_contents.reject { |element| !element.include?("%Q") }
|
1190
1188
|
|
1191
1189
|
possible_syntax_usage.each do |line|
|
1192
1190
|
|
1193
1191
|
modified_line = line.dup
|
1194
1192
|
|
1195
|
-
line_split = line.split("+").collect {|element| element.lstrip.rstrip}
|
1193
|
+
line_split = line.split("+").collect { |element| element.lstrip.rstrip }
|
1196
1194
|
|
1197
1195
|
line_split.each do |str|
|
1198
1196
|
|
@@ -1208,15 +1206,15 @@ def compile(input_file_path,*output_file_name)
|
|
1208
1206
|
|
1209
1207
|
if string_extract[-1].eql?(delimiter)
|
1210
1208
|
|
1211
|
-
input_file_contents[input_file_contents.index(modified_line)] = input_file_contents[input_file_contents.index(modified_line)].sub(string_extract,"\"#{string_extract[3...-1]}\"")
|
1209
|
+
input_file_contents[input_file_contents.index(modified_line)] = input_file_contents[input_file_contents.index(modified_line)].sub(string_extract, "\"#{string_extract[3...-1]}\"")
|
1212
1210
|
|
1213
|
-
modified_line = modified_line.sub(string_extract,"\"#{string_extract[3...-1]}\"")
|
1211
|
+
modified_line = modified_line.sub(string_extract, "\"#{string_extract[3...-1]}\"")
|
1214
1212
|
|
1215
1213
|
elsif delimiter.eql?(" ")
|
1216
1214
|
|
1217
|
-
input_file_contents[input_file_contents.index(modified_line)] = input_file_contents[input_file_contents.index(modified_line)].sub(string_extract,"\"#{string_extract[3..-1]}\"")
|
1215
|
+
input_file_contents[input_file_contents.index(modified_line)] = input_file_contents[input_file_contents.index(modified_line)].sub(string_extract, "\"#{string_extract[3..-1]}\"")
|
1218
1216
|
|
1219
|
-
modified_line = modified_line.sub(string_extract,"\"#{string_extract[3..-1]}\"")
|
1217
|
+
modified_line = modified_line.sub(string_extract, "\"#{string_extract[3..-1]}\"")
|
1220
1218
|
|
1221
1219
|
end
|
1222
1220
|
|
@@ -1230,15 +1228,15 @@ def compile(input_file_path,*output_file_name)
|
|
1230
1228
|
|
1231
1229
|
def compile_percentage_syntax(input_file_contents)
|
1232
1230
|
|
1233
|
-
possible_syntax_usage = input_file_contents.reject {|element| !element.include?("%")}
|
1231
|
+
possible_syntax_usage = input_file_contents.reject { |element| !element.include?("%") }
|
1234
1232
|
|
1235
|
-
possible_syntax_usage = possible_syntax_usage.reject {|element| element.index(/(\%(\W|\s)\w{1,})/).nil?}
|
1233
|
+
possible_syntax_usage = possible_syntax_usage.reject { |element| element.index(/(\%(\W|\s)\w{1,})/).nil? }
|
1236
1234
|
|
1237
1235
|
possible_syntax_usage.each do |line|
|
1238
1236
|
|
1239
1237
|
modified_line = line.dup
|
1240
1238
|
|
1241
|
-
line_split = line.split("+").collect {|element| element.lstrip.rstrip}
|
1239
|
+
line_split = line.split("+").collect { |element| element.lstrip.rstrip }
|
1242
1240
|
|
1243
1241
|
line_split.each do |str|
|
1244
1242
|
|
@@ -1254,15 +1252,15 @@ def compile(input_file_path,*output_file_name)
|
|
1254
1252
|
|
1255
1253
|
if string_extract[-1].eql?(delimiter)
|
1256
1254
|
|
1257
|
-
input_file_contents[input_file_contents.index(modified_line)] = input_file_contents[input_file_contents.index(modified_line)].sub(string_extract,"\"#{string_extract[2...-1]}\"")
|
1255
|
+
input_file_contents[input_file_contents.index(modified_line)] = input_file_contents[input_file_contents.index(modified_line)].sub(string_extract, "\"#{string_extract[2...-1]}\"")
|
1258
1256
|
|
1259
|
-
modified_line = modified_line.sub(string_extract,"\"#{string_extract[2...-1]}\"")
|
1257
|
+
modified_line = modified_line.sub(string_extract, "\"#{string_extract[2...-1]}\"")
|
1260
1258
|
|
1261
1259
|
elsif delimiter.eql?(" ")
|
1262
1260
|
|
1263
|
-
input_file_contents[input_file_contents.index(modified_line)] = input_file_contents[input_file_contents.index(modified_line)].sub(string_extract,"\"#{string_extract[2..-1]}\"")
|
1261
|
+
input_file_contents[input_file_contents.index(modified_line)] = input_file_contents[input_file_contents.index(modified_line)].sub(string_extract, "\"#{string_extract[2..-1]}\"")
|
1264
1262
|
|
1265
|
-
modified_line = modified_line.sub(string_extract,"\"#{string_extract[2..-1]}\"")
|
1263
|
+
modified_line = modified_line.sub(string_extract, "\"#{string_extract[2..-1]}\"")
|
1266
1264
|
|
1267
1265
|
end
|
1268
1266
|
|
@@ -1284,7 +1282,7 @@ def compile(input_file_path,*output_file_name)
|
|
1284
1282
|
|
1285
1283
|
end
|
1286
1284
|
|
1287
|
-
def compile_named_functions(input_file_contents,named_code_blocks,nested_functions,temporary_nila_file)
|
1285
|
+
def compile_named_functions(input_file_contents, named_code_blocks, nested_functions, temporary_nila_file)
|
1288
1286
|
|
1289
1287
|
#This method compiles all the named Nila functions. Below is an example of what is meant
|
1290
1288
|
#by named/explicit function
|
@@ -1326,11 +1324,11 @@ def compile(input_file_path,*output_file_name)
|
|
1326
1324
|
|
1327
1325
|
variables = []
|
1328
1326
|
|
1329
|
-
function_name,parameters = input_function_block[0].split("(")
|
1327
|
+
function_name, parameters = input_function_block[0].split("(")
|
1330
1328
|
|
1331
1329
|
parameters = parameters.split(")")[0].split(",")
|
1332
1330
|
|
1333
|
-
parameters = parameters.collect {|element| element.strip}
|
1331
|
+
parameters = parameters.collect { |element| element.strip }
|
1334
1332
|
|
1335
1333
|
input_function_block.each do |line|
|
1336
1334
|
|
@@ -1366,7 +1364,7 @@ def compile(input_file_path,*output_file_name)
|
|
1366
1364
|
|
1367
1365
|
end
|
1368
1366
|
|
1369
|
-
def remove_question_marks(input_file_contents,input_list,temporary_nila_file)
|
1367
|
+
def remove_question_marks(input_file_contents, input_list, temporary_nila_file)
|
1370
1368
|
|
1371
1369
|
joined_file_contents = input_file_contents.join
|
1372
1370
|
|
@@ -1374,7 +1372,7 @@ def compile(input_file_path,*output_file_name)
|
|
1374
1372
|
|
1375
1373
|
if element.include? "?"
|
1376
1374
|
|
1377
|
-
joined_file_contents = joined_file_contents.gsub(element,element[0...-1])
|
1375
|
+
joined_file_contents = joined_file_contents.gsub(element, element[0...-1])
|
1378
1376
|
|
1379
1377
|
end
|
1380
1378
|
|
@@ -1400,7 +1398,7 @@ def compile(input_file_path,*output_file_name)
|
|
1400
1398
|
|
1401
1399
|
if !joined_array.include?("return ")
|
1402
1400
|
|
1403
|
-
rejected_array = reversed_input_array.reject {|content| content.lstrip.eql?("")}
|
1401
|
+
rejected_array = reversed_input_array.reject { |content| content.lstrip.eql?("") }
|
1404
1402
|
|
1405
1403
|
rejected_array = rejected_array[1..-1]
|
1406
1404
|
|
@@ -1426,7 +1424,7 @@ def compile(input_file_path,*output_file_name)
|
|
1426
1424
|
|
1427
1425
|
def compile_multiple_return(input_array)
|
1428
1426
|
|
1429
|
-
def find_all_matching_indices(input_string,pattern)
|
1427
|
+
def find_all_matching_indices(input_string, pattern)
|
1430
1428
|
|
1431
1429
|
locations = []
|
1432
1430
|
|
@@ -1436,7 +1434,7 @@ def compile(input_file_path,*output_file_name)
|
|
1436
1434
|
|
1437
1435
|
locations << index
|
1438
1436
|
|
1439
|
-
index = input_string.index(pattern,index+1)
|
1437
|
+
index = input_string.index(pattern, index+1)
|
1440
1438
|
|
1441
1439
|
|
1442
1440
|
end
|
@@ -1448,9 +1446,9 @@ def compile(input_file_path,*output_file_name)
|
|
1448
1446
|
|
1449
1447
|
modified_input_array = input_array.dup
|
1450
1448
|
|
1451
|
-
return_statements = input_array.dup.reject {|element| !element.include?"return"}
|
1449
|
+
return_statements = input_array.dup.reject { |element| !element.include? "return" }
|
1452
1450
|
|
1453
|
-
multiple_return_statements = return_statements.dup.reject {|element| !element.include?","}
|
1451
|
+
multiple_return_statements = return_statements.dup.reject { |element| !element.include? "," }
|
1454
1452
|
|
1455
1453
|
modified_multiple_return_statements = multiple_return_statements.dup
|
1456
1454
|
|
@@ -1458,19 +1456,19 @@ def compile(input_file_path,*output_file_name)
|
|
1458
1456
|
|
1459
1457
|
multiple_return_statements.each do |statement|
|
1460
1458
|
|
1461
|
-
location_array = modified_input_array.each_index.select { |index| modified_input_array[index] == statement}
|
1459
|
+
location_array = modified_input_array.each_index.select { |index| modified_input_array[index] == statement }
|
1462
1460
|
|
1463
1461
|
return_statement_index << location_array[0]
|
1464
1462
|
|
1465
1463
|
end
|
1466
1464
|
|
1467
|
-
multiple_return_statements.each_with_index do |return_statement,index|
|
1465
|
+
multiple_return_statements.each_with_index do |return_statement, index|
|
1468
1466
|
|
1469
1467
|
replacement_counter = 0
|
1470
1468
|
|
1471
1469
|
if return_statement.include? "\""
|
1472
1470
|
|
1473
|
-
starting_quotes = find_all_matching_indices(return_statement,"\"")
|
1471
|
+
starting_quotes = find_all_matching_indices(return_statement, "\"")
|
1474
1472
|
|
1475
1473
|
for x in 0...(starting_quotes.length)/2
|
1476
1474
|
|
@@ -1478,9 +1476,9 @@ def compile(input_file_path,*output_file_name)
|
|
1478
1476
|
|
1479
1477
|
replacement_counter += 1
|
1480
1478
|
|
1481
|
-
modified_multiple_return_statements[index] = modified_multiple_return_statements[index].sub(quotes,"repstring#{1}")
|
1479
|
+
modified_multiple_return_statements[index] = modified_multiple_return_statements[index].sub(quotes, "repstring#{1}")
|
1482
1480
|
|
1483
|
-
modified_input_array[return_statement_index[index]] = modified_multiple_return_statements[index].sub(quotes,"repstring#{1}")
|
1481
|
+
modified_input_array[return_statement_index[index]] = modified_multiple_return_statements[index].sub(quotes, "repstring#{1}")
|
1484
1482
|
|
1485
1483
|
end
|
1486
1484
|
|
@@ -1488,35 +1486,35 @@ def compile(input_file_path,*output_file_name)
|
|
1488
1486
|
|
1489
1487
|
end
|
1490
1488
|
|
1491
|
-
modified_multiple_return_statements = modified_multiple_return_statements.reject {|element| !element.include?","}
|
1489
|
+
modified_multiple_return_statements = modified_multiple_return_statements.reject { |element| !element.include? "," }
|
1492
1490
|
|
1493
1491
|
return_statement_index = []
|
1494
1492
|
|
1495
1493
|
modified_multiple_return_statements.each do |statement|
|
1496
1494
|
|
1497
|
-
location_array = modified_input_array.each_index.select { |index| modified_input_array[index] == statement}
|
1495
|
+
location_array = modified_input_array.each_index.select { |index| modified_input_array[index] == statement }
|
1498
1496
|
|
1499
1497
|
return_statement_index << location_array[0]
|
1500
1498
|
|
1501
1499
|
end
|
1502
1500
|
|
1503
|
-
modified_multiple_return_statements.each_with_index do |return_statement,index|
|
1501
|
+
modified_multiple_return_statements.each_with_index do |return_statement, index|
|
1504
1502
|
|
1505
1503
|
method_call_counter = 0
|
1506
1504
|
|
1507
|
-
if return_statement.include?"("
|
1505
|
+
if return_statement.include? "("
|
1508
1506
|
|
1509
|
-
open_paran_location = find_all_matching_indices(return_statement,"(")
|
1507
|
+
open_paran_location = find_all_matching_indices(return_statement, "(")
|
1510
1508
|
|
1511
1509
|
open_paran_location.each do |paran_index|
|
1512
1510
|
|
1513
|
-
method_call = return_statement[paran_index..return_statement.index(")",paran_index+1)]
|
1511
|
+
method_call = return_statement[paran_index..return_statement.index(")", paran_index+1)]
|
1514
1512
|
|
1515
1513
|
method_call_counter += 1
|
1516
1514
|
|
1517
|
-
modified_multiple_return_statements[index] = modified_multiple_return_statements[index].sub(method_call,"methodcall#{method_call_counter}")
|
1515
|
+
modified_multiple_return_statements[index] = modified_multiple_return_statements[index].sub(method_call, "methodcall#{method_call_counter}")
|
1518
1516
|
|
1519
|
-
modified_input_array[return_statement_index[index]] = modified_multiple_return_statements[index].sub(method_call,"methodcall#{method_call_counter}")
|
1517
|
+
modified_input_array[return_statement_index[index]] = modified_multiple_return_statements[index].sub(method_call, "methodcall#{method_call_counter}")
|
1520
1518
|
|
1521
1519
|
end
|
1522
1520
|
|
@@ -1524,13 +1522,13 @@ def compile(input_file_path,*output_file_name)
|
|
1524
1522
|
|
1525
1523
|
end
|
1526
1524
|
|
1527
|
-
modified_multiple_return_statements = modified_multiple_return_statements.reject {|element| !element.include?(",")}
|
1525
|
+
modified_multiple_return_statements = modified_multiple_return_statements.reject { |element| !element.include?(",") }
|
1528
1526
|
|
1529
1527
|
return_statement_index = []
|
1530
1528
|
|
1531
1529
|
modified_multiple_return_statements.each do |statement|
|
1532
1530
|
|
1533
|
-
location_array = modified_input_array.each_index.select { |index| modified_input_array[index] == statement}
|
1531
|
+
location_array = modified_input_array.each_index.select { |index| modified_input_array[index] == statement }
|
1534
1532
|
|
1535
1533
|
return_statement_index << location_array[0]
|
1536
1534
|
|
@@ -1552,7 +1550,7 @@ def compile(input_file_path,*output_file_name)
|
|
1552
1550
|
|
1553
1551
|
end
|
1554
1552
|
|
1555
|
-
def compile_function(input_array,temporary_nila_file)
|
1553
|
+
def compile_function(input_array, temporary_nila_file)
|
1556
1554
|
|
1557
1555
|
modified_input_array = input_array.dup
|
1558
1556
|
|
@@ -1560,24 +1558,24 @@ def compile(input_file_path,*output_file_name)
|
|
1560
1558
|
|
1561
1559
|
if modified_input_array[0].include?("--single")
|
1562
1560
|
|
1563
|
-
modified_input_array[0] = input_array[0].sub "def","function"
|
1561
|
+
modified_input_array[0] = input_array[0].sub "def", "function"
|
1564
1562
|
|
1565
1563
|
interim_string = modified_input_array[0].split("--single")
|
1566
1564
|
|
1567
|
-
modified_input_array[0] =
|
1565
|
+
modified_input_array[0] = interim_string[0].rstrip + "() {\n--single" + interim_string[1]
|
1568
1566
|
|
1569
1567
|
|
1570
1568
|
elsif modified_input_array[0].include?("--multi")
|
1571
1569
|
|
1572
|
-
modified_input_array[0] = input_array[0].sub "def","function"
|
1570
|
+
modified_input_array[0] = input_array[0].sub "def", "function"
|
1573
1571
|
|
1574
1572
|
interim_string = modified_input_array[0].split("--multi")
|
1575
1573
|
|
1576
|
-
modified_input_array[0] =
|
1574
|
+
modified_input_array[0] = interim_string[0].rstrip + "() {\n--multi" + interim_string[1]
|
1577
1575
|
|
1578
1576
|
else
|
1579
1577
|
|
1580
|
-
modified_input_array[0] = input_array[0].sub "def","function"
|
1578
|
+
modified_input_array[0] = input_array[0].sub "def", "function"
|
1581
1579
|
|
1582
1580
|
modified_input_array[0] = modified_input_array[0].rstrip + "() {\n"
|
1583
1581
|
|
@@ -1587,24 +1585,24 @@ def compile(input_file_path,*output_file_name)
|
|
1587
1585
|
|
1588
1586
|
if modified_input_array[0].include?("--single")
|
1589
1587
|
|
1590
|
-
modified_input_array[0] = input_array[0].sub "def","function"
|
1588
|
+
modified_input_array[0] = input_array[0].sub "def", "function"
|
1591
1589
|
|
1592
1590
|
interim_string = modified_input_array[0].split("--single")
|
1593
1591
|
|
1594
|
-
modified_input_array[0] =
|
1592
|
+
modified_input_array[0] = interim_string[0].rstrip + " {\n--single" + interim_string[1]
|
1595
1593
|
|
1596
1594
|
|
1597
1595
|
elsif modified_input_array[0].include?("--multi")
|
1598
1596
|
|
1599
|
-
modified_input_array[0] = input_array[0].sub "def","function"
|
1597
|
+
modified_input_array[0] = input_array[0].sub "def", "function"
|
1600
1598
|
|
1601
1599
|
interim_string = modified_input_array[0].split("--multi")
|
1602
1600
|
|
1603
|
-
modified_input_array[0] =
|
1601
|
+
modified_input_array[0] = interim_string[0].rstrip + " {\n--multi" + interim_string[1]
|
1604
1602
|
|
1605
1603
|
else
|
1606
1604
|
|
1607
|
-
modified_input_array[0] = input_array[0].sub "def","function"
|
1605
|
+
modified_input_array[0] = input_array[0].sub "def", "function"
|
1608
1606
|
|
1609
1607
|
modified_input_array[0] = modified_input_array[0].rstrip + " {\n"
|
1610
1608
|
|
@@ -1612,9 +1610,9 @@ def compile(input_file_path,*output_file_name)
|
|
1612
1610
|
|
1613
1611
|
end
|
1614
1612
|
|
1615
|
-
modified_input_array[-1] = input_array[-1].sub "end","}\n"
|
1613
|
+
modified_input_array[-1] = input_array[-1].sub "end", "}\n"
|
1616
1614
|
|
1617
|
-
modified_input_array =
|
1615
|
+
modified_input_array = compile_parallel_assignment(modified_input_array, temporary_nila_file)
|
1618
1616
|
|
1619
1617
|
variables = lexical_scoped_variables(modified_input_array)
|
1620
1618
|
|
@@ -1622,11 +1620,11 @@ def compile(input_file_path,*output_file_name)
|
|
1622
1620
|
|
1623
1621
|
variable_string = "\nvar " + variables.join(", ") + "\n"
|
1624
1622
|
|
1625
|
-
modified_input_array.insert(1,variable_string)
|
1623
|
+
modified_input_array.insert(1, variable_string)
|
1626
1624
|
|
1627
1625
|
end
|
1628
1626
|
|
1629
|
-
modified_input_array = remove_question_marks(modified_input_array,variables,temporary_nila_file)
|
1627
|
+
modified_input_array = remove_question_marks(modified_input_array, variables, temporary_nila_file)
|
1630
1628
|
|
1631
1629
|
modified_input_array = add_auto_return_statement(modified_input_array)
|
1632
1630
|
|
@@ -1644,7 +1642,7 @@ def compile(input_file_path,*output_file_name)
|
|
1644
1642
|
|
1645
1643
|
if first_line_split[1].include?("(")
|
1646
1644
|
|
1647
|
-
function_name,parameters = first_line_split[1].split("(")
|
1645
|
+
function_name, parameters = first_line_split[1].split("(")
|
1648
1646
|
|
1649
1647
|
else
|
1650
1648
|
|
@@ -1668,7 +1666,7 @@ def compile(input_file_path,*output_file_name)
|
|
1668
1666
|
|
1669
1667
|
function_names[codeblock_counter-1] = []
|
1670
1668
|
|
1671
|
-
joined_file_contents = joined_file_contents.sub("--named_function[#{codeblock_counter}]\n",compile_function(codeblock,temporary_nila_file).join)
|
1669
|
+
joined_file_contents = joined_file_contents.sub("--named_function[#{codeblock_counter}]\n", compile_function(codeblock, temporary_nila_file).join)
|
1672
1670
|
|
1673
1671
|
codeblock_counter += 1
|
1674
1672
|
|
@@ -1680,7 +1678,7 @@ def compile(input_file_path,*output_file_name)
|
|
1680
1678
|
|
1681
1679
|
function_names[codeblock_counter-2] << extract_function_name(nested_function)
|
1682
1680
|
|
1683
|
-
joined_file_contents = joined_file_contents.sub(nested_function.join,compile_function(nested_function,temporary_nila_file).join)
|
1681
|
+
joined_file_contents = joined_file_contents.sub(nested_function.join, compile_function(nested_function, temporary_nila_file).join)
|
1684
1682
|
|
1685
1683
|
end
|
1686
1684
|
|
@@ -1700,7 +1698,7 @@ def compile(input_file_path,*output_file_name)
|
|
1700
1698
|
|
1701
1699
|
line_by_line_contents = read_file_line_by_line(temporary_nila_file)
|
1702
1700
|
|
1703
|
-
return line_by_line_contents,function_names
|
1701
|
+
return line_by_line_contents, function_names
|
1704
1702
|
|
1705
1703
|
end
|
1706
1704
|
|
@@ -1719,13 +1717,13 @@ def compile(input_file_path,*output_file_name)
|
|
1719
1717
|
|
1720
1718
|
modified_file_contents = input_file_contents.dup
|
1721
1719
|
|
1722
|
-
input_file_contents.each_with_index do |line,index|
|
1720
|
+
input_file_contents.each_with_index do |line, index|
|
1723
1721
|
|
1724
1722
|
function_map.each do |function|
|
1725
1723
|
|
1726
1724
|
if line.include?(function+"(") or line.include?(function+" ")
|
1727
1725
|
|
1728
|
-
modified_file_contents[index] = line.sub(function,function_map_replacements[function])
|
1726
|
+
modified_file_contents[index] = line.sub(function, function_map_replacements[function])
|
1729
1727
|
|
1730
1728
|
end
|
1731
1729
|
|
@@ -1733,15 +1731,15 @@ def compile(input_file_path,*output_file_name)
|
|
1733
1731
|
|
1734
1732
|
end
|
1735
1733
|
|
1736
|
-
return modified_file_contents,function_map_replacements.values
|
1734
|
+
return modified_file_contents, function_map_replacements.values
|
1737
1735
|
|
1738
1736
|
end
|
1739
1737
|
|
1740
|
-
def compile_whitespace_delimited_functions(input_file_contents,function_names,temporary_nila_file)
|
1738
|
+
def compile_whitespace_delimited_functions(input_file_contents, function_names, temporary_nila_file)
|
1741
1739
|
|
1742
|
-
def extract(input_string,pattern_start,pattern_end)
|
1740
|
+
def extract(input_string, pattern_start, pattern_end)
|
1743
1741
|
|
1744
|
-
def find_all_matching_indices(input_string,pattern)
|
1742
|
+
def find_all_matching_indices(input_string, pattern)
|
1745
1743
|
|
1746
1744
|
locations = []
|
1747
1745
|
|
@@ -1751,7 +1749,7 @@ def compile(input_file_path,*output_file_name)
|
|
1751
1749
|
|
1752
1750
|
locations << index
|
1753
1751
|
|
1754
|
-
index = input_string.index(pattern,index+1)
|
1752
|
+
index = input_string.index(pattern, index+1)
|
1755
1753
|
|
1756
1754
|
|
1757
1755
|
end
|
@@ -1761,7 +1759,7 @@ def compile(input_file_path,*output_file_name)
|
|
1761
1759
|
|
1762
1760
|
end
|
1763
1761
|
|
1764
|
-
all_start_locations = find_all_matching_indices(input_string,pattern_start)
|
1762
|
+
all_start_locations = find_all_matching_indices(input_string, pattern_start)
|
1765
1763
|
|
1766
1764
|
pattern = []
|
1767
1765
|
|
@@ -1787,19 +1785,19 @@ def compile(input_file_path,*output_file_name)
|
|
1787
1785
|
|
1788
1786
|
list_of_functions.each do |function|
|
1789
1787
|
|
1790
|
-
matching_strings = extract(joined_file_contents,function+" ","\n")
|
1788
|
+
matching_strings = extract(joined_file_contents, function+" ", "\n")
|
1791
1789
|
|
1792
1790
|
matching_strings.each do |string|
|
1793
1791
|
|
1794
1792
|
modified_string = string.dup
|
1795
1793
|
|
1796
|
-
modified_string = modified_string.rstrip + modified_string.split(modified_string.rstrip)[1].gsub(" ","")
|
1794
|
+
modified_string = modified_string.rstrip + modified_string.split(modified_string.rstrip)[1].gsub(" ", "")
|
1797
1795
|
|
1798
|
-
modified_string = modified_string.sub(function+" ",function+"(")
|
1796
|
+
modified_string = modified_string.sub(function+" ", function+"(")
|
1799
1797
|
|
1800
|
-
modified_string = modified_string.sub("\n",")\n")
|
1798
|
+
modified_string = modified_string.sub("\n", ")\n")
|
1801
1799
|
|
1802
|
-
joined_file_contents = joined_file_contents.sub(string,modified_string)
|
1800
|
+
joined_file_contents = joined_file_contents.sub(string, modified_string)
|
1803
1801
|
|
1804
1802
|
end
|
1805
1803
|
|
@@ -1825,19 +1823,19 @@ def compile(input_file_path,*output_file_name)
|
|
1825
1823
|
|
1826
1824
|
end
|
1827
1825
|
|
1828
|
-
def compile_conditional_structures(input_file_contents,temporary_nila_file)
|
1826
|
+
def compile_conditional_structures(input_file_contents, temporary_nila_file)
|
1829
1827
|
|
1830
1828
|
def replace_unless_until(input_file_contents)
|
1831
1829
|
|
1832
1830
|
modified_file_contents = input_file_contents.clone
|
1833
1831
|
|
1834
|
-
possible_unless_commands = input_file_contents.reject {|element| !element.include?("unless")}
|
1832
|
+
possible_unless_commands = input_file_contents.reject { |element| !element.include?("unless") }
|
1835
1833
|
|
1836
|
-
unless_commands = possible_unless_commands.reject {|element| !element.lstrip.split("unless")[0].empty?}
|
1834
|
+
unless_commands = possible_unless_commands.reject { |element| !element.lstrip.split("unless")[0].empty? }
|
1837
1835
|
|
1838
1836
|
unless_commands.each do |command|
|
1839
1837
|
|
1840
|
-
junk,condition = command.split("unless ")
|
1838
|
+
junk, condition = command.split("unless ")
|
1841
1839
|
|
1842
1840
|
replacement_string = "if !(#{condition.lstrip.rstrip})\n"
|
1843
1841
|
|
@@ -1845,13 +1843,13 @@ def compile(input_file_path,*output_file_name)
|
|
1845
1843
|
|
1846
1844
|
end
|
1847
1845
|
|
1848
|
-
possible_until_commands = input_file_contents.reject {|element| !element.include?("until")}
|
1846
|
+
possible_until_commands = input_file_contents.reject { |element| !element.include?("until") }
|
1849
1847
|
|
1850
|
-
until_commands = possible_until_commands.reject {|element| !element.lstrip.split("until")[0].empty?}
|
1848
|
+
until_commands = possible_until_commands.reject { |element| !element.lstrip.split("until")[0].empty? }
|
1851
1849
|
|
1852
1850
|
until_commands.each do |command|
|
1853
1851
|
|
1854
|
-
junk,condition = command.split("until ")
|
1852
|
+
junk, condition = command.split("until ")
|
1855
1853
|
|
1856
1854
|
replacement_string = "while !(#{condition.lstrip.rstrip})\n"
|
1857
1855
|
|
@@ -1863,19 +1861,19 @@ def compile(input_file_path,*output_file_name)
|
|
1863
1861
|
|
1864
1862
|
end
|
1865
1863
|
|
1866
|
-
def compile_inline_conditionals(input_file_contents,temporary_nila_file)
|
1864
|
+
def compile_inline_conditionals(input_file_contents, temporary_nila_file)
|
1867
1865
|
|
1868
|
-
conditionals = [/( if )
|
1866
|
+
conditionals = [/( if )/, /( while )/, /( unless )/, /( until )/]
|
1869
1867
|
|
1870
|
-
plain_conditionals = [" if "," while "," unless "," until "]
|
1868
|
+
plain_conditionals = [" if ", " while ", " unless ", " until "]
|
1871
1869
|
|
1872
1870
|
joined_file_contents = input_file_contents.join
|
1873
1871
|
|
1874
1872
|
output_statement = ""
|
1875
1873
|
|
1876
|
-
conditionals.each_with_index do |regex,index|
|
1874
|
+
conditionals.each_with_index do |regex, index|
|
1877
1875
|
|
1878
|
-
matching_lines = input_file_contents.reject {|content| content.index(regex).nil?}
|
1876
|
+
matching_lines = input_file_contents.reject { |content| content.index(regex).nil? }
|
1879
1877
|
|
1880
1878
|
matching_lines.each do |line|
|
1881
1879
|
|
@@ -1883,23 +1881,23 @@ def compile(input_file_path,*output_file_name)
|
|
1883
1881
|
|
1884
1882
|
if index == 0
|
1885
1883
|
|
1886
|
-
output_statement = "if (#{line_split[1].lstrip.rstrip.gsub("?","")}) {\n\n#{line_split[0]}\n}\n"
|
1884
|
+
output_statement = "if (#{line_split[1].lstrip.rstrip.gsub("?", "")}) {\n\n#{line_split[0]}\n}\n"
|
1887
1885
|
|
1888
1886
|
elsif index == 1
|
1889
1887
|
|
1890
|
-
output_statement = "while (#{line_split[1].lstrip.rstrip.gsub("?","")}) {\n\n#{line_split[0]}\n}\n"
|
1888
|
+
output_statement = "while (#{line_split[1].lstrip.rstrip.gsub("?", "")}) {\n\n#{line_split[0]}\n}\n"
|
1891
1889
|
|
1892
1890
|
elsif index == 2
|
1893
1891
|
|
1894
|
-
output_statement = "if (!(#{line_split[1].lstrip.rstrip.gsub("?","")})) {\n\n#{line_split[0]}\n}\n"
|
1892
|
+
output_statement = "if (!(#{line_split[1].lstrip.rstrip.gsub("?", "")})) {\n\n#{line_split[0]}\n}\n"
|
1895
1893
|
|
1896
1894
|
elsif index == 3
|
1897
1895
|
|
1898
|
-
output_statement = "while (!(#{line_split[1].lstrip.rstrip.gsub("?","")})) {\n\n#{line_split[0]}\n}\n"
|
1896
|
+
output_statement = "while (!(#{line_split[1].lstrip.rstrip.gsub("?", "")})) {\n\n#{line_split[0]}\n}\n"
|
1899
1897
|
|
1900
1898
|
end
|
1901
1899
|
|
1902
|
-
joined_file_contents = joined_file_contents.sub(line,output_statement)
|
1900
|
+
joined_file_contents = joined_file_contents.sub(line, output_statement)
|
1903
1901
|
|
1904
1902
|
end
|
1905
1903
|
|
@@ -1917,9 +1915,9 @@ def compile(input_file_path,*output_file_name)
|
|
1917
1915
|
|
1918
1916
|
end
|
1919
1917
|
|
1920
|
-
def compile_regular_if(input_file_contents,temporary_nila_file)
|
1918
|
+
def compile_regular_if(input_file_contents, temporary_nila_file)
|
1921
1919
|
|
1922
|
-
def convert_string_to_array(input_string,temporary_nila_file)
|
1920
|
+
def convert_string_to_array(input_string, temporary_nila_file)
|
1923
1921
|
|
1924
1922
|
file_id = open(temporary_nila_file, 'w')
|
1925
1923
|
|
@@ -1933,7 +1931,7 @@ def compile(input_file_path,*output_file_name)
|
|
1933
1931
|
|
1934
1932
|
end
|
1935
1933
|
|
1936
|
-
def extract_if_blocks(if_statement_indexes,input_file_contents)
|
1934
|
+
def extract_if_blocks(if_statement_indexes, input_file_contents)
|
1937
1935
|
|
1938
1936
|
possible_if_blocks = []
|
1939
1937
|
|
@@ -1961,7 +1959,7 @@ def compile(input_file_path,*output_file_name)
|
|
1961
1959
|
|
1962
1960
|
current_block += block
|
1963
1961
|
|
1964
|
-
current_block.each_with_index do |line,index|
|
1962
|
+
current_block.each_with_index do |line, index|
|
1965
1963
|
|
1966
1964
|
if line.strip.eql? "end"
|
1967
1965
|
|
@@ -2005,7 +2003,7 @@ def compile(input_file_path,*output_file_name)
|
|
2005
2003
|
|
2006
2004
|
end_index = []
|
2007
2005
|
|
2008
|
-
current_block.each_with_index do |line,index|
|
2006
|
+
current_block.each_with_index do |line, index|
|
2009
2007
|
|
2010
2008
|
if line.strip.eql? "end"
|
2011
2009
|
|
@@ -2023,7 +2021,7 @@ def compile(input_file_path,*output_file_name)
|
|
2023
2021
|
|
2024
2022
|
end
|
2025
2023
|
|
2026
|
-
return current_block,extracted_blocks
|
2024
|
+
return current_block, extracted_blocks
|
2027
2025
|
|
2028
2026
|
end
|
2029
2027
|
|
@@ -2035,17 +2033,17 @@ def compile(input_file_path,*output_file_name)
|
|
2035
2033
|
|
2036
2034
|
modified_input_block = input_block.dup
|
2037
2035
|
|
2038
|
-
input_block.each_with_index do |line,index|
|
2036
|
+
input_block.each_with_index do |line, index|
|
2039
2037
|
|
2040
2038
|
if line.include?("\"")
|
2041
2039
|
|
2042
2040
|
opening_quotes = line.index("\"")
|
2043
2041
|
|
2044
|
-
string_extract = line[opening_quotes..line.index("\"",opening_quotes+1)]
|
2042
|
+
string_extract = line[opening_quotes..line.index("\"", opening_quotes+1)]
|
2045
2043
|
|
2046
2044
|
strings << string_extract
|
2047
2045
|
|
2048
|
-
modified_input_block[index] = modified_input_block[index].sub(string_extract,"--string{#{string_counter}}")
|
2046
|
+
modified_input_block[index] = modified_input_block[index].sub(string_extract, "--string{#{string_counter}}")
|
2049
2047
|
|
2050
2048
|
string_counter += 1
|
2051
2049
|
|
@@ -2059,23 +2057,23 @@ def compile(input_file_path,*output_file_name)
|
|
2059
2057
|
|
2060
2058
|
starting_line = starting_line + "\n" if starting_line.lstrip == starting_line
|
2061
2059
|
|
2062
|
-
junk,condition = starting_line.split("if")
|
2060
|
+
junk, condition = starting_line.split("if")
|
2063
2061
|
|
2064
|
-
input_block[0] = "Euuf (#{condition.lstrip.rstrip.gsub("?","")}) {\n"
|
2062
|
+
input_block[0] = "Euuf (#{condition.lstrip.rstrip.gsub("?", "")}) {\n"
|
2065
2063
|
|
2066
|
-
input_block[-1] = input_block[-1].lstrip.sub("end","}")
|
2064
|
+
input_block[-1] = input_block[-1].lstrip.sub("end", "}")
|
2067
2065
|
|
2068
|
-
elsif_statements = input_block.reject {|element| !element.include?("elsuf")}
|
2066
|
+
elsif_statements = input_block.reject { |element| !element.include?("elsuf") }
|
2069
2067
|
|
2070
2068
|
elsif_statements.each do |statement|
|
2071
2069
|
|
2072
|
-
junk,condition = statement.split("elsuf")
|
2070
|
+
junk, condition = statement.split("elsuf")
|
2073
2071
|
|
2074
|
-
input_block[input_block.index(statement)] = "} elsuf (#{condition.lstrip.rstrip.gsub("?","")}) {\n"
|
2072
|
+
input_block[input_block.index(statement)] = "} elsuf (#{condition.lstrip.rstrip.gsub("?", "")}) {\n"
|
2075
2073
|
|
2076
2074
|
end
|
2077
2075
|
|
2078
|
-
else_statements = input_block.reject {|element| !element.include?("else")}
|
2076
|
+
else_statements = input_block.reject { |element| !element.include?("else") }
|
2079
2077
|
|
2080
2078
|
else_statements.each do |statement|
|
2081
2079
|
|
@@ -2085,15 +2083,15 @@ def compile(input_file_path,*output_file_name)
|
|
2085
2083
|
|
2086
2084
|
modified_input_block = input_block.dup
|
2087
2085
|
|
2088
|
-
input_block.each_with_index do |line,index|
|
2086
|
+
input_block.each_with_index do |line, index|
|
2089
2087
|
|
2090
2088
|
if line.include?("--string{")
|
2091
2089
|
|
2092
|
-
junk,remains = line.split("--string{")
|
2090
|
+
junk, remains = line.split("--string{")
|
2093
2091
|
|
2094
|
-
string_index,junk = remains.split("}")
|
2092
|
+
string_index, junk = remains.split("}")
|
2095
2093
|
|
2096
|
-
modified_input_block[index] = modified_input_block[index].sub("--string{#{string_index.strip}}",strings[string_index.strip.to_i])
|
2094
|
+
modified_input_block[index] = modified_input_block[index].sub("--string{#{string_index.strip}}", strings[string_index.strip.to_i])
|
2097
2095
|
|
2098
2096
|
end
|
2099
2097
|
|
@@ -2103,13 +2101,13 @@ def compile(input_file_path,*output_file_name)
|
|
2103
2101
|
|
2104
2102
|
end
|
2105
2103
|
|
2106
|
-
input_file_contents = input_file_contents.collect {|element| element.sub("elsif","elsuf")}
|
2104
|
+
input_file_contents = input_file_contents.collect { |element| element.sub("elsif", "elsuf") }
|
2107
2105
|
|
2108
|
-
possible_if_statements = input_file_contents.reject {|element| !element.include?("if")}
|
2106
|
+
possible_if_statements = input_file_contents.reject { |element| !element.include?("if") }
|
2109
2107
|
|
2110
|
-
possible_if_statements = possible_if_statements.reject {|element| element.include?("else")}
|
2108
|
+
possible_if_statements = possible_if_statements.reject { |element| element.include?("else") }
|
2111
2109
|
|
2112
|
-
possible_if_statements = possible_if_statements.reject {|element| element.lstrip.include?(" if ")}
|
2110
|
+
possible_if_statements = possible_if_statements.reject { |element| element.lstrip.include?(" if ") }
|
2113
2111
|
|
2114
2112
|
if !possible_if_statements.empty?
|
2115
2113
|
|
@@ -2117,7 +2115,7 @@ def compile(input_file_path,*output_file_name)
|
|
2117
2115
|
|
2118
2116
|
possible_if_statements.each do |statement|
|
2119
2117
|
|
2120
|
-
if_statement_indexes << input_file_contents.dup.each_index.select {|index| input_file_contents[index] == statement}
|
2118
|
+
if_statement_indexes << input_file_contents.dup.each_index.select { |index| input_file_contents[index] == statement }
|
2121
2119
|
|
2122
2120
|
end
|
2123
2121
|
|
@@ -2125,11 +2123,11 @@ def compile(input_file_path,*output_file_name)
|
|
2125
2123
|
|
2126
2124
|
controlregexp = /(while |def )/
|
2127
2125
|
|
2128
|
-
modified_input_contents,extracted_statements = extract_if_blocks(if_statement_indexes,input_file_contents.clone)
|
2126
|
+
modified_input_contents, extracted_statements = extract_if_blocks(if_statement_indexes, input_file_contents.clone)
|
2129
2127
|
|
2130
|
-
joined_blocks = extracted_statements.collect {|element| element.join}
|
2128
|
+
joined_blocks = extracted_statements.collect { |element| element.join }
|
2131
2129
|
|
2132
|
-
if_statements = joined_blocks.reject {|element| element.index(controlregexp) != nil}
|
2130
|
+
if_statements = joined_blocks.reject { |element| element.index(controlregexp) != nil }
|
2133
2131
|
|
2134
2132
|
rejected_elements = joined_blocks - if_statements
|
2135
2133
|
|
@@ -2137,7 +2135,7 @@ def compile(input_file_path,*output_file_name)
|
|
2137
2135
|
|
2138
2136
|
rejected_elements.each do |element|
|
2139
2137
|
|
2140
|
-
rejected_elements_index << joined_blocks.each_index.select {|index| joined_blocks[index] == element}
|
2138
|
+
rejected_elements_index << joined_blocks.each_index.select { |index| joined_blocks[index] == element }
|
2141
2139
|
|
2142
2140
|
end
|
2143
2141
|
|
@@ -2147,13 +2145,13 @@ def compile(input_file_path,*output_file_name)
|
|
2147
2145
|
|
2148
2146
|
if_blocks_index -= rejected_elements_index
|
2149
2147
|
|
2150
|
-
modified_if_statements = if_statements.collect {|string| convert_string_to_array(string,temporary_nila_file)}
|
2148
|
+
modified_if_statements = if_statements.collect { |string| convert_string_to_array(string, temporary_nila_file) }
|
2151
2149
|
|
2152
|
-
modified_if_statements = modified_if_statements.collect {|block| compile_if_syntax(block)}.reverse
|
2150
|
+
modified_if_statements = modified_if_statements.collect { |block| compile_if_syntax(block) }.reverse
|
2153
2151
|
|
2154
|
-
if_blocks_index = if_blocks_index.collect {|element| "--ifblock#{element}"}.reverse
|
2152
|
+
if_blocks_index = if_blocks_index.collect { |element| "--ifblock#{element}" }.reverse
|
2155
2153
|
|
2156
|
-
rejected_elements_index = rejected_elements_index.collect {|element| "--ifblock#{element}"}.reverse
|
2154
|
+
rejected_elements_index = rejected_elements_index.collect { |element| "--ifblock#{element}" }.reverse
|
2157
2155
|
|
2158
2156
|
rejected_elements = rejected_elements.reverse
|
2159
2157
|
|
@@ -2165,7 +2163,7 @@ def compile(input_file_path,*output_file_name)
|
|
2165
2163
|
|
2166
2164
|
if joined_file_contents.include?(if_blocks_index[0])
|
2167
2165
|
|
2168
|
-
joined_file_contents = joined_file_contents.sub(if_blocks_index[0],modified_if_statements[0].join)
|
2166
|
+
joined_file_contents = joined_file_contents.sub(if_blocks_index[0], modified_if_statements[0].join)
|
2169
2167
|
|
2170
2168
|
if_blocks_index.delete_at(0)
|
2171
2169
|
|
@@ -2173,7 +2171,7 @@ def compile(input_file_path,*output_file_name)
|
|
2173
2171
|
|
2174
2172
|
else
|
2175
2173
|
|
2176
|
-
joined_file_contents = joined_file_contents.sub(rejected_elements_index[0],rejected_elements[0])
|
2174
|
+
joined_file_contents = joined_file_contents.sub(rejected_elements_index[0], rejected_elements[0])
|
2177
2175
|
|
2178
2176
|
rejected_elements_index.delete_at(0)
|
2179
2177
|
|
@@ -2183,7 +2181,7 @@ def compile(input_file_path,*output_file_name)
|
|
2183
2181
|
|
2184
2182
|
else
|
2185
2183
|
|
2186
|
-
joined_file_contents = joined_file_contents.sub(rejected_elements_index[0],rejected_elements[0])
|
2184
|
+
joined_file_contents = joined_file_contents.sub(rejected_elements_index[0], rejected_elements[0])
|
2187
2185
|
|
2188
2186
|
rejected_elements_index.delete_at(0)
|
2189
2187
|
|
@@ -2211,9 +2209,9 @@ def compile(input_file_path,*output_file_name)
|
|
2211
2209
|
|
2212
2210
|
end
|
2213
2211
|
|
2214
|
-
def compile_regular_while(input_file_contents,temporary_nila_file)
|
2212
|
+
def compile_regular_while(input_file_contents, temporary_nila_file)
|
2215
2213
|
|
2216
|
-
def convert_string_to_array(input_string,temporary_nila_file)
|
2214
|
+
def convert_string_to_array(input_string, temporary_nila_file)
|
2217
2215
|
|
2218
2216
|
file_id = open(temporary_nila_file, 'w')
|
2219
2217
|
|
@@ -2227,7 +2225,7 @@ def compile(input_file_path,*output_file_name)
|
|
2227
2225
|
|
2228
2226
|
end
|
2229
2227
|
|
2230
|
-
def extract_while_blocks(while_statement_indexes,input_file_contents)
|
2228
|
+
def extract_while_blocks(while_statement_indexes, input_file_contents)
|
2231
2229
|
|
2232
2230
|
possible_while_blocks = []
|
2233
2231
|
|
@@ -2255,7 +2253,7 @@ def compile(input_file_path,*output_file_name)
|
|
2255
2253
|
|
2256
2254
|
current_block += block
|
2257
2255
|
|
2258
|
-
current_block.each_with_index do |line,index|
|
2256
|
+
current_block.each_with_index do |line, index|
|
2259
2257
|
|
2260
2258
|
if line.strip.eql? "end"
|
2261
2259
|
|
@@ -2299,7 +2297,7 @@ def compile(input_file_path,*output_file_name)
|
|
2299
2297
|
|
2300
2298
|
end_index = []
|
2301
2299
|
|
2302
|
-
current_block.each_with_index do |line,index|
|
2300
|
+
current_block.each_with_index do |line, index|
|
2303
2301
|
|
2304
2302
|
if line.strip.eql? "end"
|
2305
2303
|
|
@@ -2317,7 +2315,7 @@ def compile(input_file_path,*output_file_name)
|
|
2317
2315
|
|
2318
2316
|
end
|
2319
2317
|
|
2320
|
-
return current_block,extracted_blocks
|
2318
|
+
return current_block, extracted_blocks
|
2321
2319
|
|
2322
2320
|
end
|
2323
2321
|
|
@@ -2329,17 +2327,17 @@ def compile(input_file_path,*output_file_name)
|
|
2329
2327
|
|
2330
2328
|
string_counter = 0
|
2331
2329
|
|
2332
|
-
input_block.each_with_index do |line,index|
|
2330
|
+
input_block.each_with_index do |line, index|
|
2333
2331
|
|
2334
2332
|
if line.include?("\"")
|
2335
2333
|
|
2336
2334
|
opening_quotes = line.index("\"")
|
2337
2335
|
|
2338
|
-
string_extract = line[opening_quotes..line.index("\"",opening_quotes+1)]
|
2336
|
+
string_extract = line[opening_quotes..line.index("\"", opening_quotes+1)]
|
2339
2337
|
|
2340
2338
|
strings << string_extract
|
2341
2339
|
|
2342
|
-
modified_input_block[index] = modified_input_block[index].sub(string_extract,"--string{#{string_counter}}")
|
2340
|
+
modified_input_block[index] = modified_input_block[index].sub(string_extract, "--string{#{string_counter}}")
|
2343
2341
|
|
2344
2342
|
string_counter += 1
|
2345
2343
|
|
@@ -2353,23 +2351,23 @@ def compile(input_file_path,*output_file_name)
|
|
2353
2351
|
|
2354
2352
|
starting_line = starting_line + "\n" if starting_line.lstrip == starting_line
|
2355
2353
|
|
2356
|
-
junk,condition = starting_line.split("while")
|
2354
|
+
junk, condition = starting_line.split("while")
|
2357
2355
|
|
2358
|
-
input_block[0] = "whaaleskey (#{condition.lstrip.rstrip.gsub("?","")}) {\n"
|
2356
|
+
input_block[0] = "whaaleskey (#{condition.lstrip.rstrip.gsub("?", "")}) {\n"
|
2359
2357
|
|
2360
|
-
input_block[-1] = input_block[-1].lstrip.sub("end","}")
|
2358
|
+
input_block[-1] = input_block[-1].lstrip.sub("end", "}")
|
2361
2359
|
|
2362
2360
|
modified_input_block = input_block.dup
|
2363
2361
|
|
2364
|
-
input_block.each_with_index do |line,index|
|
2362
|
+
input_block.each_with_index do |line, index|
|
2365
2363
|
|
2366
2364
|
if line.include?("--string{")
|
2367
2365
|
|
2368
|
-
junk,remains = line.split("--string{")
|
2366
|
+
junk, remains = line.split("--string{")
|
2369
2367
|
|
2370
|
-
string_index,junk = remains.split("}")
|
2368
|
+
string_index, junk = remains.split("}")
|
2371
2369
|
|
2372
|
-
modified_input_block[index] = modified_input_block[index].sub("--string{#{string_index.strip}}",strings[string_index.strip.to_i])
|
2370
|
+
modified_input_block[index] = modified_input_block[index].sub("--string{#{string_index.strip}}", strings[string_index.strip.to_i])
|
2373
2371
|
|
2374
2372
|
end
|
2375
2373
|
|
@@ -2379,7 +2377,7 @@ def compile(input_file_path,*output_file_name)
|
|
2379
2377
|
|
2380
2378
|
end
|
2381
2379
|
|
2382
|
-
possible_while_statements = input_file_contents.reject {|element| !element.include?("while")}
|
2380
|
+
possible_while_statements = input_file_contents.reject { |element| !element.include?("while") }
|
2383
2381
|
|
2384
2382
|
if !possible_while_statements.empty?
|
2385
2383
|
|
@@ -2387,7 +2385,7 @@ def compile(input_file_path,*output_file_name)
|
|
2387
2385
|
|
2388
2386
|
possible_while_statements.each do |statement|
|
2389
2387
|
|
2390
|
-
while_statement_indexes << input_file_contents.dup.each_index.select {|index| input_file_contents[index] == statement}
|
2388
|
+
while_statement_indexes << input_file_contents.dup.each_index.select { |index| input_file_contents[index] == statement }
|
2391
2389
|
|
2392
2390
|
end
|
2393
2391
|
|
@@ -2395,11 +2393,11 @@ def compile(input_file_path,*output_file_name)
|
|
2395
2393
|
|
2396
2394
|
controlregexp = /(if |def )/
|
2397
2395
|
|
2398
|
-
modified_input_contents,extracted_statements = extract_while_blocks(while_statement_indexes,input_file_contents.clone)
|
2396
|
+
modified_input_contents, extracted_statements = extract_while_blocks(while_statement_indexes, input_file_contents.clone)
|
2399
2397
|
|
2400
|
-
joined_blocks = extracted_statements.collect {|element| element.join}
|
2398
|
+
joined_blocks = extracted_statements.collect { |element| element.join }
|
2401
2399
|
|
2402
|
-
while_statements = joined_blocks.reject {|element| element.index(controlregexp) != nil}
|
2400
|
+
while_statements = joined_blocks.reject { |element| element.index(controlregexp) != nil }
|
2403
2401
|
|
2404
2402
|
rejected_elements = joined_blocks - while_statements
|
2405
2403
|
|
@@ -2407,7 +2405,7 @@ def compile(input_file_path,*output_file_name)
|
|
2407
2405
|
|
2408
2406
|
rejected_elements.each do |element|
|
2409
2407
|
|
2410
|
-
rejected_elements_index << joined_blocks.each_index.select {|index| joined_blocks[index] == element}
|
2408
|
+
rejected_elements_index << joined_blocks.each_index.select { |index| joined_blocks[index] == element }
|
2411
2409
|
|
2412
2410
|
end
|
2413
2411
|
|
@@ -2417,13 +2415,13 @@ def compile(input_file_path,*output_file_name)
|
|
2417
2415
|
|
2418
2416
|
while_blocks_index -= rejected_elements_index
|
2419
2417
|
|
2420
|
-
modified_while_statements = while_statements.collect {|string| convert_string_to_array(string,temporary_nila_file)}
|
2418
|
+
modified_while_statements = while_statements.collect { |string| convert_string_to_array(string, temporary_nila_file) }
|
2421
2419
|
|
2422
|
-
modified_while_statements = modified_while_statements.collect {|block| compile_while_syntax(block)}.reverse
|
2420
|
+
modified_while_statements = modified_while_statements.collect { |block| compile_while_syntax(block) }.reverse
|
2423
2421
|
|
2424
|
-
while_blocks_index = while_blocks_index.collect {|element| "--whileblock#{element}"}.reverse
|
2422
|
+
while_blocks_index = while_blocks_index.collect { |element| "--whileblock#{element}" }.reverse
|
2425
2423
|
|
2426
|
-
rejected_elements_index = rejected_elements_index.collect {|element| "--whileblock#{element}"}.reverse
|
2424
|
+
rejected_elements_index = rejected_elements_index.collect { |element| "--whileblock#{element}" }.reverse
|
2427
2425
|
|
2428
2426
|
rejected_elements = rejected_elements.reverse
|
2429
2427
|
|
@@ -2435,7 +2433,7 @@ def compile(input_file_path,*output_file_name)
|
|
2435
2433
|
|
2436
2434
|
if joined_file_contents.include?(while_blocks_index[0])
|
2437
2435
|
|
2438
|
-
joined_file_contents = joined_file_contents.sub(while_blocks_index[0],modified_while_statements[0].join)
|
2436
|
+
joined_file_contents = joined_file_contents.sub(while_blocks_index[0], modified_while_statements[0].join)
|
2439
2437
|
|
2440
2438
|
while_blocks_index.delete_at(0)
|
2441
2439
|
|
@@ -2443,7 +2441,7 @@ def compile(input_file_path,*output_file_name)
|
|
2443
2441
|
|
2444
2442
|
else
|
2445
2443
|
|
2446
|
-
joined_file_contents = joined_file_contents.sub(rejected_elements_index[0],rejected_elements[0].join)
|
2444
|
+
joined_file_contents = joined_file_contents.sub(rejected_elements_index[0], rejected_elements[0].join)
|
2447
2445
|
|
2448
2446
|
rejected_elements_index.delete_at(0)
|
2449
2447
|
|
@@ -2453,7 +2451,7 @@ def compile(input_file_path,*output_file_name)
|
|
2453
2451
|
|
2454
2452
|
else
|
2455
2453
|
|
2456
|
-
joined_file_contents = joined_file_contents.sub(rejected_elements_index[0],rejected_elements[0].join)
|
2454
|
+
joined_file_contents = joined_file_contents.sub(rejected_elements_index[0], rejected_elements[0].join)
|
2457
2455
|
|
2458
2456
|
rejected_elements_index.delete_at(0)
|
2459
2457
|
|
@@ -2491,7 +2489,7 @@ def compile(input_file_path,*output_file_name)
|
|
2491
2489
|
|
2492
2490
|
rejected_line_counter = 0
|
2493
2491
|
|
2494
|
-
input_block.each_with_index do |line,index|
|
2492
|
+
input_block.each_with_index do |line, index|
|
2495
2493
|
|
2496
2494
|
if line.lstrip.index(rejectionregexp) != nil
|
2497
2495
|
|
@@ -2505,11 +2503,11 @@ def compile(input_file_path,*output_file_name)
|
|
2505
2503
|
|
2506
2504
|
end
|
2507
2505
|
|
2508
|
-
return modified_input_block,rejected_lines
|
2506
|
+
return modified_input_block, rejected_lines
|
2509
2507
|
|
2510
2508
|
end
|
2511
2509
|
|
2512
|
-
def replace_statement_modifiers(input_block,rejected_lines)
|
2510
|
+
def replace_statement_modifiers(input_block, rejected_lines)
|
2513
2511
|
|
2514
2512
|
unless rejected_lines.empty?
|
2515
2513
|
|
@@ -2523,7 +2521,7 @@ def compile(input_file_path,*output_file_name)
|
|
2523
2521
|
|
2524
2522
|
rejected_replacements.each do |replacement_string|
|
2525
2523
|
|
2526
|
-
input_block.each_with_index do |line,index|
|
2524
|
+
input_block.each_with_index do |line, index|
|
2527
2525
|
|
2528
2526
|
break if line.include?(replacement_string.rstrip)
|
2529
2527
|
|
@@ -2537,7 +2535,7 @@ def compile(input_file_path,*output_file_name)
|
|
2537
2535
|
|
2538
2536
|
end
|
2539
2537
|
|
2540
|
-
indices.each_with_index do |location,index|
|
2538
|
+
indices.each_with_index do |location, index|
|
2541
2539
|
|
2542
2540
|
input_block[location] = rejected_lines.values[index] + "\n\n"
|
2543
2541
|
|
@@ -2549,17 +2547,17 @@ def compile(input_file_path,*output_file_name)
|
|
2549
2547
|
|
2550
2548
|
end
|
2551
2549
|
|
2552
|
-
file_contents,rejected_lines = ignore_statement_modifiers(input_file_contents)
|
2550
|
+
file_contents, rejected_lines = ignore_statement_modifiers(input_file_contents)
|
2553
2551
|
|
2554
2552
|
file_contents = replace_unless_until(file_contents)
|
2555
2553
|
|
2556
|
-
file_contents = compile_regular_if(file_contents,temporary_nila_file)
|
2554
|
+
file_contents = compile_regular_if(file_contents, temporary_nila_file)
|
2557
2555
|
|
2558
|
-
file_contents = compile_regular_while(file_contents,temporary_nila_file)
|
2556
|
+
file_contents = compile_regular_while(file_contents, temporary_nila_file)
|
2559
2557
|
|
2560
|
-
file_contents = replace_statement_modifiers(file_contents,rejected_lines)
|
2558
|
+
file_contents = replace_statement_modifiers(file_contents, rejected_lines)
|
2561
2559
|
|
2562
|
-
file_contents = compile_inline_conditionals(file_contents,temporary_nila_file)
|
2560
|
+
file_contents = compile_inline_conditionals(file_contents, temporary_nila_file)
|
2563
2561
|
|
2564
2562
|
return file_contents
|
2565
2563
|
|
@@ -2639,7 +2637,7 @@ def compile(input_file_path,*output_file_name)
|
|
2639
2637
|
|
2640
2638
|
end
|
2641
2639
|
|
2642
|
-
def compile_comments(input_file_contents,comments,temporary_nila_file)
|
2640
|
+
def compile_comments(input_file_contents, comments, temporary_nila_file)
|
2643
2641
|
|
2644
2642
|
#This method converts Nila comments into pure Javascript comments. This method
|
2645
2643
|
#handles both single line and multiline comments.
|
@@ -2654,27 +2652,27 @@ def compile(input_file_path,*output_file_name)
|
|
2654
2652
|
|
2655
2653
|
multi_line_comment_counter = 1
|
2656
2654
|
|
2657
|
-
ignorable_keywords = [/if
|
2655
|
+
ignorable_keywords = [/if/, /while/, /function/]
|
2658
2656
|
|
2659
|
-
dummy_replacement_words = ["eeuuff","whaalesskkey","conffoolotion"]
|
2657
|
+
dummy_replacement_words = ["eeuuff", "whaalesskkey", "conffoolotion"]
|
2660
2658
|
|
2661
2659
|
for x in 0...single_line_comments.length
|
2662
2660
|
|
2663
2661
|
current_singleline_comment = "--single_line_comment[#{single_line_comment_counter}]"
|
2664
2662
|
|
2665
|
-
replacement_singleline_string = single_line_comments[x].sub("#","//")
|
2663
|
+
replacement_singleline_string = single_line_comments[x].sub("#", "//")
|
2666
2664
|
|
2667
|
-
ignorable_keywords.each_with_index do |keyword,index|
|
2665
|
+
ignorable_keywords.each_with_index do |keyword, index|
|
2668
2666
|
|
2669
2667
|
if replacement_singleline_string.index(keyword) != nil
|
2670
2668
|
|
2671
|
-
replacement_singleline_string = replacement_singleline_string.sub(keyword.inspect[1...-1],dummy_replacement_words[index])
|
2669
|
+
replacement_singleline_string = replacement_singleline_string.sub(keyword.inspect[1...-1], dummy_replacement_words[index])
|
2672
2670
|
|
2673
2671
|
end
|
2674
2672
|
|
2675
2673
|
end
|
2676
2674
|
|
2677
|
-
file_contents_as_string = file_contents_as_string.sub(current_singleline_comment,replacement_singleline_string)
|
2675
|
+
file_contents_as_string = file_contents_as_string.sub(current_singleline_comment, replacement_singleline_string)
|
2678
2676
|
|
2679
2677
|
single_line_comment_counter += 1
|
2680
2678
|
|
@@ -2685,21 +2683,21 @@ def compile(input_file_path,*output_file_name)
|
|
2685
2683
|
|
2686
2684
|
current_multiline_comment = "--multiline_comment[#{multi_line_comment_counter}]"
|
2687
2685
|
|
2688
|
-
replacement_multiline_string = multiline_comments[y].sub("=begin","/*\n")
|
2686
|
+
replacement_multiline_string = multiline_comments[y].sub("=begin", "/*\n")
|
2689
2687
|
|
2690
|
-
replacement_multiline_string = replacement_multiline_string.sub("=end","\n*/")
|
2688
|
+
replacement_multiline_string = replacement_multiline_string.sub("=end", "\n*/")
|
2691
2689
|
|
2692
|
-
ignorable_keywords.each_with_index do |keyword,index|
|
2690
|
+
ignorable_keywords.each_with_index do |keyword, index|
|
2693
2691
|
|
2694
2692
|
if replacement_multiline_string.index(keyword) != nil
|
2695
2693
|
|
2696
|
-
replacement_multiline_string = replacement_multiline_string.sub(keyword.inspect[1...-1],dummy_replacement_words[index])
|
2694
|
+
replacement_multiline_string = replacement_multiline_string.sub(keyword.inspect[1...-1], dummy_replacement_words[index])
|
2697
2695
|
|
2698
2696
|
end
|
2699
2697
|
|
2700
2698
|
end
|
2701
2699
|
|
2702
|
-
file_contents_as_string = file_contents_as_string.sub(current_multiline_comment,replacement_multiline_string)
|
2700
|
+
file_contents_as_string = file_contents_as_string.sub(current_multiline_comment, replacement_multiline_string)
|
2703
2701
|
|
2704
2702
|
multi_line_comment_counter += 1
|
2705
2703
|
|
@@ -2717,7 +2715,7 @@ def compile(input_file_path,*output_file_name)
|
|
2717
2715
|
|
2718
2716
|
end
|
2719
2717
|
|
2720
|
-
def pretty_print_javascript(javascript_file_contents,temporary_nila_file)
|
2718
|
+
def pretty_print_javascript(javascript_file_contents, temporary_nila_file)
|
2721
2719
|
|
2722
2720
|
def reset_tabs(input_file_contents)
|
2723
2721
|
|
@@ -2743,7 +2741,7 @@ def compile(input_file_path,*output_file_name)
|
|
2743
2741
|
|
2744
2742
|
end
|
2745
2743
|
|
2746
|
-
def find_all_matching_indices(input_string,pattern)
|
2744
|
+
def find_all_matching_indices(input_string, pattern)
|
2747
2745
|
|
2748
2746
|
locations = []
|
2749
2747
|
|
@@ -2753,7 +2751,7 @@ def compile(input_file_path,*output_file_name)
|
|
2753
2751
|
|
2754
2752
|
locations << index
|
2755
2753
|
|
2756
|
-
index = input_string.index(pattern,index+1)
|
2754
|
+
index = input_string.index(pattern, index+1)
|
2757
2755
|
|
2758
2756
|
|
2759
2757
|
end
|
@@ -2763,7 +2761,7 @@ def compile(input_file_path,*output_file_name)
|
|
2763
2761
|
|
2764
2762
|
end
|
2765
2763
|
|
2766
|
-
def convert_string_to_array(input_string,temporary_nila_file)
|
2764
|
+
def convert_string_to_array(input_string, temporary_nila_file)
|
2767
2765
|
|
2768
2766
|
file_id = open(temporary_nila_file, 'w')
|
2769
2767
|
|
@@ -2783,9 +2781,9 @@ def compile(input_file_path,*output_file_name)
|
|
2783
2781
|
|
2784
2782
|
javascript_regexp = /(if |while |function |function\()/
|
2785
2783
|
|
2786
|
-
block_starting_lines = file_contents.dup.reject { |element| element.index(javascript_regexp).nil?}[1..-1]
|
2784
|
+
block_starting_lines = file_contents.dup.reject { |element| element.index(javascript_regexp).nil? }[1..-1]
|
2787
2785
|
|
2788
|
-
block_starting_lines = block_starting_lines.reject { |element| element.include?(" ")}
|
2786
|
+
block_starting_lines = block_starting_lines.reject { |element| element.include?(" ") }
|
2789
2787
|
|
2790
2788
|
initial_starting_lines = block_starting_lines.dup
|
2791
2789
|
|
@@ -2807,31 +2805,31 @@ def compile(input_file_path,*output_file_name)
|
|
2807
2805
|
|
2808
2806
|
begin
|
2809
2807
|
|
2810
|
-
|
2808
|
+
for x in 0...initial_starting_lines.length
|
2811
2809
|
|
2812
|
-
|
2810
|
+
code_blocks << modified_file_contents[starting_index..block_ending_lines[0]]
|
2813
2811
|
|
2814
|
-
|
2812
|
+
modified_file_contents[starting_index..block_ending_lines[0]] = []
|
2815
2813
|
|
2816
|
-
|
2814
|
+
modified_file_contents.insert(starting_index, " *****")
|
2817
2815
|
|
2818
|
-
|
2816
|
+
block_starting_lines = modified_file_contents.dup.reject { |element| element.index(javascript_regexp).nil? }[1..-1]
|
2819
2817
|
|
2820
|
-
|
2818
|
+
block_starting_lines = block_starting_lines.reject { |element| element.include?(" ") }
|
2821
2819
|
|
2822
|
-
|
2820
|
+
starting_line_indices = []
|
2823
2821
|
|
2824
|
-
|
2822
|
+
block_starting_lines.each do |line|
|
2825
2823
|
|
2826
|
-
|
2824
|
+
starting_line_indices << modified_file_contents.index(line)
|
2827
2825
|
|
2828
|
-
|
2826
|
+
end
|
2829
2827
|
|
2830
|
-
|
2828
|
+
block_ending_lines = modified_file_contents.dup.each_index.select { |index| modified_file_contents[index].eql? " }\n" }
|
2831
2829
|
|
2832
|
-
|
2830
|
+
starting_index = starting_line_indices[0]
|
2833
2831
|
|
2834
|
-
|
2832
|
+
end
|
2835
2833
|
|
2836
2834
|
rescue TypeError
|
2837
2835
|
|
@@ -2843,19 +2841,19 @@ def compile(input_file_path,*output_file_name)
|
|
2843
2841
|
|
2844
2842
|
end
|
2845
2843
|
|
2846
|
-
return modified_file_contents,code_blocks
|
2844
|
+
return modified_file_contents, code_blocks
|
2847
2845
|
|
2848
2846
|
end
|
2849
2847
|
|
2850
|
-
compact_contents = file_contents.reject {|element| element.lstrip.eql? ""}
|
2848
|
+
compact_contents = file_contents.reject { |element| element.lstrip.eql? "" }
|
2851
2849
|
|
2852
|
-
compact_contents,code_blocks = extract_blocks(compact_contents)
|
2850
|
+
compact_contents, code_blocks = extract_blocks(compact_contents)
|
2853
2851
|
|
2854
|
-
processed_contents = compact_contents[1...-1].collect {|line| line+"\n"}
|
2852
|
+
processed_contents = compact_contents[1...-1].collect { |line| line+"\n" }
|
2855
2853
|
|
2856
2854
|
compact_contents = [compact_contents[0]] + processed_contents + [compact_contents[-1]]
|
2857
2855
|
|
2858
|
-
code_block_locations = compact_contents.each_index.select { |index| compact_contents[index].eql? " *****\n"}
|
2856
|
+
code_block_locations = compact_contents.each_index.select { |index| compact_contents[index].eql? " *****\n" }
|
2859
2857
|
|
2860
2858
|
initial_locations = code_block_locations.dup
|
2861
2859
|
|
@@ -2867,7 +2865,7 @@ def compile(input_file_path,*output_file_name)
|
|
2867
2865
|
|
2868
2866
|
compact_contents = compact_contents[0...starting_index] + code_blocks[x] + compact_contents[starting_index+1..-1]
|
2869
2867
|
|
2870
|
-
code_block_locations = compact_contents.each_index.select { |index| compact_contents[index].eql? " *****\n"}
|
2868
|
+
code_block_locations = compact_contents.each_index.select { |index| compact_contents[index].eql? " *****\n" }
|
2871
2869
|
|
2872
2870
|
starting_index = code_block_locations[0]
|
2873
2871
|
|
@@ -2878,13 +2876,13 @@ def compile(input_file_path,*output_file_name)
|
|
2878
2876
|
|
2879
2877
|
end
|
2880
2878
|
|
2881
|
-
def roll_blocks(input_file_contents,code_block_starting_locations)
|
2879
|
+
def roll_blocks(input_file_contents, code_block_starting_locations)
|
2882
2880
|
|
2883
2881
|
if !code_block_starting_locations.empty?
|
2884
2882
|
|
2885
2883
|
controlregexp = /(if |while |function |function\()/
|
2886
2884
|
|
2887
|
-
code_block_starting_locations = [0,code_block_starting_locations
|
2885
|
+
code_block_starting_locations = [0, code_block_starting_locations, -1].flatten
|
2888
2886
|
|
2889
2887
|
possible_blocks = []
|
2890
2888
|
|
@@ -2908,7 +2906,7 @@ def compile(input_file_path,*output_file_name)
|
|
2908
2906
|
|
2909
2907
|
current_block += block
|
2910
2908
|
|
2911
|
-
current_block.each_with_index do |line,index|
|
2909
|
+
current_block.each_with_index do |line, index|
|
2912
2910
|
|
2913
2911
|
if line.lstrip.eql? "}\n"
|
2914
2912
|
|
@@ -2952,7 +2950,7 @@ def compile(input_file_path,*output_file_name)
|
|
2952
2950
|
|
2953
2951
|
end_index = []
|
2954
2952
|
|
2955
|
-
current_block.each_with_index do |line,index|
|
2953
|
+
current_block.each_with_index do |line, index|
|
2956
2954
|
|
2957
2955
|
if line.lstrip.eql? "}\n"
|
2958
2956
|
|
@@ -2970,11 +2968,11 @@ def compile(input_file_path,*output_file_name)
|
|
2970
2968
|
|
2971
2969
|
end
|
2972
2970
|
|
2973
|
-
return current_block,extracted_blocks
|
2971
|
+
return current_block, extracted_blocks
|
2974
2972
|
|
2975
2973
|
else
|
2976
2974
|
|
2977
|
-
return input_file_contents,[]
|
2975
|
+
return input_file_contents, []
|
2978
2976
|
|
2979
2977
|
end
|
2980
2978
|
|
@@ -2984,11 +2982,11 @@ def compile(input_file_path,*output_file_name)
|
|
2984
2982
|
|
2985
2983
|
fixableregexp = /(else |elsuf )/
|
2986
2984
|
|
2987
|
-
need_fixes = input_file_contents.reject {|line| line.index(fixableregexp).nil?}
|
2985
|
+
need_fixes = input_file_contents.reject { |line| line.index(fixableregexp).nil? }
|
2988
2986
|
|
2989
2987
|
need_fixes.each do |fix|
|
2990
2988
|
|
2991
|
-
input_file_contents[input_file_contents.index(fix)] = input_file_contents[input_file_contents.index(fix)].sub(" ","")
|
2989
|
+
input_file_contents[input_file_contents.index(fix)] = input_file_contents[input_file_contents.index(fix)].sub(" ", "")
|
2992
2990
|
|
2993
2991
|
end
|
2994
2992
|
|
@@ -2998,13 +2996,13 @@ def compile(input_file_path,*output_file_name)
|
|
2998
2996
|
|
2999
2997
|
def replace_ignored_words(input_string)
|
3000
2998
|
|
3001
|
-
ignorable_keywords = [/if
|
2999
|
+
ignorable_keywords = [/if/, /while/, /function/]
|
3002
3000
|
|
3003
|
-
dummy_replacement_words = ["eeuuff","whaalesskkey","conffoolotion"]
|
3001
|
+
dummy_replacement_words = ["eeuuff", "whaalesskkey", "conffoolotion"]
|
3004
3002
|
|
3005
|
-
dummy_replacement_words.each_with_index do |word,index|
|
3003
|
+
dummy_replacement_words.each_with_index do |word, index|
|
3006
3004
|
|
3007
|
-
input_string = input_string.sub(word,ignorable_keywords[index].inspect[1...-1])
|
3005
|
+
input_string = input_string.sub(word, ignorable_keywords[index].inspect[1...-1])
|
3008
3006
|
|
3009
3007
|
end
|
3010
3008
|
|
@@ -3014,15 +3012,15 @@ def compile(input_file_path,*output_file_name)
|
|
3014
3012
|
|
3015
3013
|
javascript_regexp = /(if |while |function |function\()/
|
3016
3014
|
|
3017
|
-
javascript_file_contents = javascript_file_contents.collect {|element| element.sub("Euuf","if")}
|
3015
|
+
javascript_file_contents = javascript_file_contents.collect { |element| element.sub("Euuf", "if") }
|
3018
3016
|
|
3019
|
-
javascript_file_contents = javascript_file_contents.collect {|element| element.sub("whaaleskey","while")}
|
3017
|
+
javascript_file_contents = javascript_file_contents.collect { |element| element.sub("whaaleskey", "while") }
|
3020
3018
|
|
3021
3019
|
javascript_file_contents = reset_tabs(javascript_file_contents)
|
3022
3020
|
|
3023
3021
|
starting_locations = []
|
3024
3022
|
|
3025
|
-
javascript_file_contents.each_with_index do |line,index|
|
3023
|
+
javascript_file_contents.each_with_index do |line, index|
|
3026
3024
|
|
3027
3025
|
if line.index(javascript_regexp) != nil
|
3028
3026
|
|
@@ -3032,17 +3030,17 @@ def compile(input_file_path,*output_file_name)
|
|
3032
3030
|
|
3033
3031
|
end
|
3034
3032
|
|
3035
|
-
remaining_file_contents,blocks = roll_blocks(javascript_file_contents,starting_locations)
|
3033
|
+
remaining_file_contents, blocks = roll_blocks(javascript_file_contents, starting_locations)
|
3036
3034
|
|
3037
3035
|
joined_file_contents = ""
|
3038
3036
|
|
3039
3037
|
if !blocks.empty?
|
3040
3038
|
|
3041
|
-
remaining_file_contents = remaining_file_contents.collect {|element| " " + element}
|
3039
|
+
remaining_file_contents = remaining_file_contents.collect { |element| " " + element }
|
3042
3040
|
|
3043
|
-
main_blocks = remaining_file_contents.reject {|element| !element.include?("--block")}
|
3041
|
+
main_blocks = remaining_file_contents.reject { |element| !element.include?("--block") }
|
3044
3042
|
|
3045
|
-
main_block_numbers = main_blocks.collect {|element| element.split("--block")[1]}
|
3043
|
+
main_block_numbers = main_blocks.collect { |element| element.split("--block")[1] }
|
3046
3044
|
|
3047
3045
|
modified_blocks = main_blocks.dup
|
3048
3046
|
|
@@ -3058,13 +3056,13 @@ def compile(input_file_path,*output_file_name)
|
|
3058
3056
|
|
3059
3057
|
soft_tabs_counter += 1
|
3060
3058
|
|
3061
|
-
current_block = [current_block[0]] + current_block[1...-1].collect {|element| soft_tabs*(soft_tabs_counter)+element} + [current_block[-1]]
|
3059
|
+
current_block = [current_block[0]] + current_block[1...-1].collect { |element| soft_tabs*(soft_tabs_counter)+element } + [current_block[-1]]
|
3062
3060
|
|
3063
|
-
nested_block = current_block.reject {|row| !row.include?("--block")}
|
3061
|
+
nested_block = current_block.reject { |row| !row.include?("--block") }
|
3064
3062
|
|
3065
|
-
nested_block = nested_block.collect {|element| element.split("--block")[1]}
|
3063
|
+
nested_block = nested_block.collect { |element| element.split("--block")[1] }
|
3066
3064
|
|
3067
|
-
nested_block = nested_block.collect {|element| element.rstrip.to_i}
|
3065
|
+
nested_block = nested_block.collect { |element| element.rstrip.to_i }
|
3068
3066
|
|
3069
3067
|
modified_nested_block = nested_block.clone
|
3070
3068
|
|
@@ -3080,11 +3078,11 @@ def compile(input_file_path,*output_file_name)
|
|
3080
3078
|
|
3081
3079
|
soft_tabs_counter += 1
|
3082
3080
|
|
3083
|
-
nested_block_contents = [nested_block_contents[0]] + nested_block_contents[1...-1].collect {|element| soft_tabs*(soft_tabs_counter)+element} + [nested_block_contents[-1]]
|
3081
|
+
nested_block_contents = [nested_block_contents[0]] + nested_block_contents[1...-1].collect { |element| soft_tabs*(soft_tabs_counter)+element } + [nested_block_contents[-1]]
|
3084
3082
|
|
3085
|
-
nested_block_contents = nested_block_contents.reject {|element| element.gsub(" ","").eql?("")}
|
3083
|
+
nested_block_contents = nested_block_contents.reject { |element| element.gsub(" ", "").eql?("") }
|
3086
3084
|
|
3087
|
-
current_block = current_block.sub("--block#{block_index}",nested_block_contents.join)
|
3085
|
+
current_block = current_block.sub("--block#{block_index}", nested_block_contents.join)
|
3088
3086
|
|
3089
3087
|
blocks[block_index] = nested_block_contents
|
3090
3088
|
|
@@ -3094,13 +3092,13 @@ def compile(input_file_path,*output_file_name)
|
|
3094
3092
|
|
3095
3093
|
end
|
3096
3094
|
|
3097
|
-
current_block = convert_string_to_array(current_block,temporary_nila_file)
|
3095
|
+
current_block = convert_string_to_array(current_block, temporary_nila_file)
|
3098
3096
|
|
3099
|
-
nested_block = current_block.reject {|element| !element.include?("--block")}
|
3097
|
+
nested_block = current_block.reject { |element| !element.include?("--block") }
|
3100
3098
|
|
3101
|
-
nested_block = nested_block.collect {|element| element.split("--block")[1]}
|
3099
|
+
nested_block = nested_block.collect { |element| element.split("--block")[1] }
|
3102
3100
|
|
3103
|
-
nested_block = nested_block.collect {|element| element.rstrip.to_i}
|
3101
|
+
nested_block = nested_block.collect { |element| element.rstrip.to_i }
|
3104
3102
|
|
3105
3103
|
modified_nested_block = nested_block.clone
|
3106
3104
|
|
@@ -3118,21 +3116,21 @@ def compile(input_file_path,*output_file_name)
|
|
3118
3116
|
|
3119
3117
|
end
|
3120
3118
|
|
3121
|
-
remaining_file_contents = ["(function() {\n",remaining_file_contents,"\n}).call(this);"].flatten
|
3119
|
+
remaining_file_contents = ["(function() {\n", remaining_file_contents, "\n}).call(this);"].flatten
|
3122
3120
|
|
3123
3121
|
joined_file_contents = remaining_file_contents.join
|
3124
3122
|
|
3125
|
-
main_blocks.each_with_index do |block_id,index|
|
3123
|
+
main_blocks.each_with_index do |block_id, index|
|
3126
3124
|
|
3127
|
-
joined_file_contents = joined_file_contents.sub(block_id,modified_blocks[index])
|
3125
|
+
joined_file_contents = joined_file_contents.sub(block_id, modified_blocks[index])
|
3128
3126
|
|
3129
3127
|
end
|
3130
3128
|
|
3131
3129
|
else
|
3132
3130
|
|
3133
|
-
remaining_file_contents = remaining_file_contents.collect {|element| " " + element}
|
3131
|
+
remaining_file_contents = remaining_file_contents.collect { |element| " " + element }
|
3134
3132
|
|
3135
|
-
remaining_file_contents = ["(function() {\n",remaining_file_contents,"\n}).call(this);"].flatten
|
3133
|
+
remaining_file_contents = ["(function() {\n", remaining_file_contents, "\n}).call(this);"].flatten
|
3136
3134
|
|
3137
3135
|
joined_file_contents = remaining_file_contents.join
|
3138
3136
|
|
@@ -3150,7 +3148,7 @@ def compile(input_file_path,*output_file_name)
|
|
3150
3148
|
|
3151
3149
|
line_by_line_contents = fix_syntax_indentation(line_by_line_contents)
|
3152
3150
|
|
3153
|
-
line_by_line_contents = line_by_line_contents.collect {|element| replace_ignored_words(element)}
|
3151
|
+
line_by_line_contents = line_by_line_contents.collect { |element| replace_ignored_words(element) }
|
3154
3152
|
|
3155
3153
|
return line_by_line_contents
|
3156
3154
|
|
@@ -3166,9 +3164,9 @@ def compile(input_file_path,*output_file_name)
|
|
3166
3164
|
|
3167
3165
|
matches.each do |match|
|
3168
3166
|
|
3169
|
-
left,right = match.split("**")
|
3167
|
+
left, right = match.split("**")
|
3170
3168
|
|
3171
|
-
input_string = input_string.sub(match,"Math.pow(#{left},#{right})")
|
3169
|
+
input_string = input_string.sub(match, "Math.pow(#{left},#{right})")
|
3172
3170
|
|
3173
3171
|
end
|
3174
3172
|
|
@@ -3178,29 +3176,28 @@ def compile(input_file_path,*output_file_name)
|
|
3178
3176
|
|
3179
3177
|
end
|
3180
3178
|
|
3181
|
-
input_file_contents = input_file_contents.collect {|element| element.sub(" and "," && ")}
|
3179
|
+
input_file_contents = input_file_contents.collect { |element| element.sub(" and ", " && ") }
|
3182
3180
|
|
3183
|
-
input_file_contents = input_file_contents.collect {|element| element.sub(" or "," || ")}
|
3181
|
+
input_file_contents = input_file_contents.collect { |element| element.sub(" or ", " || ") }
|
3184
3182
|
|
3185
|
-
input_file_contents = input_file_contents.collect {|element| element.sub("==","===")}
|
3183
|
+
input_file_contents = input_file_contents.collect { |element| element.sub("==", "===") }
|
3186
3184
|
|
3187
|
-
input_file_contents = input_file_contents.collect {|element| element.sub("!=","!==")}
|
3185
|
+
input_file_contents = input_file_contents.collect { |element| element.sub("!=", "!==") }
|
3188
3186
|
|
3189
|
-
input_file_contents = input_file_contents.collect {|element| element.sub("elsuf","else if")}
|
3187
|
+
input_file_contents = input_file_contents.collect { |element| element.sub("elsuf", "else if") }
|
3190
3188
|
|
3191
|
-
input_file_contents = input_file_contents.collect {|element| compile_power_operator(element)}
|
3189
|
+
input_file_contents = input_file_contents.collect { |element| compile_power_operator(element) }
|
3192
3190
|
|
3193
3191
|
return input_file_contents
|
3194
3192
|
|
3195
3193
|
end
|
3196
3194
|
|
3197
|
-
def pretty_print_nila(input_file_contents,temporary_nila_file)
|
3198
|
-
|
3195
|
+
def pretty_print_nila(input_file_contents, temporary_nila_file)
|
3199
3196
|
|
3200
3197
|
|
3201
3198
|
end
|
3202
3199
|
|
3203
|
-
def output_javascript(file_contents,output_file,temporary_nila_file)
|
3200
|
+
def output_javascript(file_contents, output_file, temporary_nila_file)
|
3204
3201
|
|
3205
3202
|
file_id = open(output_file, 'w')
|
3206
3203
|
|
@@ -3220,51 +3217,51 @@ def compile(input_file_path,*output_file_name)
|
|
3220
3217
|
|
3221
3218
|
file_contents = extract_parsable_file(file_contents)
|
3222
3219
|
|
3223
|
-
file_contents,multiline_comments,temp_file,output_js_file = replace_multiline_comments(file_contents,input_file_path
|
3220
|
+
file_contents, multiline_comments, temp_file, output_js_file = replace_multiline_comments(file_contents, input_file_path, *output_file_name)
|
3224
3221
|
|
3225
|
-
file_contents,singleline_comments = replace_singleline_comments(file_contents)
|
3222
|
+
file_contents, singleline_comments = replace_singleline_comments(file_contents)
|
3226
3223
|
|
3227
3224
|
file_contents = split_semicolon_seperated_expressions(file_contents)
|
3228
3225
|
|
3229
|
-
file_contents = compile_heredocs(file_contents,temp_file)
|
3226
|
+
file_contents = compile_heredocs(file_contents, temp_file)
|
3230
3227
|
|
3231
3228
|
file_contents = compile_interpolated_strings(file_contents)
|
3232
3229
|
|
3233
|
-
file_contents = compile_conditional_structures(file_contents,temp_file)
|
3230
|
+
file_contents = compile_conditional_structures(file_contents, temp_file)
|
3234
3231
|
|
3235
|
-
file_contents = compile_arrays(file_contents,temp_file)
|
3232
|
+
file_contents = compile_arrays(file_contents, temp_file)
|
3236
3233
|
|
3237
3234
|
file_contents = compile_strings(file_contents)
|
3238
3235
|
|
3239
|
-
file_contents = compile_default_values(file_contents,temp_file)
|
3236
|
+
file_contents = compile_default_values(file_contents, temp_file)
|
3240
3237
|
|
3241
|
-
file_contents,named_functions,nested_functions = replace_named_functions(file_contents,temp_file)
|
3238
|
+
file_contents, named_functions, nested_functions = replace_named_functions(file_contents, temp_file)
|
3242
3239
|
|
3243
|
-
comments = [singleline_comments,multiline_comments]
|
3240
|
+
comments = [singleline_comments, multiline_comments]
|
3244
3241
|
|
3245
|
-
file_contents =
|
3242
|
+
file_contents = compile_parallel_assignment(file_contents, temp_file)
|
3246
3243
|
|
3247
|
-
list_of_variables,file_contents = get_variables(file_contents,temp_file)
|
3244
|
+
list_of_variables, file_contents = get_variables(file_contents, temp_file)
|
3248
3245
|
|
3249
|
-
file_contents, function_names = compile_named_functions(file_contents,named_functions,nested_functions,temp_file)
|
3246
|
+
file_contents, function_names = compile_named_functions(file_contents, named_functions, nested_functions, temp_file)
|
3250
3247
|
|
3251
3248
|
file_contents, ruby_functions = compile_custom_function_map(file_contents)
|
3252
3249
|
|
3253
3250
|
function_names << ruby_functions
|
3254
3251
|
|
3255
|
-
file_contents = compile_whitespace_delimited_functions(file_contents,function_names,temp_file)
|
3252
|
+
file_contents = compile_whitespace_delimited_functions(file_contents, function_names, temp_file)
|
3256
3253
|
|
3257
|
-
file_contents = remove_question_marks(file_contents,list_of_variables,temp_file)
|
3254
|
+
file_contents = remove_question_marks(file_contents, list_of_variables, temp_file)
|
3258
3255
|
|
3259
3256
|
file_contents = add_semicolons(file_contents)
|
3260
3257
|
|
3261
|
-
file_contents = compile_comments(file_contents,comments,temp_file)
|
3258
|
+
file_contents = compile_comments(file_contents, comments, temp_file)
|
3262
3259
|
|
3263
|
-
file_contents = pretty_print_javascript(file_contents,temp_file)
|
3260
|
+
file_contents = pretty_print_javascript(file_contents, temp_file)
|
3264
3261
|
|
3265
3262
|
file_contents = compile_operators(file_contents)
|
3266
3263
|
|
3267
|
-
output_javascript(file_contents,output_js_file,temp_file)
|
3264
|
+
output_javascript(file_contents, output_js_file, temp_file)
|
3268
3265
|
|
3269
3266
|
puts "Compilation is successful!"
|
3270
3267
|
|
@@ -3292,9 +3289,9 @@ def create_mac_executable(input_file)
|
|
3292
3289
|
|
3293
3290
|
mac_file_contents = ["#!/usr/bin/env ruby\n\n"] + read_file_line_by_line(input_file)
|
3294
3291
|
|
3295
|
-
mac_file_path = input_file.sub(".rb","")
|
3292
|
+
mac_file_path = input_file.sub(".rb", "")
|
3296
3293
|
|
3297
|
-
file_id = open(mac_file_path,"w")
|
3294
|
+
file_id = open(mac_file_path, "w")
|
3298
3295
|
|
3299
3296
|
file_id.write(mac_file_contents.join)
|
3300
3297
|
|
@@ -3302,7 +3299,7 @@ def create_mac_executable(input_file)
|
|
3302
3299
|
|
3303
3300
|
end
|
3304
3301
|
|
3305
|
-
def find_file_name(input_path,file_extension)
|
3302
|
+
def find_file_name(input_path, file_extension)
|
3306
3303
|
|
3307
3304
|
extension_remover = input_path.split(file_extension)
|
3308
3305
|
|
@@ -3316,7 +3313,7 @@ def find_file_name(input_path,file_extension)
|
|
3316
3313
|
|
3317
3314
|
end
|
3318
3315
|
|
3319
|
-
def find_file_path(input_path,file_extension)
|
3316
|
+
def find_file_path(input_path, file_extension)
|
3320
3317
|
|
3321
3318
|
extension_remover = input_path.split(file_extension)
|
3322
3319
|
|
@@ -3330,7 +3327,7 @@ def find_file_path(input_path,file_extension)
|
|
3330
3327
|
|
3331
3328
|
end
|
3332
3329
|
|
3333
|
-
nilac_version = "0.0.4.
|
3330
|
+
nilac_version = "0.0.4.2.0"
|
3334
3331
|
|
3335
3332
|
opts = Slop.parse do
|
3336
3333
|
on :c, :compile=, 'Compile Nila File', as:Array, delimiter:":"
|
@@ -3379,7 +3376,7 @@ opts = Slop.parse do
|
|
3379
3376
|
|
3380
3377
|
create_mac_executable(file_path)
|
3381
3378
|
|
3382
|
-
FileUtils.mv("#{file_path[0...-3]}","#{Dir.pwd}/bin/nilac")
|
3379
|
+
FileUtils.mv("#{file_path[0...-3]}", "#{Dir.pwd}/bin/nilac")
|
3383
3380
|
|
3384
3381
|
puts "Build Successful!"
|
3385
3382
|
|
@@ -3453,7 +3450,7 @@ if opts[:compile] != nil
|
|
3453
3450
|
|
3454
3451
|
files = Dir.glob(File.join(folder_path, "*"))
|
3455
3452
|
|
3456
|
-
files = files.reject {|path| !path.include? ".nila"}
|
3453
|
+
files = files.reject { |path| !path.include? ".nila" }
|
3457
3454
|
|
3458
3455
|
files.each do |file|
|
3459
3456
|
|
@@ -3481,7 +3478,7 @@ if opts[:compile] != nil
|
|
3481
3478
|
|
3482
3479
|
output_file_path = output_file
|
3483
3480
|
|
3484
|
-
compile(input_file_path,output_file_path)
|
3481
|
+
compile(input_file_path, output_file_path)
|
3485
3482
|
|
3486
3483
|
elsif input[-1].eql? "/" and output[-1].eql? "/"
|
3487
3484
|
|
@@ -3497,15 +3494,15 @@ if opts[:compile] != nil
|
|
3497
3494
|
|
3498
3495
|
files = Dir.glob(File.join(input_folder_path, "*"))
|
3499
3496
|
|
3500
|
-
files = files.reject {|path| !path.include? ".nila"}
|
3497
|
+
files = files.reject { |path| !path.include? ".nila" }
|
3501
3498
|
|
3502
3499
|
files.each do |file|
|
3503
3500
|
|
3504
3501
|
input_file_path = file
|
3505
3502
|
|
3506
|
-
output_file_path = output_folder_path + find_file_name(file,".nila") + ".js"
|
3503
|
+
output_file_path = output_folder_path + find_file_name(file, ".nila") + ".js"
|
3507
3504
|
|
3508
|
-
compile(input_file_path,output_file_path)
|
3505
|
+
compile(input_file_path, output_file_path)
|
3509
3506
|
|
3510
3507
|
end
|
3511
3508
|
|
@@ -3523,7 +3520,7 @@ elsif opts[:run] != nil
|
|
3523
3520
|
|
3524
3521
|
compile(file_path)
|
3525
3522
|
|
3526
|
-
js_file_name = find_file_path(file_path,".nila") + find_file_name(file_path,".nila") + ".js"
|
3523
|
+
js_file_name = find_file_path(file_path, ".nila") + find_file_name(file_path, ".nila") + ".js"
|
3527
3524
|
|
3528
3525
|
node_output = `node #{js_file_name}`
|
3529
3526
|
|