-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathalbero_sintattico.xml
29 lines (29 loc) · 8.62 KB
/
albero_sintattico.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?xml version="1.0" encoding="UTF-8" standalone="no"?><ProgramOp><varDeclListOp><varDecOp>var<idListInitOp>(Id,"c")<ExprOp>(String_const,"1")</ExprOp></idListInitOp></varDecOp></varDeclListOp><procListOp><procOp>sommac<ParDeclListOp><ParDeclOp>(type,"real")a</ParDeclOp><ParDeclOp>(type,"real")b</ParDeclOp></ParDeclListOp>real<varDeclListOp><varDecOp>real<idListInitOp>(Id,"result")<ExprOp>(var is null</ExprOp></idListInitOp></varDecOp></varDeclListOp><StatListOp><AssignStatOp>result<ExprOp><AddOp><ExprOp>(Id,"a")</ExprOp><ExprOp>(Id,"b")</ExprOp></AddOp></ExprOp></AssignStatOp><ReturnStatOp><ExprOp>(Id,"result")</ExprOp></ReturnStatOp></StatListOp></procOp><procOp>differenzac<ParDeclListOp><ParDeclOp>(type,"real")a</ParDeclOp><ParDeclOp>(type,"real")b</ParDeclOp></ParDeclListOp>real<varDeclListOp><varDecOp>real<idListInitOp>(Id,"result")<ExprOp>(var is null</ExprOp></idListInitOp></varDecOp></varDeclListOp><StatListOp><AssignStatOp>result<ExprOp><DiffOp><ExprOp>(Id,"a")</ExprOp><ExprOp>(Id,"b")</ExprOp></DiffOp></ExprOp></AssignStatOp><ReturnStatOp><ExprOp>(Id,"result")</ExprOp></ReturnStatOp></StatListOp></procOp><procOp>moltiplicazionec<ParDeclListOp><ParDeclOp>(type,"real")a</ParDeclOp><ParDeclOp>(type,"real")b</ParDeclOp></ParDeclListOp>real<varDeclListOp><varDecOp>real<idListInitOp>(Id,"result")<ExprOp>(var is null</ExprOp></idListInitOp></varDecOp></varDeclListOp><StatListOp><AssignStatOp>result<ExprOp><MulOp><ExprOp>(Id,"a")</ExprOp><ExprOp>(Id,"b")</ExprOp></MulOp></ExprOp></AssignStatOp><ReturnStatOp><ExprOp>(Id,"result")</ExprOp></ReturnStatOp></StatListOp></procOp><procOp>divisionec<ParDeclListOp><ParDeclOp>(type,"real")a</ParDeclOp><ParDeclOp>(type,"real")b</ParDeclOp></ParDeclListOp>real<varDeclListOp><varDecOp>real<idListInitOp>(Id,"result")<ExprOp>(var is null</ExprOp></idListInitOp></varDecOp></varDeclListOp><StatListOp><AssignStatOp>result<ExprOp><DivOp><ExprOp>(Id,"a")</ExprOp><ExprOp>(Id,"b")</ExprOp></DivOp></ExprOp></AssignStatOp><ReturnStatOp><ExprOp>(Id,"result")</ExprOp></ReturnStatOp></StatListOp></procOp><procOp>potenzac<ParDeclListOp><ParDeclOp>(type,"real")a</ParDeclOp><ParDeclOp>(type,"real")b</ParDeclOp></ParDeclListOp>real<varDeclListOp><varDecOp>real<idListInitOp>(Id,"result")<ExprOp>(var is null</ExprOp></idListInitOp></varDecOp></varDeclListOp><StatListOp><AssignStatOp>result<ExprOp><PowOp><ExprOp>(Id,"a")</ExprOp><ExprOp>(Id,"b")</ExprOp></PowOp></ExprOp></AssignStatOp><ReturnStatOp><ExprOp>(Id,"result")</ExprOp></ReturnStatOp></StatListOp></procOp><procOp>stampa<ParDeclListOp><ParDeclOp>(type,"string")messaggio</ParDeclOp></ParDeclListOp><varDeclListOp><varDecOp>var<idListInitOp>(Id,"i")<ExprOp>(String_const,"1")</ExprOp></idListInitOp></varDecOp></varDeclListOp><StatListOp><WhileStatOp><varDeclListOp><varDecOp>var<idListInitOp>(Id,"incremento")<ExprOp>(String_const,"1")</ExprOp></idListInitOp></varDecOp></varDeclListOp><ExprOp><LeOp><ExprOp>(Id,"i")</ExprOp><ExprOp>(String_const,"4")</ExprOp></LeOp></ExprOp><StatListOp><WriteStatOp><ExprOp>(String_const,"")</ExprOp></WriteStatOp><AssignStatOp>i<ExprOp><AddOp><ExprOp>(Id,"i")</ExprOp><ExprOp>(Id,"incremento")</ExprOp></AddOp></ExprOp></AssignStatOp></StatListOp></WhileStatOp><WriteStatOp><ExprOp>(Id,"messaggio")</ExprOp></WriteStatOp></StatListOp></procOp></procListOp><MainOp><varDeclListOp><varDecOp>var<idListInitOp>(Id,"a")<ExprOp>(String_const,"0")</ExprOp>(Id,"b")<ExprOp>(String_const,"0")</ExprOp></idListInitOp></varDecOp><varDecOp>var<idListInitOp>(Id,"ans")<ExprOp>(String_const,"si")</ExprOp></idListInitOp></varDecOp><varDecOp>var<idListInitOp>(Id,"op")<ExprOp>(String_const,"0")</ExprOp></idListInitOp></varDecOp><varDecOp>real<idListInitOp>(Id,"risultato")<ExprOp>(String_const,"0")</ExprOp></idListInitOp></varDecOp></varDeclListOp><StatListOp><WhileStatOp><varDeclListOp/><ExprOp><EqOp><ExprOp>(Id,"ans")</ExprOp><ExprOp>(String_const,"si")</ExprOp></EqOp></ExprOp><StatListOp><WriteStatOp><ExprOp>(String_const,"Scegli operazione 1 ADD 2 DIFF 3 MUL 4 DIV 5 POW")</ExprOp></WriteStatOp><ReadStatOp><IdListOp>
(ID,"op")
</IdListOp></ReadStatOp><WriteStatOp><ExprOp>(String_const,"Inserisci il primo valore:")</ExprOp></WriteStatOp><ReadStatOp><IdListOp>
(ID,"a")
</IdListOp></ReadStatOp><WriteStatOp><ExprOp>(String_const,"Inserisci il secondo valore:")</ExprOp></WriteStatOp><ReadStatOp><IdListOp>
(ID,"b")
</IdListOp></ReadStatOp><IfStatOp><ExprOp><EqOp><ExprOp>(Id,"op")</ExprOp><ExprOp>(String_const,"1")</ExprOp></EqOp></ExprOp><StatListOp><AssignStatOp>risultato<ExprOp><CallProcOp>
(ID,"sommac")
<ExprListOp><ExprOp>(Id,"a")</ExprOp><ExprOp>(Id,"b")</ExprOp></ExprListOp></CallProcOp></ExprOp></AssignStatOp><CallProcOp>
(ID,"stampa")
<ExprListOp><ExprOp><StrConcatOp><ExprOp><StrConcatOp><ExprOp><StrConcatOp><ExprOp><StrConcatOp><ExprOp><StrConcatOp><ExprOp>(String_const,"la somma di ")</ExprOp><ExprOp>(Id,"a")</ExprOp></StrConcatOp></ExprOp><ExprOp>(String_const," e ")</ExprOp></StrConcatOp></ExprOp><ExprOp>(Id,"b")</ExprOp></StrConcatOp></ExprOp><ExprOp>(String_const," è ")</ExprOp></StrConcatOp></ExprOp><ExprOp>(Id,"risultato")</ExprOp></StrConcatOp></ExprOp></ExprListOp></CallProcOp></StatListOp><varDeclListOp/></IfStatOp><IfStatOp><ExprOp><EqOp><ExprOp>(Id,"op")</ExprOp><ExprOp>(String_const,"2")</ExprOp></EqOp></ExprOp><StatListOp><AssignStatOp>risultato<ExprOp><CallProcOp>
(ID,"differenzac")
<ExprListOp><ExprOp>(Id,"a")</ExprOp><ExprOp>(Id,"b")</ExprOp></ExprListOp></CallProcOp></ExprOp></AssignStatOp><CallProcOp>
(ID,"stampa")
<ExprListOp><ExprOp><StrConcatOp><ExprOp><StrConcatOp><ExprOp><StrConcatOp><ExprOp><StrConcatOp><ExprOp><StrConcatOp><ExprOp>(String_const,"la differenza di ")</ExprOp><ExprOp>(Id,"a")</ExprOp></StrConcatOp></ExprOp><ExprOp>(String_const," e ")</ExprOp></StrConcatOp></ExprOp><ExprOp>(Id,"b")</ExprOp></StrConcatOp></ExprOp><ExprOp>(String_const," è ")</ExprOp></StrConcatOp></ExprOp><ExprOp>(Id,"risultato")</ExprOp></StrConcatOp></ExprOp></ExprListOp></CallProcOp></StatListOp><varDeclListOp/></IfStatOp><IfStatOp><ExprOp><EqOp><ExprOp>(Id,"op")</ExprOp><ExprOp>(String_const,"3")</ExprOp></EqOp></ExprOp><StatListOp><AssignStatOp>risultato<ExprOp><CallProcOp>
(ID,"moltiplicazionec")
<ExprListOp><ExprOp>(Id,"a")</ExprOp><ExprOp>(Id,"b")</ExprOp></ExprListOp></CallProcOp></ExprOp></AssignStatOp><CallProcOp>
(ID,"stampa")
<ExprListOp><ExprOp><StrConcatOp><ExprOp><StrConcatOp><ExprOp><StrConcatOp><ExprOp><StrConcatOp><ExprOp><StrConcatOp><ExprOp>(String_const,"la moltiplicazione di ")</ExprOp><ExprOp>(Id,"a")</ExprOp></StrConcatOp></ExprOp><ExprOp>(String_const," e ")</ExprOp></StrConcatOp></ExprOp><ExprOp>(Id,"b")</ExprOp></StrConcatOp></ExprOp><ExprOp>(String_const," è ")</ExprOp></StrConcatOp></ExprOp><ExprOp>(Id,"risultato")</ExprOp></StrConcatOp></ExprOp></ExprListOp></CallProcOp></StatListOp><varDeclListOp/></IfStatOp><IfStatOp><ExprOp><EqOp><ExprOp>(Id,"op")</ExprOp><ExprOp>(String_const,"4")</ExprOp></EqOp></ExprOp><StatListOp><AssignStatOp>risultato<ExprOp><CallProcOp>
(ID,"divisionec")
<ExprListOp><ExprOp>(Id,"a")</ExprOp><ExprOp>(Id,"b")</ExprOp></ExprListOp></CallProcOp></ExprOp></AssignStatOp><CallProcOp>
(ID,"stampa")
<ExprListOp><ExprOp><StrConcatOp><ExprOp><StrConcatOp><ExprOp><StrConcatOp><ExprOp><StrConcatOp><ExprOp><StrConcatOp><ExprOp>(String_const,"la divisione di ")</ExprOp><ExprOp>(Id,"a")</ExprOp></StrConcatOp></ExprOp><ExprOp>(String_const," e ")</ExprOp></StrConcatOp></ExprOp><ExprOp>(Id,"b")</ExprOp></StrConcatOp></ExprOp><ExprOp>(String_const," è ")</ExprOp></StrConcatOp></ExprOp><ExprOp>(Id,"risultato")</ExprOp></StrConcatOp></ExprOp></ExprListOp></CallProcOp></StatListOp><varDeclListOp/></IfStatOp><IfStatOp><ExprOp><EqOp><ExprOp>(Id,"op")</ExprOp><ExprOp>(String_const,"5")</ExprOp></EqOp></ExprOp><StatListOp><AssignStatOp>risultato<ExprOp><CallProcOp>
(ID,"potenzac")
<ExprListOp><ExprOp>(Id,"a")</ExprOp><ExprOp>(Id,"b")</ExprOp></ExprListOp></CallProcOp></ExprOp></AssignStatOp><CallProcOp>
(ID,"stampa")
<ExprListOp><ExprOp><StrConcatOp><ExprOp><StrConcatOp><ExprOp><StrConcatOp><ExprOp><StrConcatOp><ExprOp><StrConcatOp><ExprOp>(String_const,"la potenza di ")</ExprOp><ExprOp>(Id,"a")</ExprOp></StrConcatOp></ExprOp><ExprOp>(String_const," elevato a ")</ExprOp></StrConcatOp></ExprOp><ExprOp>(Id,"b")</ExprOp></StrConcatOp></ExprOp><ExprOp>(String_const," è ")</ExprOp></StrConcatOp></ExprOp><ExprOp>(Id,"risultato")</ExprOp></StrConcatOp></ExprOp></ExprListOp></CallProcOp></StatListOp><varDeclListOp/></IfStatOp><WriteStatOp><ExprOp>(String_const,"Vuoi continuare ? si/no")</ExprOp></WriteStatOp><ReadStatOp><IdListOp>
(ID,"ans")
</IdListOp></ReadStatOp></StatListOp></WhileStatOp><WriteStatOp><ExprOp>(String_const,"")</ExprOp></WriteStatOp><WriteStatOp><ExprOp>(String_const,"ciao")</ExprOp></WriteStatOp></StatListOp></MainOp></ProgramOp>