This shows you the differences between two versions of the page.
cpl-atm:laboratoare:laborator5.1 [2013/11/15 13:52] laura.vasilescu |
cpl-atm:laboratoare:laborator5.1 [2013/11/15 13:58] (current) laura.vasilescu |
||
---|---|---|---|
Line 28: | Line 28: | ||
Prelucrați arborele AST și realizați adnotări de calcule intermediare pentru a evalua expresia. | Prelucrați arborele AST și realizați adnotări de calcule intermediare pentru a evalua expresia. | ||
+ | |||
+ | <note> | ||
+ | <code> | ||
+ | var file=require('./jison.js').parser; | ||
+ | var tree=file.parse("1+3+4"); | ||
+ | console.log(JSON.stringify(tree,null, 4)); | ||
+ | </code> | ||
+ | </note> | ||
+ | |||
Pentru expresia ''1+3'' ar trebui să arate de forma: | Pentru expresia ''1+3'' ar trebui să arate de forma: | ||
<code> | <code> | ||
Line 53: | Line 62: | ||
null | null | ||
], | ], | ||
- | "a": 1, | + | "valoare": 3 |
- | "b": 3, | + | |
- | "valoare": 4 | + | |
} | } | ||
], | ], | ||
- | "a": 1, | ||
"valoare": 4 | "valoare": 4 | ||
} | } | ||
</code> | </code> | ||
+ | Pentru expresia ''1+3+4'': | ||
+ | <code> | ||
+ | { | ||
+ | "r": "expresie", | ||
+ | "l": [ | ||
+ | { | ||
+ | "r": "numar", | ||
+ | "l": [ | ||
+ | "1" | ||
+ | ], | ||
+ | "valoare": 1 | ||
+ | }, | ||
+ | { | ||
+ | "r": "termen", | ||
+ | "l": [ | ||
+ | "+", | ||
+ | { | ||
+ | "r": "numar", | ||
+ | "l": [ | ||
+ | "3" | ||
+ | ], | ||
+ | "valoare": 3 | ||
+ | }, | ||
+ | { | ||
+ | "r": "termen", | ||
+ | "l": [ | ||
+ | "+", | ||
+ | { | ||
+ | "r": "numar", | ||
+ | "l": [ | ||
+ | "4" | ||
+ | ], | ||
+ | "valoare": 4 | ||
+ | }, | ||
+ | null | ||
+ | ], | ||
+ | "valoare": 4 | ||
+ | } | ||
+ | ], | ||
+ | "valoare": 7 | ||
+ | } | ||
+ | ], | ||
+ | "valoare": 8 | ||
+ | } | ||
+ | |||
+ | </code> |