
regular tree grammar
  start Stm AssignExp TranslationUnit
  productions
    OptConstantExp0                                            -> <some>(ConstantExp)
    OptConstantExp0                                            -> <none>()
    OptArrayAbstractDeclarator0                                -> <some>(ArrayAbstractDeclarator)
    OptArrayAbstractDeclarator0                                -> <none>()
    ListStarOfParamDeclaration0                                -> ListPlusOfParamDeclaration0
    ListStarOfParamDeclaration0                                -> <nil>()
    ListStarOfParamDeclaration0                                -> <conc>(ListStarOfParamDeclaration0,ListStarOfParamDeclaration0)
    ListPlusOfParamDeclaration0                                -> <conc>(ListStarOfParamDeclaration0,ListPlusOfParamDeclaration0)
    ListPlusOfParamDeclaration0                                -> <conc>(ListPlusOfParamDeclaration0,ListStarOfParamDeclaration0)
    ListPlusOfParamDeclaration0                                -> <conc>(ListPlusOfParamDeclaration0,ListPlusOfParamDeclaration0)
    ListPlusOfParamDeclaration0                                -> <cons>(ParamDeclaration,ListStarOfParamDeclaration0)
    PostfixAbstractDeclarator_PostfixingAbstractDeclarator0    -> PostfixingAbstractDeclarator
    PostfixAbstractDeclarator_PostfixingAbstractDeclarator0    -> PostfixAbstractDeclarator
    OptPostfixAbstractDeclarator_PostfixingAbstractDeclarator0 -> <some>(PostfixAbstractDeclarator_PostfixingAbstractDeclarator0)
    OptPostfixAbstractDeclarator_PostfixingAbstractDeclarator0 -> <none>()
    OptAbstractDeclarator0                                     -> <some>(AbstractDeclarator)
    OptAbstractDeclarator0                                     -> <none>()
    DeclarationSpecifier_TypeSpecifier0                        -> TypeSpecifier
    DeclarationSpecifier_TypeSpecifier0                        -> DeclarationSpecifier
    AbstractDeclarator_IdDeclarator0                           -> IdDeclarator
    AbstractDeclarator_IdDeclarator0                           -> AbstractDeclarator
    OptAbstractDeclarator_IdDeclarator0                        -> <some>(AbstractDeclarator_IdDeclarator0)
    OptAbstractDeclarator_IdDeclarator0                        -> <none>()
    OptEnumeratorValue0                                        -> <some>(EnumeratorValue)
    OptEnumeratorValue0                                        -> <none>()
    ListStarOfEnumerator0                                      -> ListPlusOfEnumerator0
    ListStarOfEnumerator0                                      -> <nil>()
    ListStarOfEnumerator0                                      -> <conc>(ListStarOfEnumerator0,ListStarOfEnumerator0)
    ListPlusOfEnumerator0                                      -> <conc>(ListStarOfEnumerator0,ListPlusOfEnumerator0)
    ListPlusOfEnumerator0                                      -> <conc>(ListPlusOfEnumerator0,ListStarOfEnumerator0)
    ListPlusOfEnumerator0                                      -> <conc>(ListPlusOfEnumerator0,ListPlusOfEnumerator0)
    ListPlusOfEnumerator0                                      -> <cons>(Enumerator,ListStarOfEnumerator0)
    OptIdOrTypedefName0                                        -> <some>(IdOrTypedefName)
    OptIdOrTypedefName0                                        -> <none>()
    OptDeclarator0                                             -> <some>(Declarator)
    OptDeclarator0                                             -> <none>()
    ListStarOfMemberIdDeclarator0                              -> ListPlusOfMemberIdDeclarator0
    ListStarOfMemberIdDeclarator0                              -> <nil>()
    ListStarOfMemberIdDeclarator0                              -> <conc>(ListStarOfMemberIdDeclarator0,ListStarOfMemberIdDeclarator0)
    ListPlusOfMemberIdDeclarator0                              -> <conc>(ListStarOfMemberIdDeclarator0,ListPlusOfMemberIdDeclarator0)
    ListPlusOfMemberIdDeclarator0                              -> <conc>(ListPlusOfMemberIdDeclarator0,ListStarOfMemberIdDeclarator0)
    ListPlusOfMemberIdDeclarator0                              -> <conc>(ListPlusOfMemberIdDeclarator0,ListPlusOfMemberIdDeclarator0)
    ListPlusOfMemberIdDeclarator0                              -> <cons>(MemberIdDeclarator,ListStarOfMemberIdDeclarator0)
    ListStarOfMemberDeclarator0                                -> ListPlusOfMemberDeclarator0
    ListStarOfMemberDeclarator0                                -> <nil>()
    ListStarOfMemberDeclarator0                                -> <conc>(ListStarOfMemberDeclarator0,ListStarOfMemberDeclarator0)
    ListPlusOfMemberDeclarator0                                -> <conc>(ListStarOfMemberDeclarator0,ListPlusOfMemberDeclarator0)
    ListPlusOfMemberDeclarator0                                -> <conc>(ListPlusOfMemberDeclarator0,ListStarOfMemberDeclarator0)
    ListPlusOfMemberDeclarator0                                -> <conc>(ListPlusOfMemberDeclarator0,ListPlusOfMemberDeclarator0)
    ListPlusOfMemberDeclarator0                                -> <cons>(MemberDeclarator,ListStarOfMemberDeclarator0)
    ListStarOfMemberDeclaration0                               -> ListPlusOfMemberDeclaration0
    ListStarOfMemberDeclaration0                               -> <nil>()
    ListStarOfMemberDeclaration0                               -> <conc>(ListStarOfMemberDeclaration0,ListStarOfMemberDeclaration0)
    ListPlusOfMemberDeclaration0                               -> <conc>(ListStarOfMemberDeclaration0,ListPlusOfMemberDeclaration0)
    ListPlusOfMemberDeclaration0                               -> <conc>(ListPlusOfMemberDeclaration0,ListStarOfMemberDeclaration0)
    ListPlusOfMemberDeclaration0                               -> <conc>(ListPlusOfMemberDeclaration0,ListPlusOfMemberDeclaration0)
    ListPlusOfMemberDeclaration0                               -> <cons>(MemberDeclaration,ListStarOfMemberDeclaration0)
    BasicTypeName_ElaboratedTypeName_TypedefName0              -> TypedefName
    BasicTypeName_ElaboratedTypeName_TypedefName0              -> ElaboratedTypeName
    BasicTypeName_ElaboratedTypeName_TypedefName0              -> BasicTypeName
    DeclarationQualifier_BasicTypeName0                        -> BasicTypeName
    DeclarationQualifier_BasicTypeName0                        -> DeclarationQualifier
    ListStarOfDeclarationQualifier_BasicTypeName0              -> ListPlusOfDeclarationQualifier_BasicTypeName0
    ListStarOfDeclarationQualifier_BasicTypeName0              -> <nil>()
    ListStarOfDeclarationQualifier_BasicTypeName0              -> <conc>(ListStarOfDeclarationQualifier_BasicTypeName0,ListStarOfDeclarationQualifier_BasicTypeName0)
    ListPlusOfDeclarationQualifier_BasicTypeName0              -> <conc>(ListStarOfDeclarationQualifier_BasicTypeName0,ListPlusOfDeclarationQualifier_BasicTypeName0)
    ListPlusOfDeclarationQualifier_BasicTypeName0              -> <conc>(ListPlusOfDeclarationQualifier_BasicTypeName0,ListStarOfDeclarationQualifier_BasicTypeName0)
    ListPlusOfDeclarationQualifier_BasicTypeName0              -> <conc>(ListPlusOfDeclarationQualifier_BasicTypeName0,ListPlusOfDeclarationQualifier_BasicTypeName0)
    ListPlusOfDeclarationQualifier_BasicTypeName0              -> <cons>(DeclarationQualifier_BasicTypeName0,ListStarOfDeclarationQualifier_BasicTypeName0)
    ListStarOfDeclarationQualifier0                            -> ListPlusOfDeclarationQualifier0
    ListStarOfDeclarationQualifier0                            -> <nil>()
    ListStarOfDeclarationQualifier0                            -> <conc>(ListStarOfDeclarationQualifier0,ListStarOfDeclarationQualifier0)
    ListPlusOfDeclarationQualifier0                            -> <conc>(ListStarOfDeclarationQualifier0,ListPlusOfDeclarationQualifier0)
    ListPlusOfDeclarationQualifier0                            -> <conc>(ListPlusOfDeclarationQualifier0,ListStarOfDeclarationQualifier0)
    ListPlusOfDeclarationQualifier0                            -> <conc>(ListPlusOfDeclarationQualifier0,ListPlusOfDeclarationQualifier0)
    ListPlusOfDeclarationQualifier0                            -> <cons>(DeclarationQualifier,ListStarOfDeclarationQualifier0)
    TypeQualifier_BasicTypeName0                               -> BasicTypeName
    TypeQualifier_BasicTypeName0                               -> TypeQualifier
    ListStarOfTypeQualifier_BasicTypeName0                     -> ListPlusOfTypeQualifier_BasicTypeName0
    ListStarOfTypeQualifier_BasicTypeName0                     -> <nil>()
    ListStarOfTypeQualifier_BasicTypeName0                     -> <conc>(ListStarOfTypeQualifier_BasicTypeName0,ListStarOfTypeQualifier_BasicTypeName0)
    ListPlusOfTypeQualifier_BasicTypeName0                     -> <conc>(ListStarOfTypeQualifier_BasicTypeName0,ListPlusOfTypeQualifier_BasicTypeName0)
    ListPlusOfTypeQualifier_BasicTypeName0                     -> <conc>(ListPlusOfTypeQualifier_BasicTypeName0,ListStarOfTypeQualifier_BasicTypeName0)
    ListPlusOfTypeQualifier_BasicTypeName0                     -> <conc>(ListPlusOfTypeQualifier_BasicTypeName0,ListPlusOfTypeQualifier_BasicTypeName0)
    ListPlusOfTypeQualifier_BasicTypeName0                     -> <cons>(TypeQualifier_BasicTypeName0,ListStarOfTypeQualifier_BasicTypeName0)
    ListStarOfInitializer0                                     -> ListPlusOfInitializer0
    ListStarOfInitializer0                                     -> <nil>()
    ListStarOfInitializer0                                     -> <conc>(ListStarOfInitializer0,ListStarOfInitializer0)
    ListPlusOfInitializer0                                     -> <conc>(ListStarOfInitializer0,ListPlusOfInitializer0)
    ListPlusOfInitializer0                                     -> <conc>(ListPlusOfInitializer0,ListStarOfInitializer0)
    ListPlusOfInitializer0                                     -> <conc>(ListPlusOfInitializer0,ListPlusOfInitializer0)
    ListPlusOfInitializer0                                     -> <cons>(Initializer,ListStarOfInitializer0)
    ListStarOfVarDecl0                                         -> ListPlusOfVarDecl0
    ListStarOfVarDecl0                                         -> <nil>()
    ListStarOfVarDecl0                                         -> <conc>(ListStarOfVarDecl0,ListStarOfVarDecl0)
    ListPlusOfVarDecl0                                         -> <conc>(ListStarOfVarDecl0,ListPlusOfVarDecl0)
    ListPlusOfVarDecl0                                         -> <conc>(ListPlusOfVarDecl0,ListStarOfVarDecl0)
    ListPlusOfVarDecl0                                         -> <conc>(ListPlusOfVarDecl0,ListPlusOfVarDecl0)
    ListPlusOfVarDecl0                                         -> <cons>(VarDecl,ListStarOfVarDecl0)
    ListStarOfIdDecl0                                          -> ListPlusOfIdDecl0
    ListStarOfIdDecl0                                          -> <nil>()
    ListStarOfIdDecl0                                          -> <conc>(ListStarOfIdDecl0,ListStarOfIdDecl0)
    ListPlusOfIdDecl0                                          -> <conc>(ListStarOfIdDecl0,ListPlusOfIdDecl0)
    ListPlusOfIdDecl0                                          -> <conc>(ListPlusOfIdDecl0,ListStarOfIdDecl0)
    ListPlusOfIdDecl0                                          -> <conc>(ListPlusOfIdDecl0,ListPlusOfIdDecl0)
    ListPlusOfIdDecl0                                          -> <cons>(IdDecl,ListStarOfIdDecl0)
    ListStarOfTypeQualifier0                                   -> ListPlusOfTypeQualifier0
    ListStarOfTypeQualifier0                                   -> <nil>()
    ListStarOfTypeQualifier0                                   -> <conc>(ListStarOfTypeQualifier0,ListStarOfTypeQualifier0)
    ListPlusOfTypeQualifier0                                   -> <conc>(ListStarOfTypeQualifier0,ListPlusOfTypeQualifier0)
    ListPlusOfTypeQualifier0                                   -> <conc>(ListPlusOfTypeQualifier0,ListStarOfTypeQualifier0)
    ListPlusOfTypeQualifier0                                   -> <conc>(ListPlusOfTypeQualifier0,ListPlusOfTypeQualifier0)
    ListPlusOfTypeQualifier0                                   -> <cons>(TypeQualifier,ListStarOfTypeQualifier0)
    DeclarationQualifierList_ListPlusOfTypeQualifier0          -> ListPlusOfTypeQualifier0
    DeclarationQualifierList_ListPlusOfTypeQualifier0          -> DeclarationQualifierList
    ListStarOfStm0                                             -> ListPlusOfStm0
    ListStarOfStm0                                             -> <nil>()
    ListStarOfStm0                                             -> <conc>(ListStarOfStm0,ListStarOfStm0)
    ListPlusOfStm0                                             -> <conc>(ListStarOfStm0,ListPlusOfStm0)
    ListPlusOfStm0                                             -> <conc>(ListPlusOfStm0,ListStarOfStm0)
    ListPlusOfStm0                                             -> <conc>(ListPlusOfStm0,ListPlusOfStm0)
    ListPlusOfStm0                                             -> <cons>(Stm,ListStarOfStm0)
    ListStarOfDeclaration0                                     -> ListPlusOfDeclaration0
    ListStarOfDeclaration0                                     -> <nil>()
    ListStarOfDeclaration0                                     -> <conc>(ListStarOfDeclaration0,ListStarOfDeclaration0)
    ListPlusOfDeclaration0                                     -> <conc>(ListStarOfDeclaration0,ListPlusOfDeclaration0)
    ListPlusOfDeclaration0                                     -> <conc>(ListPlusOfDeclaration0,ListStarOfDeclaration0)
    ListPlusOfDeclaration0                                     -> <conc>(ListPlusOfDeclaration0,ListPlusOfDeclaration0)
    ListPlusOfDeclaration0                                     -> <cons>(Declaration,ListStarOfDeclaration0)
    ListStarOfAssignExp0                                       -> ListPlusOfAssignExp0
    ListStarOfAssignExp0                                       -> <nil>()
    ListStarOfAssignExp0                                       -> <conc>(ListStarOfAssignExp0,ListStarOfAssignExp0)
    ListPlusOfAssignExp0                                       -> <conc>(ListStarOfAssignExp0,ListPlusOfAssignExp0)
    ListPlusOfAssignExp0                                       -> <conc>(ListPlusOfAssignExp0,ListStarOfAssignExp0)
    ListPlusOfAssignExp0                                       -> <conc>(ListPlusOfAssignExp0,ListPlusOfAssignExp0)
    ListPlusOfAssignExp0                                       -> <cons>(AssignExp,ListStarOfAssignExp0)
    OptPostfixingAbstractDeclarator0                           -> <some>(PostfixingAbstractDeclarator)
    OptPostfixingAbstractDeclarator0                           -> <none>()
    ListStarOfPointer0                                         -> ListPlusOfPointer0
    ListStarOfPointer0                                         -> <nil>()
    ListStarOfPointer0                                         -> <conc>(ListStarOfPointer0,ListStarOfPointer0)
    ListPlusOfPointer0                                         -> <conc>(ListStarOfPointer0,ListPlusOfPointer0)
    ListPlusOfPointer0                                         -> <conc>(ListPlusOfPointer0,ListStarOfPointer0)
    ListPlusOfPointer0                                         -> <conc>(ListPlusOfPointer0,ListPlusOfPointer0)
    ListPlusOfPointer0                                         -> <cons>(Pointer,ListStarOfPointer0)
    ListStarOfIDENTIFIER0                                      -> ListPlusOfIDENTIFIER0
    ListStarOfIDENTIFIER0                                      -> <nil>()
    ListStarOfIDENTIFIER0                                      -> <conc>(ListStarOfIDENTIFIER0,ListStarOfIDENTIFIER0)
    ListPlusOfIDENTIFIER0                                      -> <conc>(ListStarOfIDENTIFIER0,ListPlusOfIDENTIFIER0)
    ListPlusOfIDENTIFIER0                                      -> <conc>(ListPlusOfIDENTIFIER0,ListStarOfIDENTIFIER0)
    ListPlusOfIDENTIFIER0                                      -> <conc>(ListPlusOfIDENTIFIER0,ListPlusOfIDENTIFIER0)
    ListPlusOfIDENTIFIER0                                      -> <cons>(IDENTIFIER,ListStarOfIDENTIFIER0)
    ElseLine_ListStarOfExternalDef0                            -> <(2)>(ElseLine,ListStarOfExternalDef0)
    OptElseLine_ListStarOfExternalDef0                         -> <some>(ElseLine_ListStarOfExternalDef0)
    OptElseLine_ListStarOfExternalDef0                         -> <none>()
    ElifLine_ListStarOfExternalDef0                            -> <(2)>(ElifLine,ListStarOfExternalDef0)
    ListStarOfElifLine_ListStarOfExternalDef0                  -> ListPlusOfElifLine_ListStarOfExternalDef0
    ListStarOfElifLine_ListStarOfExternalDef0                  -> <nil>()
    ListStarOfElifLine_ListStarOfExternalDef0                  -> <conc>(ListStarOfElifLine_ListStarOfExternalDef0,ListStarOfElifLine_ListStarOfExternalDef0)
    ListPlusOfElifLine_ListStarOfExternalDef0                  -> <conc>(ListStarOfElifLine_ListStarOfExternalDef0,ListPlusOfElifLine_ListStarOfExternalDef0)
    ListPlusOfElifLine_ListStarOfExternalDef0                  -> <conc>(ListPlusOfElifLine_ListStarOfExternalDef0,ListStarOfElifLine_ListStarOfExternalDef0)
    ListPlusOfElifLine_ListStarOfExternalDef0                  -> <conc>(ListPlusOfElifLine_ListStarOfExternalDef0,ListPlusOfElifLine_ListStarOfExternalDef0)
    ListPlusOfElifLine_ListStarOfExternalDef0                  -> <cons>(ElifLine_ListStarOfExternalDef0,ListStarOfElifLine_ListStarOfExternalDef0)
    ListStarOfExternalDef0                                     -> ListPlusOfExternalDef0
    ListStarOfExternalDef0                                     -> <nil>()
    ListStarOfExternalDef0                                     -> <conc>(ListStarOfExternalDef0,ListStarOfExternalDef0)
    ListPlusOfExternalDef0                                     -> <conc>(ListStarOfExternalDef0,ListPlusOfExternalDef0)
    ListPlusOfExternalDef0                                     -> <conc>(ListPlusOfExternalDef0,ListStarOfExternalDef0)
    ListPlusOfExternalDef0                                     -> <conc>(ListPlusOfExternalDef0,ListPlusOfExternalDef0)
    ListPlusOfExternalDef0                                     -> <cons>(ExternalDef,ListStarOfExternalDef0)
    OptTokenSeq0                                               -> <string>
    WS_FileName_WS0                                            -> <(1)>(<string>)
    OptWS_FileName_WS0                                         -> <string>
    WS0                                                        -> <(1)>(<string>)
    ID_WS0                                                     -> <(1)>(<string>)
    ListStarOfID_WS0                                           -> <string>
    ListPlusOfID_WS0                                           -> <string>
    WS_ListStarOfID_WS_WS0                                     -> <(1)>(<string>)
    OptWS_ListStarOfID_WS_WS0                                  -> <string>
    ListStarOfToken0                                           -> <string>
    ListPlusOfToken0                                           -> <string>
    ListStarOfTokenChar0                                       -> <string>
    ListPlusOfTokenChar0                                       -> <string>
    OptFloatFlags0                                             -> <string>
    OptLit0                                                    -> <string>
    OptIntFlags0                                               -> <string>
    ListStarOfStringChar0                                      -> <string>
    ListPlusOfStringChar0                                      -> <string>
    ListStarOfStringLiteral0                                   -> ListPlusOfStringLiteral0
    ListStarOfStringLiteral0                                   -> <nil>()
    ListStarOfStringLiteral0                                   -> <conc>(ListStarOfStringLiteral0,ListStarOfStringLiteral0)
    ListPlusOfStringLiteral0                                   -> <conc>(ListStarOfStringLiteral0,ListPlusOfStringLiteral0)
    ListPlusOfStringLiteral0                                   -> <conc>(ListPlusOfStringLiteral0,ListStarOfStringLiteral0)
    ListPlusOfStringLiteral0                                   -> <conc>(ListPlusOfStringLiteral0,ListPlusOfStringLiteral0)
    ListPlusOfStringLiteral0                                   -> <cons>(StringLiteral,ListStarOfStringLiteral0)
    PostfixAbstractDeclarator                                  -> FunType(UnaryAbstractDeclarator,PostfixingAbstractDeclarator)
    PostfixAbstractDeclarator                                  -> DeclBracket(PostfixingAbstractDeclarator)
    PostfixAbstractDeclarator                                  -> DeclBracket(PostfixAbstractDeclarator)
    PostfixAbstractDeclarator                                  -> DeclBracket(UnaryAbstractDeclarator)
    ArrayAbstractDeclarator                                    -> ArrayDecl(OptArrayAbstractDeclarator0,OptConstantExp0)
    PostfixingAbstractDeclarator                               -> ParamList(ListStarOfParamDeclaration0)
    PostfixingAbstractDeclarator                               -> ParamListVarArgs(ListPlusOfParamDeclaration0)
    PostfixingAbstractDeclarator                               -> ArrayAbstractDeclarator
    UnaryAbstractDeclarator                                    -> Pointer(ListPlusOfPointer0,OptPostfixAbstractDeclarator_PostfixingAbstractDeclarator0)
    AbstractDeclarator                                         -> PostfixingAbstractDeclarator
    AbstractDeclarator                                         -> PostfixAbstractDeclarator
    AbstractDeclarator                                         -> UnaryAbstractDeclarator
    Pointer                                                    -> PointerOf(ListStarOfTypeQualifier0)
    TypeName                                                   -> TypeName1(ListPlusOfTypeQualifier0,OptAbstractDeclarator0)
    TypeName                                                   -> TypeName(TypeSpecifier,OptAbstractDeclarator0)
    ParamDeclTypeSpec                                          -> ListPlusOfTypeQualifier0
    ParamDeclTypeSpec                                          -> DeclarationQualifierList
    ParamDeclTypeSpec                                          -> DeclarationSpecifier
    ParamDeclTypeSpec                                          -> TypeSpecifier
    ParamDeclaration                                           -> ParamDecl2(DeclarationSpecifier_TypeSpecifier0,TypedefDeclarator)
    ParamDeclaration                                           -> ParamDecl(ParamDeclTypeSpec,OptAbstractDeclarator_IdDeclarator0)
    EnumeratorValue                                            -> EnumVal(ConstantExp)
    Enumerator                                                 -> Enumerator(IdOrTypedefName,OptEnumeratorValue0)
    EnumSpecifier                                              -> EnumId(IdOrTypedefName)
    EnumSpecifier                                              -> Enum(OptIdOrTypedefName0,ListPlusOfEnumerator0)
    MemberDeclarator                                           -> BitFieldSize(OptDeclarator0,ConstantExp)
    MemberDeclarator                                           -> Declarator
    MemberDeclaration                                          -> MemDecl1(ListPlusOfTypeQualifier0,ListPlusOfMemberIdDeclarator0)
    MemberDeclaration                                          -> MemDecl(TypeSpecifier,ListPlusOfMemberDeclarator0)
    UnionSpecifier                                             -> UnionId(IdOrTypedefName)
    UnionSpecifier                                             -> Union(OptIdOrTypedefName0,ListPlusOfMemberDeclaration0)
    StructSpecifier                                            -> StructId(IdOrTypedefName)
    StructSpecifier                                            -> Struct(OptIdOrTypedefName0,ListPlusOfMemberDeclaration0)
    ElaboratedTypeName                                         -> EnumSpecifier
    ElaboratedTypeName                                         -> UnionSpecifier
    ElaboratedTypeName                                         -> StructSpecifier
    TypeOrDefName                                              -> BasicTypeName_ElaboratedTypeName_TypedefName0
    DeclarationSpecifier                                       -> DeclSpec(ListStarOfTypeQualifier0,StorageClass,ListStarOfDeclarationQualifier0,TypeOrDefName,ListStarOfDeclarationQualifier_BasicTypeName0)
    DeclarationQualifierList                                   -> DQualifiers(ListStarOfTypeQualifier0,StorageClass,ListStarOfDeclarationQualifier0)
    DeclarationQualifier                                       -> TypeQualifier
    DeclarationQualifier                                       -> StorageClass
    TypeSpecifier                                              -> TypeSpec(ListStarOfTypeQualifier0,TypeOrDefName,ListStarOfTypeQualifier_BasicTypeName0)
    Initializer                                                -> AssignInit(AssignExp)
    Initializer                                                -> ArrayInitIncomplete(ListPlusOfInitializer0)
    Initializer                                                -> ArrayInit(ListPlusOfInitializer0)
    VarDecl                                                    -> DeclInit(Declarator,Initializer)
    VarDecl                                                    -> Declarator
    IdDecl                                                     -> IdDeclInit(IdDeclarator,Initializer)
    IdDecl                                                     -> IdDeclarator
    Declaration                                                -> Declaration2(DeclarationSpecifier_TypeSpecifier0,ListStarOfVarDecl0)
    Declaration                                                -> Declaration(DeclarationQualifierList_ListPlusOfTypeQualifier0,ListStarOfIdDecl0)
    TypeQualifier                                              -> Volatile()
    TypeQualifier                                              -> Const()
    BasicTypeName                                              -> Void()
    BasicTypeName                                              -> Unsigned()
    BasicTypeName                                              -> Signed()
    BasicTypeName                                              -> Double()
    BasicTypeName                                              -> Float()
    BasicTypeName                                              -> Long()
    BasicTypeName                                              -> Short()
    BasicTypeName                                              -> Char()
    BasicTypeName                                              -> Int()
    StorageClass                                               -> Register()
    StorageClass                                               -> Auto()
    StorageClass                                               -> Static()
    StorageClass                                               -> Extern()
    StorageClass                                               -> Typedef()
    JumpStm                                                    -> Exit(CommaExpOpt)
    JumpStm                                                    -> Return(CommaExpOpt)
    JumpStm                                                    -> Break()
    JumpStm                                                    -> Continue()
    JumpStm                                                    -> Goto(IdOrTypedefName)
    IterationStm                                               -> For(CommaExpOpt,CommaExpOpt,CommaExpOpt,Stm)
    IterationStm                                               -> DoWhile(Stm,CommaExp)
    IterationStm                                               -> While(CommaExp,Stm)
    SelectionStm                                               -> Switch(CommaExp,Stm)
    SelectionStm                                               -> IfElse(CommaExp,Stm,Stm)
    SelectionStm                                               -> If(CommaExp,Stm)
    ExpStm                                                     -> Stat(CommaExpOpt)
    CompoundStm                                                -> Compound(ListStarOfDeclaration0,ListStarOfStm0)
    LabeledStm                                                 -> Default(Stm)
    LabeledStm                                                 -> Case(ConstantExp,Stm)
    LabeledStm                                                 -> Label(IdOrTypedefName,Stm)
    Stm                                                        -> JumpStm
    Stm                                                        -> IterationStm
    Stm                                                        -> SelectionStm
    Stm                                                        -> ExpStm
    Stm                                                        -> CompoundStm
    Stm                                                        -> LabeledStm
    ConstantExp                                                -> CondExp
    CommaExpOpt                                                -> CommaExp
    CommaExpOpt                                                -> EmptyExp()
    CommaExp                                                   -> Comma(AssignExp,CommaExp)
    CommaExp                                                   -> AssignExp
    AssignOp                                                   -> AssignOr()
    AssignOp                                                   -> AssignExp()
    AssignOp                                                   -> AssignAnd()
    AssignOp                                                   -> AssignSR()
    AssignOp                                                   -> AssignSL()
    AssignOp                                                   -> AssignMin()
    AssignOp                                                   -> AssignPlus()
    AssignOp                                                   -> AssignMod()
    AssignOp                                                   -> AssignDiv()
    AssignOp                                                   -> AssignMul()
    AssignOp                                                   -> AssignEq()
    AssignExp                                                  -> Assign(UnaryExp,AssignOp,AssignExp)
    AssignExp                                                  -> CondExp
    CondExp                                                    -> IfExp(LogicalORExp,CommaExp,CondExp)
    CondExp                                                    -> LogicalORExp
    LogicalORExp                                               -> LOr(LogicalORExp,LogicalANDExp)
    LogicalORExp                                               -> LogicalANDExp
    LogicalANDExp                                              -> LAnd(LogicalANDExp,InclORExp)
    LogicalANDExp                                              -> InclORExp
    InclORExp                                                  -> IncOr(ExclORExp,InclORExp)
    InclORExp                                                  -> ExclORExp
    ExclORExp                                                  -> ExOr(ANDExp,ExclORExp)
    ExclORExp                                                  -> ANDExp
    ANDExp                                                     -> And(EqualityExp,ANDExp)
    ANDExp                                                     -> EqualityExp
    EqualityExp                                                -> NotEqual(EqualityExp,RelExp)
    EqualityExp                                                -> Equal(EqualityExp,RelExp)
    EqualityExp                                                -> RelExp
    RelExp                                                     -> Ge(RelExp,ShiftExp)
    RelExp                                                     -> Le(RelExp,ShiftExp)
    RelExp                                                     -> Gt(RelExp,ShiftExp)
    RelExp                                                     -> Lt(RelExp,ShiftExp)
    RelExp                                                     -> ShiftExp
    ShiftExp                                                   -> ShiftRight(ShiftExp,AddExp)
    ShiftExp                                                   -> ShiftLeft(ShiftExp,AddExp)
    ShiftExp                                                   -> AddExp
    AddExp                                                     -> Subt(AddExp,MulExp)
    AddExp                                                     -> Add(AddExp,MulExp)
    AddExp                                                     -> MulExp
    MulExp                                                     -> Mod(MulExp,CastExp)
    MulExp                                                     -> Div(MulExp,CastExp)
    MulExp                                                     -> Mul(MulExp,CastExp)
    MulExp                                                     -> CastExp
    CastExp                                                    -> TypeCast(TypeName,CastExp)
    CastExp                                                    -> UnaryExp
    UnaryExp                                                   -> SizeofType(TypeName)
    UnaryExp                                                   -> SizeofExp(UnaryExp)
    UnaryExp                                                   -> Negation(CastExp)
    UnaryExp                                                   -> Tilde(CastExp)
    UnaryExp                                                   -> Negative(CastExp)
    UnaryExp                                                   -> Positive(CastExp)
    UnaryExp                                                   -> Deref(CastExp)
    UnaryExp                                                   -> Address(CastExp)
    UnaryExp                                                   -> PreDecr(UnaryExp)
    UnaryExp                                                   -> PreIncr(UnaryExp)
    UnaryExp                                                   -> PostfixExp
    MemberName                                                 -> TypedefName
    MemberName                                                 -> IDENTIFIER
    PostfixExp                                                 -> PostDecr(PostfixExp)
    PostfixExp                                                 -> PostIncr(PostfixExp)
    PostfixExp                                                 -> DerefMember(PostfixExp,MemberName)
    PostfixExp                                                 -> Field(PostfixExp,MemberName)
    PostfixExp                                                 -> FunCall(PostfixExp,ListStarOfAssignExp0)
    PostfixExp                                                 -> ArrayIndex(PostfixExp,CommaExp)
    PostfixExp                                                 -> PrimaryExp
    PrimaryExp                                                 -> CommaExp
    PrimaryExp                                                 -> StringLiteralList
    PrimaryExp                                                 -> Constant
    PrimaryExp                                                 -> IDENTIFIER
    FunDefDecl                                                 -> IdDeclarator
    NoTypeSpecifier                                            -> NoTypeSpecifier()
    FunDefTypeSpec                                             -> ListPlusOfTypeQualifier0
    FunDefTypeSpec                                             -> DeclarationQualifierList
    FunDefTypeSpec                                             -> DeclarationSpecifier
    FunDefTypeSpec                                             -> TypeSpecifier
    FunDefTypeSpec                                             -> NoTypeSpecifier
    Declaration                                                -> FunDef
    FunDef                                                     -> FunDef(FunDefTypeSpec,FunDefDecl,CompoundStm)
    ExternalDef                                                -> Declaration
    ExternalDef                                                -> FunDef
    TranslationUnit                                            -> TranslationUnit(ListPlusOfExternalDef0)
    ParenIdDeclarator                                          -> IDENTIFIER
    OldFunDeclarator                                           -> OldFunction2(ListStarOfPointer0,OldFunDeclarator,OptPostfixingAbstractDeclarator0)
    OldFunDeclarator                                           -> OldFunction1(ListStarOfPointer0,ParenIdDeclarator,ListPlusOfIDENTIFIER0)
    TypedefDeclarator                                          -> TypedefDeclarator2(ListStarOfPointer0,TypedefDeclarator,OptPostfixingAbstractDeclarator0)
    TypedefDeclarator                                          -> TypedefDeclarator1(ListStarOfPointer0,TypedefName,OptPostfixingAbstractDeclarator0)
    IdDeclarator                                               -> FunDecl(ListStarOfPointer0,IdDeclarator,OptPostfixingAbstractDeclarator0)
    IdDeclarator                                               -> IdDecl(ListStarOfPointer0,IDENTIFIER,OptPostfixingAbstractDeclarator0)
    Declarator                                                 -> TypedefDeclarator
    Declarator                                                 -> IdDeclarator
    IdOrTypedefName                                            -> TypedefName
    IdOrTypedefName                                            -> IDENTIFIER
    TypedefName                                                -> TypeId(ID)
    IDENTIFIER                                                 -> Id(ID)
    ID                                                         -> <string>
    ExternalDef                                                -> PpIf(IfLine,ListStarOfExternalDef0,ListStarOfElifLine_ListStarOfExternalDef0,OptElseLine_ListStarOfExternalDef0)
    MemberDeclaration                                          -> PpControl(ControlLine)
    ExternalDef                                                -> PpControl(ControlLine)
    LineFlag                                                   -> <string>
    ElseLine                                                   -> <string>
    ElifLine                                                   -> <string>
    IfLine                                                     -> <string>
    ControlLineNot                                             -> <string>
    ControlLine                                                -> <string>
    FileName                                                   -> <string>
    TokenSeq                                                   -> <string>
    WS                                                         -> <string>
    TokWS                                                      -> <string>
    Token                                                      -> <string>
    Slash                                                      -> <string>
    TokenChar                                                  -> <string>
    Asterisk                                                   -> <string>
    Comment                                                    -> <string>
    FloatFlags                                                 -> <string>
    IntFlags                                                   -> <string>
    OctalEsc                                                   -> <string>
    StringChar                                                 -> <string>
    Char                                                       -> <string>
    FloatLiteral                                               -> <string>
    OctLiteral                                                 -> <string>
    HexLiteral                                                 -> <string>
    IntLiteral                                                 -> <string>
    CharLiteral                                                -> <string>
    StringLiteral                                              -> <string>
    StringLiteralList                                          -> StringLit(ListPlusOfStringLiteral0)
    Constant                                                   -> CharConst(CharLiteral)
    Constant                                                   -> FloatConst(FloatLiteral)
    Constant                                                   -> OctConst(OctLiteral)
    Constant                                                   -> HexConst(HexLiteral)
    Constant                                                   -> IntConst(IntLiteral)
    Keyword                                                    -> <string>
