fix: introduce return-from
This commit is contained in:
parent
81add324bb
commit
8367d5dd54
|
|
@ -60,6 +60,7 @@ aref [aA][rR][eE][fF]
|
|||
t [tT]
|
||||
nil [nN][iI][lL]
|
||||
return [rR][eE][tT][uU][rR][nN]
|
||||
returnfrom [rR][eE][tT][uU][rR][nN][-][fF][rR][oO][mM]
|
||||
makearray [mM][aA][kK][eE][-][aA][rR][rR][aA][yY]
|
||||
defconstant [dD][eE][fF][cC][oO][nN][sS][tT][aA][nN][tT]
|
||||
|
||||
|
|
@ -333,6 +334,11 @@ defconstant [dD][eE][fF][cC][oO][nN][sS][tT][aA][nN][tT]
|
|||
return token::TOKEN_RETURN;
|
||||
};
|
||||
|
||||
{returnfrom} {
|
||||
std::printf("Scanned returnfrom\n");
|
||||
return token::TOKEN_RETURN_FROM;
|
||||
};
|
||||
|
||||
{makearray} {
|
||||
std::printf("Scanned makearray\n");
|
||||
return token::TOKEN_MAKE_ARRAY;
|
||||
|
|
|
|||
|
|
@ -88,6 +88,7 @@ namespace DragonLisp {
|
|||
T "t"
|
||||
NIL "nil"
|
||||
RETURN "return"
|
||||
RETURN_FROM "return-from"
|
||||
MAKE_ARRAY "make-array"
|
||||
DEFCONSTANT "defconstant"
|
||||
;
|
||||
|
|
@ -159,6 +160,7 @@ array-ref
|
|||
|
||||
return-expr
|
||||
: LPAREN RETURN R-Value RPAREN { std::printf("Parsed return-expr -> ( RETURN R-Value )\n"); $$ = drv.constructReturnAST($3); }
|
||||
| LPAREN RETURN_FROM IDENTIFIER R-Value RPAREN { std::printf("Parsed return-expr -> ( RETURN_FROM IDENTIFIER R-Value )\n"); $$ = drv.constructReturnAST($4, $3); }
|
||||
;
|
||||
|
||||
func-body-expr
|
||||
|
|
|
|||
Loading…
Reference in New Issue