diff options
Diffstat (limited to 'usr.bin/yacc/tests/regress.08.out')
-rw-r--r-- | usr.bin/yacc/tests/regress.08.out | 1942 |
1 files changed, 0 insertions, 1942 deletions
diff --git a/usr.bin/yacc/tests/regress.08.out b/usr.bin/yacc/tests/regress.08.out deleted file mode 100644 index d5d3ae0..0000000 --- a/usr.bin/yacc/tests/regress.08.out +++ /dev/null @@ -1,1942 +0,0 @@ -#ifndef lint -static const char yysccsid[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93"; -#endif - -#define YYBYACC 1 -#define YYMAJOR 1 -#define YYMINOR 9 -#define YYPATCH 20140101 - -#define YYEMPTY (-1) -#define yyclearin (yychar = YYEMPTY) -#define yyerrok (yyerrflag = 0) -#define YYRECOVERING() (yyerrflag != 0) - -#define YYPREFIX "yy" - -#define YYPURE 0 - -#line 9 "grammar.y" -#ifdef YYBISON -#include <stdlib.h> -#define YYSTYPE_IS_DECLARED -#define yyerror yaccError -#endif - -#if defined(YYBISON) || !defined(YYBYACC) -static void yyerror(const char *s); -#endif -#line 81 "grammar.y" -#include <stdio.h> -#include <ctype.h> -#include <string.h> - -#define OPT_LINTLIBRARY 1 - -#ifndef TRUE -#define TRUE (1) -#endif - -#ifndef FALSE -#define FALSE (0) -#endif - -/* #include "cproto.h" */ -#define MAX_TEXT_SIZE 1024 - -/* Prototype styles */ -#if OPT_LINTLIBRARY -#define PROTO_ANSI_LLIB -2 /* form ANSI lint-library source */ -#define PROTO_LINTLIBRARY -1 /* form lint-library source */ -#endif -#define PROTO_NONE 0 /* do not output any prototypes */ -#define PROTO_TRADITIONAL 1 /* comment out parameters */ -#define PROTO_ABSTRACT 2 /* comment out parameter names */ -#define PROTO_ANSI 3 /* ANSI C prototype */ - -typedef int PrototypeStyle; - -typedef char boolean; - -extern boolean types_out; -extern PrototypeStyle proto_style; - -#define ansiLintLibrary() (proto_style == PROTO_ANSI_LLIB) -#define knrLintLibrary() (proto_style == PROTO_LINTLIBRARY) -#define lintLibrary() (knrLintLibrary() || ansiLintLibrary()) - -#if OPT_LINTLIBRARY -#define FUNC_UNKNOWN -1 /* unspecified */ -#else -#define FUNC_UNKNOWN 0 /* unspecified (same as FUNC_NONE) */ -#endif -#define FUNC_NONE 0 /* not a function definition */ -#define FUNC_TRADITIONAL 1 /* traditional style */ -#define FUNC_ANSI 2 /* ANSI style */ -#define FUNC_BOTH 3 /* both styles */ - -typedef int FuncDefStyle; - -/* Source file text */ -typedef struct text { - char text[MAX_TEXT_SIZE]; /* source text */ - long begin; /* offset in temporary file */ -} Text; - -/* Declaration specifier flags */ -#define DS_NONE 0 /* default */ -#define DS_EXTERN 1 /* contains "extern" specifier */ -#define DS_STATIC 2 /* contains "static" specifier */ -#define DS_CHAR 4 /* contains "char" type specifier */ -#define DS_SHORT 8 /* contains "short" type specifier */ -#define DS_FLOAT 16 /* contains "float" type specifier */ -#define DS_INLINE 32 /* contains "inline" specifier */ -#define DS_JUNK 64 /* we're not interested in this declaration */ - -/* This structure stores information about a declaration specifier. */ -typedef struct decl_spec { - unsigned short flags; /* flags defined above */ - char *text; /* source text */ - long begin; /* offset in temporary file */ -} DeclSpec; - -/* This is a list of function parameters. */ -typedef struct _ParameterList { - struct parameter *first; /* pointer to first parameter in list */ - struct parameter *last; /* pointer to last parameter in list */ - long begin_comment; /* begin offset of comment */ - long end_comment; /* end offset of comment */ - char *comment; /* comment at start of parameter list */ -} ParameterList; - -/* This structure stores information about a declarator. */ -typedef struct _Declarator { - char *name; /* name of variable or function */ - char *text; /* source text */ - long begin; /* offset in temporary file */ - long begin_comment; /* begin offset of comment */ - long end_comment; /* end offset of comment */ - FuncDefStyle func_def; /* style of function definition */ - ParameterList params; /* function parameters */ - boolean pointer; /* TRUE if it declares a pointer */ - struct _Declarator *head; /* head function declarator */ - struct _Declarator *func_stack; /* stack of function declarators */ - struct _Declarator *next; /* next declarator in list */ -} Declarator; - -/* This structure stores information about a function parameter. */ -typedef struct parameter { - struct parameter *next; /* next parameter in list */ - DeclSpec decl_spec; - Declarator *declarator; - char *comment; /* comment following the parameter */ -} Parameter; - -/* This is a list of declarators. */ -typedef struct declarator_list { - Declarator *first; /* pointer to first declarator in list */ - Declarator *last; /* pointer to last declarator in list */ -} DeclaratorList; - -/* #include "symbol.h" */ -typedef struct symbol { - struct symbol *next; /* next symbol in list */ - char *name; /* name of symbol */ - char *value; /* value of symbol (for defines) */ - short flags; /* symbol attributes */ -} Symbol; - -/* parser stack entry type */ -typedef union { - Text text; - DeclSpec decl_spec; - Parameter *parameter; - ParameterList param_list; - Declarator *declarator; - DeclaratorList decl_list; -} YYSTYPE; - -/* The hash table length should be a prime number. */ -#define SYM_MAX_HASH 251 - -typedef struct symbol_table { - Symbol *bucket[SYM_MAX_HASH]; /* hash buckets */ -} SymbolTable; - -extern SymbolTable *new_symbol_table /* Create symbol table */ - (void); -extern void free_symbol_table /* Destroy symbol table */ - (SymbolTable *s); -extern Symbol *find_symbol /* Lookup symbol name */ - (SymbolTable *s, const char *n); -extern Symbol *new_symbol /* Define new symbol */ - (SymbolTable *s, const char *n, const char *v, int f); - -/* #include "semantic.h" */ -extern void new_decl_spec (DeclSpec *, const char *, long, int); -extern void free_decl_spec (DeclSpec *); -extern void join_decl_specs (DeclSpec *, DeclSpec *, DeclSpec *); -extern void check_untagged (DeclSpec *); -extern Declarator *new_declarator (const char *, const char *, long); -extern void free_declarator (Declarator *); -extern void new_decl_list (DeclaratorList *, Declarator *); -extern void free_decl_list (DeclaratorList *); -extern void add_decl_list (DeclaratorList *, DeclaratorList *, Declarator *); -extern Parameter *new_parameter (DeclSpec *, Declarator *); -extern void free_parameter (Parameter *); -extern void new_param_list (ParameterList *, Parameter *); -extern void free_param_list (ParameterList *); -extern void add_param_list (ParameterList *, ParameterList *, Parameter *); -extern void new_ident_list (ParameterList *); -extern void add_ident_list (ParameterList *, ParameterList *, const char *); -extern void set_param_types (ParameterList *, DeclSpec *, DeclaratorList *); -extern void gen_declarations (DeclSpec *, DeclaratorList *); -extern void gen_prototype (DeclSpec *, Declarator *); -extern void gen_func_declarator (Declarator *); -extern void gen_func_definition (DeclSpec *, Declarator *); - -extern void init_parser (void); -extern void process_file (FILE *infile, char *name); -extern char *cur_text (void); -extern char *cur_file_name (void); -extern char *implied_typedef (void); -extern void include_file (char *name, int convert); -extern char *supply_parm (int count); -extern char *xstrdup (const char *); -extern int already_declared (char *name); -extern int is_actual_func (Declarator *d); -extern int lint_ellipsis (Parameter *p); -extern int want_typedef (void); -extern void begin_tracking (void); -extern void begin_typedef (void); -extern void copy_typedef (char *s); -extern void ellipsis_varargs (Declarator *d); -extern void end_typedef (void); -extern void flush_varargs (void); -extern void fmt_library (int code); -extern void imply_typedef (const char *s); -extern void indent (FILE *outf); -extern void put_blankline (FILE *outf); -extern void put_body (FILE *outf, DeclSpec *decl_spec, Declarator *declarator); -extern void put_char (FILE *outf, int c); -extern void put_error (void); -extern void put_newline (FILE *outf); -extern void put_padded (FILE *outf, const char *s); -extern void put_string (FILE *outf, const char *s); -extern void track_in (void); - -extern boolean file_comments; -extern FuncDefStyle func_style; -extern char base_file[]; - -extern int yylex (void); - -/* declaration specifier attributes for the typedef statement currently being - * scanned - */ -static int cur_decl_spec_flags; - -/* pointer to parameter list for the current function definition */ -static ParameterList *func_params; - -/* A parser semantic action sets this pointer to the current declarator in - * a function parameter declaration in order to catch any comments following - * the parameter declaration on the same line. If the lexer scans a comment - * and <cur_declarator> is not NULL, then the comment is attached to the - * declarator. To ignore subsequent comments, the lexer sets this to NULL - * after scanning a comment or end of line. - */ -static Declarator *cur_declarator; - -/* temporary string buffer */ -static char buf[MAX_TEXT_SIZE]; - -/* table of typedef names */ -static SymbolTable *typedef_names; - -/* table of define names */ -static SymbolTable *define_names; - -/* table of type qualifiers */ -static SymbolTable *type_qualifiers; - -/* information about the current input file */ -typedef struct { - char *base_name; /* base input file name */ - char *file_name; /* current file name */ - FILE *file; /* input file */ - unsigned line_num; /* current line number in input file */ - FILE *tmp_file; /* temporary file */ - long begin_comment; /* tmp file offset after last written ) or ; */ - long end_comment; /* tmp file offset after last comment */ - boolean convert; /* if TRUE, convert function definitions */ - boolean changed; /* TRUE if conversion done in this file */ -} IncludeStack; - -static IncludeStack *cur_file; /* current input file */ - -/* #include "yyerror.c" */ - -static int haveAnsiParam (void); - - -/* Flags to enable us to find if a procedure returns a value. - */ -static int return_val; /* nonzero on BRACES iff return-expression found */ - -static const char * -dft_decl_spec (void) -{ - return (lintLibrary() && !return_val) ? "void" : "int"; -} - -static int -haveAnsiParam (void) -{ - Parameter *p; - if (func_params != 0) { - for (p = func_params->first; p != 0; p = p->next) { - if (p->declarator->func_def == FUNC_ANSI) { - return TRUE; - } - } - } - return FALSE; -} -#line 306 "/dev/stdout" - -/* compatibility with bison */ -#ifdef YYPARSE_PARAM -/* compatibility with FreeBSD */ -# ifdef YYPARSE_PARAM_TYPE -# define YYPARSE_DECL() yyparse(YYPARSE_PARAM_TYPE YYPARSE_PARAM) -# else -# define YYPARSE_DECL() yyparse(void *YYPARSE_PARAM) -# endif -#else -# define YYPARSE_DECL() yyparse(void) -#endif - -/* Parameters sent to lex. */ -#ifdef YYLEX_PARAM -# define YYLEX_DECL() yylex(void *YYLEX_PARAM) -# define YYLEX yylex(YYLEX_PARAM) -#else -# define YYLEX_DECL() yylex(void) -# define YYLEX yylex() -#endif - -/* Parameters sent to yyerror. */ -#ifndef YYERROR_DECL -#define YYERROR_DECL() yyerror(const char *s) -#endif -#ifndef YYERROR_CALL -#define YYERROR_CALL(msg) yyerror(msg) -#endif - -extern int YYPARSE_DECL(); - -#define T_IDENTIFIER 257 -#define T_TYPEDEF_NAME 258 -#define T_DEFINE_NAME 259 -#define T_AUTO 260 -#define T_EXTERN 261 -#define T_REGISTER 262 -#define T_STATIC 263 -#define T_TYPEDEF 264 -#define T_INLINE 265 -#define T_EXTENSION 266 -#define T_CHAR 267 -#define T_DOUBLE 268 -#define T_FLOAT 269 -#define T_INT 270 -#define T_VOID 271 -#define T_LONG 272 -#define T_SHORT 273 -#define T_SIGNED 274 -#define T_UNSIGNED 275 -#define T_ENUM 276 -#define T_STRUCT 277 -#define T_UNION 278 -#define T_Bool 279 -#define T_Complex 280 -#define T_Imaginary 281 -#define T_TYPE_QUALIFIER 282 -#define T_BRACKETS 283 -#define T_LBRACE 284 -#define T_MATCHRBRACE 285 -#define T_ELLIPSIS 286 -#define T_INITIALIZER 287 -#define T_STRING_LITERAL 288 -#define T_ASM 289 -#define T_ASMARG 290 -#define T_VA_DCL 291 -#define YYERRCODE 256 -static const short yylhs[] = { -1, - 0, 0, 26, 26, 27, 27, 27, 27, 27, 27, - 27, 31, 30, 30, 28, 28, 34, 28, 32, 32, - 33, 33, 35, 35, 37, 38, 29, 39, 29, 36, - 36, 36, 40, 40, 1, 1, 2, 2, 2, 3, - 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 5, 5, 6, 6, 6, 19, 19, 8, 8, 9, - 41, 9, 7, 7, 7, 25, 23, 23, 10, 10, - 11, 11, 11, 11, 11, 20, 20, 21, 21, 22, - 22, 14, 14, 15, 15, 16, 16, 16, 17, 17, - 18, 18, 24, 24, 12, 12, 12, 13, 13, 13, - 13, 13, 13, 13, -}; -static const short yylen[] = { 2, - 0, 1, 1, 2, 1, 1, 1, 1, 3, 2, - 2, 2, 3, 3, 2, 3, 0, 5, 2, 1, - 0, 1, 1, 3, 0, 0, 7, 0, 5, 0, - 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 3, 2, 2, 1, 1, 1, 3, 1, - 0, 4, 3, 2, 2, 1, 1, 1, 2, 1, - 1, 3, 2, 4, 4, 2, 3, 0, 1, 1, - 2, 1, 3, 1, 3, 2, 2, 1, 0, 1, - 1, 3, 1, 2, 1, 2, 1, 3, 2, 1, - 4, 3, 3, 2, -}; -static const short yydefred[] = { 0, - 0, 0, 0, 0, 77, 0, 62, 40, 0, 42, - 43, 20, 44, 0, 46, 47, 48, 49, 54, 50, - 51, 52, 53, 76, 66, 67, 55, 56, 57, 61, - 0, 7, 0, 0, 35, 37, 38, 39, 59, 60, - 28, 0, 0, 0, 103, 81, 0, 0, 3, 5, - 6, 8, 0, 10, 11, 78, 0, 90, 0, 0, - 104, 0, 19, 0, 41, 45, 15, 36, 0, 68, - 0, 0, 0, 83, 0, 0, 64, 0, 0, 74, - 4, 58, 0, 82, 87, 91, 0, 14, 13, 9, - 16, 0, 71, 0, 31, 33, 0, 0, 0, 0, - 0, 94, 0, 0, 101, 12, 63, 73, 0, 0, - 69, 0, 0, 0, 34, 0, 110, 96, 97, 0, - 0, 84, 0, 85, 0, 23, 0, 0, 72, 26, - 29, 114, 0, 0, 0, 109, 0, 93, 95, 102, - 18, 0, 0, 108, 113, 112, 0, 24, 27, 111, -}; -static const short yydgoto[] = { 33, - 87, 35, 36, 37, 38, 39, 40, 69, 70, 41, - 42, 119, 120, 100, 101, 102, 103, 104, 43, 44, - 59, 60, 45, 46, 47, 48, 49, 50, 51, 52, - 77, 53, 127, 109, 128, 97, 94, 143, 72, 98, - 112, -}; -static const short yysindex[] = { -2, - -3, 27, -239, -177, 0, 0, 0, 0, -274, 0, - 0, 0, 0, -246, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -266, 0, 0, 455, 0, 0, 0, 0, 0, 0, - 0, -35, -245, 128, 0, 0, -245, -2, 0, 0, - 0, 0, 642, 0, 0, 0, -15, 0, -12, -239, - 0, 590, 0, -27, 0, 0, 0, 0, -10, 0, - -11, 534, -72, 0, -237, -232, 0, -35, -232, 0, - 0, 0, 642, 0, 0, 0, 455, 0, 0, 0, - 0, 27, 0, 534, 0, 0, -222, 617, 209, 34, - 39, 0, 44, 42, 0, 0, 0, 0, 27, -11, - 0, -200, -196, -195, 0, 174, 0, 0, 0, -33, - 243, 0, 561, 0, -177, 0, 33, 49, 0, 0, - 0, 0, 53, 55, 417, 0, -33, 0, 0, 0, - 0, 27, -188, 0, 0, 0, 57, 0, 0, 0, -}; -static const short yyrindex[] = { 99, - 0, 0, 275, 0, 0, -38, 0, 0, 481, 0, - 0, 0, 0, 509, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 30, 0, 0, 0, 0, 0, 101, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 343, 309, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 98, -182, 62, 0, 0, 133, 0, 64, 379, 0, - 0, 0, -5, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -182, 0, 0, 0, -180, -19, 0, - 65, 0, 0, 68, 0, 0, 0, 0, 51, 9, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -13, - 19, 0, 0, 0, 0, 0, 0, 52, 0, 0, - 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -}; -static const short yygindex[] = { 0, - 11, -17, 0, 0, 13, 0, 0, 0, 20, 8, - -43, -1, -8, -89, 0, -9, 0, 0, 0, -44, - 0, 0, 4, 0, 0, 0, 70, -53, 0, 0, - -18, 0, 0, 0, 0, 22, 0, 0, 0, 0, - 0, -}; -#define YYTABLESIZE 924 -static const short yytable[] = { 58, - 78, 58, 58, 58, 73, 58, 135, 61, 88, 57, - 34, 5, 56, 62, 85, 58, 68, 63, 96, 7, - 58, 98, 78, 64, 98, 84, 134, 107, 80, 3, - 107, 90, 17, 92, 17, 4, 17, 2, 75, 3, - 96, 71, 30, 89, 115, 147, 76, 106, 91, 93, - 79, 75, 70, 17, 121, 55, 32, 107, 34, 105, - 108, 114, 105, 83, 4, 68, 2, 70, 3, 68, - 80, 121, 86, 80, 122, 106, 105, 78, 106, 5, - 56, 68, 123, 99, 124, 125, 129, 130, 80, 131, - 80, 141, 142, 144, 110, 145, 149, 150, 1, 110, - 2, 30, 99, 32, 79, 92, 118, 79, 100, 21, - 22, 111, 137, 139, 133, 113, 126, 81, 0, 0, - 0, 0, 79, 57, 79, 0, 99, 0, 140, 0, - 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, - 0, 70, 0, 0, 0, 99, 0, 0, 0, 148, - 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, - 0, 0, 0, 0, 0, 4, 0, 2, 0, 0, - 65, 0, 65, 65, 65, 0, 65, 0, 0, 0, - 0, 0, 0, 0, 5, 6, 7, 8, 65, 10, - 11, 65, 13, 66, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 0, 4, 0, 116, 132, 3, 0, 0, 58, 58, - 58, 58, 58, 58, 58, 78, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 78, 4, 74, 116, 136, - 3, 17, 78, 1, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 4, 54, 116, 5, 56, 0, 31, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 88, 80, 88, 88, 88, 0, 88, 0, - 80, 79, 79, 79, 79, 79, 79, 79, 79, 79, - 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, - 79, 79, 79, 79, 79, 79, 89, 79, 89, 89, - 89, 0, 89, 0, 79, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 86, 25, 86, 86, 5, 56, 86, 0, 25, 65, - 65, 65, 65, 65, 65, 65, 0, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 75, 0, 75, 75, - 75, 0, 75, 0, 0, 0, 0, 0, 0, 0, - 5, 6, 7, 8, 65, 10, 11, 75, 13, 66, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 117, 146, 0, 0, - 0, 0, 0, 0, 0, 5, 6, 7, 8, 65, - 10, 11, 0, 13, 66, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 117, 4, 0, 2, 0, 3, 0, 0, 5, - 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 67, 0, 0, 0, 0, 41, 0, - 41, 0, 41, 0, 0, 117, 0, 0, 0, 0, - 0, 88, 88, 0, 0, 0, 0, 0, 0, 41, - 0, 0, 0, 0, 0, 0, 45, 0, 45, 0, - 45, 0, 0, 0, 0, 0, 0, 88, 0, 0, - 0, 0, 0, 0, 0, 89, 89, 45, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 89, 0, 0, 0, 0, 0, 0, 0, 86, - 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 75, 75, 75, 75, 75, - 75, 75, 0, 75, 75, 75, 75, 75, 75, 75, - 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, - 75, 75, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 7, 8, 65, 10, 11, - 0, 13, 66, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 6, 7, 8, 65, 10, 11, 0, 13, - 66, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 41, 41, 41, - 41, 41, 41, 41, 0, 41, 41, 41, 41, 41, - 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 41, 41, 41, 0, 0, 45, 45, 45, 45, 45, - 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 82, 7, 8, 65, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 0, 0, 82, 7, - 8, 65, 10, 11, 95, 13, 66, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 0, 0, 0, 138, 82, 7, 8, - 65, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 0, 75, 82, 7, 8, 65, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 82, - 7, 8, 65, 10, 11, 0, 13, 66, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, -}; -static const short yycheck[] = { 38, - 44, 40, 41, 42, 40, 44, 40, 4, 62, 2, - 0, 257, 258, 288, 59, 3, 34, 264, 72, 259, - 59, 41, 61, 290, 44, 41, 116, 41, 47, 42, - 44, 59, 38, 44, 40, 38, 42, 40, 284, 42, - 94, 34, 282, 62, 98, 135, 43, 285, 59, 61, - 47, 284, 44, 59, 99, 59, 59, 76, 48, 41, - 79, 284, 44, 53, 38, 83, 40, 59, 42, 87, - 41, 116, 60, 44, 41, 41, 73, 121, 44, 257, - 258, 99, 44, 73, 41, 44, 287, 284, 59, 285, - 61, 59, 44, 41, 87, 41, 285, 41, 0, 92, - 0, 284, 41, 284, 41, 41, 99, 44, 41, 59, - 59, 92, 121, 123, 116, 94, 109, 48, -1, -1, - -1, -1, 59, 116, 61, -1, 116, -1, 125, -1, - -1, -1, -1, 123, -1, -1, -1, -1, -1, -1, - -1, 44, -1, -1, -1, 135, -1, -1, -1, 142, - -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, - -1, -1, -1, -1, -1, 38, -1, 40, -1, -1, - 38, -1, 40, 41, 42, -1, 44, -1, -1, -1, - -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, - 263, 59, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - -1, 38, -1, 40, 41, 42, -1, -1, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 38, 283, 40, 283, - 42, 257, 291, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 38, 285, 40, 257, 258, -1, 289, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 38, 284, 40, 41, 42, -1, 44, -1, - 291, 258, 259, 260, 261, 262, 263, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 38, 284, 40, 41, - 42, -1, 44, -1, 291, 258, 259, 260, 261, 262, - 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 38, 284, 40, 41, 257, 258, 44, -1, 291, 257, - 258, 259, 260, 261, 262, 263, -1, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 38, -1, 40, 41, - 42, -1, 44, -1, -1, -1, -1, -1, -1, -1, - 257, 258, 259, 260, 261, 262, 263, 59, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 41, -1, -1, - -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, - 262, 263, -1, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 38, -1, 40, -1, 42, -1, -1, 257, - 258, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 59, -1, -1, -1, -1, 38, -1, - 40, -1, 42, -1, -1, 283, -1, -1, -1, -1, - -1, 257, 258, -1, -1, -1, -1, -1, -1, 59, - -1, -1, -1, -1, -1, -1, 38, -1, 40, -1, - 42, -1, -1, -1, -1, -1, -1, 283, -1, -1, - -1, -1, -1, -1, -1, 257, 258, 59, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 283, -1, -1, -1, -1, -1, -1, -1, 257, - 258, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 283, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, - 262, 263, -1, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, - -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 257, 258, 259, 260, 261, 262, 263, -1, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 257, 258, 259, - 260, 261, 262, 263, -1, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, -1, -1, 257, 258, 259, 260, 261, - 262, 263, -1, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 258, 259, 260, 261, 262, 263, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, -1, -1, 258, 259, - 260, 261, 262, 263, 291, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, -1, -1, -1, 286, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, -1, 284, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 258, - 259, 260, 261, 262, 263, -1, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, -}; -#define YYFINAL 33 -#ifndef YYDEBUG -#define YYDEBUG 0 -#endif -#define YYMAXTOKEN 291 -#define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? (YYMAXTOKEN + 1) : (a)) -#if YYDEBUG -static const char *yyname[] = { - -"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,"'&'",0,"'('","')'","'*'",0,"','",0,0,0,0,0,0,0,0,0,0,0,0,0,0,"';'",0, -"'='",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -"T_IDENTIFIER","T_TYPEDEF_NAME","T_DEFINE_NAME","T_AUTO","T_EXTERN", -"T_REGISTER","T_STATIC","T_TYPEDEF","T_INLINE","T_EXTENSION","T_CHAR", -"T_DOUBLE","T_FLOAT","T_INT","T_VOID","T_LONG","T_SHORT","T_SIGNED", -"T_UNSIGNED","T_ENUM","T_STRUCT","T_UNION","T_Bool","T_Complex","T_Imaginary", -"T_TYPE_QUALIFIER","T_BRACKETS","T_LBRACE","T_MATCHRBRACE","T_ELLIPSIS", -"T_INITIALIZER","T_STRING_LITERAL","T_ASM","T_ASMARG","T_VA_DCL", -"illegal-symbol", -}; -static const char *yyrule[] = { -"$accept : program", -"program :", -"program : translation_unit", -"translation_unit : external_declaration", -"translation_unit : translation_unit external_declaration", -"external_declaration : declaration", -"external_declaration : function_definition", -"external_declaration : ';'", -"external_declaration : linkage_specification", -"external_declaration : T_ASM T_ASMARG ';'", -"external_declaration : error T_MATCHRBRACE", -"external_declaration : error ';'", -"braces : T_LBRACE T_MATCHRBRACE", -"linkage_specification : T_EXTERN T_STRING_LITERAL braces", -"linkage_specification : T_EXTERN T_STRING_LITERAL declaration", -"declaration : decl_specifiers ';'", -"declaration : decl_specifiers init_declarator_list ';'", -"$$1 :", -"declaration : any_typedef decl_specifiers $$1 opt_declarator_list ';'", -"any_typedef : T_EXTENSION T_TYPEDEF", -"any_typedef : T_TYPEDEF", -"opt_declarator_list :", -"opt_declarator_list : declarator_list", -"declarator_list : declarator", -"declarator_list : declarator_list ',' declarator", -"$$2 :", -"$$3 :", -"function_definition : decl_specifiers declarator $$2 opt_declaration_list T_LBRACE $$3 T_MATCHRBRACE", -"$$4 :", -"function_definition : declarator $$4 opt_declaration_list T_LBRACE T_MATCHRBRACE", -"opt_declaration_list :", -"opt_declaration_list : T_VA_DCL", -"opt_declaration_list : declaration_list", -"declaration_list : declaration", -"declaration_list : declaration_list declaration", -"decl_specifiers : decl_specifier", -"decl_specifiers : decl_specifiers decl_specifier", -"decl_specifier : storage_class", -"decl_specifier : type_specifier", -"decl_specifier : type_qualifier", -"storage_class : T_AUTO", -"storage_class : T_EXTERN", -"storage_class : T_REGISTER", -"storage_class : T_STATIC", -"storage_class : T_INLINE", -"storage_class : T_EXTENSION", -"type_specifier : T_CHAR", -"type_specifier : T_DOUBLE", -"type_specifier : T_FLOAT", -"type_specifier : T_INT", -"type_specifier : T_LONG", -"type_specifier : T_SHORT", -"type_specifier : T_SIGNED", -"type_specifier : T_UNSIGNED", -"type_specifier : T_VOID", -"type_specifier : T_Bool", -"type_specifier : T_Complex", -"type_specifier : T_Imaginary", -"type_specifier : T_TYPEDEF_NAME", -"type_specifier : struct_or_union_specifier", -"type_specifier : enum_specifier", -"type_qualifier : T_TYPE_QUALIFIER", -"type_qualifier : T_DEFINE_NAME", -"struct_or_union_specifier : struct_or_union any_id braces", -"struct_or_union_specifier : struct_or_union braces", -"struct_or_union_specifier : struct_or_union any_id", -"struct_or_union : T_STRUCT", -"struct_or_union : T_UNION", -"init_declarator_list : init_declarator", -"init_declarator_list : init_declarator_list ',' init_declarator", -"init_declarator : declarator", -"$$5 :", -"init_declarator : declarator '=' $$5 T_INITIALIZER", -"enum_specifier : enumeration any_id braces", -"enum_specifier : enumeration braces", -"enum_specifier : enumeration any_id", -"enumeration : T_ENUM", -"any_id : T_IDENTIFIER", -"any_id : T_TYPEDEF_NAME", -"declarator : pointer direct_declarator", -"declarator : direct_declarator", -"direct_declarator : identifier_or_ref", -"direct_declarator : '(' declarator ')'", -"direct_declarator : direct_declarator T_BRACKETS", -"direct_declarator : direct_declarator '(' parameter_type_list ')'", -"direct_declarator : direct_declarator '(' opt_identifier_list ')'", -"pointer : '*' opt_type_qualifiers", -"pointer : '*' opt_type_qualifiers pointer", -"opt_type_qualifiers :", -"opt_type_qualifiers : type_qualifier_list", -"type_qualifier_list : type_qualifier", -"type_qualifier_list : type_qualifier_list type_qualifier", -"parameter_type_list : parameter_list", -"parameter_type_list : parameter_list ',' T_ELLIPSIS", -"parameter_list : parameter_declaration", -"parameter_list : parameter_list ',' parameter_declaration", -"parameter_declaration : decl_specifiers declarator", -"parameter_declaration : decl_specifiers abs_declarator", -"parameter_declaration : decl_specifiers", -"opt_identifier_list :", -"opt_identifier_list : identifier_list", -"identifier_list : any_id", -"identifier_list : identifier_list ',' any_id", -"identifier_or_ref : any_id", -"identifier_or_ref : '&' any_id", -"abs_declarator : pointer", -"abs_declarator : pointer direct_abs_declarator", -"abs_declarator : direct_abs_declarator", -"direct_abs_declarator : '(' abs_declarator ')'", -"direct_abs_declarator : direct_abs_declarator T_BRACKETS", -"direct_abs_declarator : T_BRACKETS", -"direct_abs_declarator : direct_abs_declarator '(' parameter_type_list ')'", -"direct_abs_declarator : direct_abs_declarator '(' ')'", -"direct_abs_declarator : '(' parameter_type_list ')'", -"direct_abs_declarator : '(' ')'", - -}; -#endif - -int yydebug; -int yynerrs; - -int yyerrflag; -int yychar; -YYSTYPE yyval; -YYSTYPE yylval; - -/* define the initial stack-sizes */ -#ifdef YYSTACKSIZE -#undef YYMAXDEPTH -#define YYMAXDEPTH YYSTACKSIZE -#else -#ifdef YYMAXDEPTH -#define YYSTACKSIZE YYMAXDEPTH -#else -#define YYSTACKSIZE 10000 -#define YYMAXDEPTH 10000 -#endif -#endif - -#define YYINITSTACKSIZE 200 - -typedef struct { - unsigned stacksize; - short *s_base; - short *s_mark; - short *s_last; - YYSTYPE *l_base; - YYSTYPE *l_mark; -} YYSTACKDATA; -/* variables for the parser stack */ -static YYSTACKDATA yystack; -#line 1014 "grammar.y" - -/* lex.yy.c */ -#define BEGIN yy_start = 1 + 2 * - -#define CPP1 1 -#define INIT1 2 -#define INIT2 3 -#define CURLY 4 -#define LEXYACC 5 -#define ASM 6 -#define CPP_INLINE 7 - -extern char *yytext; -extern FILE *yyin, *yyout; - -static int curly; /* number of curly brace nesting levels */ -static int ly_count; /* number of occurrences of %% */ -static int inc_depth; /* include nesting level */ -static SymbolTable *included_files; /* files already included */ -static int yy_start = 0; /* start state number */ - -#define grammar_error(s) yaccError(s) - -static void -yaccError (const char *msg) -{ - func_params = NULL; - put_error(); /* tell what line we're on, and what file */ - fprintf(stderr, "%s at token '%s'\n", msg, yytext); -} - -/* Initialize the table of type qualifier keywords recognized by the lexical - * analyzer. - */ -void -init_parser (void) -{ - static const char *keywords[] = { - "const", - "restrict", - "volatile", - "interrupt", -#ifdef vms - "noshare", - "readonly", -#endif -#if defined(MSDOS) || defined(OS2) - "__cdecl", - "__export", - "__far", - "__fastcall", - "__fortran", - "__huge", - "__inline", - "__interrupt", - "__loadds", - "__near", - "__pascal", - "__saveregs", - "__segment", - "__stdcall", - "__syscall", - "_cdecl", - "_cs", - "_ds", - "_es", - "_export", - "_far", - "_fastcall", - "_fortran", - "_huge", - "_interrupt", - "_loadds", - "_near", - "_pascal", - "_saveregs", - "_seg", - "_segment", - "_ss", - "cdecl", - "far", - "huge", - "near", - "pascal", -#ifdef OS2 - "__far16", -#endif -#endif -#ifdef __GNUC__ - /* gcc aliases */ - "__builtin_va_arg", - "__builtin_va_list", - "__const", - "__const__", - "__inline", - "__inline__", - "__restrict", - "__restrict__", - "__volatile", - "__volatile__", -#endif - }; - unsigned i; - - /* Initialize type qualifier table. */ - type_qualifiers = new_symbol_table(); - for (i = 0; i < sizeof(keywords)/sizeof(keywords[0]); ++i) { - new_symbol(type_qualifiers, keywords[i], NULL, DS_NONE); - } -} - -/* Process the C source file. Write function prototypes to the standard - * output. Convert function definitions and write the converted source - * code to a temporary file. - */ -void -process_file (FILE *infile, char *name) -{ - char *s; - - if (strlen(name) > 2) { - s = name + strlen(name) - 2; - if (*s == '.') { - ++s; - if (*s == 'l' || *s == 'y') - BEGIN LEXYACC; -#if defined(MSDOS) || defined(OS2) - if (*s == 'L' || *s == 'Y') - BEGIN LEXYACC; -#endif - } - } - - included_files = new_symbol_table(); - typedef_names = new_symbol_table(); - define_names = new_symbol_table(); - inc_depth = -1; - curly = 0; - ly_count = 0; - func_params = NULL; - yyin = infile; - include_file(strcpy(base_file, name), func_style != FUNC_NONE); - if (file_comments) { -#if OPT_LINTLIBRARY - if (lintLibrary()) { - put_blankline(stdout); - begin_tracking(); - } -#endif - put_string(stdout, "/* "); - put_string(stdout, cur_file_name()); - put_string(stdout, " */\n"); - } - yyparse(); - free_symbol_table(define_names); - free_symbol_table(typedef_names); - free_symbol_table(included_files); -} - -#ifdef NO_LEAKS -void -free_parser(void) -{ - free_symbol_table (type_qualifiers); -#ifdef FLEX_SCANNER - if (yy_current_buffer != 0) - yy_delete_buffer(yy_current_buffer); -#endif -} -#endif -#line 1006 "/dev/stdout" - -#if YYDEBUG -#include <stdio.h> /* needed for printf */ -#endif - -#include <stdlib.h> /* needed for malloc, etc */ -#include <string.h> /* needed for memset */ - -/* allocate initial stack or double stack size, up to YYMAXDEPTH */ -static int yygrowstack(YYSTACKDATA *data) -{ - int i; - unsigned newsize; - short *newss; - YYSTYPE *newvs; - - if ((newsize = data->stacksize) == 0) - newsize = YYINITSTACKSIZE; - else if (newsize >= YYMAXDEPTH) - return -1; - else if ((newsize *= 2) > YYMAXDEPTH) - newsize = YYMAXDEPTH; - - i = (int) (data->s_mark - data->s_base); - newss = (short *)realloc(data->s_base, newsize * sizeof(*newss)); - if (newss == 0) - return -1; - - data->s_base = newss; - data->s_mark = newss + i; - - newvs = (YYSTYPE *)realloc(data->l_base, newsize * sizeof(*newvs)); - if (newvs == 0) - return -1; - - data->l_base = newvs; - data->l_mark = newvs + i; - - data->stacksize = newsize; - data->s_last = data->s_base + newsize - 1; - return 0; -} - -#if YYPURE || defined(YY_NO_LEAKS) -static void yyfreestack(YYSTACKDATA *data) -{ - free(data->s_base); - free(data->l_base); - memset(data, 0, sizeof(*data)); -} -#else -#define yyfreestack(data) /* nothing */ -#endif - -#define YYABORT goto yyabort -#define YYREJECT goto yyabort -#define YYACCEPT goto yyaccept -#define YYERROR goto yyerrlab - -int -YYPARSE_DECL() -{ - int yym, yyn, yystate; -#if YYDEBUG - const char *yys; - - if ((yys = getenv("YYDEBUG")) != 0) - { - yyn = *yys; - if (yyn >= '0' && yyn <= '9') - yydebug = yyn - '0'; - } -#endif - - yynerrs = 0; - yyerrflag = 0; - yychar = YYEMPTY; - yystate = 0; - -#if YYPURE - memset(&yystack, 0, sizeof(yystack)); -#endif - - if (yystack.s_base == NULL && yygrowstack(&yystack)) goto yyoverflow; - yystack.s_mark = yystack.s_base; - yystack.l_mark = yystack.l_base; - yystate = 0; - *yystack.s_mark = 0; - -yyloop: - if ((yyn = yydefred[yystate]) != 0) goto yyreduce; - if (yychar < 0) - { - if ((yychar = YYLEX) < 0) yychar = 0; -#if YYDEBUG - if (yydebug) - { - yys = yyname[YYTRANSLATE(yychar)]; - printf("%sdebug: state %d, reading %d (%s)\n", - YYPREFIX, yystate, yychar, yys); - } -#endif - } - if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 && - yyn <= YYTABLESIZE && yycheck[yyn] == yychar) - { -#if YYDEBUG - if (yydebug) - printf("%sdebug: state %d, shifting to state %d\n", - YYPREFIX, yystate, yytable[yyn]); -#endif - if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack)) - { - goto yyoverflow; - } - yystate = yytable[yyn]; - *++yystack.s_mark = yytable[yyn]; - *++yystack.l_mark = yylval; - yychar = YYEMPTY; - if (yyerrflag > 0) --yyerrflag; - goto yyloop; - } - if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 && - yyn <= YYTABLESIZE && yycheck[yyn] == yychar) - { - yyn = yytable[yyn]; - goto yyreduce; - } - if (yyerrflag) goto yyinrecovery; - - yyerror("syntax error"); - - goto yyerrlab; - -yyerrlab: - ++yynerrs; - -yyinrecovery: - if (yyerrflag < 3) - { - yyerrflag = 3; - for (;;) - { - if ((yyn = yysindex[*yystack.s_mark]) && (yyn += YYERRCODE) >= 0 && - yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE) - { -#if YYDEBUG - if (yydebug) - printf("%sdebug: state %d, error recovery shifting\ - to state %d\n", YYPREFIX, *yystack.s_mark, yytable[yyn]); -#endif - if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack)) - { - goto yyoverflow; - } - yystate = yytable[yyn]; - *++yystack.s_mark = yytable[yyn]; - *++yystack.l_mark = yylval; - goto yyloop; - } - else - { -#if YYDEBUG - if (yydebug) - printf("%sdebug: error recovery discarding state %d\n", - YYPREFIX, *yystack.s_mark); -#endif - if (yystack.s_mark <= yystack.s_base) goto yyabort; - --yystack.s_mark; - --yystack.l_mark; - } - } - } - else - { - if (yychar == 0) goto yyabort; -#if YYDEBUG - if (yydebug) - { - yys = yyname[YYTRANSLATE(yychar)]; - printf("%sdebug: state %d, error recovery discards token %d (%s)\n", - YYPREFIX, yystate, yychar, yys); - } -#endif - yychar = YYEMPTY; - goto yyloop; - } - -yyreduce: -#if YYDEBUG - if (yydebug) - printf("%sdebug: state %d, reducing by rule %d (%s)\n", - YYPREFIX, yystate, yyn, yyrule[yyn]); -#endif - yym = yylen[yyn]; - if (yym) - yyval = yystack.l_mark[1-yym]; - else - memset(&yyval, 0, sizeof yyval); - switch (yyn) - { -case 10: -#line 377 "grammar.y" - { - yyerrok; - } -break; -case 11: -#line 381 "grammar.y" - { - yyerrok; - } -break; -case 13: -#line 392 "grammar.y" - { - /* Provide an empty action here so bison will not complain about - * incompatible types in the default action it normally would - * have generated. - */ - } -break; -case 14: -#line 399 "grammar.y" - { - /* empty */ - } -break; -case 15: -#line 406 "grammar.y" - { -#if OPT_LINTLIBRARY - if (types_out && want_typedef()) { - gen_declarations(&yystack.l_mark[-1].decl_spec, (DeclaratorList *)0); - flush_varargs(); - } -#endif - free_decl_spec(&yystack.l_mark[-1].decl_spec); - end_typedef(); - } -break; -case 16: -#line 417 "grammar.y" - { - if (func_params != NULL) { - set_param_types(func_params, &yystack.l_mark[-2].decl_spec, &yystack.l_mark[-1].decl_list); - } else { - gen_declarations(&yystack.l_mark[-2].decl_spec, &yystack.l_mark[-1].decl_list); -#if OPT_LINTLIBRARY - flush_varargs(); -#endif - free_decl_list(&yystack.l_mark[-1].decl_list); - } - free_decl_spec(&yystack.l_mark[-2].decl_spec); - end_typedef(); - } -break; -case 17: -#line 431 "grammar.y" - { - cur_decl_spec_flags = yystack.l_mark[0].decl_spec.flags; - free_decl_spec(&yystack.l_mark[0].decl_spec); - } -break; -case 18: -#line 436 "grammar.y" - { - end_typedef(); - } -break; -case 19: -#line 443 "grammar.y" - { - begin_typedef(); - } -break; -case 20: -#line 447 "grammar.y" - { - begin_typedef(); - } -break; -case 23: -#line 459 "grammar.y" - { - int flags = cur_decl_spec_flags; - - /* If the typedef is a pointer type, then reset the short type - * flags so it does not get promoted. - */ - if (strcmp(yystack.l_mark[0].declarator->text, yystack.l_mark[0].declarator->name) != 0) - flags &= ~(DS_CHAR | DS_SHORT | DS_FLOAT); - new_symbol(typedef_names, yystack.l_mark[0].declarator->name, NULL, flags); - free_declarator(yystack.l_mark[0].declarator); - } -break; -case 24: -#line 471 "grammar.y" - { - int flags = cur_decl_spec_flags; - - if (strcmp(yystack.l_mark[0].declarator->text, yystack.l_mark[0].declarator->name) != 0) - flags &= ~(DS_CHAR | DS_SHORT | DS_FLOAT); - new_symbol(typedef_names, yystack.l_mark[0].declarator->name, NULL, flags); - free_declarator(yystack.l_mark[0].declarator); - } -break; -case 25: -#line 483 "grammar.y" - { - check_untagged(&yystack.l_mark[-1].decl_spec); - if (yystack.l_mark[0].declarator->func_def == FUNC_NONE) { - yyerror("syntax error"); - YYERROR; - } - func_params = &(yystack.l_mark[0].declarator->head->params); - func_params->begin_comment = cur_file->begin_comment; - func_params->end_comment = cur_file->end_comment; - } -break; -case 26: -#line 494 "grammar.y" - { - /* If we're converting to K&R and we've got a nominally K&R - * function which has a parameter which is ANSI (i.e., a prototyped - * function pointer), then we must override the deciphered value of - * 'func_def' so that the parameter will be converted. - */ - if (func_style == FUNC_TRADITIONAL - && haveAnsiParam() - && yystack.l_mark[-3].declarator->head->func_def == func_style) { - yystack.l_mark[-3].declarator->head->func_def = FUNC_BOTH; - } - - func_params = NULL; - - if (cur_file->convert) - gen_func_definition(&yystack.l_mark[-4].decl_spec, yystack.l_mark[-3].declarator); - gen_prototype(&yystack.l_mark[-4].decl_spec, yystack.l_mark[-3].declarator); -#if OPT_LINTLIBRARY - flush_varargs(); -#endif - free_decl_spec(&yystack.l_mark[-4].decl_spec); - free_declarator(yystack.l_mark[-3].declarator); - } -break; -case 28: -#line 519 "grammar.y" - { - if (yystack.l_mark[0].declarator->func_def == FUNC_NONE) { - yyerror("syntax error"); - YYERROR; - } - func_params = &(yystack.l_mark[0].declarator->head->params); - func_params->begin_comment = cur_file->begin_comment; - func_params->end_comment = cur_file->end_comment; - } -break; -case 29: -#line 529 "grammar.y" - { - DeclSpec decl_spec; - - func_params = NULL; - - new_decl_spec(&decl_spec, dft_decl_spec(), yystack.l_mark[-4].declarator->begin, DS_NONE); - if (cur_file->convert) - gen_func_definition(&decl_spec, yystack.l_mark[-4].declarator); - gen_prototype(&decl_spec, yystack.l_mark[-4].declarator); -#if OPT_LINTLIBRARY - flush_varargs(); -#endif - free_decl_spec(&decl_spec); - free_declarator(yystack.l_mark[-4].declarator); - } -break; -case 36: -#line 560 "grammar.y" - { - join_decl_specs(&yyval.decl_spec, &yystack.l_mark[-1].decl_spec, &yystack.l_mark[0].decl_spec); - free(yystack.l_mark[-1].decl_spec.text); - free(yystack.l_mark[0].decl_spec.text); - } -break; -case 40: -#line 575 "grammar.y" - { - new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_NONE); - } -break; -case 41: -#line 579 "grammar.y" - { - new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_EXTERN); - } -break; -case 42: -#line 583 "grammar.y" - { - new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_NONE); - } -break; -case 43: -#line 587 "grammar.y" - { - new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_STATIC); - } -break; -case 44: -#line 591 "grammar.y" - { - new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_INLINE); - } -break; -case 45: -#line 595 "grammar.y" - { - new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_JUNK); - } -break; -case 46: -#line 602 "grammar.y" - { - new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_CHAR); - } -break; -case 47: -#line 606 "grammar.y" - { - new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_NONE); - } -break; -case 48: -#line 610 "grammar.y" - { - new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_FLOAT); - } -break; -case 49: -#line 614 "grammar.y" - { - new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_NONE); - } -break; -case 50: -#line 618 "grammar.y" - { - new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_NONE); - } -break; -case 51: -#line 622 "grammar.y" - { - new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_SHORT); - } -break; -case 52: -#line 626 "grammar.y" - { - new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_NONE); - } -break; -case 53: -#line 630 "grammar.y" - { - new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_NONE); - } -break; -case 54: -#line 634 "grammar.y" - { - new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_NONE); - } -break; -case 55: -#line 638 "grammar.y" - { - new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_CHAR); - } -break; -case 56: -#line 642 "grammar.y" - { - new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_NONE); - } -break; -case 57: -#line 646 "grammar.y" - { - new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_NONE); - } -break; -case 58: -#line 650 "grammar.y" - { - Symbol *s; - s = find_symbol(typedef_names, yystack.l_mark[0].text.text); - if (s != NULL) - new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, s->flags); - } -break; -case 61: -#line 662 "grammar.y" - { - new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_NONE); - } -break; -case 62: -#line 666 "grammar.y" - { - /* This rule allows the <pointer> nonterminal to scan #define - * names as if they were type modifiers. - */ - Symbol *s; - s = find_symbol(define_names, yystack.l_mark[0].text.text); - if (s != NULL) - new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, s->flags); - } -break; -case 63: -#line 679 "grammar.y" - { - char *s; - if ((s = implied_typedef()) == 0) - (void)sprintf(s = buf, "%s %s", yystack.l_mark[-2].text.text, yystack.l_mark[-1].text.text); - new_decl_spec(&yyval.decl_spec, s, yystack.l_mark[-2].text.begin, DS_NONE); - } -break; -case 64: -#line 686 "grammar.y" - { - char *s; - if ((s = implied_typedef()) == 0) - (void)sprintf(s = buf, "%s {}", yystack.l_mark[-1].text.text); - new_decl_spec(&yyval.decl_spec, s, yystack.l_mark[-1].text.begin, DS_NONE); - } -break; -case 65: -#line 693 "grammar.y" - { - (void)sprintf(buf, "%s %s", yystack.l_mark[-1].text.text, yystack.l_mark[0].text.text); - new_decl_spec(&yyval.decl_spec, buf, yystack.l_mark[-1].text.begin, DS_NONE); - } -break; -case 66: -#line 701 "grammar.y" - { - imply_typedef(yyval.text.text); - } -break; -case 67: -#line 705 "grammar.y" - { - imply_typedef(yyval.text.text); - } -break; -case 68: -#line 712 "grammar.y" - { - new_decl_list(&yyval.decl_list, yystack.l_mark[0].declarator); - } -break; -case 69: -#line 716 "grammar.y" - { - add_decl_list(&yyval.decl_list, &yystack.l_mark[-2].decl_list, yystack.l_mark[0].declarator); - } -break; -case 70: -#line 723 "grammar.y" - { - if (yystack.l_mark[0].declarator->func_def != FUNC_NONE && func_params == NULL && - func_style == FUNC_TRADITIONAL && cur_file->convert) { - gen_func_declarator(yystack.l_mark[0].declarator); - fputs(cur_text(), cur_file->tmp_file); - } - cur_declarator = yyval.declarator; - } -break; -case 71: -#line 732 "grammar.y" - { - if (yystack.l_mark[-1].declarator->func_def != FUNC_NONE && func_params == NULL && - func_style == FUNC_TRADITIONAL && cur_file->convert) { - gen_func_declarator(yystack.l_mark[-1].declarator); - fputs(" =", cur_file->tmp_file); - } - } -break; -case 73: -#line 744 "grammar.y" - { - char *s; - if ((s = implied_typedef()) == 0) - (void)sprintf(s = buf, "enum %s", yystack.l_mark[-1].text.text); - new_decl_spec(&yyval.decl_spec, s, yystack.l_mark[-2].text.begin, DS_NONE); - } -break; -case 74: -#line 751 "grammar.y" - { - char *s; - if ((s = implied_typedef()) == 0) - (void)sprintf(s = buf, "%s {}", yystack.l_mark[-1].text.text); - new_decl_spec(&yyval.decl_spec, s, yystack.l_mark[-1].text.begin, DS_NONE); - } -break; -case 75: -#line 758 "grammar.y" - { - (void)sprintf(buf, "enum %s", yystack.l_mark[0].text.text); - new_decl_spec(&yyval.decl_spec, buf, yystack.l_mark[-1].text.begin, DS_NONE); - } -break; -case 76: -#line 766 "grammar.y" - { - imply_typedef("enum"); - yyval.text = yystack.l_mark[0].text; - } -break; -case 79: -#line 779 "grammar.y" - { - yyval.declarator = yystack.l_mark[0].declarator; - (void)sprintf(buf, "%s%s", yystack.l_mark[-1].text.text, yyval.declarator->text); - free(yyval.declarator->text); - yyval.declarator->text = xstrdup(buf); - yyval.declarator->begin = yystack.l_mark[-1].text.begin; - yyval.declarator->pointer = TRUE; - } -break; -case 81: -#line 792 "grammar.y" - { - yyval.declarator = new_declarator(yystack.l_mark[0].text.text, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin); - } -break; -case 82: -#line 796 "grammar.y" - { - yyval.declarator = yystack.l_mark[-1].declarator; - (void)sprintf(buf, "(%s)", yyval.declarator->text); - free(yyval.declarator->text); - yyval.declarator->text = xstrdup(buf); - yyval.declarator->begin = yystack.l_mark[-2].text.begin; - } -break; -case 83: -#line 804 "grammar.y" - { - yyval.declarator = yystack.l_mark[-1].declarator; - (void)sprintf(buf, "%s%s", yyval.declarator->text, yystack.l_mark[0].text.text); - free(yyval.declarator->text); - yyval.declarator->text = xstrdup(buf); - } -break; -case 84: -#line 811 "grammar.y" - { - yyval.declarator = new_declarator("%s()", yystack.l_mark[-3].declarator->name, yystack.l_mark[-3].declarator->begin); - yyval.declarator->params = yystack.l_mark[-1].param_list; - yyval.declarator->func_stack = yystack.l_mark[-3].declarator; - yyval.declarator->head = (yystack.l_mark[-3].declarator->func_stack == NULL) ? yyval.declarator : yystack.l_mark[-3].declarator->head; - yyval.declarator->func_def = FUNC_ANSI; - } -break; -case 85: -#line 819 "grammar.y" - { - yyval.declarator = new_declarator("%s()", yystack.l_mark[-3].declarator->name, yystack.l_mark[-3].declarator->begin); - yyval.declarator->params = yystack.l_mark[-1].param_list; - yyval.declarator->func_stack = yystack.l_mark[-3].declarator; - yyval.declarator->head = (yystack.l_mark[-3].declarator->func_stack == NULL) ? yyval.declarator : yystack.l_mark[-3].declarator->head; - yyval.declarator->func_def = FUNC_TRADITIONAL; - } -break; -case 86: -#line 830 "grammar.y" - { - (void)sprintf(yyval.text.text, "*%s", yystack.l_mark[0].text.text); - yyval.text.begin = yystack.l_mark[-1].text.begin; - } -break; -case 87: -#line 835 "grammar.y" - { - (void)sprintf(yyval.text.text, "*%s%s", yystack.l_mark[-1].text.text, yystack.l_mark[0].text.text); - yyval.text.begin = yystack.l_mark[-2].text.begin; - } -break; -case 88: -#line 843 "grammar.y" - { - strcpy(yyval.text.text, ""); - yyval.text.begin = 0L; - } -break; -case 90: -#line 852 "grammar.y" - { - (void)sprintf(yyval.text.text, "%s ", yystack.l_mark[0].decl_spec.text); - yyval.text.begin = yystack.l_mark[0].decl_spec.begin; - free(yystack.l_mark[0].decl_spec.text); - } -break; -case 91: -#line 858 "grammar.y" - { - (void)sprintf(yyval.text.text, "%s%s ", yystack.l_mark[-1].text.text, yystack.l_mark[0].decl_spec.text); - yyval.text.begin = yystack.l_mark[-1].text.begin; - free(yystack.l_mark[0].decl_spec.text); - } -break; -case 93: -#line 868 "grammar.y" - { - add_ident_list(&yyval.param_list, &yystack.l_mark[-2].param_list, "..."); - } -break; -case 94: -#line 875 "grammar.y" - { - new_param_list(&yyval.param_list, yystack.l_mark[0].parameter); - } -break; -case 95: -#line 879 "grammar.y" - { - add_param_list(&yyval.param_list, &yystack.l_mark[-2].param_list, yystack.l_mark[0].parameter); - } -break; -case 96: -#line 886 "grammar.y" - { - check_untagged(&yystack.l_mark[-1].decl_spec); - yyval.parameter = new_parameter(&yystack.l_mark[-1].decl_spec, yystack.l_mark[0].declarator); - } -break; -case 97: -#line 891 "grammar.y" - { - check_untagged(&yystack.l_mark[-1].decl_spec); - yyval.parameter = new_parameter(&yystack.l_mark[-1].decl_spec, yystack.l_mark[0].declarator); - } -break; -case 98: -#line 896 "grammar.y" - { - check_untagged(&yystack.l_mark[0].decl_spec); - yyval.parameter = new_parameter(&yystack.l_mark[0].decl_spec, (Declarator *)0); - } -break; -case 99: -#line 904 "grammar.y" - { - new_ident_list(&yyval.param_list); - } -break; -case 101: -#line 912 "grammar.y" - { - new_ident_list(&yyval.param_list); - add_ident_list(&yyval.param_list, &yyval.param_list, yystack.l_mark[0].text.text); - } -break; -case 102: -#line 917 "grammar.y" - { - add_ident_list(&yyval.param_list, &yystack.l_mark[-2].param_list, yystack.l_mark[0].text.text); - } -break; -case 103: -#line 924 "grammar.y" - { - yyval.text = yystack.l_mark[0].text; - } -break; -case 104: -#line 928 "grammar.y" - { -#if OPT_LINTLIBRARY - if (lintLibrary()) { /* Lint doesn't grok C++ ref variables */ - yyval.text = yystack.l_mark[0].text; - } else -#endif - (void)sprintf(yyval.text.text, "&%s", yystack.l_mark[0].text.text); - yyval.text.begin = yystack.l_mark[-1].text.begin; - } -break; -case 105: -#line 941 "grammar.y" - { - yyval.declarator = new_declarator(yystack.l_mark[0].text.text, "", yystack.l_mark[0].text.begin); - } -break; -case 106: -#line 945 "grammar.y" - { - yyval.declarator = yystack.l_mark[0].declarator; - (void)sprintf(buf, "%s%s", yystack.l_mark[-1].text.text, yyval.declarator->text); - free(yyval.declarator->text); - yyval.declarator->text = xstrdup(buf); - yyval.declarator->begin = yystack.l_mark[-1].text.begin; - } -break; -case 108: -#line 957 "grammar.y" - { - yyval.declarator = yystack.l_mark[-1].declarator; - (void)sprintf(buf, "(%s)", yyval.declarator->text); - free(yyval.declarator->text); - yyval.declarator->text = xstrdup(buf); - yyval.declarator->begin = yystack.l_mark[-2].text.begin; - } -break; -case 109: -#line 965 "grammar.y" - { - yyval.declarator = yystack.l_mark[-1].declarator; - (void)sprintf(buf, "%s%s", yyval.declarator->text, yystack.l_mark[0].text.text); - free(yyval.declarator->text); - yyval.declarator->text = xstrdup(buf); - } -break; -case 110: -#line 972 "grammar.y" - { - yyval.declarator = new_declarator(yystack.l_mark[0].text.text, "", yystack.l_mark[0].text.begin); - } -break; -case 111: -#line 976 "grammar.y" - { - yyval.declarator = new_declarator("%s()", "", yystack.l_mark[-3].declarator->begin); - yyval.declarator->params = yystack.l_mark[-1].param_list; - yyval.declarator->func_stack = yystack.l_mark[-3].declarator; - yyval.declarator->head = (yystack.l_mark[-3].declarator->func_stack == NULL) ? yyval.declarator : yystack.l_mark[-3].declarator->head; - yyval.declarator->func_def = FUNC_ANSI; - } -break; -case 112: -#line 984 "grammar.y" - { - yyval.declarator = new_declarator("%s()", "", yystack.l_mark[-2].declarator->begin); - yyval.declarator->func_stack = yystack.l_mark[-2].declarator; - yyval.declarator->head = (yystack.l_mark[-2].declarator->func_stack == NULL) ? yyval.declarator : yystack.l_mark[-2].declarator->head; - yyval.declarator->func_def = FUNC_ANSI; - } -break; -case 113: -#line 991 "grammar.y" - { - Declarator *d; - - d = new_declarator("", "", yystack.l_mark[-2].text.begin); - yyval.declarator = new_declarator("%s()", "", yystack.l_mark[-2].text.begin); - yyval.declarator->params = yystack.l_mark[-1].param_list; - yyval.declarator->func_stack = d; - yyval.declarator->head = yyval.declarator; - yyval.declarator->func_def = FUNC_ANSI; - } -break; -case 114: -#line 1002 "grammar.y" - { - Declarator *d; - - d = new_declarator("", "", yystack.l_mark[-1].text.begin); - yyval.declarator = new_declarator("%s()", "", yystack.l_mark[-1].text.begin); - yyval.declarator->func_stack = d; - yyval.declarator->head = yyval.declarator; - yyval.declarator->func_def = FUNC_ANSI; - } -break; -#line 1882 "/dev/stdout" - } - yystack.s_mark -= yym; - yystate = *yystack.s_mark; - yystack.l_mark -= yym; - yym = yylhs[yyn]; - if (yystate == 0 && yym == 0) - { -#if YYDEBUG - if (yydebug) - printf("%sdebug: after reduction, shifting from state 0 to\ - state %d\n", YYPREFIX, YYFINAL); -#endif - yystate = YYFINAL; - *++yystack.s_mark = YYFINAL; - *++yystack.l_mark = yyval; - if (yychar < 0) - { - if ((yychar = YYLEX) < 0) yychar = 0; -#if YYDEBUG - if (yydebug) - { - yys = yyname[YYTRANSLATE(yychar)]; - printf("%sdebug: state %d, reading %d (%s)\n", - YYPREFIX, YYFINAL, yychar, yys); - } -#endif - } - if (yychar == 0) goto yyaccept; - goto yyloop; - } - if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 && - yyn <= YYTABLESIZE && yycheck[yyn] == yystate) - yystate = yytable[yyn]; - else - yystate = yydgoto[yym]; -#if YYDEBUG - if (yydebug) - printf("%sdebug: after reduction, shifting from state %d \ -to state %d\n", YYPREFIX, *yystack.s_mark, yystate); -#endif - if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack)) - { - goto yyoverflow; - } - *++yystack.s_mark = (short) yystate; - *++yystack.l_mark = yyval; - goto yyloop; - -yyoverflow: - yyerror("yacc stack overflow"); - -yyabort: - yyfreestack(&yystack); - return (1); - -yyaccept: - yyfreestack(&yystack); - return (0); -} |