reading symbols
- how input is consumed
input represented as a list
parser’s position held in a global variable
consumption of input symbols implemented as (set! input (cdr input))
- code for action that consumes one symbol
(define (parse_atom)
(let ((result (car input)))
(set! input (cdr input))
result))