📄 parse-scan.c
字号:
/* A Bison parser, made from ./parse-scan.y by GNU Bison version 1.25 */#define YYBISON 1 /* Identify Bison output. */#define PLUS_TK 258#define MINUS_TK 259#define MULT_TK 260#define DIV_TK 261#define REM_TK 262#define LS_TK 263#define SRS_TK 264#define ZRS_TK 265#define AND_TK 266#define XOR_TK 267#define OR_TK 268#define BOOL_AND_TK 269#define BOOL_OR_TK 270#define EQ_TK 271#define NEQ_TK 272#define GT_TK 273#define GTE_TK 274#define LT_TK 275#define LTE_TK 276#define PLUS_ASSIGN_TK 277#define MINUS_ASSIGN_TK 278#define MULT_ASSIGN_TK 279#define DIV_ASSIGN_TK 280#define REM_ASSIGN_TK 281#define LS_ASSIGN_TK 282#define SRS_ASSIGN_TK 283#define ZRS_ASSIGN_TK 284#define AND_ASSIGN_TK 285#define XOR_ASSIGN_TK 286#define OR_ASSIGN_TK 287#define PUBLIC_TK 288#define PRIVATE_TK 289#define PROTECTED_TK 290#define STATIC_TK 291#define FINAL_TK 292#define SYNCHRONIZED_TK 293#define VOLATILE_TK 294#define TRANSIENT_TK 295#define NATIVE_TK 296#define PAD_TK 297#define ABSTRACT_TK 298#define MODIFIER_TK 299#define DECR_TK 300#define INCR_TK 301#define DEFAULT_TK 302#define IF_TK 303#define THROW_TK 304#define BOOLEAN_TK 305#define DO_TK 306#define IMPLEMENTS_TK 307#define THROWS_TK 308#define BREAK_TK 309#define IMPORT_TK 310#define ELSE_TK 311#define INSTANCEOF_TK 312#define RETURN_TK 313#define VOID_TK 314#define CATCH_TK 315#define INTERFACE_TK 316#define CASE_TK 317#define EXTENDS_TK 318#define FINALLY_TK 319#define SUPER_TK 320#define WHILE_TK 321#define CLASS_TK 322#define SWITCH_TK 323#define CONST_TK 324#define TRY_TK 325#define FOR_TK 326#define NEW_TK 327#define CONTINUE_TK 328#define GOTO_TK 329#define PACKAGE_TK 330#define THIS_TK 331#define BYTE_TK 332#define SHORT_TK 333#define INT_TK 334#define LONG_TK 335#define CHAR_TK 336#define INTEGRAL_TK 337#define FLOAT_TK 338#define DOUBLE_TK 339#define FP_TK 340#define ID_TK 341#define REL_QM_TK 342#define REL_CL_TK 343#define NOT_TK 344#define NEG_TK 345#define ASSIGN_ANY_TK 346#define ASSIGN_TK 347#define OP_TK 348#define CP_TK 349#define OCB_TK 350#define CCB_TK 351#define OSB_TK 352#define CSB_TK 353#define SC_TK 354#define C_TK 355#define DOT_TK 356#define STRING_LIT_TK 357#define CHAR_LIT_TK 358#define INT_LIT_TK 359#define FP_LIT_TK 360#define TRUE_TK 361#define FALSE_TK 362#define BOOL_LIT_TK 363#define NULL_TK 364#line 37 "./parse-scan.y"#define JC1_LITE#include "config.h"#include "system.h"#include "obstack.h"#include "toplev.h"extern char *input_filename;extern FILE *finput, *out;/* Obstack for the lexer. */struct obstack temporary_obstack;/* The current parser context. */static struct parser_ctxt *ctxp;/* Error and warning counts, current line number, because they're used elsewhere */int java_error_count;int java_warning_count;int lineno;/* Tweak default rules when necessary. */static int absorber;#define USE_ABSORBER absorber = 0/* Keep track of the current class name and package name. */static char *current_class;static char *package_name;/* Keep track of whether things have be listed before. */static int previous_output;/* Record modifier uses */static int modifier_value;/* Keep track of number of bracket pairs after a variable declarator id. */static int bracket_count; /* Record a method declaration */struct method_declarator { char *method_name; char *args;};#define NEW_METHOD_DECLARATOR(D,N,A) \{ \ (D) = \ (struct method_declarator *)xmalloc (sizeof (struct method_declarator)); \ (D)->method_name = (N); \ (D)->args = (A); \}/* Two actions for this grammar */static void report_class_declaration PROTO ((char *));static void report_main_declaration PROTO ((struct method_declarator *));#include "lex.h"#include "parse.h"#line 100 "./parse-scan.y"typedef union { char *node; struct method_declarator *declarator; int value; /* For modifiers */} YYSTYPE;#ifndef YYDEBUG#define YYDEBUG 1#endif#include <stdio.h>#ifndef __cplusplus#ifndef __STDC__#define const#endif#endif#define YYFINAL 601#define YYFLAG -32768#define YYNTBASE 110#define YYTRANSLATE(x) ((unsigned)(x) <= 364 ? yytranslate[x] : 253)static const char yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -