aboutsummaryrefslogtreecommitdiff
path: root/engines/director/lingo/lingo-gr.h
diff options
context:
space:
mode:
authorEugene Sandulenko2019-12-03 18:16:25 +0100
committerEugene Sandulenko2019-12-03 18:35:59 +0100
commit2432018f2ff412c8440cc0e875fda7d563ca07db (patch)
tree7c15f5c4e4ab2838b1c8a9b97c214e9033a47135 /engines/director/lingo/lingo-gr.h
parent9606b754823a7ef2ba1d55aca135f1b673c190d2 (diff)
downloadscummvm-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.h336
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 */