wiki:AST Schema

Version 11 (modified by stachnik, 14 years ago) ( diff )

--

  • Example XML File
    <?xml version="1.0" standalone="yes"?>
    <scroot:rootNode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://vsl.cis.udel.edu/ns/tass/tass_ast
                                  tass_ast.xsd"
              xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:scroot="http://vsl.cis.udel.edu/ns/tass/tass_ast">
      <id_RootNode>1</id_RootNode>
      <fdn_mainFunction>4</fdn_mainFunction>
      <globalScopeNodes>
        <id_GlobalScopeNodes>2</id_GlobalScopeNodes>
        <child>
          <id_FunctionDeclarationNode>4</id_FunctionDeclarationNode>
          <identifier>
            <id_IdentifierNode>5</id_IdentifierNode>
            <name>test</name>
          </identifier>
          <outputType>
            <id_TypeNode>6</id_TypeNode>
          </outputType>
          <formals>
            <id_FormalVariableDeclarationNodes>7</id_FormalVariableDeclarationNodes>
          </formals>
        </child>
      </globalScopeNodes>
      
    </scroot:rootNode>
    
  • Schema Description
    Root Node
         Name: rootNode
         Type: RootNode
    
    Complex Type: ASTNode
    Deriving:
    Sequence:      Element:       Name: id_ASTNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
    
    Complex Type: ArrayTypeNode
    Deriving: TypeNode
    Sequence:      Element:       Name: id_ArrayTypeNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: elementType
                                  Type (node): TypeNode
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: extent
                                  Type (node): ExpressionNode
                                  Min Occurs: 0 Max Occurs: 1
    
    Complex Type: AssertStatementNode
    Deriving: StatementNode
    Sequence:      Element:       Name: id_AssertStatementNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: labels
                                  Type (node): LabelNodes
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: predicate
                                  Type (node): ExpressionNode
                                  Min Occurs: 1 Max Occurs: 1
    
    Complex Type: AssignmentNode
    Deriving: ModificationNode
    Sequence:      Element:       Name: id_AssignmentNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: labels
                                  Type (node): LabelNodes
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: lhs
                                  Type (node): LHSExpressionNode
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: rhs
                                  Type (node): ExpressionNode
                                  Min Occurs: 1 Max Occurs: 1
    
    Complex Type: BindingExpressionNode
    Deriving: PureExpressionNode
    Sequence:      Element:       Name: id_BindingExpressionNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: quantifier
                                  Type (leaf): Quantifier
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: labels
                                  Type (node): LabelNodes
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: boundVariable
                                  Type (node): BoundVariableDeclarationNode
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: constraint
                                  Type (node): PureExpressionNode
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: expression
                                  Type (node): PureExpressionNode
                                  Min Occurs: 1 Max Occurs: 1
    
    Complex Type: BlockNode
    Deriving: StatementNode
    Sequence:      Element:       Name: id_BlockNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: labels
                                  Type (node): LabelNodes
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: variables
                                  Type (node): VariableDeclarationNodes
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: statements
                                  Type (node): StatementNodes
                                  Min Occurs: 1 Max Occurs: 1
    
    Complex Type: BooleanTypeNode
    Deriving: TypeNode
    Sequence:      Element:       Name: id_BooleanTypeNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
    
    Complex Type: BoundVariableDeclarationNode
    Deriving: VariableDeclarationNode
    Sequence:      Element:       Name: id_BoundVariableDeclarationNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: isConst
                                  Type (leaf): boolean
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: isVolatile
                                  Type (leaf): boolean
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: isRestrict
                                  Type (leaf): boolean
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: storageClass
                                  Type (leaf): StorageClass
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: ben_containingExpression
                                  Type (node): int
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: type
                                  Type (node): TypeNode
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: identifier
                                  Type (node): IdentifierNode
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: initializer
                                  Type (node): ExpressionNode
                                  Min Occurs: 0 Max Occurs: 1
    
    Complex Type: CompositeTypeNode
    Deriving: TypeNode
    Sequence:      Element:       Name: id_CompositeTypeNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: fields
                                  Type (node): PairNode_IdentifierNode_TypeNodes
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: name
                                  Type (node): IdentifierNode
                                  Min Occurs: 1 Max Occurs: 1
    
    Complex Type: ExpressionNode
    Deriving: StatementNode
    Sequence:      Element:       Name: id_ExpressionNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: labels
                                  Type (node): LabelNodes
                                  Min Occurs: 1 Max Occurs: 1
    
    Complex Type: FileNode
    Deriving:
    Sequence:      Element:       Name: id_FileNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: fileName
                                  Type (leaf): string
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: contents
                                  Type (leaf): string
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: isSystem
                                  Type (leaf): boolean
                                  Min Occurs: 0 Max Occurs: 1
    
    Complex Type: ForLoopNode
    Deriving: LoopNode
    Sequence:      Element:       Name: id_ForLoopNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: labels
                                  Type (node): LabelNodes
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: body
                                  Type (node): StatementNode
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: invariants
                                  Type (node): PureExpressionNode
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: initializer
                                  Type (node): StatementNode
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: condition
                                  Type (node): ExpressionNode
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: incrementer
                                  Type (node): StatementNode
                                  Min Occurs: 1 Max Occurs: 1
    
    Complex Type: FormalVariableDeclarationNode
    Deriving: VariableDeclarationNode
    Sequence:      Element:       Name: id_FormalVariableDeclarationNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: isConst
                                  Type (leaf): boolean
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: isVolatile
                                  Type (leaf): boolean
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: isRestrict
                                  Type (leaf): boolean
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: storageClass
                                  Type (leaf): StorageClass
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: fdn_function
                                  Type (node): int
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: type
                                  Type (node): TypeNode
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: identifier
                                  Type (node): IdentifierNode
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: initializer
                                  Type (node): ExpressionNode
                                  Min Occurs: 0 Max Occurs: 1
    
    Complex Type: FunctionDeclarationNode
    Deriving: GlobalScopeNode
    Sequence:      Element:       Name: id_FunctionDeclarationNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: fdn_definition
                                  Type (node): int
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: identifier
                                  Type (node): IdentifierNode
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: outputType
                                  Type (node): TypeNode
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: formals
                                  Type (node): FormalVariableDeclarationNodes
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: body
                                  Type (node): BlockNode
                                  Min Occurs: 0 Max Occurs: 1
    
    Complex Type: FunctionInvocationNode
    Deriving: ExpressionNode
    Sequence:      Element:       Name: id_FunctionInvocationNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: labels
                                  Type (node): LabelNodes
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: function
                                  Type (node): ExpressionNode
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: arguments
                                  Type (node): ExpressionNodes
                                  Min Occurs: 1 Max Occurs: 1
    
    Complex Type: FunctionReferenceNode
    Deriving: ExpressionNodeReferenceNode
    Sequence:      Element:       Name: id_FunctionReferenceNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: identifier
                                  Type (leaf): string
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: fdn_referent
                                  Type (node): int
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: labels
                                  Type (node): LabelNodes
                                  Min Occurs: 1 Max Occurs: 1
    
    Complex Type: GlobalScopeNode
    Deriving: ASTNode
    Sequence:      Element:       Name: id_GlobalScopeNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
    
    Complex Type: GlobalVariableDeclarationNode
    Deriving: VariableDeclarationNodeGlobalScopeNode
    Sequence:      Element:       Name: id_GlobalVariableDeclarationNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: isConst
                                  Type (leaf): boolean
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: isVolatile
                                  Type (leaf): boolean
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: isRestrict
                                  Type (leaf): boolean
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: storageClass
                                  Type (leaf): StorageClass
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: vdn_definition
                                  Type (node): int
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: isDefinition
                                  Type (leaf): boolean
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: isInput
                                  Type (leaf): boolean
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: isOutput
                                  Type (leaf): boolean
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: isShared
                                  Type (leaf): boolean
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: type
                                  Type (node): TypeNode
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: identifier
                                  Type (node): IdentifierNode
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: initializer
                                  Type (node): ExpressionNode
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: inputAssumption
                                  Type (node): ExpressionNode
                                  Min Occurs: 0 Max Occurs: 1
    
    Complex Type: IdentifierNode
    Deriving: ASTNode
    Sequence:      Element:       Name: id_IdentifierNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: identifier
                                  Type (leaf): string
                                  Min Occurs: 1 Max Occurs: 1
    
    Complex Type: IfThenElseStatementNode
    Deriving: StatementNode
    Sequence:      Element:       Name: id_IfThenElseStatementNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: labels
                                  Type (node): LabelNodes
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: condition
                                  Type (node): ExpressionNode
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: trueBranch
                                  Type (node): StatementNode
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: falseBranch
                                  Type (node): StatementNode
                                  Min Occurs: 0 Max Occurs: 1
    
    Complex Type: IncrementNode
    Deriving: ModificationNode
    Sequence:      Element:       Name: id_IncrementNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: prefix
                                  Type (leaf): boolean
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: increment
                                  Type (leaf): boolean
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: labels
                                  Type (node): LabelNodes
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: lhs
                                  Type (node): LHSExpressionNode
                                  Min Occurs: 1 Max Occurs: 1
    
    Complex Type: IntegerLiteralNode
    Deriving: LiteralNode
    Sequence:      Element:       Name: id_IntegerLiteralNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: integerValue
                                  Type (leaf): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: labels
                                  Type (node): LabelNodes
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: name
                                  Type (node): IdentifierNode
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: type
                                  Type (node): TypeNode
                                  Min Occurs: 1 Max Occurs: 1
    
    Complex Type: IntegerTypeNode
    Deriving: TypeNode
    Sequence:      Element:       Name: id_IntegerTypeNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: intType
                                  Type (leaf): IntType
                                  Min Occurs: 1 Max Occurs: 1
    
    Complex Type: LHSExpressionNode
    Deriving: PureExpressionNode
    Sequence:      Element:       Name: id_LHSExpressionNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: labels
                                  Type (node): LabelNodes
                                  Min Occurs: 1 Max Occurs: 1
    
    Complex Type: LabelNode
    Deriving: ASTNode
    Sequence:      Element:       Name: id_LabelNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: stn_statement
                                  Type (node): int
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: identifier
                                  Type (node): IdentifierNode
                                  Min Occurs: 1 Max Occurs: 1
    
    Complex Type: LiteralNode
    Deriving: PureExpressionNode
    Sequence:      Element:       Name: id_LiteralNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: labels
                                  Type (node): LabelNodes
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: name
                                  Type (node): IdentifierNode
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: type
                                  Type (node): TypeNode
                                  Min Occurs: 1 Max Occurs: 1
    
    Complex Type: LocalVariableDeclarationNode
    Deriving: VariableDeclarationNode
    Sequence:      Element:       Name: id_LocalVariableDeclarationNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: isConst
                                  Type (leaf): boolean
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: isVolatile
                                  Type (leaf): boolean
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: isRestrict
                                  Type (leaf): boolean
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: storageClass
                                  Type (leaf): StorageClass
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: bn_block
                                  Type (node): int
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: type
                                  Type (node): TypeNode
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: identifier
                                  Type (node): IdentifierNode
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: initializer
                                  Type (node): ExpressionNode
                                  Min Occurs: 0 Max Occurs: 1
    
    Complex Type: LoopNode
    Deriving: StatementNode
    Sequence:      Element:       Name: id_LoopNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: labels
                                  Type (node): LabelNodes
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: body
                                  Type (node): StatementNode
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: invariants
                                  Type (node): PureExpressionNode
                                  Min Occurs: 0 Max Occurs: 1
    
    Complex Type: ModificationNode
    Deriving: SideEffectExpressionNode
    Sequence:      Element:       Name: id_ModificationNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: labels
                                  Type (node): LabelNodes
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: lhs
                                  Type (node): LHSExpressionNode
                                  Min Occurs: 1 Max Occurs: 1
    
    Complex Type: OperatorNode
    Deriving: PureExpressionNode
    Sequence:      Element:       Name: id_OperatorNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: operator
                                  Type (leaf): AST_OPERATOR
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: labels
                                  Type (node): LabelNodes
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: argument
                                  Type (node): ExpressionNode
                                  Min Occurs: 1 Max Occurs: 3
    
    Complex Type: PairNode_IdentifierNode_TypeNode
    Deriving: ASTNode
    Sequence:      Element:       Name: id_PairNode_IdentifierNode_TypeNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: left
                                  Type (node): IdentifierNode
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: right
                                  Type (node): TypeNode
                                  Min Occurs: 1 Max Occurs: 1
    
    Complex Type: PointerTypeNode
    Deriving: TypeNode
    Sequence:      Element:       Name: id_PointerTypeNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: baseType
                                  Type (node): TypeNode
                                  Min Occurs: 1 Max Occurs: 1
    
    Complex Type: PragmaNode
    Deriving: ASTNode
    Sequence:      Element:       Name: id_PragmaNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: string
                                  Type (leaf): string
                                  Min Occurs: 1 Max Occurs: 1
    
    Complex Type: PureExpressionNode
    Deriving: ExpressionNode
    Sequence:      Element:       Name: id_PureExpressionNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: labels
                                  Type (node): LabelNodes
                                  Min Occurs: 1 Max Occurs: 1
    
    Complex Type: RealLiteralNode
    Deriving: LiteralNode
    Sequence:      Element:       Name: id_RealLiteralNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: realValue
                                  Type (leaf): double
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: labels
                                  Type (node): LabelNodes
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: name
                                  Type (node): IdentifierNode
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: type
                                  Type (node): RealTypeNode
                                  Min Occurs: 1 Max Occurs: 1
    
    Complex Type: RealTypeNode
    Deriving: TypeNode
    Sequence:      Element:       Name: id_RealTypeNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
    
    Complex Type: ReferenceNode
    Deriving: IdentifierNode
    Sequence:      Element:       Name: id_ReferenceNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: identifier
                                  Type (leaf): string
                                  Min Occurs: 1 Max Occurs: 1
    
    Complex Type: ReturnNode
    Deriving: StatementNode
    Sequence:      Element:       Name: id_ReturnNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: labels
                                  Type (node): LabelNodes
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: expression
                                  Type (node): ExpressionNode
                                  Min Occurs: 1 Max Occurs: 1
    
    Complex Type: RootNode
    Deriving: ASTNode
    Sequence:      Element:       Name: id_RootNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: fdn_mainFunction
                                  Type (node): int
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: globalScopeNodes
                                  Type (node): GlobalScopeNodes
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: files
                                  Type (node): FileNodes
                                  Min Occurs: 1 Max Occurs: 1
    
    Complex Type: ExpressionNodes
    Deriving: ASTNode
    Sequence:      Element:       Name: id_ExpressionNodes
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Group (minOccurs="unbounded"):
                        Element:       Name: child
                                       Type (node): ExpressionNode
                                       Min Occurs=0 MaxOccurs=1
    
    Complex Type: FileNodes
    Deriving: ASTNode
    Sequence:      Element:       Name: id_FileNodes
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Group (minOccurs="unbounded"):
                        Element:       Name: child
                                       Type (node): FileNode
                                       Min Occurs=0 MaxOccurs=1
    
    Complex Type: FormalVariableDeclarationNodes
    Deriving: ASTNode
    Sequence:      Element:       Name: id_FormalVariableDeclarationNodes
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Group (minOccurs="unbounded"):
                        Element:       Name: child
                                       Type (node): FormalVariableDeclarationNode
                                       Min Occurs=0 MaxOccurs=1
    
    Complex Type: GlobalScopeNodes
    Deriving: ASTNode
    Sequence:      Element:       Name: id_GlobalScopeNodes
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Group (minOccurs="unbounded"):
                        Element:       Name: child
                                       Type (node): GlobalScopeNode
                                       Min Occurs=0 MaxOccurs=1
    
    Complex Type: LabelNodes
    Deriving: ASTNode
    Sequence:      Element:       Name: id_LabelNodes
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Group (minOccurs="unbounded"):
                        Element:       Name: child
                                       Type (node): LabelNode
                                       Min Occurs=0 MaxOccurs=1
    
    Complex Type: StatementNodes
    Deriving: ASTNode
    Sequence:      Element:       Name: id_StatementNodes
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Group (minOccurs="unbounded"):
                        Element:       Name: child
                                       Type (node): StatementNode
                                       Min Occurs=0 MaxOccurs=1
    
    Complex Type: VariableDeclarationNodes
    Deriving: ASTNode
    Sequence:      Element:       Name: id_VariableDeclarationNodes
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Group (minOccurs="unbounded"):
                        Element:       Name: child
                                       Type (node): VariableDeclarationNode
                                       Min Occurs=0 MaxOccurs=1
    
    Complex Type: PairNode_IdentifierNode_TypeNodes
    Deriving: ASTNode
    Sequence:      Element:       Name: id_PairNode_IdentifierNode_TypeNodes
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Group (minOccurs="unbounded"):
                        Element:       Name: child
                                       Type (node): PairNode_IdentifierNode_TypeNode
                                       Min Occurs=0 MaxOccurs=1
    
    Complex Type: SideEffectExpressionNode
    Deriving: ExpressionNode
    Sequence:      Element:       Name: id_SideEffectExpressionNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: labels
                                  Type (node): LabelNodes
                                  Min Occurs: 1 Max Occurs: 1
    
    Complex Type: SizeableNode
    Deriving: ASTNode
    Sequence:      Element:       Name: id_SizeableNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
    
    Complex Type: StatementNode
    Deriving: ASTNode
    Sequence:      Element:       Name: id_StatementNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: labels
                                  Type (node): LabelNodes
                                  Min Occurs: 1 Max Occurs: 1
    
    Complex Type: SubscriptNode
    Deriving: LHSExpressionNode
    Sequence:      Element:       Name: id_SubscriptNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: labels
                                  Type (node): LabelNodes
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: arrayExpression
                                  Type (node): ExpressionNode
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: indexExpression
                                  Type (node): ExpressionNode
                                  Min Occurs: 1 Max Occurs: 1
    
    Complex Type: TypeDefinitionNode
    Deriving: GlobalScopeNode
    Sequence:      Element:       Name: id_TypeDefinitionNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: identifier
                                  Type (node): IdentifierNode
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: type
                                  Type (node): TypeNode
                                  Min Occurs: 1 Max Occurs: 1
    
    Complex Type: TypeNode
    Deriving: SizeableNode
    Sequence:      Element:       Name: id_TypeNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
    
    Complex Type: TypeReferenceNode
    Deriving: IdentifierNodeReferenceNode
    Sequence:      Element:       Name: id_TypeReferenceNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: identifier
                                  Type (leaf): string
                                  Min Occurs: 1 Max Occurs: 1
    
    Complex Type: VariableDeclarationNode
    Deriving: ASTNode
    Sequence:      Element:       Name: id_VariableDeclarationNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: isConst
                                  Type (leaf): boolean
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: isVolatile
                                  Type (leaf): boolean
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: isRestrict
                                  Type (leaf): boolean
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: storageClass
                                  Type (leaf): StorageClass
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: type
                                  Type (node): TypeNode
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: identifier
                                  Type (node): IdentifierNode
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: initializer
                                  Type (node): ExpressionNode
                                  Min Occurs: 0 Max Occurs: 1
    
    Complex Type: VariableReferenceNode
    Deriving: LHSExpressionNodeReferenceNode
    Sequence:      Element:       Name: id_VariableReferenceNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
                   Element:       Name: identifier
                                  Type (leaf): string
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: vdn_referent
                                  Type (node): int
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: labels
                                  Type (node): LabelNodes
                                  Min Occurs: 1 Max Occurs: 1
    
    Complex Type: VoidTypeNode
    Deriving: TypeNode
    Sequence:      Element:       Name: id_VoidTypeNode
                                  Type (id): integer
                                  Min Occurs: 1 Max Occurs: 1
                   Element:       Name: source
                                  Type (leaf): Source
                                  Min Occurs: 0 Max Occurs: 1
    
Note: See TracWiki for help on using the wiki.