diff options
Diffstat (limited to 'engines/director/lingo/lingo-gr.y')
-rw-r--r-- | engines/director/lingo/lingo-gr.y | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y index d8b7519eaa..a85644f38a 100644 --- a/engines/director/lingo/lingo-gr.y +++ b/engines/director/lingo/lingo-gr.y @@ -85,7 +85,7 @@ void yyerror(char *s) { %token<s> ID %token tDOWN tELSE tNLELSIF tEND tEXIT tFRAME tGLOBAL tGO tIF tINTO tLOOP tMACRO %token tMCI tMCIWAIT tMOVIE tNEXT tOF tPREVIOUS tPUT tREPEAT tSET tTHEN tTO tWHEN -%token tWITH tWHILE tNLELSE tFACTORY tMETHOD tALERT tBEEP +%token tWITH tWHILE tNLELSE tFACTORY tMETHOD tALERT tBEEP tCLOSERESFILE tCLOSEXLIB %token tGE tLE tGT tLT tEQ tNEQ tAND tOR tNOT %token tCONCAT tCONTAINS tSTARTS %token tSPRITE tINTERSECTS tWITHIN @@ -421,6 +421,20 @@ func: tMCI vSTRING { g_lingo->code1(g_lingo->c_mci); g_lingo->codeString($2->c WRITE_UINT32(&i, 0); g_lingo->code1(i); g_lingo->code1(g_lingo->c_beep); } + | tCLOSERESFILE expr { g_lingo->code1(g_lingo->c_closeResFile); } + | tCLOSERESFILE { + g_lingo->code1(g_lingo->c_constpush); + inst i = 0; + WRITE_UINT32(&i, 0); + g_lingo->code1(i); + g_lingo->code1(g_lingo->c_closeResFile); } + | tCLOSEXLIB expr { g_lingo->code1(g_lingo->c_closeXlib); } + | tCLOSEXLIB { + g_lingo->code1(g_lingo->c_constpush); + inst i = 0; + WRITE_UINT32(&i, 0); + g_lingo->code1(i); + g_lingo->code1(g_lingo->c_closeXlib); } ; globallist: ID { g_lingo->code1(g_lingo->c_global); g_lingo->codeString($1->c_str()); delete $1; } |