1 ;;; test-lr-single-expressions.scm --
3 ;;Grammar accepting single expressions.
6 (load "common-test.scm")
8 (define (doit . tokens)
9 (let ((parser (lalr-parser (expect: 0)
11 (N O C (left: A) (left: M) (nonassoc: U))
16 (A E (prec: U)) : ($1 $2)
18 (parser (make-lexer tokens) error-handler)))
20 ;;; --------------------------------------------------------------------
23 (doit (make-lexical-token 'N #f 1))
27 (doit (make-lexical-token 'A #f -)
28 (make-lexical-token 'N #f 1))
32 (doit (make-lexical-token 'A #f +)
33 (make-lexical-token 'N #f 1))
37 (doit (make-lexical-token 'N #f 1)
38 (make-lexical-token 'A #f +)
39 (make-lexical-token 'N #f 2))
43 (doit (make-lexical-token 'N #f 1)
44 (make-lexical-token 'A #f +)
45 (make-lexical-token 'N #f 2)
46 (make-lexical-token 'M #f *)
47 (make-lexical-token 'N #f 3))
51 (doit (make-lexical-token 'O #f #\()
52 (make-lexical-token 'N #f 1)
53 (make-lexical-token 'A #f +)
54 (make-lexical-token 'N #f 2)
55 (make-lexical-token 'C #f #\))
56 (make-lexical-token 'M #f *)
57 (make-lexical-token 'N #f 3))