nilac 0.0.4.2.1 → 0.0.4.2.2

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.
Files changed (4) hide show
  1. data/bin/nilac +468 -34
  2. data/lib/nilac/version.rb +1 -1
  3. data/src/nilac.rb +19 -1
  4. metadata +1 -1
data/bin/nilac CHANGED
@@ -752,6 +752,8 @@ def compile(input_file_path, *output_file_name)
752
752
 
753
753
  input_file_contents = input_file_contents.collect { |element| element.gsub("%=", "modequal") }
754
754
 
755
+ input_file_contents = input_file_contents.collect { |element| element.gsub("=~", "matchequal") }
756
+
755
757
  for x in 0...input_file_contents.length
756
758
 
757
759
  current_row = input_file_contents[x]
@@ -816,6 +818,8 @@ def compile(input_file_path, *output_file_name)
816
818
 
817
819
  line_by_line_contents = line_by_line_contents.collect { |element| element.gsub("notequal", "!=") }
818
820
 
821
+ line_by_line_contents = line_by_line_contents.collect { |element| element.gsub("matchequal", "=~") }
822
+
819
823
  return variables.uniq, line_by_line_contents
820
824
 
821
825
  end
@@ -1138,6 +1142,108 @@ def compile(input_file_path, *output_file_name)
1138
1142
 
1139
1143
  end
1140
1144
 
1145
+ def compile_hashes(input_file_contents,temporary_nila_file)
1146
+
1147
+ def compile_multiline_hashes(input_file_contents,temporary_nila_file)
1148
+
1149
+ possible_hashes = input_file_contents.reject { |element| !element.include?("{") }
1150
+
1151
+ possible_multiline_hashes = possible_hashes.reject { |element| element.include?("}") }
1152
+
1153
+ multiline_hashes = []
1154
+
1155
+ possible_multiline_hashes.each do |starting_line|
1156
+
1157
+ index = input_file_contents.index(starting_line)
1158
+
1159
+ line = starting_line
1160
+
1161
+ until line.include?("}")
1162
+
1163
+ index += 1
1164
+
1165
+ line = input_file_contents[index]
1166
+
1167
+ end
1168
+
1169
+ multiline_hashes << input_file_contents[input_file_contents.index(starting_line)..index]
1170
+
1171
+ end
1172
+
1173
+ joined_file_contents = input_file_contents.join
1174
+
1175
+ multiline_hashes.each do |hash|
1176
+
1177
+ modified_hash = hash.join
1178
+
1179
+ hash_extract = modified_hash[modified_hash.index("{")..modified_hash.index("}")]
1180
+
1181
+ hash_contents = hash_extract.split("{")[1].split("}")[0].lstrip.rstrip.split(",").collect { |element| element.lstrip.rstrip }
1182
+
1183
+ hash_contents = "{" + hash_contents.join(",") + "}"
1184
+
1185
+ joined_file_contents = joined_file_contents.sub(hash_extract, hash_contents)
1186
+
1187
+ end
1188
+
1189
+ file_id = open(temporary_nila_file, 'w')
1190
+
1191
+ file_id.write(joined_file_contents)
1192
+
1193
+ file_id.close()
1194
+
1195
+ line_by_line_contents = read_file_line_by_line(temporary_nila_file)
1196
+
1197
+ return line_by_line_contents
1198
+
1199
+ end
1200
+
1201
+ def compile_inline_hashes(input_file_contents)
1202
+
1203
+ modified_file_contents = input_file_contents.clone.collect {|element| element.gsub(/(#|%)\w?\{/,"innerrii0opol115")}
1204
+
1205
+ possible_inline_hashes = modified_file_contents.reject {|element| !element.include?("{")}
1206
+
1207
+ possible_inline_hashes.each do |hash|
1208
+
1209
+ hash_extract = hash[hash.index("{")..hash.index("}")]
1210
+
1211
+ contents = hash_extract[1...-1].split(",")
1212
+
1213
+ hash_contents = []
1214
+
1215
+ contents.each do |items|
1216
+
1217
+ items = items.lstrip.sub(":","") if items.lstrip[0] == ":"
1218
+
1219
+ key, value = items.split("=>").collect {|element| element.lstrip.rstrip} if items.include?("=>")
1220
+
1221
+ key, value = items.split(":").collect {|element| element.lstrip.rstrip} if items.include?(":")
1222
+
1223
+ key = key.gsub("'","").gsub("\"","")
1224
+
1225
+ hash_contents << " #{key}: #{value},"
1226
+
1227
+ end
1228
+
1229
+ replacement_string = "{\n" + hash_contents.join("\n") + "\n};\n"
1230
+
1231
+ input_file_contents[input_file_contents.index(hash)] = input_file_contents[input_file_contents.index(hash)].sub(hash_extract,replacement_string)
1232
+
1233
+ end
1234
+
1235
+ return input_file_contents
1236
+
1237
+ end
1238
+
1239
+ file_contents = compile_multiline_hashes(input_file_contents,temporary_nila_file)
1240
+
1241
+ file_contents = compile_inline_hashes(file_contents)
1242
+
1243
+ return file_contents
1244
+
1245
+ end
1246
+
1141
1247
  def compile_strings(input_file_contents)
1142
1248
 
1143
1249
  def compile_small_q_syntax(input_file_contents)
@@ -1839,6 +1945,8 @@ def compile(input_file_path, *output_file_name)
1839
1945
 
1840
1946
  junk, condition = command.split("unless ")
1841
1947
 
1948
+ condition = condition.gsub(" and "," && ").gsub(" or "," || ").gsub(" not "," !")
1949
+
1842
1950
  replacement_string = "if !(#{condition.lstrip.rstrip})\n"
1843
1951
 
1844
1952
  modified_file_contents[modified_file_contents.index(command)] = replacement_string
@@ -1853,6 +1961,8 @@ def compile(input_file_path, *output_file_name)
1853
1961
 
1854
1962
  junk, condition = command.split("until ")
1855
1963
 
1964
+ condition = condition.gsub(" and "," && ").gsub(" or "," || ").gsub(" not "," !")
1965
+
1856
1966
  replacement_string = "while !(#{condition.lstrip.rstrip})\n"
1857
1967
 
1858
1968
  modified_file_contents[modified_file_contents.index(command)] = replacement_string
@@ -1881,21 +1991,25 @@ def compile(input_file_path, *output_file_name)
1881
1991
 
1882
1992
  line_split = line.split(plain_conditionals[index])
1883
1993
 
1994
+ condition = line_split[1]
1995
+
1996
+ condition = condition.gsub(" and "," && ").gsub(" or "," || ").gsub(" not "," !")
1997
+
1884
1998
  if index == 0
1885
1999
 
1886
- output_statement = "if (#{line_split[1].lstrip.rstrip.gsub("?", "")}) {\n\n#{line_split[0]}\n}\n"
2000
+ output_statement = "if (#{condition.lstrip.rstrip.gsub("?", "")}) {\n\n#{line_split[0]}\n}\n"
1887
2001
 
1888
2002
  elsif index == 1
1889
2003
 
1890
- output_statement = "while (#{line_split[1].lstrip.rstrip.gsub("?", "")}) {\n\n#{line_split[0]}\n}\n"
2004
+ output_statement = "while (#{condition.lstrip.rstrip.gsub("?", "")}) {\n\n#{line_split[0]}\n}\n"
1891
2005
 
1892
2006
  elsif index == 2
1893
2007
 
1894
- output_statement = "if (!(#{line_split[1].lstrip.rstrip.gsub("?", "")})) {\n\n#{line_split[0]}\n}\n"
2008
+ output_statement = "if (!(#{condition.lstrip.rstrip.gsub("?", "")})) {\n\n#{line_split[0]}\n}\n"
1895
2009
 
1896
2010
  elsif index == 3
1897
2011
 
1898
- output_statement = "while (!(#{line_split[1].lstrip.rstrip.gsub("?", "")})) {\n\n#{line_split[0]}\n}\n"
2012
+ output_statement = "while (!(#{condition.lstrip.rstrip.gsub("?", "")})) {\n\n#{line_split[0]}\n}\n"
1899
2013
 
1900
2014
  end
1901
2015
 
@@ -2061,6 +2175,8 @@ def compile(input_file_path, *output_file_name)
2061
2175
 
2062
2176
  junk, condition = starting_line.split("if")
2063
2177
 
2178
+ condition = condition.gsub(" and "," && ").gsub(" or "," || ").gsub(" not "," !")
2179
+
2064
2180
  input_block[0] = "Euuf (#{condition.lstrip.rstrip.gsub("?", "")}) {\n"
2065
2181
 
2066
2182
  input_block[-1] = input_block[-1].lstrip.sub("end", "}")
@@ -2071,6 +2187,8 @@ def compile(input_file_path, *output_file_name)
2071
2187
 
2072
2188
  junk, condition = statement.split("elsuf")
2073
2189
 
2190
+ condition = condition.gsub(" and "," && ").gsub(" or "," || ").gsub(" not "," !")
2191
+
2074
2192
  input_block[input_block.index(statement)] = "} elsuf (#{condition.lstrip.rstrip.gsub("?", "")}) {\n"
2075
2193
 
2076
2194
  end
@@ -2481,6 +2599,274 @@ def compile(input_file_path, *output_file_name)
2481
2599
 
2482
2600
  end
2483
2601
 
2602
+ def compile_loop_keyword(input_file_contents,temporary_nila_file)
2603
+
2604
+ def convert_string_to_array(input_string, temporary_nila_file)
2605
+
2606
+ file_id = open(temporary_nila_file, 'w')
2607
+
2608
+ file_id.write(input_string)
2609
+
2610
+ file_id.close()
2611
+
2612
+ line_by_line_contents = read_file_line_by_line(temporary_nila_file)
2613
+
2614
+ return line_by_line_contents
2615
+
2616
+ end
2617
+
2618
+ def extract_loop_blocks(loop_statement_indexes, input_file_contents)
2619
+
2620
+ possible_loop_blocks = []
2621
+
2622
+ loop_block_counter = 0
2623
+
2624
+ extracted_blocks = []
2625
+
2626
+ controlregexp = /(if |while |def |loop )/
2627
+
2628
+ rejectionregexp = /( if | while )/
2629
+
2630
+ for x in 0...loop_statement_indexes.length-1
2631
+
2632
+ possible_loop_blocks << input_file_contents[loop_statement_indexes[x]..loop_statement_indexes[x+1]]
2633
+
2634
+ end
2635
+
2636
+ end_counter = 0
2637
+
2638
+ end_index = []
2639
+
2640
+ current_block = []
2641
+
2642
+ possible_loop_blocks.each_with_index do |block|
2643
+
2644
+ current_block += block
2645
+
2646
+ current_block.each_with_index do |line, index|
2647
+
2648
+ if line.strip.eql? "end"
2649
+
2650
+ end_counter += 1
2651
+
2652
+ end_index << index
2653
+
2654
+ end
2655
+
2656
+ end
2657
+
2658
+ if end_counter > 0
2659
+
2660
+ until end_index.empty?
2661
+
2662
+ array_extract = current_block[0..end_index[0]].reverse
2663
+
2664
+ index_counter = 0
2665
+
2666
+ array_extract.each_with_index do |line|
2667
+
2668
+ break if (line.lstrip.index(controlregexp) != nil and line.lstrip.index(rejectionregexp).nil?)
2669
+
2670
+ index_counter += 1
2671
+
2672
+ end
2673
+
2674
+ block_extract = array_extract[0..index_counter].reverse
2675
+
2676
+ extracted_blocks << block_extract
2677
+
2678
+ block_start = current_block.index(block_extract[0])
2679
+
2680
+ block_end = current_block.index(block_extract[-1])
2681
+
2682
+ current_block[block_start..block_end] = "--loopblock#{loop_block_counter}"
2683
+
2684
+ loop_block_counter += 1
2685
+
2686
+ end_counter = 0
2687
+
2688
+ end_index = []
2689
+
2690
+ current_block.each_with_index do |line, index|
2691
+
2692
+ if line.strip.eql? "end"
2693
+
2694
+ end_counter += 1
2695
+
2696
+ end_index << index
2697
+
2698
+ end
2699
+
2700
+ end
2701
+
2702
+ end
2703
+
2704
+ end
2705
+
2706
+ end
2707
+
2708
+ return current_block, extracted_blocks
2709
+
2710
+ end
2711
+
2712
+ def compile_loop_syntax(input_block)
2713
+
2714
+ modified_input_block = input_block.dup
2715
+
2716
+ strings = []
2717
+
2718
+ string_counter = 0
2719
+
2720
+ input_block.each_with_index do |line, index|
2721
+
2722
+ if line.include?("\"")
2723
+
2724
+ opening_quotes = line.index("\"")
2725
+
2726
+ string_extract = line[opening_quotes..line.index("\"", opening_quotes+1)]
2727
+
2728
+ strings << string_extract
2729
+
2730
+ modified_input_block[index] = modified_input_block[index].sub(string_extract, "--string{#{string_counter}}")
2731
+
2732
+ string_counter += 1
2733
+
2734
+ end
2735
+
2736
+ end
2737
+
2738
+ input_block = modified_input_block
2739
+
2740
+ starting_line = input_block[0]
2741
+
2742
+ starting_line = starting_line + "\n" if starting_line.lstrip == starting_line
2743
+
2744
+ input_block[0] = "whaaleskey (true) {\n"
2745
+
2746
+ input_block[-1] = input_block[-1].lstrip.sub("end", "}")
2747
+
2748
+ modified_input_block = input_block.dup
2749
+
2750
+ input_block.each_with_index do |line, index|
2751
+
2752
+ if line.include?("--string{")
2753
+
2754
+ junk, remains = line.split("--string{")
2755
+
2756
+ string_index, junk = remains.split("}")
2757
+
2758
+ modified_input_block[index] = modified_input_block[index].sub("--string{#{string_index.strip}}", strings[string_index.strip.to_i])
2759
+
2760
+ end
2761
+
2762
+ end
2763
+
2764
+ return modified_input_block
2765
+
2766
+ end
2767
+
2768
+ possible_loop_statements = input_file_contents.reject { |element| !element.include?("loop") }
2769
+
2770
+ if !possible_loop_statements.empty?
2771
+
2772
+ loop_statement_indexes = []
2773
+
2774
+ possible_loop_statements.each do |statement|
2775
+
2776
+ loop_statement_indexes << input_file_contents.dup.each_index.select { |index| input_file_contents[index] == statement }
2777
+
2778
+ end
2779
+
2780
+ loop_statement_indexes = [0] + loop_statement_indexes.flatten + [-1]
2781
+
2782
+ controlregexp = /(if |def )/
2783
+
2784
+ modified_input_contents, extracted_statements = extract_loop_blocks(loop_statement_indexes, input_file_contents.clone)
2785
+
2786
+ joined_blocks = extracted_statements.collect { |element| element.join }
2787
+
2788
+ loop_statements = joined_blocks.reject { |element| element.index(controlregexp) != nil }
2789
+
2790
+ rejected_elements = joined_blocks - loop_statements
2791
+
2792
+ rejected_elements_index = []
2793
+
2794
+ rejected_elements.each do |element|
2795
+
2796
+ rejected_elements_index << joined_blocks.each_index.select { |index| joined_blocks[index] == element }
2797
+
2798
+ end
2799
+
2800
+ loop_blocks_index = (0...extracted_statements.length).to_a
2801
+
2802
+ rejected_elements_index = rejected_elements_index.flatten
2803
+
2804
+ loop_blocks_index -= rejected_elements_index
2805
+
2806
+ modified_loop_statements = loop_statements.collect { |string| convert_string_to_array(string, temporary_nila_file) }
2807
+
2808
+ modified_loop_statements = modified_loop_statements.collect { |block| compile_loop_syntax(block) }.reverse
2809
+
2810
+ loop_blocks_index = loop_blocks_index.collect { |element| "--loopblock#{element}" }.reverse
2811
+
2812
+ rejected_elements_index = rejected_elements_index.collect { |element| "--loopblock#{element}" }.reverse
2813
+
2814
+ rejected_elements = rejected_elements.reverse
2815
+
2816
+ joined_file_contents = modified_input_contents.join
2817
+
2818
+ until loop_blocks_index.empty? and rejected_elements_index.empty?
2819
+
2820
+ if !loop_blocks_index.empty?
2821
+
2822
+ if joined_file_contents.include?(loop_blocks_index[0])
2823
+
2824
+ joined_file_contents = joined_file_contents.sub(loop_blocks_index[0], modified_loop_statements[0].join)
2825
+
2826
+ loop_blocks_index.delete_at(0)
2827
+
2828
+ modified_loop_statements.delete_at(0)
2829
+
2830
+ else
2831
+
2832
+ joined_file_contents = joined_file_contents.sub(rejected_elements_index[0], rejected_elements[0].join)
2833
+
2834
+ rejected_elements_index.delete_at(0)
2835
+
2836
+ rejected_elements.delete_at(0)
2837
+
2838
+ end
2839
+
2840
+ else
2841
+
2842
+ joined_file_contents = joined_file_contents.sub(rejected_elements_index[0], rejected_elements[0].join)
2843
+
2844
+ rejected_elements_index.delete_at(0)
2845
+
2846
+ rejected_elements.delete_at(0)
2847
+
2848
+ end
2849
+
2850
+ end
2851
+
2852
+ else
2853
+
2854
+ joined_file_contents = input_file_contents.join
2855
+
2856
+ end
2857
+
2858
+ file_id = open(temporary_nila_file, 'w')
2859
+
2860
+ file_id.write(joined_file_contents)
2861
+
2862
+ file_id.close()
2863
+
2864
+ line_by_line_contents = read_file_line_by_line(temporary_nila_file)
2865
+
2866
+ return line_by_line_contents
2867
+
2868
+ end
2869
+
2484
2870
  def ignore_statement_modifiers(input_block)
2485
2871
 
2486
2872
  modified_input_block = input_block.dup
@@ -2557,6 +2943,8 @@ def compile(input_file_path, *output_file_name)
2557
2943
 
2558
2944
  file_contents = compile_regular_while(file_contents, temporary_nila_file)
2559
2945
 
2946
+ file_contents = compile_loop_keyword(file_contents,temporary_nila_file)
2947
+
2560
2948
  file_contents = replace_statement_modifiers(file_contents, rejected_lines)
2561
2949
 
2562
2950
  file_contents = compile_inline_conditionals(file_contents, temporary_nila_file)
@@ -2587,9 +2975,9 @@ def compile(input_file_path, *output_file_name)
2587
2975
 
2588
2976
  reject_regexp = /(function |Euuf |if |else|elsuf|switch |case|while |whaaleskey |for )/
2589
2977
 
2590
- modified_file_contents = []
2978
+ modified_file_contents = input_file_contents.dup
2591
2979
 
2592
- input_file_contents.each do |line|
2980
+ input_file_contents.each_with_index do |line,index|
2593
2981
 
2594
2982
  if line.index(reject_regexp) == nil
2595
2983
 
@@ -2601,36 +2989,20 @@ def compile(input_file_path, *output_file_name)
2601
2989
 
2602
2990
  if !line.lstrip.eql?("}\n\n")
2603
2991
 
2604
- modified_file_contents << line.rstrip + ";\n\n"
2992
+ if line.rstrip[-1] != "[" and line.rstrip[-1] != "{" and line.rstrip[-1] != "," and line.rstrip[-1] != ";"
2605
2993
 
2606
- else
2994
+ modified_file_contents[index] = line.rstrip + ";\n\n"
2607
2995
 
2608
- modified_file_contents << line
2996
+ end
2609
2997
 
2610
2998
  end
2611
2999
 
2612
- else
2613
-
2614
- modified_file_contents << line
2615
-
2616
3000
  end
2617
3001
 
2618
- else
2619
-
2620
- modified_file_contents << line
2621
-
2622
3002
  end
2623
3003
 
2624
- else
2625
-
2626
- modified_file_contents << line
2627
-
2628
3004
  end
2629
3005
 
2630
- else
2631
-
2632
- modified_file_contents << line
2633
-
2634
3006
  end
2635
3007
 
2636
3008
  end
@@ -2781,7 +3153,7 @@ def compile(input_file_path, *output_file_name)
2781
3153
 
2782
3154
  def extract_blocks(file_contents)
2783
3155
 
2784
- javascript_regexp = /(if |while |function |function\()/
3156
+ javascript_regexp = /(if |while |function |function\(|((=|:)\s+\{))/
2785
3157
 
2786
3158
  block_starting_lines = file_contents.dup.reject { |element| element.index(javascript_regexp).nil? }[1..-1]
2787
3159
 
@@ -2797,7 +3169,7 @@ def compile(input_file_path, *output_file_name)
2797
3169
 
2798
3170
  end
2799
3171
 
2800
- block_ending_lines = file_contents.dup.each_index.select { |index| file_contents[index].eql? " }\n" }
3172
+ block_ending_lines = file_contents.dup.each_index.select { |index| (file_contents[index].eql? " }\n" or file_contents[index].eql? " };\n")}
2801
3173
 
2802
3174
  modified_file_contents = file_contents.dup
2803
3175
 
@@ -2827,7 +3199,7 @@ def compile(input_file_path, *output_file_name)
2827
3199
 
2828
3200
  end
2829
3201
 
2830
- block_ending_lines = modified_file_contents.dup.each_index.select { |index| modified_file_contents[index].eql? " }\n" }
3202
+ block_ending_lines = modified_file_contents.dup.each_index.select { |index| (modified_file_contents[index].eql? " }\n" or modified_file_contents[index].eql? " };\n") }
2831
3203
 
2832
3204
  starting_index = starting_line_indices[0]
2833
3205
 
@@ -2882,7 +3254,7 @@ def compile(input_file_path, *output_file_name)
2882
3254
 
2883
3255
  if !code_block_starting_locations.empty?
2884
3256
 
2885
- controlregexp = /(if |while |function |function\()/
3257
+ controlregexp = /(if |while |function |function\(|((=|:)\s+\{))/
2886
3258
 
2887
3259
  code_block_starting_locations = [0, code_block_starting_locations, -1].flatten
2888
3260
 
@@ -2910,7 +3282,7 @@ def compile(input_file_path, *output_file_name)
2910
3282
 
2911
3283
  current_block.each_with_index do |line, index|
2912
3284
 
2913
- if line.lstrip.eql? "}\n"
3285
+ if line.lstrip.eql? "}\n" or line.lstrip.eql?("};\n")
2914
3286
 
2915
3287
  end_counter += 1
2916
3288
 
@@ -3012,7 +3384,7 @@ def compile(input_file_path, *output_file_name)
3012
3384
 
3013
3385
  end
3014
3386
 
3015
- javascript_regexp = /(if |while |function |function\()/
3387
+ javascript_regexp = /(if |while |function |function\(|((=|:)\s+\{))/
3016
3388
 
3017
3389
  javascript_file_contents = javascript_file_contents.collect { |element| element.sub("Euuf", "if") }
3018
3390
 
@@ -3178,9 +3550,49 @@ def compile(input_file_path, *output_file_name)
3178
3550
 
3179
3551
  end
3180
3552
 
3181
- input_file_contents = input_file_contents.collect { |element| element.sub(" and ", " && ") }
3553
+ def compile_match_operator(input_string)
3554
+
3555
+ rejection_exp = /( aannddy | orriioo |nnoottyy )/
3556
+
3557
+ if input_string.include?("=~")
3558
+
3559
+ input_string = input_string.gsub(" && "," aannddy ").gsub(" || "," orriioo ").gsub("!","nnoottyy")
3560
+
3561
+ left, right = input_string.split("=~")
3562
+
3563
+ if left.index(rejection_exp) != nil
3564
+
3565
+ left = left[left.index(rejection_exp)..-1]
3566
+
3567
+ elsif left.index(/\(/)
3568
+
3569
+ left = left[left.index(/\(/)+1..-1]
3570
+
3571
+ end
3572
+
3573
+ if right.index(rejection_exp) != nil
3574
+
3575
+ right = right[0...right.index(rejection_exp)]
3576
+
3577
+ elsif right.index(/\)/)
3578
+
3579
+ right = right[0...right.index(/\)/)]
3580
+
3581
+ end
3582
+
3583
+ original_string = "#{left}=~#{right}"
3584
+
3585
+ replacement_string = "#{left.rstrip} = #{left.rstrip}.match(#{right.lstrip.rstrip})"
3182
3586
 
3183
- input_file_contents = input_file_contents.collect { |element| element.sub(" or ", " || ") }
3587
+ input_string = input_string.sub(original_string,replacement_string)
3588
+
3589
+ input_string = input_string.gsub(" aannddy "," && ").gsub(" orriioo "," || ").gsub("nnoottyy","!")
3590
+
3591
+ end
3592
+
3593
+ return input_string
3594
+
3595
+ end
3184
3596
 
3185
3597
  input_file_contents = input_file_contents.collect { |element| element.sub("==", "===") }
3186
3598
 
@@ -3190,6 +3602,8 @@ def compile(input_file_path, *output_file_name)
3190
3602
 
3191
3603
  input_file_contents = input_file_contents.collect { |element| compile_power_operator(element) }
3192
3604
 
3605
+ input_file_contents = input_file_contents.collect {|element| compile_match_operator(element)}
3606
+
3193
3607
  return input_file_contents
3194
3608
 
3195
3609
  end
@@ -3229,6 +3643,8 @@ def compile(input_file_path, *output_file_name)
3229
3643
 
3230
3644
  file_contents = compile_interpolated_strings(file_contents)
3231
3645
 
3646
+ file_contents = compile_hashes(file_contents,temp_file)
3647
+
3232
3648
  file_contents = compile_conditional_structures(file_contents, temp_file)
3233
3649
 
3234
3650
  file_contents = compile_arrays(file_contents, temp_file)
@@ -3329,7 +3745,7 @@ def find_file_path(input_path, file_extension)
3329
3745
 
3330
3746
  end
3331
3747
 
3332
- nilac_version = "0.0.4.2.0"
3748
+ nilac_version = "0.0.4.2.2"
3333
3749
 
3334
3750
  opts = Slop.parse do
3335
3751
  on :c, :compile=, 'Compile Nila File', as:Array, delimiter:":"
@@ -3384,6 +3800,24 @@ opts = Slop.parse do
3384
3800
 
3385
3801
  end
3386
3802
 
3803
+ on :release, 'Build and Release Nilac for Rubygems' do
3804
+
3805
+ file_path = Dir.pwd + "/src/nilac.rb"
3806
+
3807
+ create_mac_executable(file_path)
3808
+
3809
+ FileUtils.mv("#{file_path[0...-3]}", "#{Dir.pwd}/bin/nilac")
3810
+
3811
+ `git commit -am "Updated Executable to #{nilac_version}"`
3812
+
3813
+ output = `rake release`
3814
+
3815
+ puts "Build Successful!"
3816
+
3817
+ puts output
3818
+
3819
+ end
3820
+
3387
3821
  on :u, :update, 'Check if Nilac is up to date.' do
3388
3822
 
3389
3823
  outdated_gems = `gem outdated`
data/lib/nilac/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Nilac
2
- VERSION = "0.0.4.2.1"
2
+ VERSION = "0.0.4.2.2"
3
3
  end
data/src/nilac.rb CHANGED
@@ -3743,7 +3743,7 @@ def find_file_path(input_path, file_extension)
3743
3743
 
3744
3744
  end
3745
3745
 
3746
- nilac_version = "0.0.4.2.1"
3746
+ nilac_version = "0.0.4.2.2"
3747
3747
 
3748
3748
  opts = Slop.parse do
3749
3749
  on :c, :compile=, 'Compile Nila File', as:Array, delimiter:":"
@@ -3798,6 +3798,24 @@ opts = Slop.parse do
3798
3798
 
3799
3799
  end
3800
3800
 
3801
+ on :release, 'Build and Release Nilac for Rubygems' do
3802
+
3803
+ file_path = Dir.pwd + "/src/nilac.rb"
3804
+
3805
+ create_mac_executable(file_path)
3806
+
3807
+ FileUtils.mv("#{file_path[0...-3]}", "#{Dir.pwd}/bin/nilac")
3808
+
3809
+ `git commit -am "Updated Executable to #{nilac_version}"`
3810
+
3811
+ output = `rake release`
3812
+
3813
+ puts "Build Successful!"
3814
+
3815
+ puts output
3816
+
3817
+ end
3818
+
3801
3819
  on :u, :update, 'Check if Nilac is up to date.' do
3802
3820
 
3803
3821
  outdated_gems = `gem outdated`
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nilac
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4.2.1
4
+ version: 0.0.4.2.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: