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.boot13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/interp/g-util.boot b/src/interp/g-util.boot
index 9f5502b3..fb08a56a 100644
--- a/src/interp/g-util.boot
+++ b/src/interp/g-util.boot
@@ -349,6 +349,13 @@ expandFlt ['%flt,x,y] ==
expandFgt ['%fgt,x,y] ==
expandFlt ['%flt,y,x]
+-- String operations
+expandStreq ['%streq,x,y] ==
+ expandToVMForm ['%not,['%peq,['STRING_=,x,y],'%nil]]
+
+expandStrlt ['%strlt,x,y] ==
+ expandToVMForm ['%not,['%peq,['STRING_<,x,y],'%nil]]
+
-- Local variable bindings
expandBind ['%bind,inits,:body] ==
body := expandToVMForm body
@@ -515,6 +522,9 @@ for x in [
-- string unary functions
['%string?, :'STRINGP],
['%strlength, :'LENGTH],
+ ['%schar, :'CHAR],
+ ['%strconc, :'STRCONC],
+ ['%strcopy, :'COPY_-SEQ],
-- general utility
['%hash, :'SXHASH],
@@ -554,6 +564,9 @@ for x in [
['%fneg, :function expandFneg],
['%fprec, :function expandFprec],
+ ['%streq, :function expandStreq],
+ ['%strlt, :function expandStrlt],
+
['%peq, :function expandPeq],
['%before?, :function expandBefore?],