Changes between Initial Version and Version 1 of C to tass-AST xml


Ignore:
Timestamp:
06/09/10 00:38:52 (16 years ago)
Author:
bperry
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • C to tass-AST xml

    v1 v1  
     1C Example:
     2{{{
     3#include <stdio.h>
     4#include <stdlib.h>
     5
     6int main(int argc, char *argv[]) {
     7  double result = 0.0;
     8  int n = atoi(argv[1]);
     9  int i;
     10  double a[n];
     11  FILE *fp = fopen("data","r");
     12
     13  for (i=0; i<n; i++) fscanf(fp, "%lf", &a[i]);
     14  for (i=0; i<n; i++) result += a[i];
     15  printf("%lf",result);
     16  fclose(fp);
     17  return 0;
     18}
     19}}}
     20
     21TASS-AST xml:
     22
     23{{{
     24<tass-ast>
     25<function name = "main"  typeClass="0"  type="int" s="include">
     26  <parameters>
     27    <variableDeclaration class="Builtin" type = "int" name="argc"/>
     28    <variableDeclaration class="IncompleteArray" type = "char *[]" name="argv"/>
     29  </parameters>
     30  <body>
     31      <compoundStatement s="adder_spec.c:5:3">
     32        <variableDeclaration class="Builtin" type = "double" name="result">
     33          <init>
     34            <literalExpression s="adder_spec.c:5:19">
     35              <rationalValue>0.000000e+00</rationalValue>
     36            </literalExpression>
     37          </init>
     38        </variableDeclaration>
     39      </compoundStatement>
     40      <compoundStatement s="adder_spec.c:6:3">
     41        <variableDeclaration class="Builtin" type = "int" name="n">
     42          <init>
     43            <evaluatedFunctionExpression>
     44              <function>
     45                <declRefExpression value="atoi" s="adder_spec.c:6:11"/>
     46              </function>
     47              <argument>
     48                <arrayAccessExpression>
     49                  <variable>
     50                    <declRefExpression value="argv" s="adder_spec.c:6:16"/>
     51                  </variable>
     52                  <subscript>
     53                    <literalExpression s="adder_spec.c:6:21">
     54                      <integerValue>1</integerValue>
     55                    </literalExpression>
     56                  </subscript>
     57                </arrayAccessExpression>
     58              </argument>
     59            </evaluatedFunctionExpression>
     60          </init>
     61        </variableDeclaration>
     62      </compoundStatement>
     63      <compoundStatement s="adder_spec.c:7:3">
     64        <variableDeclaration class="Builtin" type = "int" name="i"/>
     65      </compoundStatement>
     66      <compoundStatement s="adder_spec.c:8:3">
     67        <variableDeclaration class="VariableArray" type = "double []" name="a"/>
     68      </compoundStatement>
     69      <compoundStatement s="adder_spec.c:9:3">
     70        <variableDeclaration class="Pointer" type = "FILE *" name="fp">
     71          <init>
     72            <evaluatedFunctionExpression>
     73              <function>
     74                <declRefExpression value="fopen" s="adder_spec.c:9:14"/>
     75              </function>
     76              <argument>
     77                <literalExpression s="adder_spec.c:9:20">
     78                  <stringExpression value ="data">
     79                </literalExpression>
     80              </argument>
     81              <argument>
     82                <literalExpression s="adder_spec.c:9:27">
     83                  <stringExpression value ="r">
     84                </literalExpression>
     85              </argument>
     86            </evaluatedFunctionExpression>
     87          </init>
     88        </variableDeclaration>
     89      </compoundStatement>
     90      <forStatement s="adder_spec.c:11:3">
     91        <initializer>
     92          <binaryExpression kind="=">
     93            <leftHandSide>
     94              <declRefExpression value="i" s="adder_spec.c:11:8"/>
     95            </leftHandSide>
     96            <rightHandSide>
     97              <literalExpression s="adder_spec.c:11:10">
     98                <integerValue>0</integerValue>
     99              </literalExpression>
     100            </rightHandSide>
     101          </binaryExpression>
     102        </initializer>
     103        <updater>
     104          <unaryExpression postFix = "true" operator="++" s="adder_spec.c:11:18">
     105            <expression>
     106              <declRefExpression value="i" s="adder_spec.c:11:18"/>
     107            </expression>
     108          </unaryExpression>
     109        </updater>
     110        <condition>
     111          <binaryExpression kind="less_than">
     112            <leftHandSide>
     113              <declRefExpression value="i" s="adder_spec.c:11:13"/>
     114            </leftHandSide>
     115            <rightHandSide>
     116              <declRefExpression value="n" s="adder_spec.c:11:15"/>
     117            </rightHandSide>
     118          </binaryExpression>
     119        </condition>
     120        <body>
     121              <evaluatedFunctionExpression>
     122                <function>
     123                  <declRefExpression value="fscanf" s="adder_spec.c:11:23"/>
     124                </function>
     125                <argument>
     126                  <declRefExpression value="fp" s="adder_spec.c:11:30"/>
     127                </argument>
     128                <argument>
     129                  <literalExpression s="adder_spec.c:11:34">
     130                    <stringExpression value ="%lf">
     131                  </literalExpression>
     132                </argument>
     133                <argument>
     134                  <unaryExpression postFix = "false" operator="&" s="adder_spec.c:11:41">
     135                    <expression>
     136                      <arrayAccessExpression>
     137                        <variable>
     138                          <declRefExpression value="a" s="adder_spec.c:11:42"/>
     139                        </variable>
     140                        <subscript>
     141                          <declRefExpression value="i" s="adder_spec.c:11:44"/>
     142                        </subscript>
     143                      </arrayAccessExpression>
     144                    </expression>
     145                  </unaryExpression>
     146                </argument>
     147              </evaluatedFunctionExpression>
     148        </body>
     149      </forStatement>
     150      <forStatement s="adder_spec.c:12:3">
     151        <initializer>
     152          <binaryExpression kind="=">
     153            <leftHandSide>
     154              <declRefExpression value="i" s="adder_spec.c:12:8"/>
     155            </leftHandSide>
     156            <rightHandSide>
     157              <literalExpression s="adder_spec.c:12:10">
     158                <integerValue>0</integerValue>
     159              </literalExpression>
     160            </rightHandSide>
     161          </binaryExpression>
     162        </initializer>
     163        <updater>
     164          <unaryExpression postFix = "true" operator="++" s="adder_spec.c:12:18">
     165            <expression>
     166              <declRefExpression value="i" s="adder_spec.c:12:18"/>
     167            </expression>
     168          </unaryExpression>
     169        </updater>
     170        <condition>
     171          <binaryExpression kind="less_than">
     172            <leftHandSide>
     173              <declRefExpression value="i" s="adder_spec.c:12:13"/>
     174            </leftHandSide>
     175            <rightHandSide>
     176              <declRefExpression value="n" s="adder_spec.c:12:15"/>
     177            </rightHandSide>
     178          </binaryExpression>
     179        </condition>
     180        <body>
     181              <compoundAssignOperator operator="+=">
     182                <leftHandSide>
     183                  <declRefExpression value="result" s="adder_spec.c:12:23"/>
     184                </leftHandSide>
     185                <rightHandSide>
     186                  <arrayAccessExpression>
     187                    <variable>
     188                      <declRefExpression value="a" s="adder_spec.c:12:33"/>
     189                    </variable>
     190                    <subscript>
     191                      <declRefExpression value="i" s="adder_spec.c:12:35"/>
     192                    </subscript>
     193                  </arrayAccessExpression>
     194                </rightHandSide>
     195          </body>
     196        </forStatement>
     197        <evaluatedFunctionExpression>
     198          <function>
     199            <declRefExpression value="printf" s="adder_spec.c:13:3"/>
     200          </function>
     201          <argument>
     202            <literalExpression s="adder_spec.c:13:10">
     203              <stringExpression value ="%lf">
     204            </literalExpression>
     205          </argument>
     206          <argument>
     207            <declRefExpression value="result" s="adder_spec.c:13:16"/>
     208          </argument>
     209        </evaluatedFunctionExpression>
     210        <evaluatedFunctionExpression>
     211          <function>
     212            <declRefExpression value="fclose" s="adder_spec.c:14:3"/>
     213          </function>
     214          <argument>
     215            <declRefExpression value="fp" s="adder_spec.c:14:10"/>
     216          </argument>
     217        </evaluatedFunctionExpression>
     218        <returnStatement s="adder_spec.c:15:3">
     219          <expression>
     220            <literalExpression s="adder_spec.c:15:10">
     221              <integerValue>0</integerValue>
     222            </literalExpression>
     223          </expression>
     224        </returnStatement>
     225  </body>
     226</function>
     227
     228</tass-ast>
     229}}}
     230