54 lines
828 B
Text
54 lines
828 B
Text
====================
|
|
parses numbers
|
|
===================
|
|
5
|
|
---
|
|
(expression (number))
|
|
|
|
===================
|
|
parses variables
|
|
===================
|
|
x
|
|
---
|
|
(expression (variable))
|
|
|
|
===================
|
|
parses products
|
|
===================
|
|
x * x
|
|
---
|
|
(expression (term
|
|
(variable)
|
|
(times)
|
|
(variable)))
|
|
|
|
===================
|
|
parses sums
|
|
===================
|
|
x + x
|
|
---
|
|
(expression
|
|
(variable)
|
|
(plus)
|
|
(variable))
|
|
|
|
====================
|
|
parses complex trees
|
|
====================
|
|
x * y + z * a
|
|
---
|
|
(expression
|
|
(term (variable) (times) (variable))
|
|
(plus)
|
|
(term (variable) (times) (variable)))
|
|
|
|
=================================
|
|
handles parenthesized expressions
|
|
=================================
|
|
x * (y + z)
|
|
---
|
|
(expression (term
|
|
(variable)
|
|
(times)
|
|
(factor (expression (variable) (plus) (variable)))))
|
|
|