⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 y.tab.h

📁 编译原理课程设计之pp2语法分析程序
💻 H
字号:
/* A Bison parser, made by GNU Bison 1.875d.  */

/* Skeleton parser for Yacc-like parsing with Bison,
   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.

   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 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
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   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, write to the Free Software
   Foundation, Inc., 59 Temple Place - Suite 330,
   Boston, MA 02111-1307, USA.  */

/* As a special exception, when this file is copied by Bison into a
   Bison output file, you may use that output file without restriction.
   This special exception was added by the Free Software Foundation
   in version 1.24 of Bison.  */

/* Tokens.  */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
   /* Put the tokens into the symbol table, so that GDB and other debuggers
      know about them.  */
   enum yytokentype {
     T_Void = 258,
     T_Bool = 259,
     T_Int = 260,
     T_Double = 261,
     T_String = 262,
     T_Class = 263,
     T_LessEqual = 264,
     T_GreaterEqual = 265,
     T_Equal = 266,
     T_NotEqual = 267,
     T_Dims = 268,
     T_And = 269,
     T_Or = 270,
     T_Null = 271,
     T_Extends = 272,
     T_This = 273,
     T_While = 274,
     T_For = 275,
     T_If = 276,
     T_Else = 277,
     T_Return = 278,
     T_Break = 279,
     T_New = 280,
     T_NewArray = 281,
     T_Print = 282,
     T_ReadInteger = 283,
     T_ReadLine = 284,
     T_Try = 285,
     T_Catch = 286,
     T_Throw = 287,
     T_Switch = 288,
     T_Case = 289,
     T_Default = 290,
     T_Identifier = 291,
     T_StringConstant = 292,
     T_IntConstant = 293,
     T_DoubleConstant = 294,
     T_BoolConstant = 295,
     UMINUS = 296,
     Lower_Else = 297
   };
#endif
#define T_Void 258
#define T_Bool 259
#define T_Int 260
#define T_Double 261
#define T_String 262
#define T_Class 263
#define T_LessEqual 264
#define T_GreaterEqual 265
#define T_Equal 266
#define T_NotEqual 267
#define T_Dims 268
#define T_And 269
#define T_Or 270
#define T_Null 271
#define T_Extends 272
#define T_This 273
#define T_While 274
#define T_For 275
#define T_If 276
#define T_Else 277
#define T_Return 278
#define T_Break 279
#define T_New 280
#define T_NewArray 281
#define T_Print 282
#define T_ReadInteger 283
#define T_ReadLine 284
#define T_Try 285
#define T_Catch 286
#define T_Throw 287
#define T_Switch 288
#define T_Case 289
#define T_Default 290
#define T_Identifier 291
#define T_StringConstant 292
#define T_IntConstant 293
#define T_DoubleConstant 294
#define T_BoolConstant 295
#define UMINUS 296
#define Lower_Else 297




#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
#line 43 "parser.y"
typedef union YYSTYPE {
    int integerConstant;
    bool boolConstant;
    char *stringConstant;
    double doubleConstant;
    char identifier[MaxIdentLen+1]; // +1 for terminating null

    Decl *decl;
    List<Decl*> *declList;
    List<VarDecl*> *varDeclList;
    List<Expr*> *exprList;

    VarDecl *varDecl;
    Type *type;
    Identifier	*ident;
    FnDecl *fnDecl;

    Stmt *stmt;
    List<Stmt*> *stmtList;
    StmtBlock *stmtBlock;

    IfStmt *ifStmt;
    WhileStmt *whileStmt;
    ForStmt *forStmt;
    ReturnStmt *returnStmt;
    BreakStmt *breakStmt;
    PrintStmt *printStmt;
    TryStmt *tryStmt;
    CatchStmt *catchStmt;
    ThrowStmt *throwStmt;
    SwitchStmt *switchStmt;                                 
    CaseStmt *caseStmt;                                     
    DefaultStmt *defaultStmt; 
    SwitchBody *switchBody;
    List<CatchStmt*> *catchStmtList;
    List<CaseStmt*>  *caseStmtList;

    Expr *expr;
    LValue *LV;
    Call *call;
} YYSTYPE;
/* Line 1285 of yacc.c.  */
#line 163 "y.tab.h"
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_TRIVIAL 1
#endif

extern YYSTYPE yylval;

#if ! defined (YYLTYPE) && ! defined (YYLTYPE_IS_DECLARED)
typedef struct YYLTYPE
{
  int first_line;
  int first_column;
  int last_line;
  int last_column;
} YYLTYPE;
# define yyltype YYLTYPE /* obsolescent; will be withdrawn */
# define YYLTYPE_IS_DECLARED 1
# define YYLTYPE_IS_TRIVIAL 1
#endif

extern YYLTYPE yylloc;


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -