You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
558 B
Racket
24 lines
558 B
Racket
3 years ago
|
#lang racket/base
|
||
|
(require (for-syntax racket/base)
|
||
3 years ago
|
yaragg/parser-tools/lex
|
||
|
(prefix-in : yaragg/parser-tools/lex-sre))
|
||
3 years ago
|
|
||
|
(provide epsilon ~
|
||
|
(rename-out [:* *]
|
||
|
[:+ +]
|
||
|
[:? ?]
|
||
|
[:or :]
|
||
|
[:& &]
|
||
|
[:: @]
|
||
|
[:~ ^]
|
||
|
[:/ -]))
|
||
|
|
||
|
(define-lex-trans (epsilon stx)
|
||
|
(syntax-case stx ()
|
||
|
[(_) #'""]))
|
||
|
|
||
|
(define-lex-trans (~ stx)
|
||
|
(syntax-case stx ()
|
||
|
[(_ RE) #'(complement RE)]))
|
||
|
|