aboutsummaryrefslogtreecommitdiff
path: root/src/interp/parse.boot
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp/parse.boot')
-rw-r--r--src/interp/parse.boot8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/interp/parse.boot b/src/interp/parse.boot
index f4d40583..ba3a9258 100644
--- a/src/interp/parse.boot
+++ b/src/interp/parse.boot
@@ -35,6 +35,8 @@
import postpar
namespace BOOT
+module parse
+
--% Transformation of Parser Output
++ If non nil, holds the operator being being defined.
@@ -190,6 +192,11 @@ parsePretend t ==
$InteractiveMode => ["pretend",parseTran x,parseTran parseType typ]
["pretend",parseTran x,parseTran typ]
+parseAtAt: %ParseForm -> %Form
+parseAtAt t ==
+ t isnt ["@@",x,typ] => systemErrorHere "parseAtAt"
+ $InteractiveMode => ["@@",parseTran x,parseTran parseType typ]
+ ["@@",parseTran x,parseTran typ]
parseType: %ParseForm -> %Form
parseType x ==
@@ -542,6 +549,7 @@ for x in [["<=", :"parseLessEqual"],_
["MDEF", :"parseMDEF"],_
["or", :"parseOr"],_
["pretend", :"parsePretend"],_
+ ["@@",:"parseAtAt"],_
["return", :"parseReturn"],_
["SEGMENT", :"parseSegment"],_
["SEQ", :"parseSeq"],_