summaryrefslogtreecommitdiffstats
path: root/parser.y
diff options
context:
space:
mode:
authorNicolas Williams <nico@cryptonector.com>2013-12-11 14:13:57 -0600
committerNicolas Williams <nico@cryptonector.com>2013-12-11 14:14:26 -0600
commit474386a1d950ab8fd8e1d4fb7570e6454466a834 (patch)
treeb52ebcdfa2f00a31b35359684fc62ed3fba064bb /parser.y
parent7fd2c2d08b0e6d9f792e28ca2f3d10a820ca08d9 (diff)
Complete more-arity feature not complete
And test
Diffstat (limited to 'parser.y')
-rw-r--r--parser.y61
1 files changed, 60 insertions, 1 deletions
diff --git a/parser.y b/parser.y
index 6794116b..4c0b6a2a 100644
--- a/parser.y
+++ b/parser.y
@@ -360,8 +360,67 @@ FuncDef:
jv_free($2);
jv_free($4);
jv_free($6);
-}
+} |
+"def" IDENT '(' IDENT ';' IDENT ';' IDENT ')' ':' Exp ';' {
+ $$ = gen_function(jv_string_value($2),
+ BLOCK(gen_param(jv_string_value($4)),
+ gen_param(jv_string_value($6)),
+ gen_param(jv_string_value($8))),
+ $11);
+ jv_free($2);
+ jv_free($4);
+ jv_free($6);
+ jv_free($8);
+} |
+
+"def" IDENT '(' IDENT ';' IDENT ';' IDENT ';' IDENT ')' ':' Exp ';' {
+ $$ = gen_function(jv_string_value($2),
+ BLOCK(gen_param(jv_string_value($4)),
+ gen_param(jv_string_value($6)),
+ gen_param(jv_string_value($8)),
+ gen_param(jv_string_value($10))),
+ $13);
+ jv_free($2);
+ jv_free($4);
+ jv_free($6);
+ jv_free($8);
+ jv_free($10);
+} |
+
+"def" IDENT '(' IDENT ';' IDENT ';' IDENT ';' IDENT ';' IDENT ')' ':' Exp ';' {
+ $$ = gen_function(jv_string_value($2),
+ BLOCK(gen_param(jv_string_value($4)),
+ gen_param(jv_string_value($6)),
+ gen_param(jv_string_value($8)),
+ gen_param(jv_string_value($10)),
+ gen_param(jv_string_value($12))),
+ $15);
+ jv_free($2);
+ jv_free($4);
+ jv_free($6);
+ jv_free($8);
+ jv_free($10);
+ jv_free($12);
+} |
+
+"def" IDENT '(' IDENT ';' IDENT ';' IDENT ';' IDENT ';' IDENT ';' IDENT ')' ':' Exp ';' {
+ $$ = gen_function(jv_string_value($2),
+ BLOCK(gen_param(jv_string_value($4)),
+ gen_param(jv_string_value($6)),
+ gen_param(jv_string_value($8)),
+ gen_param(jv_string_value($10)),
+ gen_param(jv_string_value($12)),
+ gen_param(jv_string_value($14))),
+ $17);
+ jv_free($2);
+ jv_free($4);
+ jv_free($6);
+ jv_free($8);
+ jv_free($10);
+ jv_free($12);
+ jv_free($14);
+}
String: