From 67d25d837ac55f28a366c0a3b262e439a6e75fc3 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sat, 19 Aug 2017 12:15:28 +0200 Subject: Add AmForth --- amforth-6.5/examples/string-rec.frt | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 amforth-6.5/examples/string-rec.frt (limited to 'amforth-6.5/examples/string-rec.frt') diff --git a/amforth-6.5/examples/string-rec.frt b/amforth-6.5/examples/string-rec.frt new file mode 100644 index 0000000..b1bd930 --- /dev/null +++ b/amforth-6.5/examples/string-rec.frt @@ -0,0 +1,28 @@ + +\ use " as string delimiters. Everything +\ between two " is a string. It replaces +\ the forth command s" completly +\ instead of s" foo" use "foo". The space +\ after s" is no longer needed, instead it +\ a part of the string. s" foo" and " foo" +\ differ with the leading space in the latter + +\ strings live as long as the SOURCE is +\ unchanged! Compilation is done to the +\ flash if called in compile state. +\ postponing a compiled string is not yet +\ supported. + +\ #require recognizer.frt + +' noop +:noname postpone sliteral ; +:noname -48 throw ; recognizer: r:string + +: rec:string ( addr len -- addr' len' r:string | r:fail ) + over c@ [char] " <> if 2drop r:fail exit then + negate 1+ >in +! drop \ reset parse area to SOURCE + [char] " parse \ get trailing delimiter + -1 /string + r:string +; -- cgit v1.2.3