summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJo-Philipp Wich <jo@mein.io>2020-09-06 22:10:11 +0200
committerJo-Philipp Wich <jo@mein.io>2020-09-06 22:10:11 +0200
commitbbc8cd7cc83f1a6188a4829a4fc1613e7f6e08f0 (patch)
tree203de756125229da35336824bc191dc1c6dcc90a
parent42a52e16ffaa4d49fa26f1184a0660324705bc7c (diff)
parser: do not reallocate function opcodes
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
-rw-r--r--parser.y24
1 files changed, 12 insertions, 12 deletions
diff --git a/parser.y b/parser.y
index f9c14a5..ff475f1 100644
--- a/parser.y
+++ b/parser.y
@@ -153,18 +153,18 @@ iter_stmt(A) ::= T_FOR(B) T_LPAREN exp_stmt(C) exp_stmt(D) T_RPAREN T_COLON chun
iter_stmt(A) ::= T_FOR(B) T_LPAREN exp_stmt(C) exp_stmt(D) exp(E) T_RPAREN T_COLON chunks(F) T_ENDFOR.
{ A = wrap_op(B, C, D, E, F); }
-func_stmt(A) ::= T_FUNC T_LABEL(B) T_LPAREN T_RPAREN cpd_stmt(C).
- { A = new_op(T_FUNC, NULL, B, 0, C); }
-func_stmt(A) ::= T_FUNC T_LABEL(B) T_LPAREN T_RPAREN empty_object.
- { A = new_op(T_FUNC, NULL, B, 0, 0); }
-func_stmt(A) ::= T_FUNC T_LABEL(B) T_LPAREN T_RPAREN T_COLON chunks(C) T_ENDFUNC.
- { A = new_op(T_FUNC, NULL, B, 0, C); }
-func_stmt(A) ::= T_FUNC T_LABEL(B) T_LPAREN args(C) T_RPAREN cpd_stmt(D).
- { A = new_op(T_FUNC, NULL, B, C, D); }
-func_stmt(A) ::= T_FUNC T_LABEL(B) T_LPAREN args(C) T_RPAREN empty_object.
- { A = new_op(T_FUNC, NULL, B, C, 0); }
-func_stmt(A) ::= T_FUNC T_LABEL(B) T_LPAREN args(C) T_RPAREN T_COLON chunks(D) T_ENDFUNC.
- { A = new_op(T_FUNC, NULL, B, C, D); }
+func_stmt(A) ::= T_FUNC(B) T_LABEL(C) T_LPAREN T_RPAREN cpd_stmt(D).
+ { A = wrap_op(B, C, 0, D); }
+func_stmt(A) ::= T_FUNC(B) T_LABEL(C) T_LPAREN T_RPAREN empty_object.
+ { A = wrap_op(B, C, 0, 0); }
+func_stmt(A) ::= T_FUNC(B) T_LABEL(C) T_LPAREN T_RPAREN T_COLON chunks(D) T_ENDFUNC.
+ { A = wrap_op(B, C, 0, D); }
+func_stmt(A) ::= T_FUNC(B) T_LABEL(C) T_LPAREN args(D) T_RPAREN cpd_stmt(E).
+ { A = wrap_op(B, C, D, E); }
+func_stmt(A) ::= T_FUNC(B) T_LABEL(C) T_LPAREN args(D) T_RPAREN empty_object.
+ { A = wrap_op(B, C, D, 0); }
+func_stmt(A) ::= T_FUNC(B) T_LABEL(C) T_LPAREN args(D) T_RPAREN T_COLON chunks(E) T_ENDFUNC.
+ { A = wrap_op(B, C, D, E); }
args(A) ::= args(B) T_COMMA T_LABEL(C). { A = append_op(B, C); }
args(A) ::= T_LABEL(B). { A = B; }