Anonymous user
Recursive descent parser generator: Difference between revisions
no edit summary
mNo edit summary |
No edit summary |
||
Line 1:
{{draft task}}
Write a recursive descent parser generator that takes
Example grammar:
<pre>
plus \+
times \*
var [a-z]+
!! start -> expr start2
!! start2 -> plus start2
!! start2 -> expr
!! expr -> var expr2
!! expr2 -> times expr2
!! expr2 -> var
</pre>
Use the parser generator to build a parser that takes arithmetic expressions and turns them in to three address code. The resulting parser should take this (or something similar) as input:
<pre>
(one + two) * three - four * five
123 + 321
</pre>
And generate this (or something similar) as output:
<pre>
_0001 = one + two
_0002 = _0001 * three
_0003 = four * five
_0004 = _0002 - _0003
_0005 = 123 + 321
</pre>
|