Advertisement
Guest User

Untitled

a guest
Oct 31st, 2014
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scheme 0.66 KB | None | 0 0
  1. (load "C:\\pc.scm")
  2.  
  3. (define <digit-1-9>
  4.   (range #\1 #\9))
  5. (define <digit-0-9>
  6.   (range #\0 #\9))
  7. (define <nat>
  8.   (new (*parser (char #\0))
  9.        (*pack (lambda (_) 0))
  10.  
  11.        (*parser <digit-1-9>)
  12.        (*parser <digit-0-9>) *star
  13.        (*caten 2)
  14.        (*pack-with
  15.     (lambda (a s)
  16.       (string->number
  17.        (list->string
  18.         `(,a ,@s)))))
  19.  
  20.        (*disj 2)
  21.        done))
  22.  
  23. (define <var>
  24.   (new (*parser (char #\~))
  25.     (*parser (char #\{))
  26.     (*caten 2)
  27.     (*parser (char #\ )) *star
  28.     (*parser <any-char>)
  29.     (*parser (char #\ )) *star
  30.     *diff
  31.     (*parser (char #\}))
  32.     (*parser (char #\~))
  33.     (*caten 2)
  34.     *diff
  35.     ))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement