Time for an 2014 update…
This commit is contained in:
parent
372c577f83
commit
09687c4926
2520 changed files with 34227 additions and 7318 deletions
|
|
@ -5,10 +5,10 @@ import Text.ParserCombinators.Parsec.Language (haskellDef)
|
|||
|
||||
|
||||
data Val = Int Integer
|
||||
| Float Double
|
||||
| String String
|
||||
| Symbol String
|
||||
| List [Val] deriving (Eq, Show)
|
||||
| Float Double
|
||||
| String String
|
||||
| Symbol String
|
||||
| List [Val] deriving (Eq, Show)
|
||||
|
||||
lexer = makeTokenParser haskellDef
|
||||
|
||||
|
|
|
|||
4
Task/S-Expressions/TXR/s-expressions-1.txr
Normal file
4
Task/S-Expressions/TXR/s-expressions-1.txr
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
$ txr -c '@(do (print (read)) (put-line ""))'
|
||||
((data "quoted data" 123 4.5) <- input from TTY
|
||||
(data (!@# (4.5) "(more" "data)")))
|
||||
((data "quoted data" 123 4.5) (data (! (sys:var #) (4.5) "(more" "data)"))) <- output
|
||||
44
Task/S-Expressions/TXR/s-expressions-2.txr
Normal file
44
Task/S-Expressions/TXR/s-expressions-2.txr
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
@(define float (f))@\
|
||||
@(local (tok))@\
|
||||
@(cases)@\
|
||||
@{tok /[+\-]?\d+\.\d*([Ee][+\-]?\d+)?/}@\
|
||||
@(or)@\
|
||||
@{tok /[+\-]?\d*\.\d+([Ee][+\-]?\d+)?/}@\
|
||||
@(or)@\
|
||||
@{tok /[+\-]?\d+[Ee][+\-]?\d+/}@\
|
||||
@(end)@\
|
||||
@(bind f @(flo-str tok))@\
|
||||
@(end)
|
||||
@(define int (i))@\
|
||||
@(local (tok))@\
|
||||
@{tok /[+\-]?\d+/}@\
|
||||
@(bind i @(int-str tok))@\
|
||||
@(end)
|
||||
@(define sym (s))@\
|
||||
@(local (tok))@\
|
||||
@{tok /[^\s()]+/}@\
|
||||
@(bind s @(intern tok))@\
|
||||
@(end)
|
||||
@(define str (s))@\
|
||||
@(local (tok))@\
|
||||
@{tok /"(\\"|[^"])*"/}@\
|
||||
@(bind s @[tok 1..-1])@\
|
||||
@(end)
|
||||
@(define atom (a))@\
|
||||
@(cases)@\
|
||||
@(float a)@(or)@(int a)@(or)@(str a)@(or)@(sym a)@\
|
||||
@(end)@\
|
||||
@(end)
|
||||
@(define expr (e))@\
|
||||
@(cases)@\
|
||||
@/\s*/@(atom e)@\
|
||||
@(or)@\
|
||||
@/\s*\(\s*/@(coll :vars (e))@(expr e)@/\s*/@(last))@(end)@\
|
||||
@(end)@\
|
||||
@(end)
|
||||
@(freeform)
|
||||
@(expr e)@junk
|
||||
@(output)
|
||||
expr: @(format nil "~s" e)
|
||||
junk: @junk
|
||||
@(end)
|
||||
1
Task/S-Expressions/TXR/s-expressions-3.txr
Normal file
1
Task/S-Expressions/TXR/s-expressions-3.txr
Normal file
|
|
@ -0,0 +1 @@
|
|||
@/\s*\(\s*/@(coll :vars (e))@(expr e)@/\s*/@(last))@(end)
|
||||
Loading…
Add table
Add a link
Reference in a new issue