wiki:Generated adder_seq.c.xml
<?xml version="1.0" standalone="yes"?>
<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="http://vsl.cis.udel.edu/ns/tass/tass_ast"
          xmlns:file="http://vsl.cis.udel.edu/ns/tass/File"
          xmlns:astnode="http://vsl.cis.udel.edu/ns/tass/ASTNode"
          xmlns:rtn="http://vsl.cis.udel.edu/ns/tass/RootNode"
          xmlns:fdn="http://vsl.cis.udel.edu/ns/tass/declaration/FunctionDeclarationNode"
          xmlns:idn="http://vsl.cis.udel.edu/ns/tass/IdentifierNode"
          xmlns:tyn="http://vsl.cis.udel.edu/ns/tass/type/TypeNode"
          xmlns:fvn="http://vsl.cis.udel.edu/ns/tass/declaration/FormalVariableDeclarationNode"
          xmlns:bln="http://vsl.cis.udel.edu/ns/tass/statement/BlockNode"
          xmlns:vdn="http://vsl.cis.udel.edu/ns/tass/declaration/VariableDeclarationNode"
          xmlns:exn="http://vsl.cis.udel.edu/ns/tass/statement/expression/ExpressionNode"
          xmlns:itn="http://vsl.cis.udel.edu/ns/tass/type/IntegerTypeNode"
          xmlns:stn="http://vsl.cis.udel.edu/ns/tass/statement/StatementNode"
     xmlns:lvdn="http://vsl.cis.udel.edu/ns/tass/declaration/LocalVariableDeclarationNode"
     xmlns:mdn="http://vsl.cis.udel.edu/ns/tass/statement/expression/ModificationNode"
          xmlns:lhsn="http://vsl.cis.udel.edu/ns/tass/statement/expression/LHSExpressionNode"
          xmlns:asn="http://vsl.cis.udel.edu/ns/tass/statement/expression/AssignmentNode"
          xmlns:gsn="http://vsl.cis.udel.edu/ns/tass/GlobalScopeNode"
          xmlns:vtn="http://vsl.cis.udel.edu/ns/tass/type/VoidTypeNode"
          xmlns:vrn="http://vsl.cis.udel.edu/ns/tass/statement/expression/VariableReferenceNode"
          xmlns:rn="http://vsl.cis.udel.edu/ns/tass/statement/ReturnNode"
          xmlns:ln="http://vsl.cis.udel.edu/ns/tass/statement/expression/LiteralNode"
          xmlns:iln="http://vsl.cis.udel.edu/ns/tass/statement/expression/IntegerLiteralNode"
          xmlns:rln="http://vsl.cis.udel.edu/ns/tass/statement/expression/RealLiteralNode"
          xmlns:ptn="http://vsl.cis.udel.edu/ns/tass/type/PointerTypeNode"
          xmlns:frn="http://vsl.cis.udel.edu/ns/tass/statement/expression/FunctionReferenceNode"
          xmlns:fin="http://vsl.cis.udel.edu/ns/tass/statement/expression/FunctionInvocationNode"
          xmlns:on="http://vsl.cis.udel.edu/ns/tass/statement/expression/OperatorNode"
          xmlns:asrn="http://vsl.cis.udel.edu/ns/tass/statement/AssertStatementNode"
          xmlns:btn="http://vsl.cis.udel.edu/ns/tass/type/BooleanTypeNode"
    xmlns:gvdn="http://vsl.cis.udel.edu/ns/tass/declaration/GlobalVariableDeclarationNode"
      xmlns:misc="http://vsl.cis.udel.edu/ns/tass/misc"
 xmlns:real="http://vsl.cis.udel.edu/ns/tass/type/RealTypeNode"
 xmlns:ssn="http://vsl.cis.udel.edu/ns/tass/statement/expression/SubscriptNode"
 xmlns:in="http://vsl.cis.udel.edu/ns/tass/statement/expression/IncrementNode"
 xmlns:fln="http://vsl.cis.udel.edu/ns/tass/statement/ForLoopNode"
 xmlns:pn="http://vsl.cis.udel.edu/ns/tass/statement/PragmaNode"
 xmlns:loop="http://vsl.cis.udel.edu/ns/tass/statement/LoopNode"
 xmlns:atn="http://vsl.cis.udel.edu/ns/tass/type/ArrayTypeNode">

  <rtn:globalScopeNodes>
    <gsn:child xsi:type="pn:GlobalPragmaNode">
      <pn:pragmaNode xsi:type="pn:PragmaNode">
        <pn:string>
          <![CDATA[
          TASS input int 
          ]]>
        </pn:string>
      </pn:pragmaNode>
    </gsn:child>
    <gsn:child xsi:type="pn:GlobalPragmaNode">
      <pn:pragmaNode xsi:type="pn:PragmaNode">
        <pn:string>
          <![CDATA[
          TASS input {n>=0 && n<=B} int 
          ]]>
        </pn:string>
      </pn:pragmaNode>
    </gsn:child>
    <gsn:child xsi:type="pn:GlobalPragmaNode">
      <pn:pragmaNode xsi:type="pn:PragmaNode">
        <pn:string>
          <![CDATA[
          TASS input 
          ]]>
        </pn:string>
      </pn:pragmaNode>
    </gsn:child>
    <gsn:child xsi:type="gvdn:GlobalVariableDeclarationNode">
      <gvdn:id>
        0
      </gvdn:id>
      <gvdn:name identifier="a" />
      <gvdn:type xsi:type="atn:ArrayTypeNode">
        <atn:elementType xsi:type="real:RealTypeNode" />
      </gvdn:type>
    </gsn:child>
    <gsn:child xsi:type="pn:GlobalPragmaNode">
      <pn:pragmaNode xsi:type="pn:PragmaNode">
        <pn:string>
          <![CDATA[
          TASS output 
          ]]>
        </pn:string>
      </pn:pragmaNode>
    </gsn:child>
    <gsn:child xsi:type="gvdn:GlobalVariableDeclarationNode">
      <gvdn:id>
        1
      </gvdn:id>
      <gvdn:name identifier="sum" />
      <gvdn:type xsi:type="real:RealTypeNode" />
    </gsn:child>
    <gsn:child xsi:type="fdn:FunctionDeclarationNode">
      <astnode:source region="10,6,10,9" fileRef="0" />
      <fdn:id>
        2
      </fdn:id>
      <fdn:name identifier="main" />
      <fdn:outputType xsi:type="vtn:VoidTypeNode" />
      <fdn:formals  />
      <fdn:body>
        <bln:id>
          3
        </bln:id>
        <bln:variables>        <vdn:child xsi:type="lvdn:LocalVariableDeclarationNode">
          <astnode:source region="11,2,11,20" fileRef="0" />
          <vdn:id>
            4
          </vdn:id>
          <vdn:name identifier="result" />
          <vdn:type xsi:type="real:RealTypeNode" />
          <lvdn:bref>
            3
          </lvdn:bref>
        </vdn:child>
        <vdn:child xsi:type="lvdn:LocalVariableDeclarationNode">
          <astnode:source region="12,2,12,6" fileRef="0" />
          <vdn:id>
            6
          </vdn:id>
          <vdn:name identifier="i" />
          <vdn:type xsi:type="itn:IntegerTypeNode" />
          <lvdn:bref>
            3
          </lvdn:bref>
        </vdn:child>
</bln:variables>
        <bln:statements>
                  <stn:child xsi:type="asn:AssignmentNode">
          <astnode:source region="11,2,11,20" fileRef="0" />
          <stn:id>
            5
          </stn:id>
          <mdn:lhs xsi:type="vrn:VariableReferenceNode">
            <astnode:source region="11,2,11,20" fileRef="0" />
            <vrn:vref>
              4
            </vrn:vref>
          </mdn:lhs>
          <asn:rhs xsi:type="rln:RealLiteralNode">
            <astnode:source region="11,18,11,20" fileRef="0" />
            <ln:type xsi:type="real:RealTypeNode" />
            <rln:realValue>
              0
            </rln:realValue>
          </asn:rhs>
        </stn:child>
        <stn:child xsi:type="fln:ForLoopNode">
          <astnode:source region="14,2,14,35" fileRef="0" />
          <loop:body>
            <stn:child xsi:type="asn:AssignmentNode">
              <astnode:source region="14,22,14,35" fileRef="0" />
              <stn:id>
                7
              </stn:id>
              <asn:assignmentType>
                ADDITION
              </asn:assignmentType>
              <mdn:lhs xsi:type="vrn:VariableReferenceNode">
                <astnode:source region="14,22,14,27" fileRef="0" />
                <vrn:vref>
                  4
                </vrn:vref>
              </mdn:lhs>
              <asn:rhs xsi:type="ssn:SubscriptNode">
                <ssn:arrayExpression xsi:type="vrn:VariableReferenceNode">
                  <astnode:source region="14,32,14,32" fileRef="0" />
                  <vrn:vref>
                    0
                  </vrn:vref>
                </ssn:arrayExpression>
                <ssn:indexExpression xsi:type="vrn:VariableReferenceNode">
                  <astnode:source region="14,34,14,34" fileRef="0" />
                  <vrn:vref>
                    6
                  </vrn:vref>
                </ssn:indexExpression>
              </asn:rhs>
            </stn:child>
          </loop:body>
          <fln:initializer xsi:type="asn:AssignmentNode">
            <astnode:source region="14,7,14,9" fileRef="0" />
            <stn:id>
              8
            </stn:id>
            <mdn:lhs xsi:type="vrn:VariableReferenceNode">
              <astnode:source region="14,7,14,7" fileRef="0" />
              <vrn:vref>
                6
              </vrn:vref>
            </mdn:lhs>
            <asn:rhs xsi:type="iln:IntegerLiteralNode">
              <astnode:source region="14,9,14,9" fileRef="0" />
              <ln:type xsi:type="itn:IntegerTypeNode" />
              <iln:integerValue>
                0
              </iln:integerValue>
            </asn:rhs>
          </fln:initializer>
          <fln:condition xsi:type="on:OperatorNode">
            <astnode:source region="14,12,14,14" fileRef="0" />
            <on:operator>
              LESS_THAN
            </on:operator>
            <on:argument1 xsi:type="vrn:VariableReferenceNode">
              <astnode:source region="14,12,14,12" fileRef="0" />
              <vrn:vref>
                6
              </vrn:vref>
            </on:argument1>
            <on:argument2 xsi:type="iln:IntegerLiteralNode">
              <astnode:source region="14,14,14,14" fileRef="0" />
              <ln:name identifier="n" />
              <ln:type xsi:type="itn:IntegerTypeNode" />
              <iln:integerValue>
                10
              </iln:integerValue>
            </on:argument2>
          </fln:condition>
          <fln:incrementer xsi:type="in:IncrementNode">
            <mdn:lhs xsi:type="vrn:VariableReferenceNode">
              <astnode:source region="14,17,14,17" fileRef="0" />
              <vrn:vref>
                6
              </vrn:vref>
            </mdn:lhs>
          </fln:incrementer>
        </stn:child>
        <stn:child xsi:type="asn:AssignmentNode">
          <astnode:source region="15,2,15,13" fileRef="0" />
          <stn:id>
            9
          </stn:id>
          <mdn:lhs xsi:type="vrn:VariableReferenceNode">
            <astnode:source region="15,2,15,4" fileRef="0" />
            <vrn:vref>
              1
            </vrn:vref>
          </mdn:lhs>
          <asn:rhs xsi:type="vrn:VariableReferenceNode">
            <astnode:source region="15,8,15,13" fileRef="0" />
            <vrn:vref>
              4
            </vrn:vref>
          </asn:rhs>
        </stn:child>

        </bln:statements>
      </fdn:body>
    </gsn:child>

  </rtn:globalScopeNodes>
  <rtn:files>
    <file:child>
      <file:id>
        0
      </file:id>
      <file:fileName>
        /Users/tmcclory/src/tass/tass/trunk/examples/adder/adder_seq.c
      </file:fileName>
      <file:contents><![CDATA[#pragma TASS input int
#define B 10
#pragma TASS input {n>=0 && n<=B} int 
#define n 10
#pragma TASS input 
double a[n];
#pragma TASS output 
double sum;

void main() {
        double result = 0.0;
        int i;
        
        for (i=0; i<n; i++) result += a[i];
        sum = result;
}
]]>    </file:contents>
  </file:child>
</rtn:files>
</rootNode>
Last modified 15 years ago Last modified on 09/07/11 15:51:53
Note: See TracWiki for help on using the wiki.