=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/Kan/dr.sm1,v retrieving revision 1.44 retrieving revision 1.48 diff -u -p -r1.44 -r1.48 --- OpenXM/src/kan96xx/Kan/dr.sm1 2004/09/16 23:53:44 1.44 +++ OpenXM/src/kan96xx/Kan/dr.sm1 2005/02/27 05:28:06 1.48 @@ -1,4 +1,4 @@ -% $OpenXM: OpenXM/src/kan96xx/Kan/dr.sm1,v 1.43 2004/09/14 10:50:49 takayama Exp $ +% $OpenXM: OpenXM/src/kan96xx/Kan/dr.sm1,v 1.47 2004/09/20 02:11:22 takayama Exp $ %% dr.sm1 (Define Ring) 1994/9/25, 26 %% This file is error clean. @@ -1528,6 +1528,13 @@ (type?) data_conversion RingP eq } def +[(isByteArray) + [(obj isByteArray bool) ] +] putUsages +/isByteArray { + (type?) data_conversion ByteArrayP eq +} def + /toString.tmp { /arg1 set [/obj /fname] pushVariables @@ -1557,6 +1564,8 @@ { obj (string) data_conversion } { } ifelse obj isRational { obj (string) data_conversion } { } ifelse + obj isByteArray + { obj (array) data_conversion toString } { } ifelse obj tag 0 eq { (null) } { } ifelse @@ -1671,9 +1680,10 @@ /RationalFunctionP 16 def /ClassP 17 def /DoubleP 18 def +/ByteArrayP 19 def /@.datatypeConstant.usage [ (IntegerP, LiteralP, StringP, ExecutableArrayP, ArrayP, PolyP, FileP, RingP,) - (UniversalNumberP, RationalFunctionP, ClassP, DoubleP) + (UniversalNumberP, RationalFunctionP, ClassP, DoubleP, ByteArrayP) ( return data type identifiers.) (Example: 7 tag IntegerP eq ---> 1) ] def @@ -1688,6 +1698,7 @@ [(RationalFunctionP) @.datatypeConstant.usage ] putUsages [(ClassP) @.datatypeConstant.usage ] putUsages [(DoubleP) @.datatypeConstant.usage ] putUsages +[(ByteArrayP) @.datatypeConstant.usage ] putUsages [(__) [( string ring __ polynomial) @@ -1720,8 +1731,9 @@ [( string .. universalNumber) (Parse the << string >> as a universalNumber.) (Example: (123431232123123).. /n set) + ({ commands }.. executes the commands. << .. >> is equivalent to exec.) ]] putUsages -/.. { (universalNumber) data_conversion } def +/.. { dup tag 3 eq { exec } { (universalNumber) data_conversion} ifelse } def [(dc) [(Abbreviation of data_conversion.) @@ -4360,6 +4372,25 @@ $ [ff ff] fromVectors :: $ [(a b setMinus c) ]] putUsages +% Define some infix operators +/~add~ { add } def /~add~ makeInfix +/~sub~ { sub } def /~sub~ makeInfix +/~mul~ { mul } def /~mul~ makeInfix +/~div~ { div } def /~div~ makeInfix +/~power~ { power } def /~power~ makeInfix +/~put~ { + dup tag 3 eq { exec } { } ifelse put +} def +/~put~ makeInfix + +/toTokensBySpace { + /arg1 set + [(cgiToTokens) arg1 [ ]] extension +} def +[(toTokensBySpace) +[ + ( string toTokensBySpace token_array ) +]] putUsages ;