From 0735647191a08b7f50d4e3c7ffe94bd370ebd68b Mon Sep 17 00:00:00 2001 From: dos-reis Date: Thu, 13 Dec 2007 04:57:33 +0000 Subject: * parse.boot: Register parsers by name, not by pointers. --- src/interp/ChangeLog | 4 +++ src/interp/c-util.boot | 4 +-- src/interp/parse.boot | 74 +++++++++++++++++++++++++------------------------- 3 files changed, 43 insertions(+), 39 deletions(-) (limited to 'src/interp') diff --git a/src/interp/ChangeLog b/src/interp/ChangeLog index 0582ae0d..84afa26c 100644 --- a/src/interp/ChangeLog +++ b/src/interp/ChangeLog @@ -1,3 +1,7 @@ +2007-12-12 Gabriel Dos Reis + + * parse.boot: Register parsers by name, not by pointers. + 2007-12-12 Gabriel Dos Reis * define.boot (compDefineFunctor1): Don't set $NRTbase here. diff --git a/src/interp/c-util.boot b/src/interp/c-util.boot index 1fc1e117..d5b8492e 100644 --- a/src/interp/c-util.boot +++ b/src/interp/c-util.boot @@ -381,9 +381,9 @@ isAlmostSimple x == op="is" => x op="LET" => IDENTP y => (setAssignment LIST x; y) - true => (setAssignment [["LET",g:= genVariable(),:l],["LET",y,g]]; g) + (setAssignment [["LET",g:= genVariable(),:l],["LET",y,g]]; g) isSideEffectFree op => [op,:mapInto(rest x, function fn)] - true => $assignmentList:= "failed" + $assignmentList:= "failed" setAssignment x == $assignmentList="failed" => nil $assignmentList:= [:$assignmentList,:x] diff --git a/src/interp/parse.boot b/src/interp/parse.boot index 92e70aaf..5f52ab4e 100644 --- a/src/interp/parse.boot +++ b/src/interp/parse.boot @@ -488,41 +488,41 @@ parseVCONS l == ["VECTOR",:parseTranList l] --% Register special parsers. -for x in [["<=", :function parseLessEqual],_ - [">", :function parseGreaterThan],_ - [">=", :function parseGreaterEqual],_ - ["$<=", :function parseDollarLessEqual],_ - ["$>", :function parseDollarGreaterThan],_ - ["$>=", :function parseDollarGreaterEqual],_ - ["$^=", :function parseDollarNotEqual],_ - ["^=", :function parseNotEqual],_ - ["_:", :function parseColon],_ - ["_:_:", :function parseCoerce],_ - ["@", :function parseAtSign],_ - ["and", :function parseAnd],_ - ["CATEGORY", :function parseCategory],_ - ["construct", :function parseConstruct],_ - ["DEF", :function parseDEF],_ - ["eqv", :function parseEquivalence],_ - ["exit", :function parseExit],_ - ["has", :function parseHas],_ - ["IF", :function parseIf],_ - ["implies", :function parseImplies],_ - ["IN", :function parseIn],_ - ["INBY", :function parseInBy],_ - ["is", :function parseIs],_ - ["isnt", :function parseIsnt],_ - ["Join", :function parseJoin],_ - ["leave", :function parseLeave],_ - ["LET", :function parseLET],_ - ["LETD", :function parseLETD],_ - ["MDEF", :function parseMDEF],_ - ["or", :function parseOr],_ - ["pretend", :function parsePretend],_ - ["return", :function parseReturn],_ - ["SEGMENT", :function parseSegment],_ - ["SEQ", :function parseSeq],_ - ["VCONS", :function parseVCONS],_ - ["where", :function parseWhere],_ - ["xor", :function parseExclusiveOr]] repeat +for x in [["<=", :"parseLessEqual"],_ + [">", :"parseGreaterThan"],_ + [">=", :"parseGreaterEqual"],_ + ["$<=", :"parseDollarLessEqual"],_ + ["$>", :"parseDollarGreaterThan"],_ + ["$>=", :"parseDollarGreaterEqual"],_ + ["$^=", :"parseDollarNotEqual"],_ + ["^=", :"parseNotEqual"],_ + ["_:", :"parseColon"],_ + ["_:_:", :"parseCoerce"],_ + ["@", :"parseAtSign"],_ + ["and", :"parseAnd"],_ + ["CATEGORY", :"parseCategory"],_ + ["construct", :"parseConstruct"],_ + ["DEF", :"parseDEF"],_ + ["eqv", :"parseEquivalence"],_ + ["exit", :"parseExit"],_ + ["has", :"parseHas"],_ + ["IF", :"parseIf"],_ + ["implies", :"parseImplies"],_ + ["IN", :"parseIn"],_ + ["INBY", :"parseInBy"],_ + ["is", :"parseIs"],_ + ["isnt", :"parseIsnt"],_ + ["Join", :"parseJoin"],_ + ["leave", :"parseLeave"],_ + ["LET", :"parseLET"],_ + ["LETD", :"parseLETD"],_ + ["MDEF", :"parseMDEF"],_ + ["or", :"parseOr"],_ + ["pretend", :"parsePretend"],_ + ["return", :"parseReturn"],_ + ["SEGMENT", :"parseSegment"],_ + ["SEQ", :"parseSeq"],_ + ["VCONS", :"parseVCONS"],_ + ["where", :"parseWhere"],_ + ["xor", :"parseExclusiveOr"]] repeat MAKEPROP(car x, "parseTran", cdr x) -- cgit v1.2.3