#![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(Debug)]
pub enum enumerator_list<'lt> {
enumerator_list_123(LBox<enumerator<'lt>>),
enumerator_list_124(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 additive_expression<'lt> {
additive_expression_33(LBox<additive_expression<'lt>>,LBox<multiplicative_expression<'lt>>),
additive_expression_34(LBox<additive_expression<'lt>>,LBox<multiplicative_expression<'lt>>),
additive_expression_32(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 assignment_operator<'lt> {
OR_ASSIGN,
SUB_ASSIGN,
DIV_ASSIGN,
XOR_ASSIGN,
Eq1,
ADD_ASSIGN,
LEFT_ASSIGN,
AND_ASSIGN,
MUL_ASSIGN,
MOD_ASSIGN,
RIGHT_ASSIGN,
assignment_operator_Nothing(&'lt ()),
}
impl<'lt> Default for assignment_operator<'lt> { fn default()->Self { assignment_operator::assignment_operator_Nothing(&()) } }
#[derive(Debug)]
pub enum declarator<'lt> {
declarator_130(LBox<direct_declarator<'lt>>),
declarator_129(LBox<pointer<'lt>>,LBox<direct_declarator<'lt>>),
declarator_Nothing(&'lt ()),
}
impl<'lt> Default for declarator<'lt> { fn default()->Self { declarator::declarator_Nothing(&()) } }
#[derive(Debug)]
pub enum parameter_type_list<'lt> {
parameter_type_list_145(LBox<parameter_list<'lt>>),
parameter_type_list_144(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 type_qualifier<'lt> {
VOLATILE,
CONST,
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_37(LBox<shift_expression<'lt>>,LBox<additive_expression<'lt>>),
shift_expression_35(LBox<additive_expression<'lt>>),
shift_expression_36(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 selection_statement<'lt> {
IF_191(LBox<expression<'lt>>,LBox<statement<'lt>>),
IF_192(LBox<expression<'lt>>,LBox<statement<'lt>>,LBox<statement<'lt>>),
SWITCH_193(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 parameter_list<'lt> {
parameter_list_147(LBox<parameter_list<'lt>>,LBox<parameter_declaration<'lt>>),
parameter_list_146(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 struct_declarator_list<'lt> {
struct_declarator_list_116(LBox<struct_declarator_list<'lt>>,LBox<struct_declarator<'lt>>),
struct_declarator_list_115(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(Debug)]
pub enum function_definition<'lt> {
function_definition_207(LBox<declaration_specifiers<'lt>>,LBox<declarator<'lt>>,LBox<declaration_list<'lt>>,LBox<compound_statement<'lt>>),
function_definition_208(LBox<declaration_specifiers<'lt>>,LBox<declarator<'lt>>,LBox<compound_statement<'lt>>),
function_definition_209(LBox<declarator<'lt>>,LBox<declaration_list<'lt>>,LBox<compound_statement<'lt>>),
function_definition_210(LBox<declarator<'lt>>,LBox<compound_statement<'lt>>),
function_definition_Nothing(&'lt ()),
}
impl<'lt> Default for function_definition<'lt> { fn default()->Self { function_definition::function_definition_Nothing(&()) } }
#[derive(Debug)]
pub enum direct_declarator<'lt> {
direct_declarator_132(LBox<declarator<'lt>>),
direct_declarator_136(LBox<direct_declarator<'lt>>,LBox<identifier_list<'lt>>),
direct_declarator_133(LBox<direct_declarator<'lt>>,LBox<constant_expression<'lt>>),
IDENTIFIER_131(&'lt str),
direct_declarator_135(LBox<direct_declarator<'lt>>,LBox<parameter_type_list<'lt>>),
direct_declarator_Nothing(&'lt ()),
}
impl<'lt> Default for direct_declarator<'lt> { fn default()->Self { direct_declarator::direct_declarator_Nothing(&()) } }
#[derive(Debug)]
pub enum translation_unit<'lt> {
translation_unit_203(LBox<external_declaration<'lt>>),
translation_unit_204(LBox<translation_unit<'lt>>,LBox<external_declaration<'lt>>),
translation_unit_Nothing(&'lt ()),
}
impl<'lt> Default for translation_unit<'lt> { fn default()->Self { translation_unit::translation_unit_Nothing(&()) } }
#[derive(Debug)]
pub enum argument_expression_list<'lt> {
argument_expression_list_12(LBox<assignment_expression<'lt>>),
argument_expression_list_13(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 and_expression<'lt> {
and_expression_47(LBox<and_expression<'lt>>,LBox<equality_expression<'lt>>),
and_expression_46(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 type_qualifier_list<'lt> {
type_qualifier_list_143(LBox<type_qualifier_list<'lt>>,LBox<type_qualifier<'lt>>),
type_qualifier_list_142(LBox<type_qualifier<'lt>>),
type_qualifier_list_Nothing(&'lt ()),
}
impl<'lt> Default for type_qualifier_list<'lt> { fn default()->Self { type_qualifier_list::type_qualifier_list_Nothing(&()) } }
#[derive(Debug)]
pub enum abstract_declarator<'lt> {
abstract_declarator_155(LBox<pointer<'lt>>),
abstract_declarator_156(LBox<direct_abstract_declarator<'lt>>),
abstract_declarator_157(LBox<pointer<'lt>>,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(Debug)]
pub enum enumerator<'lt> {
IDENTIFIER_125(&'lt str),
IDENTIFIER_126(&'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 relational_expression<'lt> {
relational_expression_40(LBox<relational_expression<'lt>>,LBox<shift_expression<'lt>>),
relational_expression_42(LBox<relational_expression<'lt>>,LBox<shift_expression<'lt>>),
relational_expression_38(LBox<shift_expression<'lt>>),
relational_expression_39(LBox<relational_expression<'lt>>,LBox<shift_expression<'lt>>),
relational_expression_41(LBox<relational_expression<'lt>>,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 storage_class_specifier<'lt> {
EXTERN,
STATIC,
REGISTER,
Typedef,
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 struct_or_union_specifier<'lt> {
struct_or_union_specifier_105(LBox<struct_or_union<'lt>>,&'lt str),
struct_or_union_specifier_103(LBox<struct_or_union<'lt>>,&'lt str,LBox<struct_declaration_list<'lt>>),
struct_or_union_specifier_104(LBox<struct_or_union<'lt>>,LBox<struct_declaration_list<'lt>>),
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 identifier_list<'lt> {
IDENTIFIER_151(&'lt str),
identifier_list_152(LBox<identifier_list<'lt>>,&'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 type_specifier<'lt> {
VOID,
LONG,
SIGNED,
type_specifier_102(LBox<enum_specifier<'lt>>),
UNSIGNED,
Typename(&'lt str),
FLOAT,
INT,
SHORT,
DOUBLE,
CHAR,
type_specifier_101(LBox<struct_or_union_specifier<'lt>>),
type_specifier_Nothing(&'lt ()),
}
impl<'lt> Default for type_specifier<'lt> { fn default()->Self { type_specifier::type_specifier_Nothing(&()) } }
#[derive(Debug)]
pub enum enum_specifier<'lt> {
ENUM_120(LBox<enumerator_list<'lt>>),
ENUM_121(&'lt str,LBox<enumerator_list<'lt>>),
ENUM_122(&'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 initializer<'lt> {
Lbrace_168(LBox<initializer_list<'lt>>),
Lbrace_169(LBox<initializer_list<'lt>>),
initializer_167(LBox<assignment_expression<'lt>>),
initializer_Nothing(&'lt ()),
}
impl<'lt> Default for initializer<'lt> { fn default()->Self { initializer::initializer_Nothing(&()) } }
#[derive(Debug)]
pub enum init_declarator_list<'lt> {
init_declarator_list_85(LBox<init_declarator_list<'lt>>,LBox<init_declarator<'lt>>),
init_declarator_list_84(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(Default,Debug)]
pub struct struct_declaration<'lt> {
pub _item0_:LBox<specifier_qualifier_list<'lt>>,
pub _item1_:LBox<struct_declarator_list<'lt>>,
}
#[derive(Default,Debug)]
pub struct constant_expression<'lt> {
pub _item0_:LBox<conditional_expression<'lt>>,
}
#[derive(Debug)]
pub enum conditional_expression<'lt> {
conditional_expression_56(LBox<logical_or_expression<'lt>>),
conditional_expression_57(LBox<logical_or_expression<'lt>>,LBox<expression<'lt>>,LBox<conditional_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 exclusive_or_expression<'lt> {
exclusive_or_expression_49(LBox<exclusive_or_expression<'lt>>,LBox<and_expression<'lt>>),
exclusive_or_expression_48(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 expression<'lt> {
expression_71(LBox<assignment_expression<'lt>>),
expression_72(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 initializer_list<'lt> {
initializer_list_170(LBox<initializer<'lt>>),
initializer_list_171(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 postfix_expression<'lt> {
postfix_expression_5(LBox<postfix_expression<'lt>>,LBox<expression<'lt>>),
postfix_expression_4(LBox<primary_expression<'lt>>),
postfix_expression_9(LBox<postfix_expression<'lt>>,&'lt str),
postfix_expression_8(LBox<postfix_expression<'lt>>,&'lt str),
postfix_expression_7(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(Debug)]
pub enum declaration_specifiers<'lt> {
DSCDS(LBox<storage_class_specifier<'lt>>,LBox<declaration_specifiers<'lt>>),
declaration_specifiers_78(LBox<type_specifier<'lt>>,LBox<declaration_specifiers<'lt>>),
declaration_specifiers_80(LBox<type_qualifier<'lt>>,LBox<declaration_specifiers<'lt>>),
declaration_specifiers_77(LBox<type_specifier<'lt>>),
declaration_specifiers_76(LBox<storage_class_specifier<'lt>>),
declaration_specifiers_79(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 logical_and_expression<'lt> {
logical_and_expression_53(LBox<logical_and_expression<'lt>>,LBox<inclusive_or_expression<'lt>>),
logical_and_expression_52(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 multiplicative_expression<'lt> {
multiplicative_expression_29(LBox<multiplicative_expression<'lt>>,LBox<cast_expression<'lt>>),
multiplicative_expression_31(LBox<multiplicative_expression<'lt>>,LBox<cast_expression<'lt>>),
multiplicative_expression_28(LBox<cast_expression<'lt>>),
multiplicative_expression_30(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 logical_or_expression<'lt> {
logical_or_expression_54(LBox<logical_and_expression<'lt>>),
logical_or_expression_55(LBox<logical_or_expression<'lt>>,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 equality_expression<'lt> {
equality_expression_44(LBox<equality_expression<'lt>>,LBox<relational_expression<'lt>>),
equality_expression_43(LBox<relational_expression<'lt>>),
equality_expression_45(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(Debug)]
pub enum init_declarator<'lt> {
init_declarator_86(LBox<declarator<'lt>>),
init_declarator_87(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 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 struct_declaration_list<'lt> {
struct_declaration_list_109(LBox<struct_declaration_list<'lt>>,LBox<struct_declaration<'lt>>),
struct_declaration_list_108(LBox<struct_declaration<'lt>>),
struct_declaration_list_Nothing(&'lt ()),
}
impl<'lt> Default for struct_declaration_list<'lt> { fn default()->Self { struct_declaration_list::struct_declaration_list_Nothing(&()) } }
#[derive(Debug)]
pub enum declaration<'lt> {
DecSpec(LBox<declaration_specifiers<'lt>>),
DecSpecList(LBox<declaration_specifiers<'lt>>,LBox<init_declarator_list<'lt>>),
declaration_Nothing(&'lt ()),
}
impl<'lt> Default for declaration<'lt> { fn default()->Self { declaration::declaration_Nothing(&()) } }
#[derive(Debug)]
pub enum specifier_qualifier_list<'lt> {
specifier_qualifier_list_111(LBox<type_specifier<'lt>>,LBox<specifier_qualifier_list<'lt>>),
specifier_qualifier_list_113(LBox<type_qualifier<'lt>>,LBox<specifier_qualifier_list<'lt>>),
specifier_qualifier_list_114(LBox<type_qualifier<'lt>>),
specifier_qualifier_list_112(LBox<type_specifier<'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 compound_statement<'lt> {
Lbrace_181,
Lbrace_183(LBox<declaration_list<'lt>>),
Lbrace_184(LBox<declaration_list<'lt>>,LBox<statement_list<'lt>>),
Lbrace_182(LBox<statement_list<'lt>>),
compound_statement_Nothing(&'lt ()),
}
impl<'lt> Default for compound_statement<'lt> { fn default()->Self { compound_statement::compound_statement_Nothing(&()) } }
#[derive(Debug)]
pub enum statement<'lt> {
statement_172(LBox<labeled_statement<'lt>>),
statement_173(LBox<compound_statement<'lt>>),
statement_176(LBox<iteration_statement<'lt>>),
statement_174(LBox<expression_statement<'lt>>),
statement_175(LBox<selection_statement<'lt>>),
statement_177(LBox<jump_statement<'lt>>),
statement_Nothing(&'lt ()),
}
impl<'lt> Default for statement<'lt> { fn default()->Self { statement::statement_Nothing(&()) } }
#[derive(Debug)]
pub enum expression_statement<'lt> {
expression_statement_190(LBox<expression<'lt>>),
expression_statement_189,
expression_statement_Nothing(&'lt ()),
}
impl<'lt> Default for expression_statement<'lt> { fn default()->Self { expression_statement::expression_statement_Nothing(&()) } }
#[derive(Debug)]
pub enum inclusive_or_expression<'lt> {
inclusive_or_expression_51(LBox<inclusive_or_expression<'lt>>,LBox<exclusive_or_expression<'lt>>),
inclusive_or_expression_50(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 labeled_statement<'lt> {
DEFAULT_180(LBox<statement<'lt>>),
IDENTIFIER_178(&'lt str,LBox<statement<'lt>>),
CASE_179(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 unary_expression<'lt> {
unary_expression_14(LBox<postfix_expression<'lt>>),
unary_expression_17(LBox<unary_operator<'lt>>,LBox<cast_expression<'lt>>),
SIZEOF_19(LBox<type_name<'lt>>),
unary_expression_Nothing(&'lt ()),
}
impl<'lt> Default for unary_expression<'lt> { fn default()->Self { unary_expression::unary_expression_Nothing(&()) } }
#[derive(Debug)]
pub enum primary_expression<'lt> {
CONSTANT_1(i32),
IDENTIFIER_0(&'lt str),
STRING_LITERAL_2(&'lt str),
primary_expression_3(LBox<expression<'lt>>),
primary_expression_Nothing(&'lt ()),
}
impl<'lt> Default for primary_expression<'lt> { fn default()->Self { primary_expression::primary_expression_Nothing(&()) } }
#[derive(Debug)]
pub enum cast_expression<'lt> {
cast_expression_26(LBox<unary_expression<'lt>>),
cast_expression_27(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 unary_operator<'lt> {
unary_operator_22,
Star,
unary_operator_23,
Amp,
unary_operator_24,
Bang,
unary_operator_Nothing(&'lt ()),
}
impl<'lt> Default for unary_operator<'lt> { fn default()->Self { unary_operator::unary_operator_Nothing(&()) } }
#[derive(Debug)]
pub enum declaration_list<'lt> {
declaration_list_185(LBox<declaration<'lt>>),
declaration_list_186(LBox<declaration_list<'lt>>,LBox<declaration<'lt>>),
declaration_list_Nothing(&'lt ()),
}
impl<'lt> Default for declaration_list<'lt> { fn default()->Self { declaration_list::declaration_list_Nothing(&()) } }
#[derive(Debug)]
pub enum direct_abstract_declarator<'lt> {
direct_abstract_declarator_160(LBox<constant_expression<'lt>>),
direct_abstract_declarator_159,
direct_abstract_declarator_162(LBox<direct_abstract_declarator<'lt>>,LBox<constant_expression<'lt>>),
direct_abstract_declarator_166(LBox<direct_abstract_declarator<'lt>>,LBox<parameter_type_list<'lt>>),
direct_abstract_declarator_158(LBox<abstract_declarator<'lt>>),
direct_abstract_declarator_164(LBox<parameter_type_list<'lt>>),
direct_abstract_declarator_163,
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 pointer<'lt> {
Star_141(LBox<type_qualifier_list<'lt>>,LBox<pointer<'lt>>),
Star_139(LBox<type_qualifier_list<'lt>>),
Star,
pointer_Nothing(&'lt ()),
}
impl<'lt> Default for pointer<'lt> { fn default()->Self { pointer::pointer_Nothing(&()) } }
#[derive(Debug)]
pub enum struct_declarator<'lt> {
struct_declarator_119(LBox<declarator<'lt>>,LBox<constant_expression<'lt>>),
Colon_118(LBox<constant_expression<'lt>>),
struct_declarator_117(LBox<declarator<'lt>>),
struct_declarator_Nothing(&'lt ()),
}
impl<'lt> Default for struct_declarator<'lt> { fn default()->Self { struct_declarator::struct_declarator_Nothing(&()) } }
#[derive(Debug)]
pub enum jump_statement<'lt> {
RETURN_202(LBox<expression<'lt>>),
CONTINUE_199,
BREAK_200,
RETURN_201,
GOTO_198(&'lt str),
jump_statement_Nothing(&'lt ()),
}
impl<'lt> Default for jump_statement<'lt> { fn default()->Self { jump_statement::jump_statement_Nothing(&()) } }
#[derive(Debug)]
pub enum assignment_expression<'lt> {
assignment_expression_59(LBox<unary_expression<'lt>>,LBox<assignment_operator<'lt>>,LBox<assignment_expression<'lt>>),
assignment_expression_58(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 parameter_declaration<'lt> {
parameter_declaration_150(LBox<declaration_specifiers<'lt>>),
parameter_declaration_148(LBox<declaration_specifiers<'lt>>,LBox<declarator<'lt>>),
parameter_declaration_149(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 type_name<'lt> {
type_name_154(LBox<specifier_qualifier_list<'lt>>,LBox<abstract_declarator<'lt>>),
type_name_153(LBox<specifier_qualifier_list<'lt>>),
type_name_Nothing(&'lt ()),
}
impl<'lt> Default for type_name<'lt> { fn default()->Self { type_name::type_name_Nothing(&()) } }
#[derive(Debug)]
pub enum statement_list<'lt> {
statement_list_187(LBox<statement<'lt>>),
statement_list_188(LBox<statement_list<'lt>>,LBox<statement<'lt>>),
statement_list_Nothing(&'lt ()),
}
impl<'lt> Default for statement_list<'lt> { fn default()->Self { statement_list::statement_list_Nothing(&()) } }
#[derive(Debug)]
pub enum external_declaration<'lt> {
external_declaration_206(LBox<declaration<'lt>>),
external_declaration_205(LBox<function_definition<'lt>>),
external_declaration_Nothing(&'lt ()),
}
impl<'lt> Default for external_declaration<'lt> { fn default()->Self { external_declaration::external_declaration_Nothing(&()) } }
#[derive(Debug)]
pub enum iteration_statement<'lt> {
FOR_197(LBox<expression_statement<'lt>>,LBox<expression_statement<'lt>>,LBox<expression<'lt>>,LBox<statement<'lt>>),
DO_195(LBox<statement<'lt>>,LBox<expression<'lt>>),
FOR_196(LBox<expression_statement<'lt>>,LBox<expression_statement<'lt>>,LBox<statement<'lt>>),
WHILE_194(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(&()) } }