Simple precedence parser: Difference between revisions

Content deleted Content added
No edit summary
m Example: class="wikitable"
Line 27:
 
==Example==
 
<pre>
Given the language:
<pre>
E --> E + T' | T'
T' --> T
Line 34 ⟶ 35:
F --> ( E' ) | num
E' --> E
 
</pre>
 
Line 41:
and the Parsing table:
 
{|border="1" cellpadding="2" class="wikitable"
|! ||E|| E' || T || T' || F || + ||*||(||)||num || $
|-
! E
| E || || || || || ||<math>\dot =</math>|| || ||<math>\gtrdot</math> || ||<math>\gtrdot</math>
|-
! E'
| E'|| || || || || || || || ||<math>\dot =</math>|| ||
|-
! T
| T || || || || || ||<math>\gtrdot</math>||<math>\dot =</math>|| ||<math>\gtrdot</math>|| ||<math>\gtrdot</math>
|-
! T'
| T'|| || || || || ||<math>\gtrdot</math>|| || ||<math>\gtrdot</math>|| ||<math>\gtrdot</math>
|-
! F
| F || || || || || ||<math>\gtrdot</math>||<math>\gtrdot</math>|| ||<math>\gtrdot</math>|| ||<math>\gtrdot</math>
|-
! +
| + || || ||<math>\lessdot</math>||<math>\dot =</math>||<math>\lessdot</math>|| || ||<math>\lessdot</math>|| ||<math>\lessdot</math> ||
|-
! *
| * || || || || ||<math>\dot =</math>|| || ||<math>\lessdot</math>|| ||<math>\lessdot</math> ||
|-
! (
| ( ||<math>\lessdot</math>||<math>\dot =</math>||<math>\lessdot</math>||<math>\lessdot</math>||<math>\lessdot</math>|| || ||<math>\lessdot</math>|| ||<math>\lessdot</math> ||
|-
! )
| ) || || || || || ||<math>\gtrdot</math>||<math>\gtrdot</math>|| ||<math>\gtrdot</math>|| ||<math>\gtrdot</math>
|-
! num
| num|| || || || || ||<math>\gtrdot</math>||<math>\gtrdot</math>||||<math>\gtrdot</math>|| ||<math>\gtrdot</math>
|-
! $
| $ ||<math>\lessdot</math>|| ||<math>\lessdot</math>||<math>\lessdot</math>||<math>\lessdot</math>|| || ||<math>\lessdot</math>|| ||<math>\lessdot</math> ||
|}
 
<pre>
 
STACK PRECEDENCE INPUT ACTION