packages feed

SableCC2Hs-0.0.0.2: haskell/MakeUntypedAST.hs

-- autogenerated File do not edit!
module MakeUntypedAST where
import ParserTypes (PToken, ReductionID (..), CST(..),AST(..)
import Data.Array
-- reduce actions that transform the CST to the AST
reduceTable = listArray (ReductionID 0,ReductionID 366 ) $ reduceActions
cst2ast :: CST -> AST
cst2ast (CstLeaf t) = ASTLeaf t
cst2ast (CstNode reduction list)
  = (reduceTable ! reduction) $ map cst2ast list
reduceActions :: [[AST] -> AST]
reduceActions = [
    -- rule : 0 AMachineParseUnit
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 1 ADefinitionFileParseUnit
    \[nodeArrayList1] -> 
        ( ASTNode
            ("definition_file")
            ([ nodeArrayList1 ])
        ),
    -- rule : 2 APredicateParseUnit
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("predicate")
            ([ nodeArrayList2 ])
        ),
    -- rule : 3 AExpressionParseUnit
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("expression")
            ([ nodeArrayList2 ])
        ),
    -- rule : 4 ASubstitutionParseUnit
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("substitution")
            ([ nodeArrayList2 ])
        ),
    -- rule : 5 AAbstractConstantsParseUnit
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("machine_clause")
            ([ nodeArrayList2 ])
        ),
    -- rule : 6 AAbstractVariablesParseUnit
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("machine_clause")
            ([ nodeArrayList2 ])
        ),
    -- rule : 7 AAssertionsParseUnit
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("machine_clause")
            ([ nodeArrayList2 ])
        ),
    -- rule : 8 AConcreteConstantsParseUnit
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("machine_clause")
            ([ nodeArrayList2 ])
        ),
    -- rule : 9 AConcreteVariablesParseUnit
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("machine_clause")
            ([ nodeArrayList2 ])
        ),
    -- rule : 10 AConstantsParseUnit
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("machine_clause")
            ([ nodeArrayList2 ])
        ),
    -- rule : 11 AConstraintsParseUnit
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("machine_clause")
            ([ nodeArrayList2 ])
        ),
    -- rule : 12 ADefinitionsParseUnit
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("machine_clause")
            ([ nodeArrayList2 ])
        ),
    -- rule : 13 AExtendsParseUnit
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("machine_clause")
            ([ nodeArrayList2 ])
        ),
    -- rule : 14 AImportsParseUnit
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("machine_clause")
            ([ nodeArrayList2 ])
        ),
    -- rule : 15 AIncludesParseUnit
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("machine_clause")
            ([ nodeArrayList2 ])
        ),
    -- rule : 16 AInitialisationParseUnit
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("machine_clause")
            ([ nodeArrayList2 ])
        ),
    -- rule : 17 AInvariantParseUnit
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("machine_clause")
            ([ nodeArrayList2 ])
        ),
    -- rule : 18 ALocalOperationsParseUnit
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("machine_clause")
            ([ nodeArrayList2 ])
        ),
    -- rule : 19 AOperationsParseUnit
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("machine_clause")
            ([ nodeArrayList2 ])
        ),
    -- rule : 20 APromotesParseUnit
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("machine_clause")
            ([ nodeArrayList2 ])
        ),
    -- rule : 21 APropertiesParseUnit
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("machine_clause")
            ([ nodeArrayList2 ])
        ),
    -- rule : 22 ASeesParseUnit
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("machine_clause")
            ([ nodeArrayList2 ])
        ),
    -- rule : 23 ASetsParseUnit
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("machine_clause")
            ([ nodeArrayList2 ])
        ),
    -- rule : 24 AUsesParseUnit
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("machine_clause")
            ([ nodeArrayList2 ])
        ),
    -- rule : 25 AValuesParseUnit
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("machine_clause")
            ([ nodeArrayList2 ])
        ),
    -- rule : 26 AVariablesParseUnit
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("machine_clause")
            ([ nodeArrayList2 ])
        ),
    -- rule : 27 AOppatternParseUnit
    \[nodeArrayList2,nodeArrayList1] -> 
        nodeArrayList2,
    -- rule : 28 AAabstractmachine1Machine
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("abstract_machine")
            ([ nodeArrayList1, nodeArrayList2, ASTList [] ])
        ),
    -- rule : 29 AAabstractmachine2Machine
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("abstract_machine")
            ([ nodeArrayList1, nodeArrayList2, ( head
                                                   (( unASTList
                                                        (nodeArrayList3)
                                                    ))
                                               ) ])
        ),
    -- rule : 30 AArefinementmachine1Machine
    \[nodeArrayList5,nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("refinement_machine")
            ([ nodeArrayList2, nodeArrayList4, ASTList [] ])
        ),
    -- rule : 31 AArefinementmachine2Machine
    \[nodeArrayList6,nodeArrayList5,nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("refinement_machine")
            ([ nodeArrayList2, nodeArrayList4, ( head
                                                   (( unASTList
                                                        (nodeArrayList5)
                                                    ))
                                               ) ])
        ),
    -- rule : 32 AAimplementationmachine1Machine
    \[nodeArrayList5,nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("implementation_machine")
            ([ nodeArrayList2, nodeArrayList4, ASTList [] ])
        ),
    -- rule : 33 AAimplementationmachine2Machine
    \[nodeArrayList6,nodeArrayList5,nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("implementation_machine")
            ([ nodeArrayList2, nodeArrayList4, ( head
                                                   (( unASTList
                                                        (nodeArrayList5)
                                                    ))
                                               ) ])
        ),
    -- rule : 34 AAmachineheader1MachineHeader
    \[nodeArrayList1] -> 
        ( ASTNode
            ("machine_header")
            ([ ( head
                   (( unASTList
                        (nodeArrayList1)
                    ))
               ), ASTList [] ])
        ),
    -- rule : 35 AAmachineheader2MachineHeader
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("machine_header")
            ([ ( head
                   (( unASTList
                        (nodeArrayList1)
                    ))
               ), ( head
                      (( unASTList
                           (nodeArrayList2)
                       ))
                  ) ])
        ),
    -- rule : 36 AMachineParams
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTList
            ([ ( head
                   (( unASTList
                        (nodeArrayList2)
                    ))
               ) ])
        ),
    -- rule : 37 ASingleMachineParamList
    \[nodeArrayList1] -> 
        ( ASTList
            ([ ( ASTList
                   ([ nodeArrayList1 ])
               ) ])
        ),
    -- rule : 38 AMultiMachineParamList
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTList
            ([ ( ASTList
                   (( (++)
                        (( unASTList
                             (( head
                                  (( unASTList
                                       (nodeArrayList1)
                                   ))
                              ))
                         ))
                        ([ nodeArrayList3 ])
                    ))
               ) ])
        ),
    -- rule : 39 AMachineParam
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 40 ASingleMachineClauseList
    \[nodeArrayList1] -> 
        ( ASTList
            ([ ( ASTList
                   ([ nodeArrayList1 ])
               ) ])
        ),
    -- rule : 41 AMultipleMachineClauseList
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTList
            ([ ( ASTList
                   (( (++)
                        (( unASTList
                             (( head
                                  (( unASTList
                                       (nodeArrayList1)
                                   ))
                              ))
                         ))
                        ([ nodeArrayList2 ])
                    ))
               ) ])
        ),
    -- rule : 42 ADefinitionsMachineClause
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 43 AConstraintsMachineClause
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 44 ASeesMachineClause
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 45 APromotesMachineClause
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 46 AUsesMachineClause
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 47 AIncludesMachineClause
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 48 AExtendsMachineClause
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 49 AImportsMachineClause
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 50 ASetsMachineClause
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 51 AConstantsMachineClause
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 52 AAbstractConstantsMachineClause
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 53 APropertiesMachineClause
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 54 AConcreteVariablesMachineClause
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 55 AVariablesMachineClause
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 56 AAssertionsMachineClause
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 57 AInitialisationMachineClause
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 58 ALocalOperationsMachineClause
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 59 AOperationsMachineClause
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 60 AValuesMachineClause
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 61 AInvariantMachineClause
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 62 AAdefinitionsclause1DefinitionsClause
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("definitions")
            ([ ( head
                   (( unASTList
                        (nodeArrayList2)
                    ))
               ) ])
        ),
    -- rule : 63 AAdefinitionsclause2DefinitionsClause
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("definitions")
            ([ ( head
                   (( unASTList
                        (nodeArrayList2)
                    ))
               ) ])
        ),
    -- rule : 64 ASingleDefinitionList
    \[nodeArrayList1] -> 
        ( ASTList
            ([ ( ASTList
                   ([ nodeArrayList1 ])
               ) ])
        ),
    -- rule : 65 AMultiDefinitionList
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTList
            ([ ( ASTList
                   (( (++)
                        (( unASTList
                             (( head
                                  (( unASTList
                                       (nodeArrayList1)
                                   ))
                              ))
                         ))
                        ([ nodeArrayList3 ])
                    ))
               ) ])
        ),
    -- rule : 66 AApredicatedefinition1Definition
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("predicate")
            ([ nodeArrayList1, ASTList [], nodeArrayList3 ])
        ),
    -- rule : 67 AApredicatedefinition2Definition
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("predicate")
            ([ nodeArrayList1, ( head
                                   (( unASTList
                                        (nodeArrayList2)
                                    ))
                               ), nodeArrayList4 ])
        ),
    -- rule : 68 AAsubstitutiondefinition1Definition
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("substitution")
            ([ nodeArrayList1, ASTList [], nodeArrayList3 ])
        ),
    -- rule : 69 AAsubstitutiondefinition2Definition
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("substitution")
            ([ nodeArrayList1, ( head
                                   (( unASTList
                                        (nodeArrayList2)
                                    ))
                               ), nodeArrayList4 ])
        ),
    -- rule : 70 AAexpressiondefinition1Definition
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("expression")
            ([ nodeArrayList1, ASTList [], nodeArrayList3 ])
        ),
    -- rule : 71 AAexpressiondefinition2Definition
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("expression")
            ([ nodeArrayList1, ( head
                                   (( unASTList
                                        (nodeArrayList2)
                                    ))
                               ), nodeArrayList4 ])
        ),
    -- rule : 72 AFileDefinition
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("file")
            ([ nodeArrayList2 ])
        ),
    -- rule : 73 ADefParameters
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTList
            ([ ( head
                   (( unASTList
                        (nodeArrayList2)
                    ))
               ) ])
        ),
    -- rule : 74 ASeesClause
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("sees")
            ([ ( head
                   (( unASTList
                        (nodeArrayList2)
                    ))
               ) ])
        ),
    -- rule : 75 APromotesClause
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("promotes")
            ([ ( head
                   (( unASTList
                        (nodeArrayList2)
                    ))
               ) ])
        ),
    -- rule : 76 AUsesClause
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("uses")
            ([ ( head
                   (( unASTList
                        (nodeArrayList2)
                    ))
               ) ])
        ),
    -- rule : 77 AIncludesClause
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("includes")
            ([ ( head
                   (( unASTList
                        (nodeArrayList2)
                    ))
               ) ])
        ),
    -- rule : 78 AExtendsClause
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("extends")
            ([ ( head
                   (( unASTList
                        (nodeArrayList2)
                    ))
               ) ])
        ),
    -- rule : 79 AImportsClause
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("imports")
            ([ ( head
                   (( unASTList
                        (nodeArrayList2)
                    ))
               ) ])
        ),
    -- rule : 80 ASingleMachineRefList
    \[nodeArrayList1] -> 
        ( ASTList
            ([ ( ASTList
                   ([ nodeArrayList1 ])
               ) ])
        ),
    -- rule : 81 AMultiMachineRefList
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTList
            ([ ( ASTList
                   (( (++)
                        (( unASTList
                             (( head
                                  (( unASTList
                                       (nodeArrayList1)
                                   ))
                              ))
                         ))
                        ([ nodeArrayList3 ])
                    ))
               ) ])
        ),
    -- rule : 82 AAmachinereference1MachineReference
    \[nodeArrayList1] -> 
        ( ASTNode
            ("machine_reference")
            ([ ( head
                   (( unASTList
                        (nodeArrayList1)
                    ))
               ), ASTList [] ])
        ),
    -- rule : 83 AAmachinereference2MachineReference
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("machine_reference")
            ([ ( head
                   (( unASTList
                        (nodeArrayList1)
                    ))
               ), ( head
                      (( unASTList
                           (nodeArrayList2)
                       ))
                  ) ])
        ),
    -- rule : 84 AAbstractVariablesClause
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("variables")
            ([ ( head
                   (( unASTList
                        (nodeArrayList2)
                    ))
               ) ])
        ),
    -- rule : 85 AVariablesClause
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("variables")
            ([ ( head
                   (( unASTList
                        (nodeArrayList2)
                    ))
               ) ])
        ),
    -- rule : 86 AConcreteConstantsClause
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("constants")
            ([ ( head
                   (( unASTList
                        (nodeArrayList2)
                    ))
               ) ])
        ),
    -- rule : 87 AConstantsClause
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("constants")
            ([ ( head
                   (( unASTList
                        (nodeArrayList2)
                    ))
               ) ])
        ),
    -- rule : 88 AConcreteVariablesClause
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("concrete_variables")
            ([ ( head
                   (( unASTList
                        (nodeArrayList2)
                    ))
               ) ])
        ),
    -- rule : 89 AAbstractConstantsClause
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("abstract_constants")
            ([ ( head
                   (( unASTList
                        (nodeArrayList2)
                    ))
               ) ])
        ),
    -- rule : 90 ASetsClause
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("sets")
            ([ ( head
                   (( unASTList
                        (nodeArrayList2)
                    ))
               ) ])
        ),
    -- rule : 91 ASingleSetDefList
    \[nodeArrayList1] -> 
        ( ASTList
            ([ ( ASTList
                   ([ nodeArrayList1 ])
               ) ])
        ),
    -- rule : 92 AMultiSetDefList
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTList
            ([ ( ASTList
                   (( (++)
                        (( unASTList
                             (( head
                                  (( unASTList
                                       (nodeArrayList1)
                                   ))
                              ))
                         ))
                        ([ nodeArrayList3 ])
                    ))
               ) ])
        ),
    -- rule : 93 ADeferredSet
    \[nodeArrayList1] -> 
        ( ASTNode
            ("deferred")
            ([ ( head
                   (( unASTList
                        (nodeArrayList1)
                    ))
               ) ])
        ),
    -- rule : 94 AEnumeratedSet
    \[nodeArrayList5,nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("enumerated")
            ([ ( head
                   (( unASTList
                        (nodeArrayList1)
                    ))
               ), ( head
                      (( unASTList
                           (nodeArrayList4)
                       ))
                  ) ])
        ),
    -- rule : 95 APropertiesClause
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("properties")
            ([ nodeArrayList2 ])
        ),
    -- rule : 96 AInitialisationClause
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("initialisation")
            ([ nodeArrayList2 ])
        ),
    -- rule : 97 AInvariantClause
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("invariant")
            ([ nodeArrayList2 ])
        ),
    -- rule : 98 AConstraintsClause
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("constraints")
            ([ nodeArrayList2 ])
        ),
    -- rule : 99 AAssertionsClause
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("assertions")
            ([ ( head
                   (( unASTList
                        (nodeArrayList2)
                    ))
               ) ])
        ),
    -- rule : 100 ASingleAssertionsPredList
    \[nodeArrayList1] -> 
        ( ASTList
            ([ ( ASTList
                   ([ nodeArrayList1 ])
               ) ])
        ),
    -- rule : 101 AMultiAssertionsPredList
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTList
            ([ ( ASTList
                   (( (++)
                        (( unASTList
                             (( head
                                  (( unASTList
                                       (nodeArrayList1)
                                   ))
                              ))
                         ))
                        ([ nodeArrayList3 ])
                    ))
               ) ])
        ),
    -- rule : 102 AValuesClause
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("values")
            ([ ( head
                   (( unASTList
                        (nodeArrayList2)
                    ))
               ) ])
        ),
    -- rule : 103 ASingleValuesEntriesList
    \[nodeArrayList1] -> 
        ( ASTList
            ([ ( ASTList
                   ([ nodeArrayList1 ])
               ) ])
        ),
    -- rule : 104 AMultiValuesEntriesList
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTList
            ([ ( ASTList
                   (( (++)
                        (( unASTList
                             (( head
                                  (( unASTList
                                       (nodeArrayList1)
                                   ))
                              ))
                         ))
                        ([ nodeArrayList3 ])
                    ))
               ) ])
        ),
    -- rule : 105 AValuesEntry
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("values_entry")
            ([ ( head
                   (( unASTList
                        (nodeArrayList1)
                    ))
               ), nodeArrayList3 ])
        ),
    -- rule : 106 ALocalOperationsClause
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("local_operations")
            ([ ( head
                   (( unASTList
                        (nodeArrayList2)
                    ))
               ) ])
        ),
    -- rule : 107 AOperationsClause
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("operations")
            ([ ( head
                   (( unASTList
                        (nodeArrayList2)
                    ))
               ) ])
        ),
    -- rule : 108 ASingleOperationList
    \[nodeArrayList1] -> 
        ( ASTList
            ([ ( ASTList
                   ([ nodeArrayList1 ])
               ) ])
        ),
    -- rule : 109 AMultiOperationList
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTList
            ([ ( ASTList
                   (( (++)
                        (( unASTList
                             (( head
                                  (( unASTList
                                       (nodeArrayList1)
                                   ))
                              ))
                         ))
                        ([ nodeArrayList3 ])
                    ))
               ) ])
        ),
    -- rule : 110 AAoperation1Operation
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("operation")
            ([ ASTList [], ( head
                               (( unASTList
                                    (nodeArrayList1)
                                ))
                           ), ASTList [], nodeArrayList3 ])
        ),
    -- rule : 111 AAoperation2Operation
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("operation")
            ([ ( head
                   (( unASTList
                        (nodeArrayList1)
                    ))
               ), ( head
                      (( unASTList
                           (nodeArrayList2)
                       ))
                  ), ASTList [], nodeArrayList4 ])
        ),
    -- rule : 112 AAoperation3Operation
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("operation")
            ([ ASTList [], ( head
                               (( unASTList
                                    (nodeArrayList1)
                                ))
                           ), ( head
                                  (( unASTList
                                       (nodeArrayList2)
                                   ))
                              ), nodeArrayList4 ])
        ),
    -- rule : 113 AAoperation4Operation
    \[nodeArrayList5,nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("operation")
            ([ ( head
                   (( unASTList
                        (nodeArrayList1)
                    ))
               ), ( head
                      (( unASTList
                           (nodeArrayList2)
                       ))
                  ), ( head
                         (( unASTList
                              (nodeArrayList3)
                          ))
                     ), nodeArrayList5 ])
        ),
    -- rule : 114 AOperationReturnValues
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTList
            ([ ( head
                   (( unASTList
                        (nodeArrayList1)
                    ))
               ) ])
        ),
    -- rule : 115 APredicateTop
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 116 AImplicationPredicateP30
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("implication")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 117 ANextLevelPredicateP30
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 118 APredicateX30
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 119 ADisjunctPredicateP40
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("disjunct")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 120 AConjunctPredicateP40
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("conjunct")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 121 ANextLevelPredicateP40
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 122 APredicateX40
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 123 AEquivalencePredicateP60
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("equivalence")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 124 ANextLevelPredicateP60
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 125 APredicateX60
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 126 AEqualPredicateAtomic
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("equal")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 127 ABelongPredicateAtomic
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("belong")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 128 AIncludePredicateAtomic
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("include")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 129 AIncludeStrictlyPredicateAtomic
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("include_strictly")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 130 ANotIncludePredicateAtomic
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("not_include")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 131 ANotIncludeStrictlyPredicateAtomic
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("not_include_strictly")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 132 AUnequalPredicateAtomic
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("unequal")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 133 ANotBelongPredicateAtomic
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("not_belong")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 134 ALessEqualPredicateAtomic
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("less_equal")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 135 ALessPredicateAtomic
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("less")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 136 AGreaterEqualPredicateAtomic
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("greater_equal")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 137 AGreaterPredicateAtomic
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("greater")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 138 AFalsePredicateAtomic
    \[nodeArrayList1] -> 
        ( ASTNode
            ("false")
            ([ ])
        ),
    -- rule : 139 ABracketedPredicateAtomic
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        nodeArrayList2,
    -- rule : 140 ANegationPredicateAtomic
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("negation")
            ([ nodeArrayList3 ])
        ),
    -- rule : 141 AUniversalQuantificationPredicateAtomic
    \[nodeArrayList5,nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("universal_quantification")
            ([ ( head
                   (( unASTList
                        (nodeArrayList2)
                    ))
               ), nodeArrayList4 ])
        ),
    -- rule : 142 AExistentialQuantificationPredicateAtomic
    \[nodeArrayList5,nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("existential_quantification")
            ([ ( head
                   (( unASTList
                        (nodeArrayList2)
                    ))
               ), nodeArrayList4 ])
        ),
    -- rule : 143 AAdefinitionpredicateatomic1PredicateAtomic
    \[nodeArrayList1] -> 
        ( ASTNode
            ("definition")
            ([ nodeArrayList1, ASTList [] ])
        ),
    -- rule : 144 AAdefinitionpredicateatomic2PredicateAtomic
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("definition")
            ([ nodeArrayList1, ( head
                                   (( unASTList
                                        (nodeArrayList2)
                                    ))
                               ) ])
        ),
    -- rule : 145 ACompositionExpressionInPar
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("composition")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 146 AParallelProductExpressionInPar
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("parallel_product")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 147 ANextLevelExpressionInPar
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 148 AExpressionTop
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 149 ARelationsExpressionP125
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("relations")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 150 APartialFunctionExpressionP125
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("partial_function")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 151 ATotalFunctionExpressionP125
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("total_function")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 152 APartialInjectionExpressionP125
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("partial_injection")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 153 ATotalInjectionExpressionP125
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("total_injection")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 154 APartialSurjectionExpressionP125
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("partial_surjection")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 155 ATotalSurjectionExpressionP125
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("total_surjection")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 156 APartialBijectionExpressionP125
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("partial_bijection")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 157 ATotalBijectionExpressionP125
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("total_bijection")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 158 ATotalRelationExpressionP125
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("total_relation")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 159 ASurjectionRelationExpressionP125
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("surjection_relation")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 160 ATotalSurjectionRelationExpressionP125
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("total_surjection_relation")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 161 ANextLevelExpressionP125
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 162 AExpressionX125
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 163 AOverwriteExpressionP160
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("overwrite")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 164 ADirectProductExpressionP160
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("direct_product")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 165 AConcatExpressionP160
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("concat")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 166 ADomainRestrictionExpressionP160
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("domain_restriction")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 167 ADomainSubtractionExpressionP160
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("domain_subtraction")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 168 ARangeRestrictionExpressionP160
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("range_restriction")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 169 ARangeSubtractionExpressionP160
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("range_subtraction")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 170 AInsertFrontExpressionP160
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("insert_front")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 171 AInsertTailExpressionP160
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("insert_tail")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 172 AUnionExpressionP160
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("union")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 173 AIntersectionExpressionP160
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("intersection")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 174 ARestrictFrontExpressionP160
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("restrict_front")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 175 ARestrictTailExpressionP160
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("restrict_tail")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 176 ACouple1ExpressionP160
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("couple")
            ([ ( ASTList
                   (( (++)
                        (( unASTList
                             (( ASTList
                                  ([ nodeArrayList1 ])
                              ))
                         ))
                        ([ nodeArrayList3 ])
                    ))
               ) ])
        ),
    -- rule : 177 ANextLevelExpressionP160
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 178 AExpressionX160
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 179 AIntervalExpressionP170
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("interval")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 180 ANextLevelExpressionP170
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 181 AExpressionX170
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 182 AMinusOrSetSubtractExpressionP180
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("minus_or_set_subtract")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 183 AAddExpressionP180
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("add")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 184 ASetSubtractionExpressionP180
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("set_subtraction")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 185 ANextLevelExpressionP180
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 186 AExpressionX180
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 187 AMulExpressionP190
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("mult_or_cart")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 188 ADivExpressionP190
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("div")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 189 AModuloExpressionP190
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("modulo")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 190 ANextLevelExpressionP190
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 191 AExpressionX190
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 192 APowerOfExpressionP200
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("power_of")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 193 ANextLevelExpressionP200
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 194 AExpressionX200
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 195 AUnaryExpressionP210
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("unary")
            ([ nodeArrayList2 ])
        ),
    -- rule : 196 ANextLevelExpressionP210
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 197 AExpressionX210
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 198 AReverseExpressionP230
    \[nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("reverse")
            ([ nodeArrayList1 ])
        ),
    -- rule : 199 ANextLevelExpressionP230
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 200 AExpressionX230
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 201 AImageExpressionP231
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("image")
            ([ nodeArrayList1, nodeArrayList3 ])
        ),
    -- rule : 202 ANextLevelExpressionP231
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 203 AExpressionX231
    \[nodeArrayList1] -> 
        nodeArrayList1,
    -- rule : 204 AConvertBoolExpressionKeyword
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("convert_bool")
            ([ nodeArrayList3 ])
        ),
    -- rule : 205 AMaxExpressionKeyword
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("max")
            ([ nodeArrayList3 ])
        ),
    -- rule : 206 AMinExpressionKeyword
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("min")
            ([ nodeArrayList3 ])
        ),
    -- rule : 207 ACardExpressionKeyword
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("card")
            ([ nodeArrayList3 ])
        ),
    -- rule : 208 AGeneralSumExpressionKeyword
    \[nodeArrayList7,nodeArrayList6,nodeArrayList5,nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("general_sum")
            ([ ( head
                   (( unASTList
                        (nodeArrayList2)
                    ))
               ), nodeArrayList4, nodeArrayList6 ])
        ),
    -- rule : 209 AGeneralProductExpressionKeyword
    \[nodeArrayList7,nodeArrayList6,nodeArrayList5,nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("general_product")
            ([ ( head
                   (( unASTList
                        (nodeArrayList2)
                    ))
               ), nodeArrayList4, nodeArrayList6 ])
        ),
    -- rule : 210 APowSubsetExpressionKeyword
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("pow_subset")
            ([ nodeArrayList3 ])
        ),
    -- rule : 211 APow1SubsetExpressionKeyword
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("pow1_subset")
            ([ nodeArrayList3 ])
        ),
    -- rule : 212 AFinSubsetExpressionKeyword
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("fin_subset")
            ([ nodeArrayList3 ])
        ),
    -- rule : 213 AFin1SubsetExpressionKeyword
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("fin1_subset")
            ([ nodeArrayList3 ])
        ),
    -- rule : 214 AGeneralUnionExpressionKeyword
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("general_union")
            ([ nodeArrayList3 ])
        ),
    -- rule : 215 AGeneralIntersectionExpressionKeyword
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("general_intersection")
            ([ nodeArrayList3 ])
        ),
    -- rule : 216 AIdentityExpressionKeyword
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("identity")
            ([ nodeArrayList3 ])
        ),
    -- rule : 217 AReflexiveClosureExpressionKeyword
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("reflexive_closure")
            ([ nodeArrayList3 ])
        ),
    -- rule : 218 AClosureExpressionKeyword
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("closure")
            ([ nodeArrayList3 ])
        ),
    -- rule : 219 ADomainExpressionKeyword
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("domain")
            ([ nodeArrayList3 ])
        ),
    -- rule : 220 ARangeExpressionKeyword
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("range")
            ([ nodeArrayList3 ])
        ),
    -- rule : 221 ALambdaExpressionKeyword
    \[nodeArrayList7,nodeArrayList6,nodeArrayList5,nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("lambda")
            ([ ( head
                   (( unASTList
                        (nodeArrayList2)
                    ))
               ), nodeArrayList4, nodeArrayList6 ])
        ),
    -- rule : 222 ATransFunctionExpressionKeyword
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("trans_function")
            ([ nodeArrayList3 ])
        ),
    -- rule : 223 ATransRelationExpressionKeyword
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("trans_relation")
            ([ nodeArrayList3 ])
        ),
    -- rule : 224 ASeqExpressionKeyword
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("seq")
            ([ nodeArrayList3 ])
        ),
    -- rule : 225 ASeq1ExpressionKeyword
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("seq1")
            ([ nodeArrayList3 ])
        ),
    -- rule : 226 AIseqExpressionKeyword
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("iseq")
            ([ nodeArrayList3 ])
        ),
    -- rule : 227 AIseq1ExpressionKeyword
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("iseq1")
            ([ nodeArrayList3 ])
        ),
    -- rule : 228 APermExpressionKeyword
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("perm")
            ([ nodeArrayList3 ])
        ),
    -- rule : 229 AEmptySequenceExpressionKeyword
    \[nodeArrayList1] -> 
        ( ASTNode
            ("empty_sequence")
            ([ ])
        ),
    -- rule : 230 ASizeExpressionKeyword
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("size")
            ([ nodeArrayList3 ])
        ),
    -- rule : 231 AFirstExpressionKeyword
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("first")
            ([ nodeArrayList3 ])
        ),
    -- rule : 232 ALastExpressionKeyword
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("last")
            ([ nodeArrayList3 ])
        ),
    -- rule : 233 AFrontExpressionKeyword
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("front")
            ([ nodeArrayList3 ])
        ),
    -- rule : 234 ATailExpressionKeyword
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("tail")
            ([ nodeArrayList3 ])
        ),
    -- rule : 235 ARevExpressionKeyword
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("rev")
            ([ nodeArrayList3 ])
        ),
    -- rule : 236 AFirstProjectionExpressionKeyword
    \[nodeArrayList6,nodeArrayList5,nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("first_projection")
            ([ nodeArrayList3, nodeArrayList5 ])
        ),
    -- rule : 237 ASecondProjectionExpressionKeyword
    \[nodeArrayList6,nodeArrayList5,nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("second_projection")
            ([ nodeArrayList3, nodeArrayList5 ])
        ),
    -- rule : 238 AIterationExpressionKeyword
    \[nodeArrayList6,nodeArrayList5,nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("iteration")
            ([ nodeArrayList3, nodeArrayList5 ])
        ),
    -- rule : 239 AComprehensionSetExpressionKeyword
    \[nodeArrayList5,nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("comprehension_set")
            ([ ( head
                   (( unASTList
                        (nodeArrayList2)
                    ))
               ), nodeArrayList4 ])
        ),
    -- rule : 240 AQuantifiedUnionExpressionKeyword
    \[nodeArrayList7,nodeArrayList6,nodeArrayList5,nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("quantified_union")
            ([ ( head
                   (( unASTList
                        (nodeArrayList2)
                    ))
               ), nodeArrayList4, nodeArrayList6 ])
        ),
    -- rule : 241 AQuantifiedIntersectionExpressionKeyword
    \[nodeArrayList7,nodeArrayList6,nodeArrayList5,nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("quantified_intersection")
            ([ ( head
                   (( unASTList
                        (nodeArrayList2)
                    ))
               ), nodeArrayList4, nodeArrayList6 ])
        ),
    -- rule : 242 AQuantifiedSetExpressionKeyword
    \[nodeArrayList5,nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("prover_comprehension_set")
            ([ ( head
                   (( unASTList
                        (nodeArrayList2)
                    ))
               ), nodeArrayList4 ])
        ),
    -- rule : 243 ASetExtensionExpressionKeyword
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("set_extension")
            ([ ( head
                   (( unASTList
                        (nodeArrayList2)
                    ))
               ) ])
        ),
    -- rule : 244 ASequenceExtensionExpressionKeyword
    \[nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("sequence_extension")
            ([ ( head
                   (( unASTList
                        (nodeArrayList2)
                    ))
               ) ])
        ),
    -- rule : 245 ACouple2ExpressionKeyword
    \[nodeArrayList5,nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("couple")
            ([ ( ASTList
                   (( (++)
                        (( unASTList
                             (( ASTList
                                  ([ nodeArrayList2 ])
                              ))
                         ))
                        (( unASTList
                             (( head
                                  (( unASTList
                                       (nodeArrayList4)
                                   ))
                              ))
                         ))
                    ))
               ) ])
        ),
    -- rule : 246 AGeneralConcatExpressionKeyword
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("general_concat")
            ([ nodeArrayList3 ])
        ),
    -- rule : 247 ATreeExpressionKeyword
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("tree")
            ([ nodeArrayList3 ])
        ),
    -- rule : 248 ABtreeExpressionKeyword
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("btree")
            ([ nodeArrayList3 ])
        ),
    -- rule : 249 AConstExpressionKeyword
    \[nodeArrayList6,nodeArrayList5,nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("const")
            ([ nodeArrayList3, nodeArrayList5 ])
        ),
    -- rule : 250 ATopExpressionKeyword
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("top")
            ([ nodeArrayList3 ])
        ),
    -- rule : 251 ASonsExpressionKeyword
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("sons")
            ([ nodeArrayList3 ])
        ),
    -- rule : 252 APrefixExpressionKeyword
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("prefix")
            ([ nodeArrayList3 ])
        ),
    -- rule : 253 APostfixExpressionKeyword
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("postfix")
            ([ nodeArrayList3 ])
        ),
    -- rule : 254 ASizetExpressionKeyword
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("sizet")
            ([ nodeArrayList3 ])
        ),
    -- rule : 255 AMirrorExpressionKeyword
    \[nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("mirror")
            ([ nodeArrayList3 ])
        ),
    -- rule : 256 ARankExpressionKeyword
    \[nodeArrayList6,nodeArrayList5,nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("rank")
            ([ nodeArrayList3, nodeArrayList5 ])
        ),
    -- rule : 257 AFatherExpressionKeyword
    \[nodeArrayList6,nodeArrayList5,nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("father")
            ([ nodeArrayList3, nodeArrayList5 ])
        ),
    -- rule : 258 ASonExpressionKeyword
    \[nodeArrayList8,nodeArrayList7,nodeArrayList6,nodeArrayList5,nodeArrayList4,nodeArrayList3,nodeArrayList2,nodeArrayList1] -> 
        ( ASTNode
            ("son")
            ([ nodeArrayList3, nodeArrayL