1234567891011121314151617181920212223242526272829303132333435363738394041 |
- ;;; test-lr-no-clause.scm --
- ;;
- (load "common-test.scm")
- (define (doit . tokens)
- (let ((parser (lalr-parser (expect: 0)
- (NUMBER COMMA NEWLINE)
- (lines (lines line) : (list $2)
- (line) : (list $1))
- (line (NEWLINE) : #\newline
- (NUMBER NEWLINE) : $1
- ;;this is a rule with no semantic action
- (COMMA NUMBER NEWLINE)))))
- (parser (make-lexer tokens) error-handler)))
- (check
- ;;correct input
- (doit (make-lexical-token 'NUMBER #f 1)
- (make-lexical-token 'NEWLINE #f #\newline))
- => '(1))
- (check
- ;;correct input with comma, which is a rule with no client form
- (doit (make-lexical-token 'COMMA #f #\,)
- (make-lexical-token 'NUMBER #f 1)
- (make-lexical-token 'NEWLINE #f #\newline))
- => '(#(line-3 #\, 1 #\newline)))
- (check
- ;;correct input with comma, which is a rule with no client form
- (doit (make-lexical-token 'NUMBER #f 1)
- (make-lexical-token 'NEWLINE #f #\newline)
- (make-lexical-token 'COMMA #f #\,)
- (make-lexical-token 'NUMBER #f 2)
- (make-lexical-token 'NEWLINE #f #\newline))
- => '(#(line-3 #\, 2 #\newline)))
- ;;; end of file
|