1 /* A Bison parser, made by GNU Bison 3.0.4. */
3 /* Skeleton interface for Bison GLR parsers in C
5 Copyright (C) 2002-2015 Free Software Foundation, Inc.
7 This program is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
20 /* As a special exception, you may create a larger work that contains
21 part or all of the Bison parser skeleton and distribute that work
22 under terms of your choice, so long as that work isn't itself a
23 parser generator using the skeleton or a modified version thereof
24 as a parser skeleton. Alternatively, if you modify or redistribute
25 the parser skeleton itself, you may (at your option) remove this
26 special exception, which will cause the skeleton and the resulting
27 Bison output files to be licensed under the GNU General Public
28 License without this special exception.
30 This special exception was added by the Free Software Foundation in
31 version 2.2 of Bison. */
33 #ifndef YY_PSI_PARSER_PROC_SRC_PARSER_PROC_H_INCLUDED
34 # define YY_PSI_PARSER_PROC_SRC_PARSER_PROC_H_INCLUDED
40 extern int psi_parser_proc_debug
;
42 /* "%code requires" blocks. */
43 #line 93 "src/parser_proc_grammar.y" /* glr.c:197 */
46 #include "types/layout.h"
51 #line 52 "src/parser_proc.h" /* glr.c:197 */
88 PSI_T_DOLLAR_NAME
= 287,
90 PSI_T_QUOTED_STRING
= 289,
91 PSI_T_QUOTED_CHAR
= 290,
100 PSI_T_LBRACKET
= 299,
101 PSI_T_RBRACKET
= 300,
106 PSI_T_AMPERSAND
= 305,
111 PSI_T_ASTERISK
= 310,
125 PSI_T_BACKSLASH
= 324,
126 PSI_T_ELLIPSIS
= 325,
129 PSI_T_PRAGMA_ONCE
= 328,
144 PSI_T_INCLUDE_NEXT
= 343,
152 PSI_T_CALLBACK
= 351,
153 PSI_T_FUNCTION
= 352,
159 PSI_T_PRE_ASSERT
= 358,
160 PSI_T_POST_ASSERT
= 359,
166 PSI_T_FLOATVAL
= 365,
173 PSI_T_TO_STRING
= 372,
174 PSI_T_TO_FLOAT
= 373,
175 PSI_T_TO_ARRAY
= 374,
176 PSI_T_TO_OBJECT
= 375,
178 PSI_T_WHITESPACE
= 377,
179 PSI_T_NO_WHITESPACE
= 378,
180 PSI_T_CPP_HEADER
= 379,
181 PSI_T_CPP_ATTRIBUTE
= 380,
182 PSI_T_CPP_EXTENSION
= 381,
183 PSI_T_CPP_PASTE
= 382,
184 PSI_T_CPP_RESTRICT
= 383,
192 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
198 bool PSI_T_reference
;
200 size_t PSI_T_array_size
;
202 size_t PSI_T_indirection
;
204 size_t PSI_T_pointers
;
206 size_t PSI_T_asterisks
;
208 struct psi_assert_stmt
* PSI_T_assert_stmt
;
210 struct psi_const
* PSI_T_constant
;
212 struct psi_const_type
* PSI_T_constant_type
;
214 struct psi_cpp_exp
* PSI_T_cpp
;
216 struct psi_cpp_exp
* PSI_T_cpp_exp
;
218 struct psi_cpp_macro_decl
* PSI_T_cpp_macro_decl
;
220 struct psi_decl
* PSI_T_decl_stmt
;
222 struct psi_decl
* PSI_T_decl
;
224 struct psi_decl
* PSI_T_decl_body
;
226 struct psi_decl
* PSI_T_decl_func_body
;
227 /* decl_functor_body */
228 struct psi_decl
* PSI_T_decl_functor_body
;
230 struct psi_decl_arg
* PSI_T_decl_typedef
;
232 struct psi_decl_arg
* PSI_T_typedef
;
234 struct psi_decl_arg
* PSI_T_decl_functor
;
236 struct psi_decl_arg
* PSI_T_decl_func
;
238 struct psi_decl_arg
* PSI_T_decl_arg
;
240 struct psi_decl_enum
* PSI_T_decl_enum
;
242 struct psi_decl_enum_item
* PSI_T_decl_enum_item
;
244 struct psi_decl_struct
* PSI_T_decl_struct
;
245 /* const_decl_type */
246 struct psi_decl_type
* PSI_T_const_decl_type
;
248 struct psi_decl_type
* PSI_T_decl_type
;
249 /* decl_type_complex */
250 struct psi_decl_type
* PSI_T_decl_type_complex
;
252 struct psi_decl_union
* PSI_T_decl_union
;
254 struct psi_decl_var
* PSI_T_decl_var
;
256 struct psi_free_exp
* PSI_T_free_exp
;
258 struct psi_free_stmt
* PSI_T_free_stmt
;
260 struct psi_impl
* PSI_T_impl
;
262 struct psi_impl_arg
* PSI_T_impl_arg
;
264 struct psi_impl_def_val
* PSI_T_impl_def_val
;
266 struct psi_impl_func
* PSI_T_impl_func
;
268 struct psi_impl_type
* PSI_T_impl_type
;
270 struct psi_impl_var
* PSI_T_impl_var
;
272 struct psi_layout PSI_T_align_and_size
;
274 struct psi_layout
* PSI_T_decl_layout
;
276 struct psi_let_callback
* PSI_T_let_callback
;
278 struct psi_let_calloc
* PSI_T_let_calloc
;
280 struct psi_let_exp
* PSI_T_let_exp
;
282 struct psi_let_exp
* PSI_T_let_exp_byref
;
284 struct psi_let_exp
* PSI_T_let_exp_assign
;
286 struct psi_let_func
* PSI_T_let_func
;
288 struct psi_let_stmt
* PSI_T_let_stmt
;
290 struct psi_num_exp
* PSI_T_cpp_macro_exp
;
292 struct psi_num_exp
* PSI_T_num_exp
;
294 struct psi_number
* PSI_T_number
;
296 struct psi_plist
* PSI_T_cpp_macro_sig
;
297 /* cpp_macro_sig_args */
298 struct psi_plist
* PSI_T_cpp_macro_sig_args
;
299 /* cpp_macro_decl_tokens */
300 struct psi_plist
* PSI_T_cpp_macro_decl_tokens
;
301 /* cpp_macro_decl_token_list */
302 struct psi_plist
* PSI_T_cpp_macro_decl_token_list
;
303 /* cpp_macro_call_args */
304 struct psi_plist
* PSI_T_cpp_macro_call_args
;
305 /* cpp_macro_call_arg_list */
306 struct psi_plist
* PSI_T_cpp_macro_call_arg_list
;
308 struct psi_plist
* PSI_T_decl_vars
;
310 struct psi_plist
* PSI_T_decl_args
;
311 /* decl_struct_args */
312 struct psi_plist
* PSI_T_decl_struct_args
;
313 /* struct_args_block */
314 struct psi_plist
* PSI_T_struct_args_block
;
316 struct psi_plist
* PSI_T_struct_args
;
317 /* struct_arg_var_list */
318 struct psi_plist
* PSI_T_struct_arg_var_list
;
319 /* decl_vars_with_layout */
320 struct psi_plist
* PSI_T_decl_vars_with_layout
;
321 /* decl_enum_items */
322 struct psi_plist
* PSI_T_decl_enum_items
;
324 struct psi_plist
* PSI_T_impl_args
;
326 struct psi_plist
* PSI_T_impl_stmts
;
328 struct psi_plist
* PSI_T_let_func_exps
;
330 struct psi_plist
* PSI_T_let_exps
;
331 /* callback_arg_list */
332 struct psi_plist
* PSI_T_callback_arg_list
;
334 struct psi_plist
* PSI_T_callback_args
;
336 struct psi_plist
* PSI_T_set_func_exps
;
338 struct psi_plist
* PSI_T_set_exps
;
340 struct psi_plist
* PSI_T_free_exps
;
342 struct psi_return_stmt
* PSI_T_return_stmt
;
344 struct psi_set_exp
* PSI_T_set_exp
;
346 struct psi_set_func
* PSI_T_set_func
;
348 struct psi_set_stmt
* PSI_T_set_stmt
;
350 struct psi_token
* PSI_T_EOF
;
352 struct psi_token
* PSI_T_BOOL
;
354 struct psi_token
* PSI_T_CHAR
;
356 struct psi_token
* PSI_T_SHORT
;
358 struct psi_token
* PSI_T_INT
;
360 struct psi_token
* PSI_T_SIGNED
;
362 struct psi_token
* PSI_T_UNSIGNED
;
364 struct psi_token
* PSI_T_LONG
;
366 struct psi_token
* PSI_T_FLOAT
;
368 struct psi_token
* PSI_T_DOUBLE
;
370 struct psi_token
* PSI_T_STRING
;
372 struct psi_token
* PSI_T_MIXED
;
374 struct psi_token
* PSI_T_ARRAY
;
376 struct psi_token
* PSI_T_OBJECT
;
378 struct psi_token
* PSI_T_CALLABLE
;
380 struct psi_token
* PSI_T_VOID
;
382 struct psi_token
* PSI_T_ZVAL
;
384 struct psi_token
* PSI_T_INT8
;
386 struct psi_token
* PSI_T_UINT8
;
388 struct psi_token
* PSI_T_INT16
;
390 struct psi_token
* PSI_T_UINT16
;
392 struct psi_token
* PSI_T_INT32
;
394 struct psi_token
* PSI_T_UINT32
;
396 struct psi_token
* PSI_T_INT64
;
398 struct psi_token
* PSI_T_UINT64
;
400 struct psi_token
* PSI_T_NULL
;
402 struct psi_token
* PSI_T_TRUE
;
404 struct psi_token
* PSI_T_FALSE
;
406 struct psi_token
* PSI_T_NAME
;
408 struct psi_token
* PSI_T_NSNAME
;
410 struct psi_token
* PSI_T_DOLLAR_NAME
;
412 struct psi_token
* PSI_T_NUMBER
;
414 struct psi_token
* PSI_T_QUOTED_STRING
;
416 struct psi_token
* PSI_T_QUOTED_CHAR
;
418 struct psi_token
* PSI_T_EOL
;
420 struct psi_token
* PSI_T_EOS
;
422 struct psi_token
* PSI_T_LPAREN
;
424 struct psi_token
* PSI_T_RPAREN
;
426 struct psi_token
* PSI_T_COMMA
;
428 struct psi_token
* PSI_T_COLON
;
430 struct psi_token
* PSI_T_LBRACE
;
432 struct psi_token
* PSI_T_RBRACE
;
434 struct psi_token
* PSI_T_LBRACKET
;
436 struct psi_token
* PSI_T_RBRACKET
;
438 struct psi_token
* PSI_T_EQUALS
;
440 struct psi_token
* PSI_T_HASH
;
442 struct psi_token
* PSI_T_PIPE
;
444 struct psi_token
* PSI_T_CARET
;
446 struct psi_token
* PSI_T_AMPERSAND
;
448 struct psi_token
* PSI_T_LSHIFT
;
450 struct psi_token
* PSI_T_RSHIFT
;
452 struct psi_token
* PSI_T_PLUS
;
454 struct psi_token
* PSI_T_MINUS
;
456 struct psi_token
* PSI_T_ASTERISK
;
458 struct psi_token
* PSI_T_SLASH
;
460 struct psi_token
* PSI_T_MODULO
;
462 struct psi_token
* PSI_T_LCHEVR
;
464 struct psi_token
* PSI_T_RCHEVR
;
466 struct psi_token
* PSI_T_CMP_GE
;
468 struct psi_token
* PSI_T_CMP_LE
;
470 struct psi_token
* PSI_T_OR
;
472 struct psi_token
* PSI_T_AND
;
474 struct psi_token
* PSI_T_CMP_EQ
;
476 struct psi_token
* PSI_T_CMP_NE
;
478 struct psi_token
* PSI_T_TILDE
;
480 struct psi_token
* PSI_T_NOT
;
482 struct psi_token
* PSI_T_PERIOD
;
484 struct psi_token
* PSI_T_BACKSLASH
;
486 struct psi_token
* PSI_T_ELLIPSIS
;
488 struct psi_token
* PSI_T_IIF
;
490 struct psi_token
* PSI_T_PRAGMA
;
492 struct psi_token
* PSI_T_PRAGMA_ONCE
;
494 struct psi_token
* PSI_T_LINE
;
496 struct psi_token
* PSI_T_ERROR
;
498 struct psi_token
* PSI_T_WARNING
;
500 struct psi_token
* PSI_T_IF
;
502 struct psi_token
* PSI_T_IFDEF
;
504 struct psi_token
* PSI_T_IFNDEF
;
506 struct psi_token
* PSI_T_ELSE
;
508 struct psi_token
* PSI_T_ELIF
;
510 struct psi_token
* PSI_T_ENDIF
;
512 struct psi_token
* PSI_T_DEFINE
;
514 struct psi_token
* PSI_T_DEFINED
;
516 struct psi_token
* PSI_T_UNDEF
;
518 struct psi_token
* PSI_T_IMPORT
;
520 struct psi_token
* PSI_T_INCLUDE
;
522 struct psi_token
* PSI_T_INCLUDE_NEXT
;
524 struct psi_token
* PSI_T_TYPEDEF
;
526 struct psi_token
* PSI_T_STRUCT
;
528 struct psi_token
* PSI_T_UNION
;
530 struct psi_token
* PSI_T_ENUM
;
532 struct psi_token
* PSI_T_CONST
;
534 struct psi_token
* PSI_T_LIB
;
536 struct psi_token
* PSI_T_STATIC
;
538 struct psi_token
* PSI_T_CALLBACK
;
540 struct psi_token
* PSI_T_FUNCTION
;
542 struct psi_token
* PSI_T_LET
;
544 struct psi_token
* PSI_T_SET
;
546 struct psi_token
* PSI_T_TEMP
;
548 struct psi_token
* PSI_T_FREE
;
550 struct psi_token
* PSI_T_RETURN
;
552 struct psi_token
* PSI_T_PRE_ASSERT
;
554 struct psi_token
* PSI_T_POST_ASSERT
;
556 struct psi_token
* PSI_T_BOOLVAL
;
558 struct psi_token
* PSI_T_INTVAL
;
560 struct psi_token
* PSI_T_STRVAL
;
562 struct psi_token
* PSI_T_PATHVAL
;
564 struct psi_token
* PSI_T_STRLEN
;
566 struct psi_token
* PSI_T_FLOATVAL
;
568 struct psi_token
* PSI_T_ARRVAL
;
570 struct psi_token
* PSI_T_OBJVAL
;
572 struct psi_token
* PSI_T_COUNT
;
574 struct psi_token
* PSI_T_CALLOC
;
576 struct psi_token
* PSI_T_TO_BOOL
;
578 struct psi_token
* PSI_T_TO_INT
;
580 struct psi_token
* PSI_T_TO_STRING
;
582 struct psi_token
* PSI_T_TO_FLOAT
;
584 struct psi_token
* PSI_T_TO_ARRAY
;
586 struct psi_token
* PSI_T_TO_OBJECT
;
588 struct psi_token
* PSI_T_COMMENT
;
590 struct psi_token
* PSI_T_WHITESPACE
;
592 struct psi_token
* PSI_T_NO_WHITESPACE
;
594 struct psi_token
* PSI_T_CPP_HEADER
;
596 struct psi_token
* PSI_T_CPP_ATTRIBUTE
;
598 struct psi_token
* PSI_T_CPP_EXTENSION
;
600 struct psi_token
* PSI_T_CPP_PASTE
;
602 struct psi_token
* PSI_T_CPP_RESTRICT
;
604 struct psi_token
* PSI_T_CPP_ASM
;
605 /* binary_op_token */
606 struct psi_token
* PSI_T_binary_op_token
;
608 struct psi_token
* PSI_T_unary_op_token
;
610 struct psi_token
* PSI_T_name_token
;
611 /* any_noeol_token */
612 struct psi_token
* PSI_T_any_noeol_token
;
614 struct psi_token
* PSI_T_lib
;
615 /* cpp_message_token */
616 struct psi_token
* PSI_T_cpp_message_token
;
617 /* cpp_include_token */
618 struct psi_token
* PSI_T_cpp_include_token
;
619 /* cpp_header_token */
620 struct psi_token
* PSI_T_cpp_header_token
;
621 /* cpp_no_arg_token */
622 struct psi_token
* PSI_T_cpp_no_arg_token
;
623 /* cpp_name_arg_token */
624 struct psi_token
* PSI_T_cpp_name_arg_token
;
625 /* cpp_exp_arg_token */
626 struct psi_token
* PSI_T_cpp_exp_arg_token
;
627 /* cpp_special_name_token */
628 struct psi_token
* PSI_T_cpp_special_name_token
;
629 /* constant_type_token */
630 struct psi_token
* PSI_T_constant_type_token
;
631 /* impl_def_val_token */
632 struct psi_token
* PSI_T_impl_def_val_token
;
633 /* decl_type_simple */
634 struct psi_token
* PSI_T_decl_type_simple
;
636 struct psi_token
* PSI_T_decl_real_type
;
637 /* decl_stdint_type */
638 struct psi_token
* PSI_T_decl_stdint_type
;
640 struct psi_token
* PSI_T_int_signed
;
642 struct psi_token
* PSI_T_int_width
;
644 struct psi_token
* PSI_T_decl_int_type
;
645 /* int_signed_types */
646 struct psi_token
* PSI_T_int_signed_types
;
647 /* signed_short_types */
648 struct psi_token
* PSI_T_signed_short_types
;
649 /* signed_long_types */
650 struct psi_token
* PSI_T_signed_long_types
;
651 /* int_width_types */
652 struct psi_token
* PSI_T_int_width_types
;
654 struct psi_token
* PSI_T_enum_name
;
656 struct psi_token
* PSI_T_union_name
;
658 struct psi_token
* PSI_T_struct_name
;
660 struct psi_token
* PSI_T_optional_name
;
661 /* impl_type_token */
662 struct psi_token
* PSI_T_impl_type_token
;
664 struct psi_token
* PSI_T_let_func_token
;
666 struct psi_token
* PSI_T_callback_rval
;
668 struct psi_token
* PSI_T_set_func_token
;
669 /* assert_stmt_token */
670 struct psi_token
* PSI_T_assert_stmt_token
;
672 struct psi_token
** PSI_T_impl_stmt
;
673 #line 674 "src/parser_proc.h" /* glr.c:197 */
676 typedef union YYSTYPE YYSTYPE
;
677 # define YYSTYPE_IS_TRIVIAL 1
678 # define YYSTYPE_IS_DECLARED 1
683 int psi_parser_proc_parse (struct psi_parser
*P
, struct psi_plist
*tokens
, size_t *index
);
685 #endif /* !YY_PSI_PARSER_PROC_SRC_PARSER_PROC_H_INCLUDED */