aboutsummaryrefslogtreecommitdiff
path: root/amforth-6.5/examples/parsed-to.frt
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2017-08-19 12:15:28 +0200
committerDimitri Sokolyuk <demon@dim13.org>2017-08-19 12:15:28 +0200
commit67d25d837ac55f28a366c0a3b262e439a6e75fc3 (patch)
treedf7715c7724c5935ab87c807f3b8b4ef529315e3 /amforth-6.5/examples/parsed-to.frt
parente0d6784e89dba33226c0edb815bb974486fa7c48 (diff)
Add AmForth
Diffstat (limited to 'amforth-6.5/examples/parsed-to.frt')
-rw-r--r--amforth-6.5/examples/parsed-to.frt22
1 files changed, 22 insertions, 0 deletions
diff --git a/amforth-6.5/examples/parsed-to.frt b/amforth-6.5/examples/parsed-to.frt
new file mode 100644
index 0000000..8c06769
--- /dev/null
+++ b/amforth-6.5/examples/parsed-to.frt
@@ -0,0 +1,22 @@
+
+\ prepend -> to a value name and act like TO
+\ 42 to answer
+\ is the same as
+ \ 42 ->answer
+\ The -> should be made a synonymous to TO
+\
+\ actions
+:noname defer! ;
+:noname postpone literal postpone defer! ;
+:noname postpone 2literal ;
+recognizer: r:parsed-to
+
+: rec-parsed-to ( addr len -- addr r:parsed-to | r:fail )
+ over @ $3e2d = ( -> ) 0= if 2drop r:fail exit then
+ \ something left?
+ 2 /string dup 0= if 2drop r:fail exit then
+ \ search for the name
+ find-name 0= if r:fail exit then
+ ( -- xt )
+ r:parsed-to
+;