[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
12.6 A simple example
Here is the code for a simple calculator implemented by an Lalr(1) grammar:
(begin (read/lalrp (lalr-grammar (nl plus mult minus div const lpar rpar) (lines (()) ((lines expression nl) (display "--> ") (display expression) (newline)) ((lines nl))) (expression ((expression plus term) (+ expression term)) ((expression minus term) (- expression term)) ((term) term)) (term ((term mult factor) (* term factor)) ((term div factor) (/ term factor)) ((factor) factor)) (factor ((lpar expression rpar) expression) ((const) const))) (regular-grammar () ((+ (or #\tab #\space)) (ignore)) (#\newline 'nl) ((+ digit) (cons 'const (string->number (the-string)))) (#\+ 'plus) (#\- 'minus) (#\* 'mult) (#\/ 'div) (#\( 'lpar) (#\) 'rpar)) (current-input-port)) (reset-eof (current-input-port)))
This document was generated on March 31, 2014 using texi2html 5.0.