mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-04 09:56:30 +00:00
DIRECTOR: Make built-in functions work (always)
This commit is contained in:
parent
610075cc15
commit
953c57944e
@ -119,7 +119,7 @@ exit\n\
|
|||||||
end if\n\
|
end if\n\
|
||||||
\n\
|
\n\
|
||||||
--\n\
|
--\n\
|
||||||
mmacro check par1, par2 \n\
|
macro check par1, par2 \n\
|
||||||
, par3\n\
|
, par3\n\
|
||||||
if par1 = 3 then\n\
|
if par1 = 3 then\n\
|
||||||
put -3\n\
|
put -3\n\
|
||||||
|
@ -535,7 +535,7 @@ static const yytype_uint16 yyrline[] =
|
|||||||
225, 226, 227, 228, 229, 230, 231, 232, 235, 236,
|
225, 226, 227, 228, 229, 230, 231, 232, 235, 236,
|
||||||
237, 238, 239, 240, 243, 244, 255, 256, 257, 258,
|
237, 238, 239, 240, 243, 244, 255, 256, 257, 258,
|
||||||
263, 269, 276, 277, 278, 279, 282, 283, 284, 312,
|
263, 269, 276, 277, 278, 279, 282, 283, 284, 312,
|
||||||
312, 318, 319, 320, 321, 323, 326, 334, 335, 336
|
312, 319, 320, 321, 322, 324, 327, 335, 336, 337
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -1914,38 +1914,39 @@ yyreduce:
|
|||||||
case 70:
|
case 70:
|
||||||
#line 313 "engines/director/lingo/lingo-gr.y"
|
#line 313 "engines/director/lingo/lingo-gr.y"
|
||||||
{
|
{
|
||||||
|
g_lingo->code2(g_lingo->c_constpush, (inst)0); // Push fake value on stack
|
||||||
g_lingo->code1(g_lingo->c_procret);
|
g_lingo->code1(g_lingo->c_procret);
|
||||||
g_lingo->define(*(yyvsp[(2) - (8)].s), (yyvsp[(4) - (8)].code), (yyvsp[(5) - (8)].narg));
|
g_lingo->define(*(yyvsp[(2) - (8)].s), (yyvsp[(4) - (8)].code), (yyvsp[(5) - (8)].narg));
|
||||||
g_lingo->_indef = false; ;}
|
g_lingo->_indef = false; ;}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 71:
|
case 71:
|
||||||
#line 318 "engines/director/lingo/lingo-gr.y"
|
#line 319 "engines/director/lingo/lingo-gr.y"
|
||||||
{ (yyval.narg) = 0; ;}
|
{ (yyval.narg) = 0; ;}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 72:
|
case 72:
|
||||||
#line 319 "engines/director/lingo/lingo-gr.y"
|
#line 320 "engines/director/lingo/lingo-gr.y"
|
||||||
{ g_lingo->codeArg((yyvsp[(1) - (1)].s)); (yyval.narg) = 1; ;}
|
{ g_lingo->codeArg((yyvsp[(1) - (1)].s)); (yyval.narg) = 1; ;}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 73:
|
case 73:
|
||||||
#line 320 "engines/director/lingo/lingo-gr.y"
|
#line 321 "engines/director/lingo/lingo-gr.y"
|
||||||
{ g_lingo->codeArg((yyvsp[(3) - (3)].s)); (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;}
|
{ g_lingo->codeArg((yyvsp[(3) - (3)].s)); (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 74:
|
case 74:
|
||||||
#line 321 "engines/director/lingo/lingo-gr.y"
|
#line 322 "engines/director/lingo/lingo-gr.y"
|
||||||
{ g_lingo->codeArg((yyvsp[(4) - (4)].s)); (yyval.narg) = (yyvsp[(1) - (4)].narg) + 1; ;}
|
{ g_lingo->codeArg((yyvsp[(4) - (4)].s)); (yyval.narg) = (yyvsp[(1) - (4)].narg) + 1; ;}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 75:
|
case 75:
|
||||||
#line 323 "engines/director/lingo/lingo-gr.y"
|
#line 324 "engines/director/lingo/lingo-gr.y"
|
||||||
{ g_lingo->codeArgStore(); ;}
|
{ g_lingo->codeArgStore(); ;}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 76:
|
case 76:
|
||||||
#line 326 "engines/director/lingo/lingo-gr.y"
|
#line 327 "engines/director/lingo/lingo-gr.y"
|
||||||
{
|
{
|
||||||
g_lingo->code1(g_lingo->c_call);
|
g_lingo->code1(g_lingo->c_call);
|
||||||
g_lingo->codeString((yyvsp[(1) - (3)].s)->c_str());
|
g_lingo->codeString((yyvsp[(1) - (3)].s)->c_str());
|
||||||
@ -1955,23 +1956,23 @@ yyreduce:
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 77:
|
case 77:
|
||||||
#line 334 "engines/director/lingo/lingo-gr.y"
|
#line 335 "engines/director/lingo/lingo-gr.y"
|
||||||
{ (yyval.narg) = 0; ;}
|
{ (yyval.narg) = 0; ;}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 78:
|
case 78:
|
||||||
#line 335 "engines/director/lingo/lingo-gr.y"
|
#line 336 "engines/director/lingo/lingo-gr.y"
|
||||||
{ (yyval.narg) = 1; ;}
|
{ (yyval.narg) = 1; ;}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 79:
|
case 79:
|
||||||
#line 336 "engines/director/lingo/lingo-gr.y"
|
#line 337 "engines/director/lingo/lingo-gr.y"
|
||||||
{ (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;}
|
{ (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
/* Line 1267 of yacc.c. */
|
/* Line 1267 of yacc.c. */
|
||||||
#line 1975 "engines/director/lingo/lingo-gr.cpp"
|
#line 1976 "engines/director/lingo/lingo-gr.cpp"
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
|
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
|
||||||
@ -2185,6 +2186,6 @@ yyreturn:
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#line 339 "engines/director/lingo/lingo-gr.y"
|
#line 340 "engines/director/lingo/lingo-gr.y"
|
||||||
|
|
||||||
|
|
||||||
|
@ -311,6 +311,7 @@ gotomovie: tOF tMOVIE STRING { $$ = $3; }
|
|||||||
// on keyword
|
// on keyword
|
||||||
defn: tMACRO ID { g_lingo->_indef = true; }
|
defn: tMACRO ID { g_lingo->_indef = true; }
|
||||||
begin argdef '\n' argstore stmtlist {
|
begin argdef '\n' argstore stmtlist {
|
||||||
|
g_lingo->code2(g_lingo->c_constpush, (inst)0); // Push fake value on stack
|
||||||
g_lingo->code1(g_lingo->c_procret);
|
g_lingo->code1(g_lingo->c_procret);
|
||||||
g_lingo->define(*$2, $4, $5);
|
g_lingo->define(*$2, $4, $5);
|
||||||
g_lingo->_indef = false; }
|
g_lingo->_indef = false; }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user