aboutsummaryrefslogtreecommitdiff
path: root/src/interp/g-util.boot
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp/g-util.boot')
-rw-r--r--src/interp/g-util.boot15
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 ==