diff options
Diffstat (limited to 'src/interp/g-util.boot')
-rw-r--r-- | src/interp/g-util.boot | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/interp/g-util.boot b/src/interp/g-util.boot index 4c3c9801..d70a7361 100644 --- a/src/interp/g-util.boot +++ b/src/interp/g-util.boot @@ -36,6 +36,9 @@ import macros import sys_-utility namespace BOOT +module g_-util where + getTypeOfSyntax: %Form -> %Mode + ++ $interpOnly := false @@ -105,6 +108,8 @@ put(x,prop,val,e) == addBinding(x,newProplist,e) +--% Syntax manipulation + ++ Build a quasiquotation form for `x'. quasiquote x == ["[||]",x] @@ -114,6 +119,16 @@ isQuasiquote m == m is ["[||]",y] => y +getTypeOfSyntax t == + atom t => + IDENTP t => '(Identifier) + (m := getBasicMode t) and not member(m,[$EmptyMode,$NoValueMode]) => + ["Literal",m] + $Syntax + $Syntax + +--% + -- Convert an arbitrary lisp object to canonical boolean. bool: %Thing -> %Boolean bool x == |