From cb1bbfc4996f10ec428bc9bdafd53eebb1205258 Mon Sep 17 00:00:00 2001 From: dos-reis Date: Mon, 20 Aug 2012 12:01:42 +0000 Subject: * interp/br-util.boot (htPred2English,gn): Tidy. * interp/br-search.boot (pmPreparse): Do not apply pmPreparse,hn. Tidy. (pmPreparse,hn): Remove. --- src/ChangeLog | 7 +++++++ src/interp/br-search.boot | 5 ++--- src/interp/br-util.boot | 7 +++++-- 3 files changed, 14 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/ChangeLog b/src/ChangeLog index 02f1cfb1..1d9fdd81 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,10 @@ +2012-08-20 Gabriel Dos Reis + + * interp/br-util.boot (htPred2English,gn): Tidy. + * interp/br-search.boot (pmPreparse): Do not apply pmPreparse,hn. + Tidy. + (pmPreparse,hn): Remove. + 2012-08-20 Gabriel Dos Reis * interp/spad.lisp (SPAD): Remove obfuscated binding of OUT-STREAM. diff --git a/src/interp/br-search.boot b/src/interp/br-search.boot index 090d7752..9890e86b 100644 --- a/src/interp/br-search.boot +++ b/src/interp/br-search.boot @@ -180,15 +180,14 @@ pmParseFromString s == [op,:[flatten x for x in argl]] s -pmPreparse s == hn fn(s,0,#s) where--stupid insertion of chars to get correct parse - hn x == SUBLISLIS('(and or not),'("and" "or" "not"),x) +pmPreparse s == fn(s,0,#s) where--stupid insertion of chars to get correct parse fn(s,n,siz) == --main function: s is string, n is origin n = siz => '"" i := firstNonDelim(s,n) or return subString(s,n) j := firstDelim(s,i + 1) or siz t := gn(s,i,j - 1) middle := - t in '("and" "or" "not") => t + member(t,'("and" "or" "not")) => t --the following 2 lines make commutative("*") parse correctly!!!! stringChar(t,0) = char "_"" => t j < siz - 1 and s.j = char "(" => t diff --git a/src/interp/br-util.boot b/src/interp/br-util.boot index acc4ed9a..fadc5bf9 100644 --- a/src/interp/br-util.boot +++ b/src/interp/br-util.boot @@ -162,11 +162,14 @@ htPred2English(x,:options) == bcConform(first l,$emList) htSay('" has ") fnAttr CADADR l - op in '(_has ofCategory) => + op in '(has ofCategory) => bcConform(first l,$emList) htSay('" has ") [a,b] := l - b is ['ATTRIBUTE,c] and not constructor? c => fnAttr c + b is ['ATTRIBUTE,c] => + symbol? c and not constructor? c => fnAttr c + c is [.,:.] and symbol? c.op and not constructor? c.op => fnAttr c + bcConform(c,$emList) bcConform(b, $emList) bcConform(x,$emList) fnAttr c == -- cgit v1.2.3