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)
10 (N O C (left: A) (left: M) (nonassoc: U))
15 (A E (prec: U)) : ($1 $2)
17 (parser (make-lexer tokens) error-handler)))
19 ;;; --------------------------------------------------------------------
22 (doit (make-lexical-token 'N #f 1))
26 (doit (make-lexical-token 'A #f -)
27 (make-lexical-token 'N #f 1))
31 (doit (make-lexical-token 'A #f +)
32 (make-lexical-token 'N #f 1))
36 (doit (make-lexical-token 'N #f 1)
37 (make-lexical-token 'A #f +)
38 (make-lexical-token 'N #f 2))
42 (doit (make-lexical-token 'N #f 1)
43 (make-lexical-token 'A #f +)
44 (make-lexical-token 'N #f 2)
45 (make-lexical-token 'M #f *)
46 (make-lexical-token 'N #f 3))
50 (doit (make-lexical-token 'O #f #\()
51 (make-lexical-token 'N #f 1)
52 (make-lexical-token 'A #f +)
53 (make-lexical-token 'N #f 2)
54 (make-lexical-token 'C #f #\))
55 (make-lexical-token 'M #f *)
56 (make-lexical-token 'N #f 3))