wiki:AST Schema
  • 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:scroot="http://vsl.cis.udel.edu/ns/tass/tass_ast">
      <id_RootNode>1</id_RootNode>
      <fdn_mainFunction>7</fdn_mainFunction>
      <globalScopeNodes>
        <id_GlobalScopeNodes>2</id_GlobalScopeNodes>
        <child>
          <id_FunctionDeclarationNode>3</id_FunctionDeclarationNode>
          <source region="1,0,1,21" fileRef="501" />
          <identifier>
            <id_IdentifierNode>4</id_IdentifierNode>
            <name>__assert__</name>
          </identifier>
          <outputType>
            <id_VoidTypeNode>5</id_VoidTypeNode>
          </outputType>
          <formals>
            <id_FormalVariableDeclarationNodes>6</id_FormalVariableDeclarationNodes>
          </formals>
        </child>
        <child>
          <id_FunctionDeclarationNode>7</id_FunctionDeclarationNode>
          <source region="3,6,3,6" fileRef="502" />
          <identifier>
            <id_IdentifierNode>8</id_IdentifierNode>
            <name>f</name>
          </identifier>
          <outputType>
            <id_VoidTypeNode>9</id_VoidTypeNode>
          </outputType>
          <formals>
            <id_FormalVariableDeclarationNodes>10</id_FormalVariableDeclarationNodes>
            <child>
              <id_FormalVariableDeclarationNode>11</id_FormalVariableDeclarationNode>
              <source region="3,8,3,12" fileRef="502" />
              <isRestrict>false</isRestrict>
              <storageClass>AUTO</storageClass>
              <fdn_function>7</fdn_function>
              <type>
                <id_IntegerTypeNode>12</id_IntegerTypeNode>
                <intType>INT</intType>
              </type>
              <identifier>
                <id_IdentifierNode>13</id_IdentifierNode>
                <name>x</name>
              </identifier>
            </child>
          </formals>
          <body>
            <id_BlockNode>14</id_BlockNode>
            <source region="3,1,7,1" fileRef="502" />
            <labels>
              <id_LabelNodes>15</id_LabelNodes>
            </labels>
            <variables>
              <id_VariableDeclarationNodes>16</id_VariableDeclarationNodes>
              <child>
                <id_LocalVariableDeclarationNode>17</id_LocalVariableDeclarationNode>
                <source region="4,3,4,7" fileRef="502" />
                <isRestrict>true</isRestrict>
                <storageClass>AUTO</storageClass>
                <bn_block>14</bn_block>
                <type>
                  <id_IntegerTypeNode>19</id_IntegerTypeNode>
                  <intType>INT</intType>
                </type>
                <identifier>
                  <id_IdentifierNode>18</id_IdentifierNode>
                  <name>y</name>
                </identifier>
              </child>
            </variables>
            <statements>
              <id_StatementNodes>20</id_StatementNodes>
              <child>
                <id_AssignmentNode>21</id_AssignmentNode>
                <source region="6,3,6,7" fileRef="502" />
                <labels>
                  <id_LabelNodes>22</id_LabelNodes>
                </labels>
                <lhs>
                  <id_VariableReferenceNode>23</id_VariableReferenceNode>
                  <source region="6,3,6,3" fileRef="502" />
                  <name>y</name>
                  <vdn_referent>17</vdn_referent>
                  <labels>
                    <id_LabelNodes>24</id_LabelNodes>
                  </labels>
                </lhs>
                <rhs>
                  <id_VariableReferenceNode>25</id_VariableReferenceNode>
                  <source region="6,7,6,7" fileRef="502" />
                  <name>x</name>
                  <vdn_referent>11</vdn_referent>
                  <labels>
                    <id_LabelNodes>26</id_LabelNodes>
                  </labels>
                </rhs>
              </child>
            </statements>
          </body>
        </child>
        
      </globalScopeNodes>
      <files>
        <id_FileNodes>500</id_FileNodes>
        <child>
          <id_FileNode>501</id_FileNode>
          <fileName>/s/home/alex/tass/trunk/include/assert.h</fileName>
        </child>
        <child>
          <id_FileNode>502</id_FileNode>
          <fileName>/s/home/alex/tass/trunk/examples/xml/example.c</fileName>
          <contents>
    #include &lt;assert.h&gt;
    
    void f(int x) {
      int y;
    
      y = x;
    }
    
    int g(int x) {
      char y;
      int z;
    
      f(x);
      z = 42;
      z = x;
      return z;
    }
    
    int main(int argc, char** argv) {
      assert(g(4) == 4);
      return 0;
    }</contents>
        </child>
      </files>
    </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: ExpressionNode,ReferenceNode
    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: name
                                  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: VariableDeclarationNode,GlobalScopeNode
    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: name
                                  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: name
                                  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: IdentifierNode,ReferenceNode
    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: name
                                  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: LHSExpressionNode,ReferenceNode
    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: name
                                  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
    
Last modified 14 years ago Last modified on 12/23/11 08:18:27
Note: See TracWiki for help on using the wiki.