Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (load "C:\\pc.scm")
- (define <digit-1-9>
- (range #\1 #\9))
- (define <digit-0-9>
- (range #\0 #\9))
- (define <nat>
- (new (*parser (char #\0))
- (*pack (lambda (_) 0))
- (*parser <digit-1-9>)
- (*parser <digit-0-9>) *star
- (*caten 2)
- (*pack-with
- (lambda (a s)
- (string->number
- (list->string
- `(,a ,@s)))))
- (*disj 2)
- done))
- (define <var>
- (new (*parser (char #\~))
- (*parser (char #\{))
- (*caten 2)
- (*parser (char #\ )) *star
- (*parser <any-char>)
- (*parser (char #\ )) *star
- *diff
- (*parser (char #\}))
- (*parser (char #\~))
- (*caten 2)
- *diff
- ))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement