emit-token.scm 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. (define (whitespace-token start len tok)
  2. #f)
  3. (define (symbol-token start len tok)
  4. (make-token 'symbol start len (string->symbol tok)))
  5. (define (number-token start len tok)
  6. (make-token 'number start len (string->number tok)))
  7. (define (boolean-token start len tok)
  8. (cond
  9. ((equal? tok "#t") (make-token 'boolean start len #t))
  10. ((equal? tok "#f") (make-token 'boolean start len #f))
  11. (else (error "invalid boolean token" (make-token start len tok)))))
  12. (define (character-token start len tok)
  13. ;; TODO
  14. (make-token 'character start len tok))
  15. (define (string-token start len tok)
  16. (make-token 'string start len tok))
  17. (define (quote-mark-token start len tok)
  18. (make-token 'quote start len))
  19. (define (unquote-mark-token start len tok)
  20. (make-token 'unquote start len))
  21. (define (quasiquote-mark-token start len tok)
  22. (make-token 'quasiquote start len))
  23. (define (dot-token start len tok)
  24. (make-token 'dot start len))
  25. (define (open-token start len tok)
  26. (make-token 'open start len))
  27. (define (close-token start len tok)
  28. (make-token 'close start len))