parser: extern var support
[m6w6/ext-psi] / src / parser_proc.h
index a1e2ddf4b1074b22f5806fdda169fb7b2a7702bc..27e6b18f49483a5b876f3d0889152f48dcc15943 100644 (file)
 extern int psi_parser_proc_debug;
 #endif
 /* "%code requires" blocks.  */
-#line 92 "src/parser_proc_grammar.y" /* glr.c:197  */
+#line 115 "src/parser_proc_grammar.y" /* glr.c:197  */
 
 #include "plist.h"
 #include "types/layout.h"
 
+#define yytokentype psi_token_type
+
+#define PSI_T_CAST                     PSI_T_EQUALS
+#define PSI_T_POINTER          PSI_T_ASTERISK
+
 struct psi_parser;
 
 
-#line 52 "src/parser_proc.h" /* glr.c:197  */
+#line 57 "src/parser_proc.h" /* glr.c:197  */
 
 /* Token type.  */
 #ifndef YYTOKENTYPE
@@ -72,119 +77,127 @@ struct psi_parser;
     PSI_T_CALLABLE = 271,
     PSI_T_VOID = 272,
     PSI_T_ZVAL = 273,
-    PSI_T_INT8 = 274,
-    PSI_T_UINT8 = 275,
-    PSI_T_INT16 = 276,
-    PSI_T_UINT16 = 277,
-    PSI_T_INT32 = 278,
-    PSI_T_UINT32 = 279,
-    PSI_T_INT64 = 280,
-    PSI_T_UINT64 = 281,
-    PSI_T_NULL = 282,
-    PSI_T_TRUE = 283,
-    PSI_T_FALSE = 284,
-    PSI_T_NAME = 285,
-    PSI_T_NSNAME = 286,
-    PSI_T_DOLLAR_NAME = 287,
-    PSI_T_NUMBER = 288,
-    PSI_T_QUOTED_STRING = 289,
-    PSI_T_QUOTED_CHAR = 290,
-    PSI_T_EOL = 291,
-    PSI_T_EOS = 292,
-    PSI_T_LPAREN = 293,
-    PSI_T_RPAREN = 294,
-    PSI_T_COMMA = 295,
-    PSI_T_COLON = 296,
-    PSI_T_LBRACE = 297,
-    PSI_T_RBRACE = 298,
-    PSI_T_LBRACKET = 299,
-    PSI_T_RBRACKET = 300,
-    PSI_T_EQUALS = 301,
-    PSI_T_HASH = 302,
-    PSI_T_PIPE = 303,
-    PSI_T_CARET = 304,
-    PSI_T_AMPERSAND = 305,
-    PSI_T_LSHIFT = 306,
-    PSI_T_RSHIFT = 307,
-    PSI_T_PLUS = 308,
-    PSI_T_MINUS = 309,
-    PSI_T_ASTERISK = 310,
-    PSI_T_SLASH = 311,
-    PSI_T_MODULO = 312,
-    PSI_T_LCHEVR = 313,
-    PSI_T_RCHEVR = 314,
-    PSI_T_CMP_GE = 315,
-    PSI_T_CMP_LE = 316,
-    PSI_T_OR = 317,
-    PSI_T_AND = 318,
-    PSI_T_CMP_EQ = 319,
-    PSI_T_CMP_NE = 320,
-    PSI_T_TILDE = 321,
-    PSI_T_NOT = 322,
-    PSI_T_PERIOD = 323,
-    PSI_T_BACKSLASH = 324,
-    PSI_T_ELLIPSIS = 325,
-    PSI_T_IIF = 326,
-    PSI_T_PRAGMA = 327,
-    PSI_T_PRAGMA_ONCE = 328,
-    PSI_T_LINE = 329,
-    PSI_T_ERROR = 330,
-    PSI_T_WARNING = 331,
-    PSI_T_IF = 332,
-    PSI_T_IFDEF = 333,
-    PSI_T_IFNDEF = 334,
-    PSI_T_ELSE = 335,
-    PSI_T_ELIF = 336,
-    PSI_T_ENDIF = 337,
-    PSI_T_DEFINE = 338,
-    PSI_T_DEFINED = 339,
-    PSI_T_UNDEF = 340,
-    PSI_T_IMPORT = 341,
-    PSI_T_INCLUDE = 342,
-    PSI_T_INCLUDE_NEXT = 343,
-    PSI_T_TYPEDEF = 344,
-    PSI_T_STRUCT = 345,
-    PSI_T_UNION = 346,
-    PSI_T_ENUM = 347,
-    PSI_T_CONST = 348,
-    PSI_T_LIB = 349,
-    PSI_T_STATIC = 350,
-    PSI_T_CALLBACK = 351,
-    PSI_T_FUNCTION = 352,
-    PSI_T_LET = 353,
-    PSI_T_SET = 354,
-    PSI_T_TEMP = 355,
-    PSI_T_FREE = 356,
-    PSI_T_RETURN = 357,
-    PSI_T_PRE_ASSERT = 358,
-    PSI_T_POST_ASSERT = 359,
-    PSI_T_BOOLVAL = 360,
-    PSI_T_INTVAL = 361,
-    PSI_T_STRVAL = 362,
-    PSI_T_PATHVAL = 363,
-    PSI_T_STRLEN = 364,
-    PSI_T_FLOATVAL = 365,
-    PSI_T_ARRVAL = 366,
-    PSI_T_OBJVAL = 367,
-    PSI_T_COUNT = 368,
-    PSI_T_CALLOC = 369,
-    PSI_T_TO_BOOL = 370,
-    PSI_T_TO_INT = 371,
-    PSI_T_TO_STRING = 372,
-    PSI_T_TO_FLOAT = 373,
-    PSI_T_TO_ARRAY = 374,
-    PSI_T_TO_OBJECT = 375,
-    PSI_T_COMMENT = 376,
-    PSI_T_WHITESPACE = 377,
-    PSI_T_NO_WHITESPACE = 378,
-    PSI_T_CPP_HEADER = 379,
-    PSI_T_CPP_ATTRIBUTE = 380,
-    PSI_T_CPP_EXTENSION = 381,
-    PSI_T_CPP_PASTE = 382,
-    PSI_T_CPP_RESTRICT = 383,
-    PSI_T_CPP_ASM = 384,
-    PSI_T_BINARY = 385,
-    PSI_T_UNARY = 386
+    PSI_T_NULL = 274,
+    PSI_T_TRUE = 275,
+    PSI_T_FALSE = 276,
+    PSI_T_NAME = 277,
+    PSI_T_NSNAME = 278,
+    PSI_T_DOLLAR_NAME = 279,
+    PSI_T_NUMBER = 280,
+    PSI_T_QUOTED_STRING = 281,
+    PSI_T_QUOTED_CHAR = 282,
+    PSI_T_SIZEOF = 283,
+    PSI_T_VOLATILE = 284,
+    PSI_T_EOL = 285,
+    PSI_T_EOS = 286,
+    PSI_T_LPAREN = 287,
+    PSI_T_RPAREN = 288,
+    PSI_T_COMMA = 289,
+    PSI_T_COLON = 290,
+    PSI_T_LBRACE = 291,
+    PSI_T_RBRACE = 292,
+    PSI_T_LBRACKET = 293,
+    PSI_T_RBRACKET = 294,
+    PSI_T_EQUALS = 295,
+    PSI_T_HASH = 296,
+    PSI_T_PIPE = 297,
+    PSI_T_CARET = 298,
+    PSI_T_AMPERSAND = 299,
+    PSI_T_LSHIFT = 300,
+    PSI_T_RSHIFT = 301,
+    PSI_T_PLUS = 302,
+    PSI_T_MINUS = 303,
+    PSI_T_ASTERISK = 304,
+    PSI_T_SLASH = 305,
+    PSI_T_MODULO = 306,
+    PSI_T_LCHEVR = 307,
+    PSI_T_RCHEVR = 308,
+    PSI_T_CMP_GE = 309,
+    PSI_T_CMP_LE = 310,
+    PSI_T_OR = 311,
+    PSI_T_AND = 312,
+    PSI_T_CMP_EQ = 313,
+    PSI_T_CMP_NE = 314,
+    PSI_T_TILDE = 315,
+    PSI_T_NOT = 316,
+    PSI_T_PERIOD = 317,
+    PSI_T_BACKSLASH = 318,
+    PSI_T_ELLIPSIS = 319,
+    PSI_T_IIF = 320,
+    PSI_T_PRAGMA = 321,
+    PSI_T_PRAGMA_ONCE = 322,
+    PSI_T_LINE = 323,
+    PSI_T_ERROR = 324,
+    PSI_T_WARNING = 325,
+    PSI_T_IF = 326,
+    PSI_T_IFDEF = 327,
+    PSI_T_IFNDEF = 328,
+    PSI_T_ELSE = 329,
+    PSI_T_ELIF = 330,
+    PSI_T_ENDIF = 331,
+    PSI_T_DEFINE = 332,
+    PSI_T_DEFINED = 333,
+    PSI_T_UNDEF = 334,
+    PSI_T_IMPORT = 335,
+    PSI_T_INCLUDE = 336,
+    PSI_T_INCLUDE_NEXT = 337,
+    PSI_T_TYPEDEF = 338,
+    PSI_T_STRUCT = 339,
+    PSI_T_UNION = 340,
+    PSI_T_ENUM = 341,
+    PSI_T_CONST = 342,
+    PSI_T_LIB = 343,
+    PSI_T_STATIC = 344,
+    PSI_T_CALLBACK = 345,
+    PSI_T_FUNCTION = 346,
+    PSI_T_LET = 347,
+    PSI_T_SET = 348,
+    PSI_T_TEMP = 349,
+    PSI_T_FREE = 350,
+    PSI_T_RETURN = 351,
+    PSI_T_AS = 352,
+    PSI_T_PRE_ASSERT = 353,
+    PSI_T_POST_ASSERT = 354,
+    PSI_T_BOOLVAL = 355,
+    PSI_T_INTVAL = 356,
+    PSI_T_STRVAL = 357,
+    PSI_T_PATHVAL = 358,
+    PSI_T_STRLEN = 359,
+    PSI_T_FLOATVAL = 360,
+    PSI_T_ARRVAL = 361,
+    PSI_T_OBJVAL = 362,
+    PSI_T_COUNT = 363,
+    PSI_T_CALLOC = 364,
+    PSI_T_TO_BOOL = 365,
+    PSI_T_TO_INT = 366,
+    PSI_T_TO_STRING = 367,
+    PSI_T_TO_FLOAT = 368,
+    PSI_T_TO_ARRAY = 369,
+    PSI_T_TO_OBJECT = 370,
+    PSI_T_COMMENT = 371,
+    PSI_T_WHITESPACE = 372,
+    PSI_T_NO_WHITESPACE = 373,
+    PSI_T_CPP_HEADER = 374,
+    PSI_T_CPP_ATTRIBUTE = 375,
+    PSI_T_CPP_EXTENSION = 376,
+    PSI_T_CPP_PASTE = 377,
+    PSI_T_CPP_INLINE = 378,
+    PSI_T_CPP_RESTRICT = 379,
+    PSI_T_CPP_ASM = 380,
+    PSI_T_BSLASH = 381,
+    PSI_T_LONG_DOUBLE = 382,
+    PSI_T_INT8 = 383,
+    PSI_T_UINT8 = 384,
+    PSI_T_INT16 = 385,
+    PSI_T_UINT16 = 386,
+    PSI_T_INT32 = 387,
+    PSI_T_UINT32 = 388,
+    PSI_T_INT64 = 389,
+    PSI_T_UINT64 = 390,
+    PSI_T_INT128 = 391,
+    PSI_T_UINT128 = 392,
+    PSI_T_BINARY = 393,
+    PSI_T_UNARY = 394
   };
 #endif
 
@@ -230,6 +243,12 @@ union YYSTYPE
   struct psi_decl_arg * PSI_T_decl_typedef;
   /* typedef  */
   struct psi_decl_arg * PSI_T_typedef;
+  /* typedef_anon  */
+  struct psi_decl_arg * PSI_T_typedef_anon;
+  /* typedef_decl  */
+  struct psi_decl_arg * PSI_T_typedef_decl;
+  /* typedef_anon_decl  */
+  struct psi_decl_arg * PSI_T_typedef_anon_decl;
   /* decl_functor  */
   struct psi_decl_arg * PSI_T_decl_functor;
   /* decl_func  */
@@ -244,8 +263,8 @@ union YYSTYPE
   struct psi_decl_enum_item * PSI_T_decl_enum_item;
   /* decl_struct  */
   struct psi_decl_struct * PSI_T_decl_struct;
-  /* const_decl_type  */
-  struct psi_decl_type * PSI_T_const_decl_type;
+  /* qualified_decl_type  */
+  struct psi_decl_type * PSI_T_qualified_decl_type;
   /* decl_type  */
   struct psi_decl_type * PSI_T_decl_type;
   /* decl_type_complex  */
@@ -294,6 +313,12 @@ union YYSTYPE
   struct psi_num_exp * PSI_T_num_exp;
   /* number  */
   struct psi_number * PSI_T_number;
+  /* sizeof  */
+  struct psi_number * PSI_T_sizeof;
+  /* sizeof_body  */
+  struct psi_number * PSI_T_sizeof_body;
+  /* sizeof_body_notypes  */
+  struct psi_number * PSI_T_sizeof_body_notypes;
   /* cpp_macro_sig  */
   struct psi_plist * PSI_T_cpp_macro_sig;
   /* cpp_macro_sig_args  */
@@ -306,10 +331,16 @@ union YYSTYPE
   struct psi_plist * PSI_T_cpp_macro_call_args;
   /* cpp_macro_call_arg_list  */
   struct psi_plist * PSI_T_cpp_macro_call_arg_list;
+  /* decl_extvar_stmt  */
+  struct psi_plist * PSI_T_decl_extvar_stmt;
+  /* decl_extvar_list  */
+  struct psi_plist * PSI_T_decl_extvar_list;
   /* decl_vars  */
   struct psi_plist * PSI_T_decl_vars;
   /* decl_args  */
   struct psi_plist * PSI_T_decl_args;
+  /* decl_arg_list  */
+  struct psi_plist * PSI_T_decl_arg_list;
   /* decl_struct_args  */
   struct psi_plist * PSI_T_decl_struct_args;
   /* struct_args_block  */
@@ -334,12 +365,16 @@ union YYSTYPE
   struct psi_plist * PSI_T_callback_arg_list;
   /* callback_args  */
   struct psi_plist * PSI_T_callback_args;
+  /* call_decl_vars  */
+  struct psi_plist * PSI_T_call_decl_vars;
   /* set_func_exps  */
   struct psi_plist * PSI_T_set_func_exps;
   /* set_exps  */
   struct psi_plist * PSI_T_set_exps;
   /* free_exps  */
   struct psi_plist * PSI_T_free_exps;
+  /* return_exp  */
+  struct psi_return_exp * PSI_T_return_exp;
   /* return_stmt  */
   struct psi_return_stmt * PSI_T_return_stmt;
   /* set_exp  */
@@ -382,22 +417,6 @@ union YYSTYPE
   struct psi_token * PSI_T_VOID;
   /* ZVAL  */
   struct psi_token * PSI_T_ZVAL;
-  /* INT8  */
-  struct psi_token * PSI_T_INT8;
-  /* UINT8  */
-  struct psi_token * PSI_T_UINT8;
-  /* INT16  */
-  struct psi_token * PSI_T_INT16;
-  /* UINT16  */
-  struct psi_token * PSI_T_UINT16;
-  /* INT32  */
-  struct psi_token * PSI_T_INT32;
-  /* UINT32  */
-  struct psi_token * PSI_T_UINT32;
-  /* INT64  */
-  struct psi_token * PSI_T_INT64;
-  /* UINT64  */
-  struct psi_token * PSI_T_UINT64;
   /* NULL  */
   struct psi_token * PSI_T_NULL;
   /* TRUE  */
@@ -416,6 +435,10 @@ union YYSTYPE
   struct psi_token * PSI_T_QUOTED_STRING;
   /* QUOTED_CHAR  */
   struct psi_token * PSI_T_QUOTED_CHAR;
+  /* SIZEOF  */
+  struct psi_token * PSI_T_SIZEOF;
+  /* VOLATILE  */
+  struct psi_token * PSI_T_VOLATILE;
   /* "end of line"  */
   struct psi_token * PSI_T_EOL;
   /* ";"  */
@@ -550,6 +573,8 @@ union YYSTYPE
   struct psi_token * PSI_T_FREE;
   /* RETURN  */
   struct psi_token * PSI_T_RETURN;
+  /* AS  */
+  struct psi_token * PSI_T_AS;
   /* PRE_ASSERT  */
   struct psi_token * PSI_T_PRE_ASSERT;
   /* POST_ASSERT  */
@@ -600,10 +625,36 @@ union YYSTYPE
   struct psi_token * PSI_T_CPP_EXTENSION;
   /* CPP_PASTE  */
   struct psi_token * PSI_T_CPP_PASTE;
+  /* CPP_INLINE  */
+  struct psi_token * PSI_T_CPP_INLINE;
   /* CPP_RESTRICT  */
   struct psi_token * PSI_T_CPP_RESTRICT;
   /* CPP_ASM  */
   struct psi_token * PSI_T_CPP_ASM;
+  /* BSLASH  */
+  struct psi_token * PSI_T_BSLASH;
+  /* LONG_DOUBLE  */
+  struct psi_token * PSI_T_LONG_DOUBLE;
+  /* INT8  */
+  struct psi_token * PSI_T_INT8;
+  /* UINT8  */
+  struct psi_token * PSI_T_UINT8;
+  /* INT16  */
+  struct psi_token * PSI_T_INT16;
+  /* UINT16  */
+  struct psi_token * PSI_T_UINT16;
+  /* INT32  */
+  struct psi_token * PSI_T_INT32;
+  /* UINT32  */
+  struct psi_token * PSI_T_UINT32;
+  /* INT64  */
+  struct psi_token * PSI_T_INT64;
+  /* UINT64  */
+  struct psi_token * PSI_T_UINT64;
+  /* INT128  */
+  struct psi_token * PSI_T_INT128;
+  /* UINT128  */
+  struct psi_token * PSI_T_UINT128;
   /* binary_op_token  */
   struct psi_token * PSI_T_binary_op_token;
   /* unary_op_token  */
@@ -636,8 +687,6 @@ union YYSTYPE
   struct psi_token * PSI_T_decl_type_simple;
   /* decl_real_type  */
   struct psi_token * PSI_T_decl_real_type;
-  /* decl_stdint_type  */
-  struct psi_token * PSI_T_decl_stdint_type;
   /* int_signed  */
   struct psi_token * PSI_T_int_signed;
   /* int_width  */
@@ -672,7 +721,7 @@ union YYSTYPE
   struct psi_token * PSI_T_assert_stmt_token;
   /* impl_stmt  */
   struct psi_token ** PSI_T_impl_stmt;
-#line 676 "src/parser_proc.h" /* glr.c:197  */
+#line 725 "src/parser_proc.h" /* glr.c:197  */
 };
 
 typedef union YYSTYPE YYSTYPE;