From 39f3846ba6690deb71bb26630fbd655fabf36ebd Mon Sep 17 00:00:00 2001 From: dos-reis Date: Tue, 1 Jun 2010 03:06:34 +0000 Subject: Adjust opcode for character support --- src/algebra/strap/CHAR.lsp | 14 +++++++------- src/algebra/string.spad.pamphlet | 27 +++++++++++++++------------ 2 files changed, 22 insertions(+), 19 deletions(-) (limited to 'src/algebra') diff --git a/src/algebra/strap/CHAR.lsp b/src/algebra/strap/CHAR.lsp index 95bc03af..ad61a999 100644 --- a/src/algebra/strap/CHAR.lsp +++ b/src/algebra/strap/CHAR.lsp @@ -4,27 +4,27 @@ (DECLAIM (FTYPE (FUNCTION (|%Char| |%Char| |%Shell|) |%Boolean|) |CHAR;=;2$B;1|)) -(PUT '|CHAR;=;2$B;1| '|SPADreplace| 'CHAR=) +(PUT '|CHAR;=;2$B;1| '|SPADreplace| '|%ceq|) (DECLAIM (FTYPE (FUNCTION (|%Char| |%Char| |%Shell|) |%Boolean|) |CHAR;<;2$B;2|)) -(PUT '|CHAR;<;2$B;2| '|SPADreplace| 'CHAR<) +(PUT '|CHAR;<;2$B;2| '|SPADreplace| '|%clt|) (DECLAIM (FTYPE (FUNCTION (|%Char| |%Char| |%Shell|) |%Boolean|) |CHAR;>;2$B;3|)) -(PUT '|CHAR;>;2$B;3| '|SPADreplace| 'CHAR>) +(PUT '|CHAR;>;2$B;3| '|SPADreplace| '|%cgt|) (DECLAIM (FTYPE (FUNCTION (|%Char| |%Char| |%Shell|) |%Boolean|) |CHAR;<=;2$B;4|)) -(PUT '|CHAR;<=;2$B;4| '|SPADreplace| 'CHAR<=) +(PUT '|CHAR;<=;2$B;4| '|SPADreplace| '|%cle|) (DECLAIM (FTYPE (FUNCTION (|%Char| |%Char| |%Shell|) |%Boolean|) |CHAR;>=;2$B;5|)) -(PUT '|CHAR;>=;2$B;5| '|SPADreplace| 'CHAR>=) +(PUT '|CHAR;>=;2$B;5| '|SPADreplace| '|%cge|) (DECLAIM (FTYPE (FUNCTION (|%Shell|) (|%IntegerSection| 0)) |CHAR;size;Nni;6|)) @@ -40,12 +40,12 @@ (DECLAIM (FTYPE (FUNCTION ((|%IntegerSection| 0) |%Shell|) |%Char|) |CHAR;char;Nni$;9|)) -(PUT '|CHAR;char;Nni$;9| '|SPADreplace| 'CODE-CHAR) +(PUT '|CHAR;char;Nni$;9| '|SPADreplace| '|%i2c|) (DECLAIM (FTYPE (FUNCTION (|%Char| |%Shell|) (|%IntegerSection| 0)) |CHAR;ord;$Nni;10|)) -(PUT '|CHAR;ord;$Nni;10| '|SPADreplace| 'CHAR-CODE) +(PUT '|CHAR;ord;$Nni;10| '|SPADreplace| '|%c2i|) (DECLAIM (FTYPE (FUNCTION (|%Shell|) |%Char|) |CHAR;random;$;11|)) diff --git a/src/algebra/string.spad.pamphlet b/src/algebra/string.spad.pamphlet index 6e1d39a9..ebec0fa2 100644 --- a/src/algebra/string.spad.pamphlet +++ b/src/algebra/string.spad.pamphlet @@ -75,21 +75,24 @@ Character: OrderedFinite() with CC ==> CharacterClass() NNI ==> NonNegativeInteger import CC - - --cl: Record(dig:CC,hex:CC,upp:CC,low:CC,alpha:CC,alnum:CC) := - -- [ digit(), hexDigit(), - -- upperCase(), lowerCase(), alphabetic(), alphanumeric() ] - - a = b == CHAR_=(a,b)$Lisp - a < b == CHAR_<(a,b)$Lisp - a > b == CHAR_>(a,b)$Lisp - a <= b == CHAR_<_=(a,b)$Lisp - a >= b == CHAR_>_=(a,b)$Lisp + import %ceq: (%,%) -> Boolean from Foreign Builtin + import %clt: (%,%) -> Boolean from Foreign Builtin + import %cle: (%,%) -> Boolean from Foreign Builtin + import %cgt: (%,%) -> Boolean from Foreign Builtin + import %cge: (%,%) -> Boolean from Foreign Builtin + import %c2i: % -> NNI from Foreign Builtin + import %i2c: NNI -> % from Foreign Builtin + + a = b == %ceq(a,b) + a < b == %clt(a,b) + a > b == %cgt(a,b) + a <= b == %cle(a,b) + a >= b == %cge(a,b) size() == 256 index n == char((n - 1)::NNI) lookup c == (1 + ord c)::PositiveInteger - char(n: NNI) == CODE_-CHAR(n)$Lisp - ord c == CHAR_-CODE(c)$Lisp + char(n: NNI) == %i2c n + ord c == %c2i c random() == char(random(size())$NNI) space == CHAR(" ", 0$Lisp)$Lisp quote == CHAR("_" ", 0$Lisp)$Lisp -- cgit v1.2.3