diff options
author | Eugene Sandulenko | 2019-12-03 18:16:25 +0100 |
---|---|---|
committer | Eugene Sandulenko | 2019-12-03 18:35:59 +0100 |
commit | 2432018f2ff412c8440cc0e875fda7d563ca07db (patch) | |
tree | 7c15f5c4e4ab2838b1c8a9b97c214e9033a47135 /engines/director/lingo/lingo-gr.h | |
parent | 9606b754823a7ef2ba1d55aca135f1b673c190d2 (diff) | |
download | scummvm-rg350-2432018f2ff412c8440cc0e875fda7d563ca07db.tar.gz scummvm-rg350-2432018f2ff412c8440cc0e875fda7d563ca07db.tar.bz2 scummvm-rg350-2432018f2ff412c8440cc0e875fda7d563ca07db.zip |
DIRECTOR: LINGO: Rewrite 'if' statement fully. Improve line counting
Still one particular testcase fails, but this is a major improvement in
terms of clarity. The execution is temporarily broken.
Diffstat (limited to 'engines/director/lingo/lingo-gr.h')
-rw-r--r-- | engines/director/lingo/lingo-gr.h | 336 |
1 files changed, 207 insertions, 129 deletions
diff --git a/engines/director/lingo/lingo-gr.h b/engines/director/lingo/lingo-gr.h index d440580515..9930ecdbad 100644 --- a/engines/director/lingo/lingo-gr.h +++ b/engines/director/lingo/lingo-gr.h @@ -1,14 +1,14 @@ -/* A Bison parser, made by GNU Bison 3.4. */ +/* A Bison parser, made by GNU Bison 2.3. */ -/* Bison interface for Yacc-like parsers in C +/* Skeleton interface for Bison's Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation, - Inc. + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 + Free Software Foundation, Inc. - This program is free software: you can redistribute it and/or modify + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + the Free Software Foundation; either version 2, or (at your option) + any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -16,7 +16,9 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. */ + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -31,123 +33,203 @@ This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ -/* Undocumented macros, especially those whose name start with YY_, - are private implementation details. Do not rely on them. */ - -#ifndef YY_YY_ENGINES_DIRECTOR_LINGO_LINGO_GR_HPP_INCLUDED -# define YY_YY_ENGINES_DIRECTOR_LINGO_LINGO_GR_HPP_INCLUDED -/* Debug traces. */ -#ifndef YYDEBUG -# define YYDEBUG 1 -#endif -#if YYDEBUG -extern int yydebug; -#endif - -/* Token type. */ +/* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE - enum yytokentype - { - UNARY = 258, - CASTREF = 259, - VOID = 260, - VAR = 261, - POINT = 262, - RECT = 263, - ARRAY = 264, - OBJECT = 265, - REFERENCE = 266, - INT = 267, - ARGC = 268, - ARGCNORET = 269, - THEENTITY = 270, - THEENTITYWITHID = 271, - FLOAT = 272, - BLTIN = 273, - BLTINNOARGS = 274, - BLTINNOARGSORONE = 275, - BLTINONEARG = 276, - BLTINARGLIST = 277, - TWOWORDBUILTIN = 278, - FBLTIN = 279, - FBLTINNOARGS = 280, - FBLTINONEARG = 281, - FBLTINARGLIST = 282, - RBLTIN = 283, - RBLTINONEARG = 284, - ID = 285, - STRING = 286, - HANDLER = 287, - SYMBOL = 288, - ENDCLAUSE = 289, - tPLAYACCEL = 290, - tDOWN = 291, - tELSE = 292, - tNLELSIF = 293, - tEXIT = 294, - tFRAME = 295, - tGLOBAL = 296, - tGO = 297, - tIF = 298, - tINTO = 299, - tLOOP = 300, - tMACRO = 301, - tMOVIE = 302, - tNEXT = 303, - tOF = 304, - tPREVIOUS = 305, - tPUT = 306, - tREPEAT = 307, - tSET = 308, - tTHEN = 309, - tTHENNL = 310, - tTO = 311, - tWHEN = 312, - tWITH = 313, - tWHILE = 314, - tNLELSE = 315, - tFACTORY = 316, - tMETHOD = 317, - tOPEN = 318, - tPLAY = 319, - tDONE = 320, - tINSTANCE = 321, - tGE = 322, - tLE = 323, - tGT = 324, - tLT = 325, - tEQ = 326, - tNEQ = 327, - tAND = 328, - tOR = 329, - tNOT = 330, - tMOD = 331, - tAFTER = 332, - tBEFORE = 333, - tCONCAT = 334, - tCONTAINS = 335, - tSTARTS = 336, - tCHAR = 337, - tITEM = 338, - tLINE = 339, - tWORD = 340, - tSPRITE = 341, - tINTERSECTS = 342, - tWITHIN = 343, - tTELL = 344, - tPROPERTY = 345, - tON = 346, - tME = 347 - }; + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + UNARY = 258, + CASTREF = 259, + VOID = 260, + VAR = 261, + POINT = 262, + RECT = 263, + ARRAY = 264, + OBJECT = 265, + REFERENCE = 266, + INT = 267, + ARGC = 268, + ARGCNORET = 269, + THEENTITY = 270, + THEENTITYWITHID = 271, + FLOAT = 272, + BLTIN = 273, + BLTINNOARGS = 274, + BLTINNOARGSORONE = 275, + BLTINONEARG = 276, + BLTINARGLIST = 277, + TWOWORDBUILTIN = 278, + FBLTIN = 279, + FBLTINNOARGS = 280, + FBLTINONEARG = 281, + FBLTINARGLIST = 282, + RBLTIN = 283, + RBLTINONEARG = 284, + ID = 285, + STRING = 286, + HANDLER = 287, + SYMBOL = 288, + ENDCLAUSE = 289, + tPLAYACCEL = 290, + tDOWN = 291, + tELSE = 292, + tNLELSIF = 293, + tEXIT = 294, + tFRAME = 295, + tGLOBAL = 296, + tGO = 297, + tIF = 298, + tINTO = 299, + tLOOP = 300, + tMACRO = 301, + tMOVIE = 302, + tNEXT = 303, + tOF = 304, + tPREVIOUS = 305, + tPUT = 306, + tREPEAT = 307, + tSET = 308, + tTHEN = 309, + tTHENNL = 310, + tTO = 311, + tWHEN = 312, + tWITH = 313, + tWHILE = 314, + tNLELSE = 315, + tFACTORY = 316, + tMETHOD = 317, + tOPEN = 318, + tPLAY = 319, + tDONE = 320, + tINSTANCE = 321, + tGE = 322, + tLE = 323, + tGT = 324, + tLT = 325, + tEQ = 326, + tNEQ = 327, + tAND = 328, + tOR = 329, + tNOT = 330, + tMOD = 331, + tAFTER = 332, + tBEFORE = 333, + tCONCAT = 334, + tCONTAINS = 335, + tSTARTS = 336, + tCHAR = 337, + tITEM = 338, + tLINE = 339, + tWORD = 340, + tSPRITE = 341, + tINTERSECTS = 342, + tWITHIN = 343, + tTELL = 344, + tPROPERTY = 345, + tON = 346, + tME = 347 + }; #endif +/* Tokens. */ +#define UNARY 258 +#define CASTREF 259 +#define VOID 260 +#define VAR 261 +#define POINT 262 +#define RECT 263 +#define ARRAY 264 +#define OBJECT 265 +#define REFERENCE 266 +#define INT 267 +#define ARGC 268 +#define ARGCNORET 269 +#define THEENTITY 270 +#define THEENTITYWITHID 271 +#define FLOAT 272 +#define BLTIN 273 +#define BLTINNOARGS 274 +#define BLTINNOARGSORONE 275 +#define BLTINONEARG 276 +#define BLTINARGLIST 277 +#define TWOWORDBUILTIN 278 +#define FBLTIN 279 +#define FBLTINNOARGS 280 +#define FBLTINONEARG 281 +#define FBLTINARGLIST 282 +#define RBLTIN 283 +#define RBLTINONEARG 284 +#define ID 285 +#define STRING 286 +#define HANDLER 287 +#define SYMBOL 288 +#define ENDCLAUSE 289 +#define tPLAYACCEL 290 +#define tDOWN 291 +#define tELSE 292 +#define tNLELSIF 293 +#define tEXIT 294 +#define tFRAME 295 +#define tGLOBAL 296 +#define tGO 297 +#define tIF 298 +#define tINTO 299 +#define tLOOP 300 +#define tMACRO 301 +#define tMOVIE 302 +#define tNEXT 303 +#define tOF 304 +#define tPREVIOUS 305 +#define tPUT 306 +#define tREPEAT 307 +#define tSET 308 +#define tTHEN 309 +#define tTHENNL 310 +#define tTO 311 +#define tWHEN 312 +#define tWITH 313 +#define tWHILE 314 +#define tNLELSE 315 +#define tFACTORY 316 +#define tMETHOD 317 +#define tOPEN 318 +#define tPLAY 319 +#define tDONE 320 +#define tINSTANCE 321 +#define tGE 322 +#define tLE 323 +#define tGT 324 +#define tLT 325 +#define tEQ 326 +#define tNEQ 327 +#define tAND 328 +#define tOR 329 +#define tNOT 330 +#define tMOD 331 +#define tAFTER 332 +#define tBEFORE 333 +#define tCONCAT 334 +#define tCONTAINS 335 +#define tSTARTS 336 +#define tCHAR 337 +#define tITEM 338 +#define tLINE 339 +#define tWORD 340 +#define tSPRITE 341 +#define tINTERSECTS 342 +#define tWITHIN 343 +#define tTELL 344 +#define tPROPERTY 345 +#define tON 346 +#define tME 347 + + + -/* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -union YYSTYPE -{ +typedef union YYSTYPE #line 79 "engines/director/lingo/lingo-gr.y" - +{ Common::String *s; int i; double f; @@ -155,18 +237,14 @@ union YYSTYPE int code; int narg; /* number of arguments */ Common::Array<double> *arr; - -#line 160 "engines/director/lingo/lingo-gr.hpp" - -}; -typedef union YYSTYPE YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1 +} +/* Line 1529 of yacc.c. */ +#line 243 "engines/director/lingo/lingo-gr.hpp" + YYSTYPE; +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 #endif - extern YYSTYPE yylval; -int yyparse (void); - -#endif /* !YY_YY_ENGINES_DIRECTOR_LINGO_LINGO_GR_HPP_INCLUDED */ |