blob: ec80ed51407ee8792458377ab6887723629b9b6f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
;;; test-lr-basics-03.scm --
;;
;;A grammar that accepts fixed sequences of a single terminal or the
;;EOI.
(load "common-test.scm")
(define (doit . tokens)
(let ((parser (lalr-parser (expect: 0)
(driver: glr)
(A)
(e (A) : (list $1)
(A A) : (list $1 $2)
(A A A) : (list $1 $2 $3)
() : 0))))
(parser (make-lexer tokens) error-handler)))
(check
(doit (make-lexical-token 'A #f 1))
=> '((1)))
(check
(doit (make-lexical-token 'A #f 1)
(make-lexical-token 'A #f 2))
=> '((1 2)))
(check
(doit (make-lexical-token 'A #f 1)
(make-lexical-token 'A #f 2)
(make-lexical-token 'A #f 3))
=> '((1 2 3)))
(check
(doit)
=> '(0))
;;; end of file
|