1 (use-modules (srfi srfi-9)
4 (define (next-token stream)
8 (define (transition machine state)
9 ((cdr (assoc state (cdr machine)))
10 (cons (if (pair? (car machine)) (cdr (car machine)))
12 (next-token (car machine))))
14 (define (run-machine machine initial-state stream)
15 (transition (cons stream machine) initial-state))
18 `((init . ,(lambda (m v) (case v
19 ((#\c) (transition m 'more))
21 (more . ,(lambda (m v) (case v
22 ((#\a #\d) (transition m 'more))
23 ((#\r) (transition m 'end))
25 (end . ,(lambda (m v) #t))))