aboutsummaryrefslogtreecommitdiff
path: root/src/boot/strap/tokens.clisp
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2012-05-23 02:49:30 +0000
committerdos-reis <gdr@axiomatics.org>2012-05-23 02:49:30 +0000
commita8faa740f1e13fce63ac23326a227655bca7a0b2 (patch)
treea4d6165c93449b677aaaa45e609131546198fb1b /src/boot/strap/tokens.clisp
parenteae4d54c648d019b9db583b4e8d2c432f8d7bb16 (diff)
downloadopen-axiom-a8faa740f1e13fce63ac23326a227655bca7a0b2.tar.gz
* boot/tokens.boot (%Token): New datatype.
(makeToken): New. * boot/includer.boot: Use %token accessors. * boot/parser.boot: Likewise. * boot/pile.boot: Likewise. * boot/scanner.boot: Likewise. * boot/utility.boot: Export subString.
Diffstat (limited to 'src/boot/strap/tokens.clisp')
-rw-r--r--src/boot/strap/tokens.clisp16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/boot/strap/tokens.clisp b/src/boot/strap/tokens.clisp
index d75c74a2..abb77212 100644
--- a/src/boot/strap/tokens.clisp
+++ b/src/boot/strap/tokens.clisp
@@ -6,12 +6,26 @@
(PROVIDE "tokens")
(EVAL-WHEN (:COMPILE-TOPLEVEL :LOAD-TOPLEVEL :EXECUTE)
- (EXPORT '(|$InteractiveMode| |char|)))
+ (EXPORT '(|$InteractiveMode| |char| |subString|)))
(DECLAIM (FTYPE (FUNCTION (|%Symbol|) |%Char|) |char|))
(DEFPARAMETER |$InteractiveMode| NIL)
+(DEFSTRUCT (|%Token| (:COPIER |copy%Token|)) |cls| |val| |pos|)
+
+(DEFMACRO |mk%Token| (|cls| |val| |pos|)
+ (LIST '|MAKE-%Token| :|cls| |cls| :|val| |val| :|pos| |pos|))
+
+(DEFMACRO |tokenClass| (|bfVar#1|) (LIST '|%Token-cls| |bfVar#1|))
+
+(DEFMACRO |tokenValue| (|bfVar#1|) (LIST '|%Token-val| |bfVar#1|))
+
+(DEFMACRO |tokenPosition| (|bfVar#1|) (LIST '|%Token-pos| |bfVar#1|))
+
+(DEFUN |makeToken| (|lp| |b| |n|)
+ (|mk%Token| (CAR |b|) (CADR |b|) (CONS |lp| |n|)))
+
(DEFUN |char| (|x|) (SCHAR (SYMBOL-NAME |x|) 0))
(DEFUN |shoeStartsId| (|x|)