racket/collects/unstable/automata/nfa-star.rkt
2011-06-28 02:01:41 -04:00

17 lines
450 B
Racket

#lang racket/base
(require "nfa-ep.rkt"
(for-syntax racket/base))
(define-syntax (nfa* stx)
(syntax-case stx ()
[(_ starts (accepting-rule ...) (non-accepting-rule ...))
(with-syntax
([([accepting-state . _] ...) #'(accepting-rule ...)])
(quasisyntax/loc stx
(nfa/ep starts (accepting-state ...)
accepting-rule ...
non-accepting-rule ...)))]))
(provide nfa*
epsilon)