|
@ -2170,26 +2170,28 @@ _FLOAT128 = '_Float128' !IDREST &{gnu} { $$= newToken("_Float1 |
|
|
# the semicolon has to be explicit with no space eaten afterwards to prevent the |
|
|
# the semicolon has to be explicit with no space eaten afterwards to prevent the |
|
|
# input buffer from moving past it before redirecting input from the imported file |
|
|
# input buffer from moving past it before redirecting input from the imported file |
|
|
|
|
|
|
|
|
metaCatch = META_AT ( m:mvalue { map_append(outputProgram, m) } |
|
|
|
|
|
| META_LCB m:mstmts { map_append(outputProgram, m) } |
|
|
|
|
|
| META_IMPORT s:META_STRING ";" { inputStackPush(get(s, String, value)) } |
|
|
|
|
|
|
|
|
metaCatch = META_AT ( m:mvalue { map_append(outputProgram, m) } |
|
|
|
|
|
| META_LCB m:mstmts { map_append(outputProgram, m) } |
|
|
|
|
|
| META_IMPORT s:META_STRING ";" { inputStackPush(get(s, String, value)) } |
|
|
) |
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mvalue = { listBegin() } ( i:META_IDENT { listAppend(eval(globals, newGetVariable(i))) } |
|
|
|
|
|
|
|
|
mvalue = { listBegin() } ( i:META_IDENT { listAppend(eval(globals, newGetVariable(i))) } |
|
|
| META_LPAREN ( i:MO_OPERATION |
|
|
| META_LPAREN ( i:MO_OPERATION |
|
|
| i:meta_block |
|
|
| i:meta_block |
|
|
| i:meta_exp |
|
|
| i:meta_exp |
|
|
) META_RPAREN { listAppend(eval(globals, i)) } |
|
|
|
|
|
) { $$ = listEnd() } |
|
|
|
|
|
|
|
|
) META_RPAREN { listAppend(eval(globals, i)) } |
|
|
|
|
|
) { $$ = listEnd() } |
|
|
|
|
|
|
|
|
mstmts = { listBegin() } ( s:meta_stmt { eval(globals, s) } )* |
|
|
|
|
|
|
|
|
mstmts = { listBegin() } ( s:meta_stmt { eval(globals, s) } |
|
|
|
|
|
| a:meta_append { eval(globals, a) } |
|
|
|
|
|
)* |
|
|
( (META_NIL META_SEMICOLON )? META_RCB { listEnd(); $$ = null } |
|
|
( (META_NIL META_SEMICOLON )? META_RCB { listEnd(); $$ = null } |
|
|
| META_DAT META_SEMICOLON META_RCB { $$ = listEnd() } |
|
|
| META_DAT META_SEMICOLON META_RCB { $$ = listEnd() } |
|
|
) |
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
meta_stmt = s:meta_block { $$ = s } |
|
|
meta_stmt = s:meta_block { $$ = s } |
|
|
| META_DAT META_DOT META_APPEND META_LPAREN s:meta_exp META_RPAREN META_SEMICOLON { $$ = newUnary(Append_proto, s) } |
|
|
|
|
|
| META_SEMICOLON { $$ = null } |
|
|
| META_SEMICOLON { $$ = null } |
|
|
| l:META_IDENT p:meta_paramList e:meta_block { $$ = newFunc(l, p, e, null) } |
|
|
| l:META_IDENT p:meta_paramList e:meta_block { $$ = newFunc(l, p, e, null) } |
|
|
| META_IF META_LPAREN c:meta_exp META_RPAREN t:meta_stmt META_ELSE f:meta_stmt { $$ = newIf(c, t, f ) } |
|
|
| META_IF META_LPAREN c:meta_exp META_RPAREN t:meta_stmt META_ELSE f:meta_stmt { $$ = newIf(c, t, f ) } |
|
@ -2207,6 +2209,8 @@ meta_stmt = s:meta_block |
|
|
| t:meta_try { $$ = t } |
|
|
| t:meta_try { $$ = t } |
|
|
| e:meta_exp META_SEMICOLON { $$ = e } |
|
|
| e:meta_exp META_SEMICOLON { $$ = e } |
|
|
|
|
|
|
|
|
|
|
|
meta_append = META_DAT META_DOT META_APPEND META_LPAREN s:meta_exp META_RPAREN META_SEMICOLON { $$ = newUnary(Append_proto, s) } |
|
|
|
|
|
|
|
|
meta_block = META_LCB m:meta_makeMap |
|
|
meta_block = META_LCB m:meta_makeMap |
|
|
( s:meta_stmt { map_append(m, s) } |
|
|
( s:meta_stmt { map_append(m, s) } |
|
|
) * |
|
|
) * |
|
|