first pass at assignment
This commit is contained in:
1 parent
a847d2250f
commit
6c8b55793a
8 files changed
+117
-11
No files matched your search
+18
@@ -28,6 +28,8 @@
|
||||
%token EQ "=="
|
||||
%token AS "as"
|
||||
%token DEF "def"
|
||||
%token SETPIPE "|="
|
||||
%nonassoc '=' SETPIPE
|
||||
%nonassoc EQ
|
||||
%left '+'
|
||||
|
||||
@@ -76,6 +78,22 @@ Term "as" '$' IDENT '|' Exp {
|
||||
block_append(&$$, block_bind(gen_op_var_unbound(STOREV, $4), $6, OP_HAS_VARIABLE));
|
||||
} |
|
||||
|
||||
Exp '=' Exp {
|
||||
block assign = gen_op_simple(DUP);
|
||||
block_append(&assign, $3);
|
||||
block_append(&assign, gen_op_simple(SWAP));
|
||||
block_append(&assign, $1);
|
||||
block_append(&assign, gen_op_simple(SWAP));
|
||||
$$ = gen_assign(assign);
|
||||
} |
|
||||
|
||||
Exp "|=" Exp {
|
||||
block assign = $1;
|
||||
block_append(&assign, gen_op_simple(DUP));
|
||||
block_append(&assign, $3);
|
||||
$$ = gen_assign(assign);
|
||||
} |
|
||||
|
||||
Exp '|' Exp {
|
||||
$$ = block_join($1, $3);
|
||||
} |
|
||||
|
||||
Reference in new issue
Block a user