#![allow(unused_variables)]
#![allow(non_snake_case)]
#![allow(non_camel_case_types)]
#![allow(unused_parens)]
#![allow(unused_imports)]
#![allow(dead_code)]
use std::marker::PhantomData;
extern crate rustlr;
use rustlr::LBox;
use crate::cauto_ast::declaration_specifiers::*;
use crate::cauto_ast::storage_class_specifier::*;
use crate::cauto_ast::init_declarator::*;
use crate::cauto_ast::init_declarator_list::*;
use crate::cauto_ast::declarator::*;
use crate::cauto_ast::declaration::*;
use crate::cauto_ast::direct_declarator::*;
#[derive(Default,Debug)]
pub struct generic_selection<'lt> {
pub _item2_:LBox<assignment_expression<'lt>>,
pub _item4_:LBox<generic_assoc_list<'lt>>,
}
#[derive(Debug)]
pub enum conditional_expression<'lt> {
conditional_expression_72(LBox<logical_or_expression<'lt>>,LBox<expression<'lt>>,LBox<conditional_expression<'lt>>),
conditional_expression_71(LBox<logical_or_expression<'lt>>),
conditional_expression_Nothing(&'lt ()),
}
impl<'lt> Default for conditional_expression<'lt> { fn default()->Self { conditional_expression::conditional_expression_Nothing(&()) } }
#[derive(Debug)]
pub enum unary_expression<'lt> {
SIZEOF_33(LBox<type_name<'lt>>),
ALIGNOF_34(LBox<type_name<'lt>>),
unary_expression_28(LBox<postfix_expression<'lt>>),
unary_expression_31(LBox<unary_operator<'lt>>,LBox<cast_expression<'lt>>),
unary_expression_Nothing(&'lt ()),
}
impl<'lt> Default for unary_expression<'lt> { fn default()->Self { unary_expression::unary_expression_Nothing(&()) } }
#[derive(Debug)]
pub enum type_qualifier<'lt> {
CONST,
RESTRICT,
ATOMIC,
VOLATILE,
type_qualifier_Nothing(&'lt ()),
}
impl<'lt> Default for type_qualifier<'lt> { fn default()->Self { type_qualifier::type_qualifier_Nothing(&()) } }
#[derive(Debug)]
pub enum shift_expression<'lt> {
shift_expression_50(LBox<additive_expression<'lt>>),
shift_expression_52(LBox<shift_expression<'lt>>,LBox<additive_expression<'lt>>),
shift_expression_51(LBox<shift_expression<'lt>>,LBox<additive_expression<'lt>>),
shift_expression_Nothing(&'lt ()),
}
impl<'lt> Default for shift_expression<'lt> { fn default()->Self { shift_expression::shift_expression_Nothing(&()) } }
#[derive(Debug)]
pub enum initializer_list<'lt> {
initializer_list_242(LBox<initializer_list<'lt>>,LBox<designation<'lt>>,LBox<initializer<'lt>>),
initializer_list_239(LBox<initializer<'lt>>),
initializer_list_241(LBox<designation<'lt>>,LBox<initializer<'lt>>),
initializer_list_240(LBox<initializer_list<'lt>>,LBox<initializer<'lt>>),
initializer_list_Nothing(&'lt ()),
}
impl<'lt> Default for initializer_list<'lt> { fn default()->Self { initializer_list::initializer_list_Nothing(&()) } }
#[derive(Debug)]
pub enum alignment_specifier<'lt> {
ALIGNAS_168(LBox<type_name<'lt>>),
ALIGNAS_169(LBox<constant_expression<'lt>>),
alignment_specifier_Nothing(&'lt ()),
}
impl<'lt> Default for alignment_specifier<'lt> { fn default()->Self { alignment_specifier::alignment_specifier_Nothing(&()) } }
#[derive(Debug)]
pub enum storage_class_specifier<'lt> {
REGISTER,
THREAD_LOCAL,
STATIC,
Typedef,
EXTERN,
AUTO,
storage_class_specifier_Nothing(&'lt ()),
}
impl<'lt> Default for storage_class_specifier<'lt> { fn default()->Self { storage_class_specifier::storage_class_specifier_Nothing(&()) } }
#[derive(Debug)]
pub enum designator<'lt> {
Dot_248(&'lt str),
designator_247(LBox<constant_expression<'lt>>),
designator_Nothing(&'lt ()),
}
impl<'lt> Default for designator<'lt> { fn default()->Self { designator::designator_Nothing(&()) } }
#[derive(Debug)]
pub enum statement_list<'lt> {
statement_list_Nothing(&'lt ()),
}
impl<'lt> Default for statement_list<'lt> { fn default()->Self { statement_list::statement_list_Nothing(&()) } }
#[derive(Debug)]
pub enum constant<'lt> {
F_CONSTANT_6(f64),
ENUMERATION_CONSTANT_7(&'lt str),
I_CONSTANT_5(i32),
constant_Nothing(&'lt ()),
}
impl<'lt> Default for constant<'lt> { fn default()->Self { constant::constant_Nothing(&()) } }
#[derive(Debug)]
pub enum inclusive_or_expression<'lt> {
inclusive_or_expression_66(LBox<inclusive_or_expression<'lt>>,LBox<exclusive_or_expression<'lt>>),
inclusive_or_expression_65(LBox<exclusive_or_expression<'lt>>),
inclusive_or_expression_Nothing(&'lt ()),
}
impl<'lt> Default for inclusive_or_expression<'lt> { fn default()->Self { inclusive_or_expression::inclusive_or_expression_Nothing(&()) } }
#[derive(Debug)]
pub enum logical_and_expression<'lt> {
logical_and_expression_68(LBox<logical_and_expression<'lt>>,LBox<inclusive_or_expression<'lt>>),
logical_and_expression_67(LBox<inclusive_or_expression<'lt>>),
logical_and_expression_Nothing(&'lt ()),
}
impl<'lt> Default for logical_and_expression<'lt> { fn default()->Self { logical_and_expression::logical_and_expression_Nothing(&()) } }
#[derive(Debug)]
pub enum specifier_qualifier_list<'lt> {
specifier_qualifier_list_144(LBox<type_qualifier<'lt>>),
specifier_qualifier_list_143(LBox<type_qualifier<'lt>>,LBox<specifier_qualifier_list<'lt>>),
specifier_qualifier_list_142(LBox<type_specifier<'lt>>),
specifier_qualifier_list_141(LBox<type_specifier<'lt>>,LBox<specifier_qualifier_list<'lt>>),
specifier_qualifier_list_Nothing(&'lt ()),
}
impl<'lt> Default for specifier_qualifier_list<'lt> { fn default()->Self { specifier_qualifier_list::specifier_qualifier_list_Nothing(&()) } }
#[derive(Debug)]
pub enum primary_expression<'lt> {
primary_expression_1(LBox<constant<'lt>>),
primary_expression_2(LBox<stringnt<'lt>>),
primary_expression_3(LBox<expression<'lt>>),
primary_expression_4(LBox<generic_selection<'lt>>),
IDENTIFIER_0(&'lt str),
primary_expression_Nothing(&'lt ()),
}
impl<'lt> Default for primary_expression<'lt> { fn default()->Self { primary_expression::primary_expression_Nothing(&()) } }
#[derive(Debug)]
pub enum struct_or_union<'lt> {
UNION,
STRUCT,
struct_or_union_Nothing(&'lt ()),
}
impl<'lt> Default for struct_or_union<'lt> { fn default()->Self { struct_or_union::struct_or_union_Nothing(&()) } }
#[derive(Debug)]
pub enum block_item<'lt> {
block_item_263(LBox<statement<'lt>>),
block_item_262(LBox<declaration<'lt>>),
block_item_Nothing(&'lt ()),
}
impl<'lt> Default for block_item<'lt> { fn default()->Self { block_item::block_item_Nothing(&()) } }
#[derive(Debug)]
pub enum initializer<'lt> {
initializer_235(LBox<assignment_expression<'lt>>),
Lbrace_238(LBox<initializer_list<'lt>>,()),
initializer_Nothing(&'lt ()),
}
impl<'lt> Default for initializer<'lt> { fn default()->Self { initializer::initializer_Nothing(&()) } }
#[derive(Default,Debug)]
pub struct type_qualifier_list<'lt> {
pub qualifiers:Vec<LBox<type_qualifier<'lt>>>,
}
#[derive(Debug)]
pub enum abstract_declarator<'lt> {
abstract_declarator_208(LBox<pointer<'lt>>,LBox<direct_abstract_declarator<'lt>>),
abstract_declarator_206(LBox<pointer<'lt>>),
abstract_declarator_207(LBox<direct_abstract_declarator<'lt>>),
abstract_declarator_Nothing(&'lt ()),
}
impl<'lt> Default for abstract_declarator<'lt> { fn default()->Self { abstract_declarator::abstract_declarator_Nothing(&()) } }
#[derive(Default,Debug)]
pub struct pointer<'lt> {
pub tql:Option<LBox<type_qualifier_list<'lt>>>,
pub ptr:Option<LBox<pointer<'lt>>>,
}
#[derive(Debug)]
pub enum direct_declarator<'lt> {
direct_declarator_178(LBox<direct_declarator<'lt>>,Option<LBox<type_qualifier_list<'lt>>>,LBox<assignment_expression<'lt>>),
direct_declarator_181(LBox<direct_declarator<'lt>>,LBox<type_qualifier_list<'lt>>,LBox<assignment_expression<'lt>>),
direct_declarator_180(LBox<direct_declarator<'lt>>,LBox<type_qualifier_list<'lt>>,LBox<assignment_expression<'lt>>),
direct_declarator_185(LBox<direct_declarator<'lt>>,LBox<identifier_list<'lt>>),
direct_declarator_173(LBox<declarator<'lt>>),
direct_declarator_183(LBox<direct_declarator<'lt>>,LBox<assignment_expression<'lt>>),
direct_declarator_179(LBox<direct_declarator<'lt>>,LBox<type_qualifier_list<'lt>>),
IDENTIFIER_172(&'lt str),
direct_declarator_184(LBox<direct_declarator<'lt>>,LBox<parameter_type_list<'lt>>),
direct_declarator_182(LBox<direct_declarator<'lt>>,LBox<type_qualifier_list<'lt>>),
direct_declarator_Nothing(&'lt ()),
}
impl<'lt> Default for direct_declarator<'lt> { fn default()->Self { direct_declarator::direct_declarator_Nothing(&()) } }
#[derive(Default,Debug)]
pub struct function_definition<'lt> {
pub _item0_:LBox<declaration_specifiers<'lt>>,
pub _item1_:LBox<declarator<'lt>>,
pub _item2_:Vec<LBox<declaration<'lt>>>,
pub _item3_:LBox<compound_statement<'lt>>,
}
#[derive(Debug)]
pub enum declaration<'lt> {
DecSpecList(LBox<declaration_specifiers<'lt>>,LBox<init_declarator_list<'lt>>),
Statassert(LBox<static_assert_declaration<'lt>>),
DecSpec(LBox<declaration_specifiers<'lt>>),
declaration_Nothing(&'lt ()),
}
impl<'lt> Default for declaration<'lt> { fn default()->Self { declaration::declaration_Nothing(&()) } }
#[derive(Debug)]
pub enum struct_declaration<'lt> {
struct_declaration_136(LBox<specifier_qualifier_list<'lt>>,Option<LBox<struct_declarator_list<'lt>>>),
struct_declaration_137(LBox<static_assert_declaration<'lt>>),
struct_declaration_Nothing(&'lt ()),
}
impl<'lt> Default for struct_declaration<'lt> { fn default()->Self { struct_declaration::struct_declaration_Nothing(&()) } }
#[derive(Debug)]
pub enum declaration_specifiers<'lt> {
declaration_specifiers_92(LBox<storage_class_specifier<'lt>>),
declaration_specifiers_99(LBox<alignment_specifier<'lt>>),
declaration_specifiers_94(LBox<type_specifier<'lt>>,LBox<declaration_specifiers<'lt>>),
declaration_specifiers_96(LBox<type_qualifier<'lt>>,LBox<declaration_specifiers<'lt>>),
declaration_specifiers_98(LBox<function_specifier<'lt>>,LBox<declaration_specifiers<'lt>>),
DSCDS(LBox<storage_class_specifier<'lt>>,LBox<declaration_specifiers<'lt>>),
declaration_specifiers_93(LBox<type_specifier<'lt>>),
declaration_specifiers_97(LBox<function_specifier<'lt>>),
declaration_specifiers_100(LBox<alignment_specifier<'lt>>,LBox<declaration_specifiers<'lt>>),
declaration_specifiers_95(LBox<type_qualifier<'lt>>),
declaration_specifiers_Nothing(&'lt ()),
}
impl<'lt> Default for declaration_specifiers<'lt> { fn default()->Self { declaration_specifiers::declaration_specifiers_Nothing(&()) } }
#[derive(Debug)]
pub enum type_specifier<'lt> {
COMPLEX,
VOID,
type_specifier_127(LBox<atomic_type_specifier<'lt>>),
INT,
CHAR,
SIGNED,
UNSIGNED,
Typename(&'lt str),
LONG,
BOOL,
DOUBLE,
IMAGINARY,
type_specifier_125(LBox<struct_or_union_specifier<'lt>>),
type_specifier_126(LBox<enum_specifier<'lt>>),
FLOAT,
SHORT,
type_specifier_Nothing(&'lt ()),
}
impl<'lt> Default for type_specifier<'lt> { fn default()->Self { type_specifier::type_specifier_Nothing(&()) } }
#[derive(Debug)]
pub enum exclusive_or_expression<'lt> {
exclusive_or_expression_64(LBox<exclusive_or_expression<'lt>>,LBox<and_expression<'lt>>),
exclusive_or_expression_63(LBox<and_expression<'lt>>),
exclusive_or_expression_Nothing(&'lt ()),
}
impl<'lt> Default for exclusive_or_expression<'lt> { fn default()->Self { exclusive_or_expression::exclusive_or_expression_Nothing(&()) } }
#[derive(Debug)]
pub enum identifier_list<'lt> {
identifier_list_203(LBox<identifier_list<'lt>>,&'lt str),
IDENTIFIER_202(&'lt str),
identifier_list_Nothing(&'lt ()),
}
impl<'lt> Default for identifier_list<'lt> { fn default()->Self { identifier_list::identifier_list_Nothing(&()) } }
#[derive(Debug)]
pub enum declarator<'lt> {
declarator_171(LBox<direct_declarator<'lt>>),
declarator_170(LBox<pointer<'lt>>,LBox<direct_declarator<'lt>>),
declarator_Nothing(&'lt ()),
}
impl<'lt> Default for declarator<'lt> { fn default()->Self { declarator::declarator_Nothing(&()) } }
#[derive(Default,Debug)]
pub struct struct_declaration_list<'lt> {
pub _item0_:Vec<LBox<struct_declaration<'lt>>>,
}
#[derive(Default,Debug)]
pub struct translation_unit<'lt> {
pub _item0_:Vec<LBox<external_declaration<'lt>>>,
}
#[derive(Debug)]
pub enum parameter_type_list<'lt> {
parameter_type_list_195(LBox<parameter_list<'lt>>),
parameter_type_list_196(LBox<parameter_list<'lt>>),
parameter_type_list_Nothing(&'lt ()),
}
impl<'lt> Default for parameter_type_list<'lt> { fn default()->Self { parameter_type_list::parameter_type_list_Nothing(&()) } }
#[derive(Debug)]
pub enum parameter_list<'lt> {
parameter_list_198(LBox<parameter_list<'lt>>,LBox<parameter_declaration<'lt>>),
parameter_list_197(LBox<parameter_declaration<'lt>>),
parameter_list_Nothing(&'lt ()),
}
impl<'lt> Default for parameter_list<'lt> { fn default()->Self { parameter_list::parameter_list_Nothing(&()) } }
#[derive(Debug)]
pub enum enumerator_list<'lt> {
enumerator_list_157(LBox<enumerator<'lt>>),
enumerator_list_158(LBox<enumerator_list<'lt>>,LBox<enumerator<'lt>>),
enumerator_list_Nothing(&'lt ()),
}
impl<'lt> Default for enumerator_list<'lt> { fn default()->Self { enumerator_list::enumerator_list_Nothing(&()) } }
#[derive(Debug)]
pub enum type_name<'lt> {
type_name_204(LBox<specifier_qualifier_list<'lt>>),
type_name_205(LBox<specifier_qualifier_list<'lt>>,LBox<abstract_declarator<'lt>>),
type_name_Nothing(&'lt ()),
}
impl<'lt> Default for type_name<'lt> { fn default()->Self { type_name::type_name_Nothing(&()) } }
#[derive(Debug)]
pub enum iteration_statement<'lt> {
FOR_273(LBox<expression_statement<'lt>>,LBox<expression_statement<'lt>>,Option<LBox<expression<'lt>>>,LBox<statement<'lt>>),
WHILE_269(LBox<expression<'lt>>,LBox<statement<'lt>>),
DO_270(LBox<statement<'lt>>,LBox<expression<'lt>>),
FOR_276(LBox<declaration<'lt>>,LBox<expression_statement<'lt>>,Option<LBox<expression<'lt>>>,LBox<statement<'lt>>),
iteration_statement_Nothing(&'lt ()),
}
impl<'lt> Default for iteration_statement<'lt> { fn default()->Self { iteration_statement::iteration_statement_Nothing(&()) } }
#[derive(Debug)]
pub enum logical_or_expression<'lt> {
logical_or_expression_70(LBox<logical_or_expression<'lt>>,LBox<logical_and_expression<'lt>>),
logical_or_expression_69(LBox<logical_and_expression<'lt>>),
logical_or_expression_Nothing(&'lt ()),
}
impl<'lt> Default for logical_or_expression<'lt> { fn default()->Self { logical_or_expression::logical_or_expression_Nothing(&()) } }
#[derive(Debug)]
pub enum unary_operator<'lt> {
Bang,
Amp,
unary_operator_38,
unary_operator_39,
unary_operator_37,
Star,
unary_operator_Nothing(&'lt ()),
}
impl<'lt> Default for unary_operator<'lt> { fn default()->Self { unary_operator::unary_operator_Nothing(&()) } }
#[derive(Debug)]
pub enum relational_expression<'lt> {
relational_expression_57(LBox<relational_expression<'lt>>,LBox<shift_expression<'lt>>),
relational_expression_56(LBox<relational_expression<'lt>>,LBox<shift_expression<'lt>>),
relational_expression_54(LBox<relational_expression<'lt>>,LBox<shift_expression<'lt>>),
relational_expression_55(LBox<relational_expression<'lt>>,LBox<shift_expression<'lt>>),
relational_expression_53(LBox<shift_expression<'lt>>),
relational_expression_Nothing(&'lt ()),
}
impl<'lt> Default for relational_expression<'lt> { fn default()->Self { relational_expression::relational_expression_Nothing(&()) } }
#[derive(Debug)]
pub enum init_declarator<'lt> {
init_declarator_104(LBox<declarator<'lt>>),
init_declarator_105(LBox<declarator<'lt>>,LBox<initializer<'lt>>),
init_declarator_Nothing(&'lt ()),
}
impl<'lt> Default for init_declarator<'lt> { fn default()->Self { init_declarator::init_declarator_Nothing(&()) } }
#[derive(Debug)]
pub enum declaration_list<'lt> {
declaration_list_Nothing(&'lt ()),
}
impl<'lt> Default for declaration_list<'lt> { fn default()->Self { declaration_list::declaration_list_Nothing(&()) } }
#[derive(Debug)]
pub enum selection_statement<'lt> {
IF_267(LBox<expression<'lt>>,LBox<statement<'lt>>,LBox<statement<'lt>>),
IF_266(LBox<expression<'lt>>,LBox<statement<'lt>>),
SWITCH_268(LBox<expression<'lt>>,LBox<statement<'lt>>),
selection_statement_Nothing(&'lt ()),
}
impl<'lt> Default for selection_statement<'lt> { fn default()->Self { selection_statement::selection_statement_Nothing(&()) } }
#[derive(Debug)]
pub enum struct_declarator_list<'lt> {
struct_declarator_list_146(LBox<struct_declarator_list<'lt>>,LBox<struct_declarator<'lt>>),
struct_declarator_list_145(LBox<struct_declarator<'lt>>),
struct_declarator_list_Nothing(&'lt ()),
}
impl<'lt> Default for struct_declarator_list<'lt> { fn default()->Self { struct_declarator_list::struct_declarator_list_Nothing(&()) } }
#[derive(Default,Debug)]
pub struct atomic_type_specifier<'lt> {
pub _item2_:LBox<type_name<'lt>>,
}
#[derive(Debug)]
pub enum postfix_expression<'lt> {
postfix_expression_25(LBox<type_name<'lt>>,LBox<initializer_list<'lt>>,()),
postfix_expression_19(LBox<postfix_expression<'lt>>,&'lt str),
postfix_expression_15(LBox<primary_expression<'lt>>),
postfix_expression_16(LBox<postfix_expression<'lt>>,LBox<expression<'lt>>),
postfix_expression_20(LBox<postfix_expression<'lt>>,&'lt str),
postfix_expression_18(LBox<postfix_expression<'lt>>,LBox<argument_expression_list<'lt>>),
postfix_expression_Nothing(&'lt ()),
}
impl<'lt> Default for postfix_expression<'lt> { fn default()->Self { postfix_expression::postfix_expression_Nothing(&()) } }
#[derive(Default,Debug)]
pub struct compound_statement<'lt> {
pub items:Vec<LBox<block_item<'lt>>>,
}
#[derive(Debug)]
pub enum stringnt<'lt> {
FUNC_NAME,
STRING_LITERAL_8(&'lt str),
stringnt_Nothing(&'lt ()),
}
impl<'lt> Default for stringnt<'lt> { fn default()->Self { stringnt::stringnt_Nothing(&()) } }
#[derive(Default,Debug)]
pub struct constant_expression<'lt> {
pub _item0_:LBox<conditional_expression<'lt>>,
}
#[derive(Debug)]
pub enum assignment_expression<'lt> {
assignment_expression_74(LBox<unary_expression<'lt>>,LBox<assignment_operator<'lt>>,LBox<assignment_expression<'lt>>),
assignment_expression_73(LBox<conditional_expression<'lt>>),
assignment_expression_Nothing(&'lt ()),
}
impl<'lt> Default for assignment_expression<'lt> { fn default()->Self { assignment_expression::assignment_expression_Nothing(&()) } }
#[derive(Debug)]
pub enum jump_statement<'lt> {
RETURN_281(LBox<expression<'lt>>),
CONTINUE_278,
GOTO_277(&'lt str),
RETURN_280,
BREAK_279,
jump_statement_Nothing(&'lt ()),
}
impl<'lt> Default for jump_statement<'lt> { fn default()->Self { jump_statement::jump_statement_Nothing(&()) } }
#[derive(Default,Debug)]
pub struct static_assert_declaration<'lt> {
pub _item2_:LBox<constant_expression<'lt>>,
pub _item4_:&'lt str,
}
#[derive(Debug)]
pub enum generic_assoc_list<'lt> {
generic_assoc_list_12(LBox<generic_assoc_list<'lt>>,LBox<generic_association<'lt>>),
generic_assoc_list_11(LBox<generic_association<'lt>>),
generic_assoc_list_Nothing(&'lt ()),
}
impl<'lt> Default for generic_assoc_list<'lt> { fn default()->Self { generic_assoc_list::generic_assoc_list_Nothing(&()) } }
#[derive(Debug)]
pub enum cast_expression<'lt> {
cast_expression_41(LBox<unary_expression<'lt>>),
cast_expression_42(LBox<type_name<'lt>>,LBox<cast_expression<'lt>>),
cast_expression_Nothing(&'lt ()),
}
impl<'lt> Default for cast_expression<'lt> { fn default()->Self { cast_expression::cast_expression_Nothing(&()) } }
#[derive(Debug)]
pub enum function_specifier<'lt> {
INLINE,
NORETURN,
function_specifier_Nothing(&'lt ()),
}
impl<'lt> Default for function_specifier<'lt> { fn default()->Self { function_specifier::function_specifier_Nothing(&()) } }
#[derive(Debug)]
pub enum struct_declarator<'lt> {
struct_declarator_149(LBox<declarator<'lt>>,LBox<constant_expression<'lt>>),
struct_declarator_147(LBox<declarator<'lt>>),
Colon_148(LBox<constant_expression<'lt>>),
struct_declarator_Nothing(&'lt ()),
}
impl<'lt> Default for struct_declarator<'lt> { fn default()->Self { struct_declarator::struct_declarator_Nothing(&()) } }
#[derive(Debug)]
pub enum expression<'lt> {
expression_86(LBox<assignment_expression<'lt>>),
expression_87(LBox<expression<'lt>>,LBox<assignment_expression<'lt>>),
expression_Nothing(&'lt ()),
}
impl<'lt> Default for expression<'lt> { fn default()->Self { expression::expression_Nothing(&()) } }
#[derive(Debug)]
pub enum init_declarator_list<'lt> {
init_declarator_list_103(LBox<init_declarator_list<'lt>>,LBox<init_declarator<'lt>>),
init_declarator_list_102(LBox<init_declarator<'lt>>),
init_declarator_list_Nothing(&'lt ()),
}
impl<'lt> Default for init_declarator_list<'lt> { fn default()->Self { init_declarator_list::init_declarator_list_Nothing(&()) } }
#[derive(Debug)]
pub enum enum_specifier<'lt> {
ENUM_152(LBox<enumerator_list<'lt>>,()),
ENUM_155(&'lt str,LBox<enumerator_list<'lt>>,()),
ENUM_156(&'lt str),
enum_specifier_Nothing(&'lt ()),
}
impl<'lt> Default for enum_specifier<'lt> { fn default()->Self { enum_specifier::enum_specifier_Nothing(&()) } }
#[derive(Debug)]
pub enum struct_or_union_specifier<'lt> {
struct_or_union_specifier_130(LBox<struct_or_union<'lt>>,Option<LBox<&'lt str>>,LBox<struct_declaration_list<'lt>>),
struct_or_union_specifier_131(LBox<struct_or_union<'lt>>,&'lt str),
struct_or_union_specifier_Nothing(&'lt ()),
}
impl<'lt> Default for struct_or_union_specifier<'lt> { fn default()->Self { struct_or_union_specifier::struct_or_union_specifier_Nothing(&()) } }
#[derive(Debug)]
pub enum labeled_statement<'lt> {
DEFAULT_258(LBox<statement<'lt>>),
IDENTIFIER_256(&'lt str,LBox<statement<'lt>>),
CASE_257(LBox<constant_expression<'lt>>,LBox<statement<'lt>>),
labeled_statement_Nothing(&'lt ()),
}
impl<'lt> Default for labeled_statement<'lt> { fn default()->Self { labeled_statement::labeled_statement_Nothing(&()) } }
#[derive(Debug)]
pub enum argument_expression_list<'lt> {
argument_expression_list_26(LBox<assignment_expression<'lt>>),
argument_expression_list_27(LBox<argument_expression_list<'lt>>,LBox<assignment_expression<'lt>>),
argument_expression_list_Nothing(&'lt ()),
}
impl<'lt> Default for argument_expression_list<'lt> { fn default()->Self { argument_expression_list::argument_expression_list_Nothing(&()) } }
#[derive(Debug)]
pub enum additive_expression<'lt> {
additive_expression_47(LBox<multiplicative_expression<'lt>>),
additive_expression_49(LBox<additive_expression<'lt>>,LBox<multiplicative_expression<'lt>>),
additive_expression_48(LBox<additive_expression<'lt>>,LBox<multiplicative_expression<'lt>>),
additive_expression_Nothing(&'lt ()),
}
impl<'lt> Default for additive_expression<'lt> { fn default()->Self { additive_expression::additive_expression_Nothing(&()) } }
#[derive(Debug)]
pub enum expression_statement<'lt> {
expression_statement_264,
expression_statement_265(LBox<expression<'lt>>),
expression_statement_Nothing(&'lt ()),
}
impl<'lt> Default for expression_statement<'lt> { fn default()->Self { expression_statement::expression_statement_Nothing(&()) } }
#[derive(Debug)]
pub enum assignment_operator<'lt> {
XOR_ASSIGN,
RIGHT_ASSIGN,
ADD_ASSIGN,
MUL_ASSIGN,
Eq1,
SUB_ASSIGN,
LEFT_ASSIGN,
AND_ASSIGN,
MOD_ASSIGN,
DIV_ASSIGN,
OR_ASSIGN,
assignment_operator_Nothing(&'lt ()),
}
impl<'lt> Default for assignment_operator<'lt> { fn default()->Self { assignment_operator::assignment_operator_Nothing(&()) } }
#[derive(Debug)]
pub enum and_expression<'lt> {
and_expression_62(LBox<and_expression<'lt>>,LBox<equality_expression<'lt>>),
and_expression_61(LBox<equality_expression<'lt>>),
and_expression_Nothing(&'lt ()),
}
impl<'lt> Default for and_expression<'lt> { fn default()->Self { and_expression::and_expression_Nothing(&()) } }
#[derive(Debug)]
pub enum statement<'lt> {
statement_253(LBox<selection_statement<'lt>>),
statement_254(LBox<iteration_statement<'lt>>),
statement_255(LBox<jump_statement<'lt>>),
statement_251(LBox<compound_statement<'lt>>),
statement_252(LBox<expression_statement<'lt>>),
statement_250(LBox<labeled_statement<'lt>>),
statement_Nothing(&'lt ()),
}
impl<'lt> Default for statement<'lt> { fn default()->Self { statement::statement_Nothing(&()) } }
#[derive(Debug)]
pub enum enumerator<'lt> {
ENUMERATION_CONSTANT_159(&'lt str),
ENUMERATION_CONSTANT_160(&'lt str,LBox<constant_expression<'lt>>),
enumerator_Nothing(&'lt ()),
}
impl<'lt> Default for enumerator<'lt> { fn default()->Self { enumerator::enumerator_Nothing(&()) } }
#[derive(Debug)]
pub enum multiplicative_expression<'lt> {
multiplicative_expression_46(LBox<multiplicative_expression<'lt>>,LBox<cast_expression<'lt>>),
multiplicative_expression_45(LBox<multiplicative_expression<'lt>>,LBox<cast_expression<'lt>>),
multiplicative_expression_43(LBox<cast_expression<'lt>>),
multiplicative_expression_44(LBox<multiplicative_expression<'lt>>,LBox<cast_expression<'lt>>),
multiplicative_expression_Nothing(&'lt ()),
}
impl<'lt> Default for multiplicative_expression<'lt> { fn default()->Self { multiplicative_expression::multiplicative_expression_Nothing(&()) } }
#[derive(Debug)]
pub enum direct_abstract_declarator<'lt> {
direct_abstract_declarator_234(LBox<direct_abstract_declarator<'lt>>,LBox<parameter_type_list<'lt>>),
direct_abstract_declarator_219(LBox<type_qualifier_list<'lt>>,LBox<Option<()>>,Option<LBox<assignment_expression<'lt>>>),
direct_abstract_declarator_210,
direct_abstract_declarator_211,
direct_abstract_declarator_231,
direct_abstract_declarator_220(LBox<assignment_expression<'lt>>),
direct_abstract_declarator_229(LBox<direct_abstract_declarator<'lt>>,LBox<type_qualifier_list<'lt>>),
direct_abstract_declarator_214(Option<LBox<type_qualifier_list<'lt>>>,LBox<assignment_expression<'lt>>),
direct_abstract_declarator_230(LBox<direct_abstract_declarator<'lt>>,LBox<assignment_expression<'lt>>),
direct_abstract_declarator_225(LBox<direct_abstract_declarator<'lt>>,Option<LBox<type_qualifier_list<'lt>>>,LBox<assignment_expression<'lt>>),
direct_abstract_declarator_209(LBox<abstract_declarator<'lt>>),
direct_abstract_declarator_228(LBox<direct_abstract_declarator<'lt>>,LBox<type_qualifier_list<'lt>>,LBox<Option<()>>,LBox<assignment_expression<'lt>>),
direct_abstract_declarator_232(LBox<parameter_type_list<'lt>>),
direct_abstract_declarator_Nothing(&'lt ()),
}
impl<'lt> Default for direct_abstract_declarator<'lt> { fn default()->Self { direct_abstract_declarator::direct_abstract_declarator_Nothing(&()) } }
#[derive(Debug)]
pub enum generic_association<'lt> {
DEFAULT_14(LBox<assignment_expression<'lt>>),
generic_association_13(LBox<type_name<'lt>>,LBox<assignment_expression<'lt>>),
generic_association_Nothing(&'lt ()),
}
impl<'lt> Default for generic_association<'lt> { fn default()->Self { generic_association::generic_association_Nothing(&()) } }
#[derive(Default,Debug)]
pub struct designation<'lt> {
pub _item0_:LBox<designator_list<'lt>>,
}
#[derive(Debug)]
pub enum equality_expression<'lt> {
equality_expression_60(LBox<equality_expression<'lt>>,LBox<relational_expression<'lt>>),
equality_expression_58(LBox<relational_expression<'lt>>),
equality_expression_59(LBox<equality_expression<'lt>>,LBox<relational_expression<'lt>>),
equality_expression_Nothing(&'lt ()),
}
impl<'lt> Default for equality_expression<'lt> { fn default()->Self { equality_expression::equality_expression_Nothing(&()) } }
#[derive(Default,Debug)]
pub struct designator_list<'lt> {
pub _item0_:Vec<LBox<designator<'lt>>>,
}
#[derive(Debug)]
pub enum parameter_declaration<'lt> {
parameter_declaration_201(LBox<declaration_specifiers<'lt>>),
parameter_declaration_199(LBox<declaration_specifiers<'lt>>,LBox<declarator<'lt>>),
parameter_declaration_200(LBox<declaration_specifiers<'lt>>,LBox<abstract_declarator<'lt>>),
parameter_declaration_Nothing(&'lt ()),
}
impl<'lt> Default for parameter_declaration<'lt> { fn default()->Self { parameter_declaration::parameter_declaration_Nothing(&()) } }
#[derive(Debug)]
pub enum external_declaration<'lt> {
external_declaration_285(LBox<function_definition<'lt>>),
external_declaration_286(LBox<declaration<'lt>>),
external_declaration_Nothing(&'lt ()),
}
impl<'lt> Default for external_declaration<'lt> { fn default()->Self { external_declaration::external_declaration_Nothing(&()) } }