token.scm 644 B

1234567891011121314151617181920
  1. (define (make-token . s) (cons 'token s))
  2. (define (token? s) (and (list? s) (eq? 'token (car s))))
  3. (define (token-type token) (cadr token))
  4. (define (token-location token) (cons (caddr token) (cadddr token)))
  5. (define (token-args token) (cddddr token))
  6. (define (atomic-token? token)
  7. (member (token-type token)
  8. '(symbol number boolean character string)))
  9. (define (mark-token? token)
  10. (member (token-type token)
  11. '(quote unquote quasiquote)))
  12. (define (dot-token? token)
  13. (equal? (token-type token) 'dot))
  14. (define (open-token? token)
  15. (equal? (token-type token) 'open))
  16. (define (close-token? token)
  17. (equal? (token-type token) 'close))