aboutsummaryrefslogtreecommitdiff
path: root/engines/director/lingo/lingo-gr.y
diff options
context:
space:
mode:
Diffstat (limited to 'engines/director/lingo/lingo-gr.y')
-rw-r--r--engines/director/lingo/lingo-gr.y16
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; }