]> gitweb.factorcode.org Git - factor.git/commitdiff
Web 2.0 style assoc syntax. H{ "foo" => 1 "bar" => { 2 3 } }
authorJoe Groff <arcata@gmail.com>
Fri, 24 Apr 2009 20:02:53 +0000 (15:02 -0500)
committerJoe Groff <arcata@gmail.com>
Fri, 24 Apr 2009 20:02:53 +0000 (15:02 -0500)
extra/pair-rocket/authors.txt [new file with mode: 0644]
extra/pair-rocket/pair-rocket-docs.factor [new file with mode: 0644]
extra/pair-rocket/pair-rocket-tests.factor [new file with mode: 0644]
extra/pair-rocket/pair-rocket.factor [new file with mode: 0644]
extra/pair-rocket/summary.txt [new file with mode: 0644]

diff --git a/extra/pair-rocket/authors.txt b/extra/pair-rocket/authors.txt
new file mode 100644 (file)
index 0000000..f13c9c1
--- /dev/null
@@ -0,0 +1 @@
+Joe Groff
diff --git a/extra/pair-rocket/pair-rocket-docs.factor b/extra/pair-rocket/pair-rocket-docs.factor
new file mode 100644 (file)
index 0000000..d66df62
--- /dev/null
@@ -0,0 +1,15 @@
+! (c)2009 Joe Groff bsd license
+USING: help.markup help.syntax multiline ;
+IN: pair-rocket
+
+HELP: =>
+{ $syntax "a => b" }
+{ $description "Constructs a two-element array from the objects immediately before and after the " { $snippet "=>" } ". This syntax can be used inside sequence and assoc literals." }
+{ $examples
+{ $unchecked-example <" USING: pair-rocket prettyprint ;
+
+H{ "foo" => 1 "bar" => 2 } .
+"> <" H{ { "foo" 1 } { "bar" 2 } } "> }
+}
+;
+
diff --git a/extra/pair-rocket/pair-rocket-tests.factor b/extra/pair-rocket/pair-rocket-tests.factor
new file mode 100644 (file)
index 0000000..0e3d27b
--- /dev/null
@@ -0,0 +1,9 @@
+USING: kernel pair-rocket tools.test ;
+IN: pair-rocket.tests
+
+[ { "a" 1 } ] [ "a" => 1 ] unit-test
+[ { { "a" } { 1 } } ] [ { "a" } => { 1 } ] unit-test
+[ { drop 1 } ] [ drop => 1 ] unit-test
+
+[ H{ { "zippity" 5 } { "doo" 2 } { "dah" 7 } } ]
+[ H{ "zippity" => 5 "doo" => 2 "dah" => 7 } ] unit-test
diff --git a/extra/pair-rocket/pair-rocket.factor b/extra/pair-rocket/pair-rocket.factor
new file mode 100644 (file)
index 0000000..3bd8a09
--- /dev/null
@@ -0,0 +1,6 @@
+! (c)2009 Joe Groff bsd license
+USING: arrays kernel parser sequences ;
+IN: pair-rocket
+
+SYNTAX: => dup pop scan-object 2array parsed ;
+
diff --git a/extra/pair-rocket/summary.txt b/extra/pair-rocket/summary.txt
new file mode 100644 (file)
index 0000000..79c8d60
--- /dev/null
@@ -0,0 +1 @@
+H{ "foo" => 1 "bar" => 2 } style literal syntax