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/common/lib/chains-wordlist.frt | 31 ++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 amforth-6.5/common/lib/chains-wordlist.frt (limited to 'amforth-6.5/common/lib/chains-wordlist.frt') diff --git a/amforth-6.5/common/lib/chains-wordlist.frt b/amforth-6.5/common/lib/chains-wordlist.frt new file mode 100644 index 0000000..f79f117 --- /dev/null +++ b/amforth-6.5/common/lib/chains-wordlist.frt @@ -0,0 +1,31 @@ +\ chains: execute a list of XT when calling the +\ anchor. Elements can be pre- and ap-pended. +\ no particular stack effect enforcment + +\ chain.run ( chainid -- i*x ) +\ chain ( -- chainid ) \ create an unnamed chain +\ chain: ( "name" -- ) \ create a named chain + +\ implementation uses wordlists + +\ #require name2interpret.frt +\ #require quotations.frt +\ #require builds.frt + +\ create an unnamed chain +: chain wordlist ; \ trivial + +: chain.run ( chainid -- i*x ) + [: name>interpret execute true ;] + swap traverse-wordlist +; + +\ create a named chain with an action +: chain: @i chain.run ; +\ for MSP430 use instead +\ : chain: @i chain.run ; + +\ get the chainid from its name +: chain>id ( "name" -- chainid ) + ' >body @i +; -- cgit v1.2.3