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
550 B
Racket
24 lines
550 B
Racket
#lang racket/base
|
|
(require (for-syntax racket/base)
|
|
br-parser-tools/lex
|
|
(prefix-in : br-parser-tools/lex-sre))
|
|
|
|
(provide epsilon ~
|
|
(rename-out [:* *]
|
|
[:+ +]
|
|
[:? ?]
|
|
[:or :]
|
|
[:& &]
|
|
[:: @]
|
|
[:~ ^]
|
|
[:/ -]))
|
|
|
|
(define-lex-trans (epsilon stx)
|
|
(syntax-case stx ()
|
|
[(_) #'""]))
|
|
|
|
(define-lex-trans (~ stx)
|
|
(syntax-case stx ()
|
|
[(_ RE) #'(complement RE)]))
|
|
|