<|
Bill Spight
bspight at pacbell.net
Wed Feb 5 18:21:53 UTC 2003
Progris Riport:
Well, I fiddled with Scanner to get it to accept <|, |>, ||, and others
as selectors. It's not as general a solution as suggested, but it seems
to work. So far, so good. :-)
Here are the changes:
ScannerClass>>initialize
"Changed the lookup tokenType for $| to #xVerticalBar to activate
method of that name."
* * *
newTable at: $| asciiValue put: #xVerticalBar.
TypeTable _ newTable
Scanner>>xBinary
tokenType _ #binary.
token _ self step asSymbol.
"Added hereChar = $| to condition"
[((typeTable at: hereChar asciiValue) = #xBinary
and: [hereChar ~= $-])
or: [hereChar = $|]]
whileTrue: [token _ (token , (String with: self step)) asSymbol]
Scanner>>xVerticalBar
"If the vertical bar is followed by a binary type (except $-) or
itself, treat it as a binary type. (New method.)"
(((typeTable at: aheadChar asciiValue) = #xBinary
and: [aheadChar ~= $-])
or: [aheadChar = $|])
ifTrue: [self xBinary]
ifFalse: [tokenType _ #verticalBar.
^ token _ self step asSymbol]
Much grass,
Bill
More information about the Squeak-dev
mailing list
|