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