nilac 0.0.4.1.5 → 0.0.4.1.6
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 +116 -8
- data/lib/nilac/version.rb +1 -1
- data/shark/features/multiline_array.feature +11 -0
- data/shark/features/whitespace_delimitation.feature +11 -0
- data/shark/test_files/array_string_indexing.nila +1 -1
- data/shark/test_files/correct_multiline_array.nila +0 -0
- data/shark/test_files/correct_whitespace_delimiter.js +15 -0
- data/shark/test_files/multiline_array.nila +13 -0
- data/shark/test_files/string_operators.nila +7 -1
- data/shark/test_files/whitespace_delimiter.nila +16 -0
- data/src/nilac.rb +115 -8
- metadata +8 -2
data/bin/nilac
CHANGED
@@ -586,8 +586,6 @@ def compile(input_file_path,*output_file_name)
|
|
586
586
|
|
587
587
|
current_row = input_file_contents[x]
|
588
588
|
|
589
|
-
#The condition below verifies if the rows contain any equation operators.
|
590
|
-
|
591
589
|
if current_row.include?("=") and !current_row.include?("def")
|
592
590
|
|
593
591
|
current_row = current_row.rstrip + "\n"
|
@@ -601,6 +599,12 @@ def compile(input_file_path,*output_file_name)
|
|
601
599
|
|
602
600
|
end
|
603
601
|
|
602
|
+
if current_row_split[0].include?("[") or current_row_split[0].include?("(")
|
603
|
+
|
604
|
+
current_row_split[0] = current_row_split[0][0...current_row_split[0].index("[")]
|
605
|
+
|
606
|
+
end
|
607
|
+
|
604
608
|
variables << current_row_split[0]
|
605
609
|
|
606
610
|
|
@@ -691,7 +695,7 @@ def compile(input_file_path,*output_file_name)
|
|
691
695
|
|
692
696
|
end
|
693
697
|
|
694
|
-
def compile_arrays(input_file_contents)
|
698
|
+
def compile_arrays(input_file_contents,temporary_nila_file)
|
695
699
|
|
696
700
|
#Currently the following kinds of array constructs are compilable
|
697
701
|
|
@@ -885,10 +889,66 @@ def compile(input_file_path,*output_file_name)
|
|
885
889
|
|
886
890
|
end
|
887
891
|
|
892
|
+
def compile_multiline(input_file_contents,temporary_nila_file)
|
893
|
+
|
894
|
+
possible_arrays = input_file_contents.reject {|element| !element.include?("[")}
|
895
|
+
|
896
|
+
possible_multiline_arrays = possible_arrays.reject {|element| element.include?("]")}
|
897
|
+
|
898
|
+
multiline_arrays = []
|
899
|
+
|
900
|
+
possible_multiline_arrays.each do |starting_line|
|
901
|
+
|
902
|
+
index = input_file_contents.index(starting_line)
|
903
|
+
|
904
|
+
line = starting_line
|
905
|
+
|
906
|
+
until line.include?("]")
|
907
|
+
|
908
|
+
index += 1
|
909
|
+
|
910
|
+
line = input_file_contents[index]
|
911
|
+
|
912
|
+
end
|
913
|
+
|
914
|
+
multiline_arrays << input_file_contents[input_file_contents.index(starting_line)..index]
|
915
|
+
|
916
|
+
end
|
917
|
+
|
918
|
+
joined_file_contents = input_file_contents.join
|
919
|
+
|
920
|
+
multiline_arrays.each do |array|
|
921
|
+
|
922
|
+
modified_array = array.join
|
923
|
+
|
924
|
+
array_extract = modified_array[modified_array.index("[")..modified_array.index("]")]
|
925
|
+
|
926
|
+
array_contents = array_extract.split("[")[1].split("]")[0].lstrip.rstrip.split(",").collect {|element| element.lstrip.rstrip}
|
927
|
+
|
928
|
+
array_contents = "[" + array_contents.join(",") + "]"
|
929
|
+
|
930
|
+
joined_file_contents = joined_file_contents.sub(array_extract,array_contents)
|
931
|
+
|
932
|
+
end
|
933
|
+
|
934
|
+
file_id = open(temporary_nila_file, 'w')
|
935
|
+
|
936
|
+
file_id.write(joined_file_contents)
|
937
|
+
|
938
|
+
file_id.close()
|
939
|
+
|
940
|
+
line_by_line_contents = read_file_line_by_line(temporary_nila_file)
|
941
|
+
|
942
|
+
return line_by_line_contents
|
943
|
+
|
944
|
+
end
|
945
|
+
|
888
946
|
input_file_contents = compile_w_arrays(input_file_contents)
|
889
947
|
|
890
948
|
input_file_contents = compile_array_indexing(input_file_contents)
|
891
949
|
|
950
|
+
input_file_contents = compile_multiline(input_file_contents,temporary_nila_file)
|
951
|
+
|
892
952
|
return input_file_contents
|
893
953
|
|
894
954
|
|
@@ -896,7 +956,7 @@ def compile(input_file_path,*output_file_name)
|
|
896
956
|
|
897
957
|
def compile_strings(input_file_contents)
|
898
958
|
|
899
|
-
# This method will compile %q, %Q and %
|
959
|
+
# This method will compile %q, %Q and % syntax. Heredocs support will be added in the future
|
900
960
|
|
901
961
|
def compile_small_q_syntax(input_file_contents)
|
902
962
|
|
@@ -978,9 +1038,53 @@ def compile(input_file_path,*output_file_name)
|
|
978
1038
|
|
979
1039
|
end
|
980
1040
|
|
1041
|
+
def compile_percentage_syntax(input_file_contents)
|
1042
|
+
|
1043
|
+
possible_syntax_usage = input_file_contents.reject {|element| !element.include?("%")}
|
1044
|
+
|
1045
|
+
possible_syntax_usage = possible_syntax_usage.reject {|element| element.index(/(\%(\W|\s)\w{1,})/).nil?}
|
1046
|
+
|
1047
|
+
possible_syntax_usage.each do |line|
|
1048
|
+
|
1049
|
+
modified_line = line.dup
|
1050
|
+
|
1051
|
+
line_split = line.split("+").collect {|element| element.lstrip.rstrip}
|
1052
|
+
|
1053
|
+
line_split.each do |str|
|
1054
|
+
|
1055
|
+
delimiter = str[str.index("%")+1]
|
1056
|
+
|
1057
|
+
string_extract = str[str.index("%")..-1]
|
1058
|
+
|
1059
|
+
delimiter = "}" if delimiter.eql?("{")
|
1060
|
+
|
1061
|
+
if string_extract[-1].eql?(delimiter)
|
1062
|
+
|
1063
|
+
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]}\"")
|
1064
|
+
|
1065
|
+
modified_line = modified_line.sub(string_extract,"\"#{string_extract[2...-1]}\"")
|
1066
|
+
|
1067
|
+
elsif delimiter.eql?(" ")
|
1068
|
+
|
1069
|
+
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]}\"")
|
1070
|
+
|
1071
|
+
modified_line = modified_line.sub(string_extract,"\"#{string_extract[2..-1]}\"")
|
1072
|
+
|
1073
|
+
end
|
1074
|
+
|
1075
|
+
end
|
1076
|
+
|
1077
|
+
end
|
1078
|
+
|
1079
|
+
return input_file_contents
|
1080
|
+
|
1081
|
+
end
|
1082
|
+
|
981
1083
|
file_contents = compile_small_q_syntax(input_file_contents)
|
982
1084
|
|
983
|
-
file_contents = compile_big_q_syntax(
|
1085
|
+
file_contents = compile_big_q_syntax(file_contents)
|
1086
|
+
|
1087
|
+
file_contents = compile_percentage_syntax(file_contents)
|
984
1088
|
|
985
1089
|
return file_contents
|
986
1090
|
|
@@ -1003,7 +1107,7 @@ def compile(input_file_path,*output_file_name)
|
|
1003
1107
|
#
|
1004
1108
|
# return input_number*input_number;
|
1005
1109
|
#
|
1006
|
-
#
|
1110
|
+
#}
|
1007
1111
|
|
1008
1112
|
def is_parameterless?(input_function_block)
|
1009
1113
|
|
@@ -2932,7 +3036,7 @@ def compile(input_file_path,*output_file_name)
|
|
2932
3036
|
|
2933
3037
|
file_contents = compile_conditional_structures(file_contents,temp_file)
|
2934
3038
|
|
2935
|
-
file_contents = compile_arrays(file_contents)
|
3039
|
+
file_contents = compile_arrays(file_contents,temp_file)
|
2936
3040
|
|
2937
3041
|
file_contents = compile_strings(file_contents)
|
2938
3042
|
|
@@ -3030,7 +3134,7 @@ def find_file_path(input_path,file_extension)
|
|
3030
3134
|
|
3031
3135
|
end
|
3032
3136
|
|
3033
|
-
nilac_version = "0.0.4.1.
|
3137
|
+
nilac_version = "0.0.4.1.6"
|
3034
3138
|
|
3035
3139
|
opts = Slop.parse do
|
3036
3140
|
on :c, :compile=, 'Compile Nila File', as:Array, delimiter:":"
|
@@ -3074,8 +3178,12 @@ opts = Slop.parse do
|
|
3074
3178
|
|
3075
3179
|
file_path = Dir.pwd + "/src/nilac.rb"
|
3076
3180
|
|
3181
|
+
puts file_path
|
3182
|
+
|
3077
3183
|
create_mac_executable(file_path)
|
3078
3184
|
|
3185
|
+
FileUtils.mv("#{file_path[0...-3]}","#{Dir.pwd}/bin/nilac")
|
3186
|
+
|
3079
3187
|
puts "Build Successful!"
|
3080
3188
|
|
3081
3189
|
end
|
data/lib/nilac/version.rb
CHANGED
@@ -0,0 +1,11 @@
|
|
1
|
+
Feature: This feature brings multiline arrays to Nila
|
2
|
+
Scenario: Input file with multiline array and regular arrays.
|
3
|
+
Given the input file "multiline_array.nila"
|
4
|
+
When the ~compiler is run
|
5
|
+
The output file must be "multiline_array.js"
|
6
|
+
The output file must equal "correct_multiline_array.js"
|
7
|
+
|
8
|
+
Configurations:
|
9
|
+
|
10
|
+
~compiler => src/nilac.rb
|
11
|
+
:v $cliusage => ruby :v --compile $file
|
@@ -0,0 +1,11 @@
|
|
1
|
+
Feature: This feature brings whitespace delimitation features to Nila
|
2
|
+
Scenario: Input file with whitespace delimitation features.
|
3
|
+
Given the input file "whitespace_delimiter.nila"
|
4
|
+
When the ~compiler is run
|
5
|
+
The output file must be "whitespace_delimiter.js"
|
6
|
+
The output file must equal "correct_whitespace_delimiter.js"
|
7
|
+
|
8
|
+
Configurations:
|
9
|
+
|
10
|
+
~compiler => src/nilac.rb
|
11
|
+
:v $cliusage => ruby :v --compile $file
|
File without changes
|
@@ -0,0 +1,15 @@
|
|
1
|
+
//Written using Nila. Visit http://adhithyan15.github.io/nila
|
2
|
+
(function() {
|
3
|
+
function square(input_number) {
|
4
|
+
return input_number*input_number;
|
5
|
+
}
|
6
|
+
|
7
|
+
function return_number(input_number) {
|
8
|
+
return input_number;
|
9
|
+
}
|
10
|
+
|
11
|
+
console.log(message);
|
12
|
+
|
13
|
+
console.log(square(return_number(5)));
|
14
|
+
|
15
|
+
}).call(this);
|
@@ -10,4 +10,10 @@ str = %Q{this is a wonderful string}
|
|
10
10
|
|
11
11
|
str = %Q!this is a wonderful string!
|
12
12
|
|
13
|
-
str = %Q this is a wonderful string + %Q this is another wonderful string
|
13
|
+
str = %Q this is a wonderful string + %Q this is another wonderful string
|
14
|
+
|
15
|
+
str = %|this is a wonderful string|
|
16
|
+
|
17
|
+
str = %!this is a wonderful string!
|
18
|
+
|
19
|
+
str = % this is a wonderful string + % this is another wonderful string
|
data/src/nilac.rb
CHANGED
@@ -6,6 +6,7 @@
|
|
6
6
|
require 'slop'
|
7
7
|
require 'fileutils'
|
8
8
|
|
9
|
+
|
9
10
|
def compile(input_file_path,*output_file_name)
|
10
11
|
|
11
12
|
def read_file_line_by_line(input_path)
|
@@ -584,8 +585,6 @@ def compile(input_file_path,*output_file_name)
|
|
584
585
|
|
585
586
|
current_row = input_file_contents[x]
|
586
587
|
|
587
|
-
#The condition below verifies if the rows contain any equation operators.
|
588
|
-
|
589
588
|
if current_row.include?("=") and !current_row.include?("def")
|
590
589
|
|
591
590
|
current_row = current_row.rstrip + "\n"
|
@@ -599,6 +598,12 @@ def compile(input_file_path,*output_file_name)
|
|
599
598
|
|
600
599
|
end
|
601
600
|
|
601
|
+
if current_row_split[0].include?("[") or current_row_split[0].include?("(")
|
602
|
+
|
603
|
+
current_row_split[0] = current_row_split[0][0...current_row_split[0].index("[")]
|
604
|
+
|
605
|
+
end
|
606
|
+
|
602
607
|
variables << current_row_split[0]
|
603
608
|
|
604
609
|
|
@@ -689,7 +694,7 @@ def compile(input_file_path,*output_file_name)
|
|
689
694
|
|
690
695
|
end
|
691
696
|
|
692
|
-
def compile_arrays(input_file_contents)
|
697
|
+
def compile_arrays(input_file_contents,temporary_nila_file)
|
693
698
|
|
694
699
|
#Currently the following kinds of array constructs are compilable
|
695
700
|
|
@@ -883,10 +888,66 @@ def compile(input_file_path,*output_file_name)
|
|
883
888
|
|
884
889
|
end
|
885
890
|
|
891
|
+
def compile_multiline(input_file_contents,temporary_nila_file)
|
892
|
+
|
893
|
+
possible_arrays = input_file_contents.reject {|element| !element.include?("[")}
|
894
|
+
|
895
|
+
possible_multiline_arrays = possible_arrays.reject {|element| element.include?("]")}
|
896
|
+
|
897
|
+
multiline_arrays = []
|
898
|
+
|
899
|
+
possible_multiline_arrays.each do |starting_line|
|
900
|
+
|
901
|
+
index = input_file_contents.index(starting_line)
|
902
|
+
|
903
|
+
line = starting_line
|
904
|
+
|
905
|
+
until line.include?("]")
|
906
|
+
|
907
|
+
index += 1
|
908
|
+
|
909
|
+
line = input_file_contents[index]
|
910
|
+
|
911
|
+
end
|
912
|
+
|
913
|
+
multiline_arrays << input_file_contents[input_file_contents.index(starting_line)..index]
|
914
|
+
|
915
|
+
end
|
916
|
+
|
917
|
+
joined_file_contents = input_file_contents.join
|
918
|
+
|
919
|
+
multiline_arrays.each do |array|
|
920
|
+
|
921
|
+
modified_array = array.join
|
922
|
+
|
923
|
+
array_extract = modified_array[modified_array.index("[")..modified_array.index("]")]
|
924
|
+
|
925
|
+
array_contents = array_extract.split("[")[1].split("]")[0].lstrip.rstrip.split(",").collect {|element| element.lstrip.rstrip}
|
926
|
+
|
927
|
+
array_contents = "[" + array_contents.join(",") + "]"
|
928
|
+
|
929
|
+
joined_file_contents = joined_file_contents.sub(array_extract,array_contents)
|
930
|
+
|
931
|
+
end
|
932
|
+
|
933
|
+
file_id = open(temporary_nila_file, 'w')
|
934
|
+
|
935
|
+
file_id.write(joined_file_contents)
|
936
|
+
|
937
|
+
file_id.close()
|
938
|
+
|
939
|
+
line_by_line_contents = read_file_line_by_line(temporary_nila_file)
|
940
|
+
|
941
|
+
return line_by_line_contents
|
942
|
+
|
943
|
+
end
|
944
|
+
|
886
945
|
input_file_contents = compile_w_arrays(input_file_contents)
|
887
946
|
|
888
947
|
input_file_contents = compile_array_indexing(input_file_contents)
|
889
948
|
|
949
|
+
input_file_contents = compile_multiline(input_file_contents,temporary_nila_file)
|
950
|
+
|
890
951
|
return input_file_contents
|
891
952
|
|
892
953
|
|
@@ -894,7 +955,7 @@ def compile(input_file_path,*output_file_name)
|
|
894
955
|
|
895
956
|
def compile_strings(input_file_contents)
|
896
957
|
|
897
|
-
# This method will compile %q, %Q and %
|
958
|
+
# This method will compile %q, %Q and % syntax. Heredocs support will be added in the future
|
898
959
|
|
899
960
|
def compile_small_q_syntax(input_file_contents)
|
900
961
|
|
@@ -976,9 +1037,53 @@ def compile(input_file_path,*output_file_name)
|
|
976
1037
|
|
977
1038
|
end
|
978
1039
|
|
1040
|
+
def compile_percentage_syntax(input_file_contents)
|
1041
|
+
|
1042
|
+
possible_syntax_usage = input_file_contents.reject {|element| !element.include?("%")}
|
1043
|
+
|
1044
|
+
possible_syntax_usage = possible_syntax_usage.reject {|element| element.index(/(\%(\W|\s)\w{1,})/).nil?}
|
1045
|
+
|
1046
|
+
possible_syntax_usage.each do |line|
|
1047
|
+
|
1048
|
+
modified_line = line.dup
|
1049
|
+
|
1050
|
+
line_split = line.split("+").collect {|element| element.lstrip.rstrip}
|
1051
|
+
|
1052
|
+
line_split.each do |str|
|
1053
|
+
|
1054
|
+
delimiter = str[str.index("%")+1]
|
1055
|
+
|
1056
|
+
string_extract = str[str.index("%")..-1]
|
1057
|
+
|
1058
|
+
delimiter = "}" if delimiter.eql?("{")
|
1059
|
+
|
1060
|
+
if string_extract[-1].eql?(delimiter)
|
1061
|
+
|
1062
|
+
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]}\"")
|
1063
|
+
|
1064
|
+
modified_line = modified_line.sub(string_extract,"\"#{string_extract[2...-1]}\"")
|
1065
|
+
|
1066
|
+
elsif delimiter.eql?(" ")
|
1067
|
+
|
1068
|
+
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]}\"")
|
1069
|
+
|
1070
|
+
modified_line = modified_line.sub(string_extract,"\"#{string_extract[2..-1]}\"")
|
1071
|
+
|
1072
|
+
end
|
1073
|
+
|
1074
|
+
end
|
1075
|
+
|
1076
|
+
end
|
1077
|
+
|
1078
|
+
return input_file_contents
|
1079
|
+
|
1080
|
+
end
|
1081
|
+
|
979
1082
|
file_contents = compile_small_q_syntax(input_file_contents)
|
980
1083
|
|
981
|
-
file_contents = compile_big_q_syntax(
|
1084
|
+
file_contents = compile_big_q_syntax(file_contents)
|
1085
|
+
|
1086
|
+
file_contents = compile_percentage_syntax(file_contents)
|
982
1087
|
|
983
1088
|
return file_contents
|
984
1089
|
|
@@ -1001,7 +1106,7 @@ def compile(input_file_path,*output_file_name)
|
|
1001
1106
|
#
|
1002
1107
|
# return input_number*input_number;
|
1003
1108
|
#
|
1004
|
-
#
|
1109
|
+
#}
|
1005
1110
|
|
1006
1111
|
def is_parameterless?(input_function_block)
|
1007
1112
|
|
@@ -2930,7 +3035,7 @@ def compile(input_file_path,*output_file_name)
|
|
2930
3035
|
|
2931
3036
|
file_contents = compile_conditional_structures(file_contents,temp_file)
|
2932
3037
|
|
2933
|
-
file_contents = compile_arrays(file_contents)
|
3038
|
+
file_contents = compile_arrays(file_contents,temp_file)
|
2934
3039
|
|
2935
3040
|
file_contents = compile_strings(file_contents)
|
2936
3041
|
|
@@ -3028,7 +3133,7 @@ def find_file_path(input_path,file_extension)
|
|
3028
3133
|
|
3029
3134
|
end
|
3030
3135
|
|
3031
|
-
nilac_version = "0.0.4.1.
|
3136
|
+
nilac_version = "0.0.4.1.6"
|
3032
3137
|
|
3033
3138
|
opts = Slop.parse do
|
3034
3139
|
on :c, :compile=, 'Compile Nila File', as:Array, delimiter:":"
|
@@ -3074,6 +3179,8 @@ opts = Slop.parse do
|
|
3074
3179
|
|
3075
3180
|
create_mac_executable(file_path)
|
3076
3181
|
|
3182
|
+
FileUtils.mv("#{file_path[0...-3]}","#{Dir.pwd}/bin/nilac")
|
3183
|
+
|
3077
3184
|
puts "Build Successful!"
|
3078
3185
|
|
3079
3186
|
end
|
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.1.
|
4
|
+
version: 0.0.4.1.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-07-
|
12
|
+
date: 2013-07-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: shark
|
@@ -66,17 +66,20 @@ files:
|
|
66
66
|
- shark/features/default_method_parameters.feature
|
67
67
|
- shark/features/fix_newlines.feature
|
68
68
|
- shark/features/method_multiple_return.feature
|
69
|
+
- shark/features/multiline_array.feature
|
69
70
|
- shark/features/multiple_variable_initialization.feature
|
70
71
|
- shark/features/regular_if.feature
|
71
72
|
- shark/features/regular_while.feature
|
72
73
|
- shark/features/ruby_operators.feature
|
73
74
|
- shark/features/strings.feature
|
74
75
|
- shark/features/unless_until.feature
|
76
|
+
- shark/features/whitespace_delimitation.feature
|
75
77
|
- shark/test_files/array_string_indexing.nila
|
76
78
|
- shark/test_files/correct.js
|
77
79
|
- shark/test_files/correct_default_parameters.js
|
78
80
|
- shark/test_files/correct_indexing.js
|
79
81
|
- shark/test_files/correct_initialization.js
|
82
|
+
- shark/test_files/correct_multiline_array.nila
|
80
83
|
- shark/test_files/correct_multiple_return.js
|
81
84
|
- shark/test_files/correct_operators.js
|
82
85
|
- shark/test_files/correct_regular_if.js
|
@@ -85,8 +88,10 @@ files:
|
|
85
88
|
- shark/test_files/correct_single_return.js
|
86
89
|
- shark/test_files/correct_string_operators.js
|
87
90
|
- shark/test_files/correct_unless_until.js
|
91
|
+
- shark/test_files/correct_whitespace_delimiter.js
|
88
92
|
- shark/test_files/default_parameters.nila
|
89
93
|
- shark/test_files/erratic.nila
|
94
|
+
- shark/test_files/multiline_array.nila
|
90
95
|
- shark/test_files/multiple_initialization.nila
|
91
96
|
- shark/test_files/multiple_return.nila
|
92
97
|
- shark/test_files/no_return.nila
|
@@ -98,6 +103,7 @@ files:
|
|
98
103
|
- shark/test_files/single_return.nila
|
99
104
|
- shark/test_files/string_operators.nila
|
100
105
|
- shark/test_files/unless_until.nila
|
106
|
+
- shark/test_files/whitespace_delimiter.nila
|
101
107
|
- src/nilac.rb
|
102
108
|
homepage: http://adhithyan15.github.com/nila
|
103
109
|
licenses: []
|