- externalization of libraryName (now supports unix & win32 simultaneously)
- basi support for accessing structure fields
"{ Package: 'cvut:fel/cface' }"
"{ NameSpace: Cface }"
SmaCC::SmaCCScanner subclass:#CDefinitionScanner
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
category:'Cface-Parser'
!
!CDefinitionScanner class methodsFor:'accessing'!
needsLineNumbers
^true
"Created: / 10-02-2008 / 10:17:03 / janfrog"
! !
!CDefinitionScanner class methodsFor:'generated-comments'!
scannerDefinitionComment
"<name> : [a-zA-Z_.] \w* ;
<number> : \-? [0-9]+ [a-zA-Z]* ;
<whitespace> : \s+ ;
<file> : [\w-_/] [\w-_/.]* ;
<comment> : \# [^\r\n]* ;
"
"Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !
!CDefinitionScanner class methodsFor:'generated-initialization'!
initializeKeywordMap
keywordMap := Dictionary new.
#( #(36 'argument' 13)
#(36 'array' 26)
#(36 'char' 5)
#(36 'const' 28)
#(36 'double' 16)
#(36 'enum' 20)
#(36 'field' 19)
#(36 'float' 15)
#(36 'function' 11)
#(36 'int' 6)
#(36 'long' 4)
#(36 'return' 8)
#(36 'short' 3)
#(36 'signed' 1)
#(36 'struct' 32)
#(36 'typedef' 22)
#(36 'union' 29)
#(36 'unsigned' 2)
#(36 'value' 21)
#(36 'void' 24)
#(36 'wchar_t' 27)
#(33 'argument' 13)
#(33 'array' 26)
#(33 'char' 5)
#(33 'const' 28)
#(33 'double' 16)
#(33 'enum' 20)
#(33 'field' 19)
#(33 'float' 15)
#(33 'function' 11)
#(33 'int' 6)
#(33 'long' 4)
#(33 'return' 8)
#(33 'short' 3)
#(33 'signed' 1)
#(33 'struct' 32)
#(33 'typedef' 22)
#(33 'union' 29)
#(33 'unsigned' 2)
#(33 'value' 21)
#(33 'void' 24)
#(33 'wchar_t' 27) )
do:[:each |
(keywordMap at:each first ifAbsentPut:[ Dictionary new ]) at:(each at:2)
put:each last
].
^ keywordMap
"Modified: / 09-07-2008 / 21:25:59 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !
!CDefinitionScanner methodsFor:'generated-scanner'!
scan1
[
self recordMatch:#( 33 36 ).
self step.
(currentCharacter isLetterOrDigit or:[ currentCharacter == $_ ])
] whileTrue.
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
^ self reportLastMatch
"Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
scan2
[
self recordMatch:#( 34 36 ).
self step.
(currentCharacter isLetter) ifTrue:[
[
self recordMatch:#( 34 36 ).
self step.
(currentCharacter isLetter)
] whileTrue.
(currentCharacter isXMLDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
^ self reportLastMatch
].
(currentCharacter isXMLDigit)
] whileTrue.
((currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ]) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
^ self reportLastMatch
"Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
scan3
[
self recordMatch:#( 31 33 ).
self step.
(currentCharacter isLetter) ifTrue:[
[
self recordMatch:#( 31 33 ).
self step.
(currentCharacter isLetter)
] whileTrue.
(currentCharacter isXMLDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
ifTrue:[
[
self recordMatch:#( 33 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
^ self reportLastMatch
].
(currentCharacter isXMLDigit)
] whileTrue.
((currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ]) ifTrue:[
[
self recordMatch:#( 33 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
^ self reportLastMatch
"Modified: / 04-07-2008 / 12:09:01 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
scan4
self recordMatch:#( 29 32 ).
self step.
((currentCharacter between:$0 and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$o)
or:[ (currentCharacter between:$q and:$z) ]
]
]
])
ifTrue:[
[
self recordMatch:#( 29 32 ).
self step.
(currentCharacter isLetterOrDigit or:[ currentCharacter == $_ ])
] whileTrue.
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 32 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
^ self reportLastMatch
].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 32 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $p) ifTrue:[
^ self scan5
].
^ self reportLastMatch
"Modified: / 12-02-2008 / 23:05:21 / janfrog"
!
scan5
self recordMatch:#( 29 32 ).
self step.
(currentCharacter isXMLDigit
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$d)
or:[ (currentCharacter between:$f and:$z) ]
]
]
])
ifTrue:[
[
self recordMatch:#( 29 32 ).
self step.
(currentCharacter isLetterOrDigit or:[ currentCharacter == $_ ])
] whileTrue.
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 32 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
^ self reportLastMatch
].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 32 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $e) ifTrue:[
^ self scan6
].
^ self reportLastMatch
"Modified: / 12-02-2008 / 23:05:21 / janfrog"
!
scan6
self recordMatch:#( 29 32 ).
self step.
((currentCharacter between:$0 and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$c)
or:[ (currentCharacter between:$e and:$z) ]
]
]
])
ifTrue:[
[
self recordMatch:#( 29 32 ).
self step.
(currentCharacter isLetterOrDigit or:[ currentCharacter == $_ ])
] whileTrue.
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 32 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
^ self reportLastMatch
].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 32 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $d) ifTrue:[
^ self scan7
].
^ self reportLastMatch
"Modified: / 12-02-2008 / 23:05:21 / janfrog"
!
scan7
self recordMatch:#( 29 32 ).
self step.
(currentCharacter isXMLDigit
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$d)
or:[ (currentCharacter between:$f and:$z) ]
]
]
])
ifTrue:[
[
self recordMatch:#( 29 32 ).
self step.
(currentCharacter isLetterOrDigit or:[ currentCharacter == $_ ])
] whileTrue.
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 32 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
^ self reportLastMatch
].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 32 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $e) ifTrue:[
self recordMatch:#( 29 32 ).
self step.
((currentCharacter between:$0 and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$e)
or:[ (currentCharacter between:$g and:$z) ]
]
]
])
ifTrue:[
[
self recordMatch:#( 29 32 ).
self step.
(currentCharacter isLetterOrDigit or:[ currentCharacter == $_ ])
] whileTrue.
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 32 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
^ self reportLastMatch
].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 32 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $f) ifTrue:[
self recordMatch:#( 29 32 ).
self step.
(currentCharacter isLetterOrDigit or:[ currentCharacter == $_ ]) ifTrue:[
[
self recordMatch:#( 29 32 ).
self step.
(currentCharacter isLetterOrDigit or:[ currentCharacter == $_ ])
] whileTrue.
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 32 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
^ self reportLastMatch
].
(currentCharacter between:$. and:$/) ifTrue:[
[
self recordMatch:#( 32 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $-) ifTrue:[
self recordMatch:#( 32 ).
self step.
(currentCharacter isXMLDigit
or:[
(currentCharacter between:$- and:$/)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$d)
or:[
(currentCharacter between:$f and:$r)
or:[ currentCharacter == $t or:[ (currentCharacter between:$v and:$z) ] ]
]
]
]
]
])
ifTrue:[
[
self recordMatch:#( 32 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $e) ifTrue:[
self recordMatch:#( 32 ).
self step.
((currentCharacter between:$- and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$m)
or:[ (currentCharacter between:$o and:$z) ]
]
]
])
ifTrue:[
[
self recordMatch:#( 32 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $n) ifTrue:[
self recordMatch:#( 32 ).
self step.
(currentCharacter isXMLDigit
or:[
(currentCharacter between:$- and:$/)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$t)
or:[ (currentCharacter between:$v and:$z) ]
]
]
]
])
ifTrue:[
[
self recordMatch:#( 32 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $u) ifTrue:[
self recordMatch:#( 32 ).
self step.
((currentCharacter between:$- and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$l)
or:[ (currentCharacter between:$n and:$z) ]
]
]
])
ifTrue:[
[
self recordMatch:#( 32 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $m) ifTrue:[
self recordMatch:#( 18 32 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
ifTrue:[
[
self recordMatch:#( 32 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
(currentCharacter == $s) ifTrue:[
self recordMatch:#( 32 ).
self step.
((currentCharacter between:$- and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$s)
or:[ (currentCharacter between:$u and:$z) ]
]
]
])
ifTrue:[
[
self recordMatch:#( 32 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $t) ifTrue:[
self recordMatch:#( 32 ).
self step.
((currentCharacter between:$- and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$q)
or:[ (currentCharacter between:$s and:$z) ]
]
]
])
ifTrue:[
[
self recordMatch:#( 32 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $r) ifTrue:[
self recordMatch:#( 32 ).
self step.
(currentCharacter isXMLDigit
or:[
(currentCharacter between:$- and:$/)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$t)
or:[ (currentCharacter between:$v and:$z) ]
]
]
]
])
ifTrue:[
[
self recordMatch:#( 32 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $u) ifTrue:[
self recordMatch:#( 32 ).
self step.
((currentCharacter between:$- and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$b)
or:[ (currentCharacter between:$d and:$z) ]
]
]
])
ifTrue:[
[
self recordMatch:#( 32 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $c) ifTrue:[
self recordMatch:#( 32 ).
self step.
((currentCharacter between:$- and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$s)
or:[ (currentCharacter between:$u and:$z) ]
]
]
])
ifTrue:[
[
self recordMatch:#( 32 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $t) ifTrue:[
self recordMatch:#( 28 32 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
ifTrue:[
[
self recordMatch:#( 32 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
(currentCharacter == $u) ifTrue:[
self recordMatch:#( 32 ).
self step.
((currentCharacter between:$- and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$m)
or:[ (currentCharacter between:$o and:$z) ]
]
]
])
ifTrue:[
[
self recordMatch:#( 32 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $n) ifTrue:[
self recordMatch:#( 32 ).
self step.
(currentCharacter isXMLDigit
or:[
(currentCharacter between:$- and:$/)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$h)
or:[ (currentCharacter between:$j and:$z) ]
]
]
]
])
ifTrue:[
[
self recordMatch:#( 32 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $i) ifTrue:[
self recordMatch:#( 32 ).
self step.
(currentCharacter isXMLDigit
or:[
(currentCharacter between:$- and:$/)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$n)
or:[ (currentCharacter between:$p and:$z) ]
]
]
]
])
ifTrue:[
[
self recordMatch:#( 32 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $o) ifTrue:[
self recordMatch:#( 32 ).
self step.
((currentCharacter between:$- and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$m)
or:[ (currentCharacter between:$o and:$z) ]
]
]
])
ifTrue:[
[
self recordMatch:#( 32 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $n) ifTrue:[
self recordMatch:#( 21 32 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
ifTrue:[
[
self recordMatch:#( 32 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
"Modified: / 12-02-2008 / 23:05:21 / janfrog"
!
scanForToken
self step.
((currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$d)
or:[
(currentCharacter between:$g and:$o)
or:[
(currentCharacter between:$q and:$r)
or:[ (currentCharacter between:$v and:$z) ]
]
]
]
])
ifTrue:[ ^ self scan1 ].
(currentCharacter isXMLDigit) ifTrue:[
^ self scan2
].
(currentCharacter isSeparator
or:[ currentCharacter == (Character value:16rB) ])
ifTrue:[
[
self recordMatch:#whitespace.
self step.
(currentCharacter isSeparator
or:[ currentCharacter == (Character value:16rB) ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $#) ifTrue:[
self recordMatch:#comment.
self step.
(currentCharacter <= (Character tab)
or:[
(currentCharacter between:(Character value:16rB)
and:(Character value:16rC))
or:[
(currentCharacter between:(Character value:16rE) and:$F)
or:[ currentCharacter >= $H ]
]
])
ifTrue:[
[
self recordMatch:#comment.
self step.
(currentCharacter <= (Character tab)
or:[
(currentCharacter between:(Character value:16rB)
and:(Character value:16rC))
or:[ currentCharacter >= (Character value:16rE) ]
])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $G) ifTrue:[
self recordMatch:#comment.
self step.
(currentCharacter <= (Character tab)
or:[
(currentCharacter between:(Character value:16rB)
and:(Character value:16rC))
or:[
(currentCharacter between:(Character value:16rE) and:$d)
or:[ currentCharacter >= $f ]
]
])
ifTrue:[
[
self recordMatch:#comment.
self step.
(currentCharacter <= (Character tab)
or:[
(currentCharacter between:(Character value:16rB)
and:(Character value:16rC))
or:[ currentCharacter >= (Character value:16rE) ]
])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $e) ifTrue:[
self recordMatch:#comment.
self step.
(currentCharacter <= (Character tab)
or:[
(currentCharacter between:(Character value:16rB)
and:(Character value:16rC))
or:[
(currentCharacter between:(Character value:16rE) and:$m)
or:[ currentCharacter >= $o ]
]
])
ifTrue:[
[
self recordMatch:#comment.
self step.
(currentCharacter <= (Character tab)
or:[
(currentCharacter between:(Character value:16rB)
and:(Character value:16rC))
or:[ currentCharacter >= (Character value:16rE) ]
])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $n) ifTrue:[
self recordMatch:#comment.
self step.
(currentCharacter <= (Character tab)
or:[
(currentCharacter between:(Character value:16rB)
and:(Character value:16rC))
or:[
(currentCharacter between:(Character value:16rE) and:$d)
or:[ currentCharacter >= $f ]
]
])
ifTrue:[
[
self recordMatch:#comment.
self step.
(currentCharacter <= (Character tab)
or:[
(currentCharacter between:(Character value:16rB)
and:(Character value:16rC))
or:[ currentCharacter >= (Character value:16rE) ]
])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $e) ifTrue:[
self recordMatch:#comment.
self step.
(currentCharacter <= (Character tab)
or:[
(currentCharacter between:(Character value:16rB)
and:(Character value:16rC))
or:[
(currentCharacter between:(Character value:16rE) and:$q)
or:[ currentCharacter >= $s ]
]
])
ifTrue:[
[
self recordMatch:#comment.
self step.
(currentCharacter <= (Character tab)
or:[
(currentCharacter between:(Character value:16rB)
and:(Character value:16rC))
or:[ currentCharacter >= (Character value:16rE) ]
])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $r) ifTrue:[
self recordMatch:#comment.
self step.
(currentCharacter <= (Character tab)
or:[
(currentCharacter between:(Character value:16rB)
and:(Character value:16rC))
or:[
(currentCharacter between:(Character value:16rE) and:$`)
or:[ currentCharacter >= $b ]
]
])
ifTrue:[
[
self recordMatch:#comment.
self step.
(currentCharacter <= (Character tab)
or:[
(currentCharacter between:(Character value:16rB)
and:(Character value:16rC))
or:[ currentCharacter >= (Character value:16rE) ]
])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $a) ifTrue:[
self recordMatch:#comment.
self step.
(currentCharacter <= (Character tab)
or:[
(currentCharacter between:(Character value:16rB)
and:(Character value:16rC))
or:[
(currentCharacter between:(Character value:16rE) and:$s)
or:[ currentCharacter >= $u ]
]
])
ifTrue:[
[
self recordMatch:#comment.
self step.
(currentCharacter <= (Character tab)
or:[
(currentCharacter between:(Character value:16rB)
and:(Character value:16rC))
or:[ currentCharacter >= (Character value:16rE) ]
])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $t) ifTrue:[
self recordMatch:#comment.
self step.
(currentCharacter <= (Character tab)
or:[
(currentCharacter between:(Character value:16rB)
and:(Character value:16rC))
or:[
(currentCharacter between:(Character value:16rE) and:$d)
or:[ currentCharacter >= $f ]
]
])
ifTrue:[
[
self recordMatch:#comment.
self step.
(currentCharacter <= (Character tab)
or:[
(currentCharacter between:(Character value:16rB)
and:(Character value:16rC))
or:[ currentCharacter >= (Character value:16rE) ]
])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $e) ifTrue:[
self recordMatch:#comment.
self step.
(currentCharacter <= (Character tab)
or:[
(currentCharacter between:(Character value:16rB)
and:(Character value:16rC))
or:[
(currentCharacter between:(Character value:16rE) and:$c)
or:[ currentCharacter >= $e ]
]
])
ifTrue:[
[
self recordMatch:#comment.
self step.
(currentCharacter <= (Character tab)
or:[
(currentCharacter between:(Character value:16rB)
and:(Character value:16rC))
or:[ currentCharacter >= (Character value:16rE) ]
])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $d) ifTrue:[
self recordMatch:#( 10 37 ).
self step.
(currentCharacter <= (Character tab)
or:[
(currentCharacter between:(Character value:16rB)
and:(Character value:16rC))
or:[ currentCharacter >= (Character value:16rE) ]
])
ifTrue:[
[
self recordMatch:#comment.
self step.
(currentCharacter <= (Character tab)
or:[
(currentCharacter between:(Character value:16rB)
and:(Character value:16rC))
or:[ currentCharacter >= (Character value:16rE) ]
])
] whileTrue.
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
(currentCharacter == $() ifTrue:[
^ self recordAndReportMatch:#( 12 ).
].
(currentCharacter == $)) ifTrue:[
^ self recordAndReportMatch:#( 14 ).
].
(currentCharacter == $-) ifTrue:[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetter
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter isXMLDigit) ifTrue:[
^ self scan2
].
^ self reportLastMatch
].
(currentCharacter == $.) ifTrue:[
[
self recordMatch:#( 33 ).
self step.
(currentCharacter isLetterOrDigit or:[ currentCharacter == $_ ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $@) ifTrue:[
^ self recordAndReportMatch:#( 18 ).
].
(currentCharacter == $e) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
((currentCharacter between:$0 and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$m)
or:[ (currentCharacter between:$o and:$z) ]
]
]
])
ifTrue:[ ^ self scan1 ].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $n) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
(currentCharacter isXMLDigit
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$t)
or:[ (currentCharacter between:$v and:$z) ]
]
]
])
ifTrue:[ ^ self scan1 ].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $u) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
((currentCharacter between:$0 and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$l)
or:[ (currentCharacter between:$n and:$z) ]
]
]
])
ifTrue:[ ^ self scan1 ].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $m) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
(currentCharacter isLetterOrDigit or:[ currentCharacter == $_ ]) ifTrue:[
^ self scan1
].
(currentCharacter between:$. and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $-) ifTrue:[
self recordMatch:#( 36 ).
self step.
((currentCharacter between:$- and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$e)
or:[ (currentCharacter between:$g and:$z) ]
]
]
])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $f) ifTrue:[
self recordMatch:#( 36 ).
self step.
(currentCharacter isXMLDigit
or:[
(currentCharacter between:$- and:$/)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$n)
or:[ (currentCharacter between:$p and:$z) ]
]
]
]
])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $o) ifTrue:[
self recordMatch:#( 36 ).
self step.
((currentCharacter between:$- and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$q)
or:[ (currentCharacter between:$s and:$z) ]
]
]
])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $r) ifTrue:[
self recordMatch:#( 36 ).
self step.
(currentCharacter isXMLDigit
or:[
(currentCharacter between:$- and:$/)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$d)
or:[ (currentCharacter between:$f and:$z) ]
]
]
]
])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $e) ifTrue:[
self recordMatch:#( 36 ).
self step.
(currentCharacter isXMLDigit
or:[
(currentCharacter between:$- and:$/)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$h)
or:[ (currentCharacter between:$j and:$z) ]
]
]
]
])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $i) ifTrue:[
self recordMatch:#( 36 ).
self step.
((currentCharacter between:$- and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$f)
or:[ (currentCharacter between:$h and:$z) ]
]
]
])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $g) ifTrue:[
self recordMatch:#( 36 ).
self step.
((currentCharacter between:$- and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$m)
or:[ (currentCharacter between:$o and:$z) ]
]
]
])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $n) ifTrue:[
self recordMatch:#( 23 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
(currentCharacter == $f) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
(currentCharacter isXMLDigit
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$q)
or:[
(currentCharacter between:$s and:$t)
or:[ (currentCharacter between:$v and:$z) ]
]
]
]
])
ifTrue:[ ^ self scan1 ].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $r) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
(currentCharacter isXMLDigit
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$n)
or:[ (currentCharacter between:$p and:$z) ]
]
]
])
ifTrue:[ ^ self scan1 ].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $o) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
((currentCharacter between:$0 and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$l)
or:[ (currentCharacter between:$n and:$z) ]
]
]
])
ifTrue:[ ^ self scan1 ].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $m) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
(currentCharacter isLetterOrDigit or:[ currentCharacter == $_ ]) ifTrue:[
^ self scan1
].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $:) ifTrue:[
^ self recordAndReportMatch:#( 9 ).
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
(currentCharacter == $u) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
((currentCharacter between:$0 and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$m)
or:[ (currentCharacter between:$o and:$z) ]
]
]
])
ifTrue:[ ^ self scan1 ].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $n) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
((currentCharacter between:$0 and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$b)
or:[ (currentCharacter between:$d and:$z) ]
]
]
])
ifTrue:[ ^ self scan1 ].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $c) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
((currentCharacter between:$0 and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$s)
or:[ (currentCharacter between:$u and:$z) ]
]
]
])
ifTrue:[ ^ self scan1 ].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $t) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
(currentCharacter isXMLDigit
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$h)
or:[ (currentCharacter between:$j and:$z) ]
]
]
])
ifTrue:[ ^ self scan1 ].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $i) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
(currentCharacter isXMLDigit
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$n)
or:[ (currentCharacter between:$p and:$z) ]
]
]
])
ifTrue:[ ^ self scan1 ].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $o) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
((currentCharacter between:$0 and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$m)
or:[ (currentCharacter between:$o and:$z) ]
]
]
])
ifTrue:[ ^ self scan1 ].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $n) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
(currentCharacter isLetterOrDigit or:[ currentCharacter == $_ ]) ifTrue:[
^ self scan1
].
(currentCharacter between:$. and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $-) ifTrue:[
self recordMatch:#( 36 ).
self step.
((currentCharacter between:$- and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$s)
or:[ (currentCharacter between:$u and:$z) ]
]
]
])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $t) ifTrue:[
self recordMatch:#( 36 ).
self step.
((currentCharacter between:$- and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[ (currentCharacter between:$a and:$x) or:[ currentCharacter == $z ] ]
]
])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $y) ifTrue:[
self recordMatch:#( 36 ).
self step.
((currentCharacter between:$- and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$o)
or:[ (currentCharacter between:$q and:$z) ]
]
]
])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $p) ifTrue:[
self recordMatch:#( 36 ).
self step.
(currentCharacter isXMLDigit
or:[
(currentCharacter between:$- and:$/)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$d)
or:[ (currentCharacter between:$f and:$z) ]
]
]
]
])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $e) ifTrue:[
self recordMatch:#( 7 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
(currentCharacter == $p) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
(currentCharacter isXMLDigit
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$n)
or:[ (currentCharacter between:$p and:$z) ]
]
]
])
ifTrue:[ ^ self scan1 ].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $o) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
(currentCharacter isXMLDigit
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$h)
or:[ (currentCharacter between:$j and:$z) ]
]
]
])
ifTrue:[ ^ self scan1 ].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $i) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
((currentCharacter between:$0 and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$m)
or:[ (currentCharacter between:$o and:$z) ]
]
]
])
ifTrue:[ ^ self scan1 ].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $n) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
((currentCharacter between:$0 and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$s)
or:[ (currentCharacter between:$u and:$z) ]
]
]
])
ifTrue:[ ^ self scan1 ].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $t) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
(currentCharacter isXMLDigit
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$d)
or:[ (currentCharacter between:$f and:$z) ]
]
]
])
ifTrue:[ ^ self scan1 ].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $e) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
((currentCharacter between:$0 and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$q)
or:[ (currentCharacter between:$s and:$z) ]
]
]
])
ifTrue:[ ^ self scan1 ].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $r) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
(currentCharacter isLetterOrDigit or:[ currentCharacter == $_ ]) ifTrue:[
^ self scan1
].
(currentCharacter between:$. and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $-) ifTrue:[
self recordMatch:#( 36 ).
self step.
((currentCharacter between:$- and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$s)
or:[ (currentCharacter between:$u and:$z) ]
]
]
])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $t) ifTrue:[
self recordMatch:#( 36 ).
self step.
(currentCharacter isXMLDigit
or:[
(currentCharacter between:$- and:$/)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$n)
or:[ (currentCharacter between:$p and:$z) ]
]
]
]
])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $o) ifTrue:[
self recordMatch:#( 30 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
(currentCharacter == $s) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
((currentCharacter between:$0 and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$s)
or:[ (currentCharacter between:$u and:$z) ]
]
]
])
ifTrue:[ ^ self scan1 ].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $t) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
((currentCharacter between:$0 and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$q)
or:[ (currentCharacter between:$s and:$z) ]
]
]
])
ifTrue:[ ^ self scan1 ].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $r) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
(currentCharacter isXMLDigit
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$t)
or:[ (currentCharacter between:$v and:$z) ]
]
]
])
ifTrue:[ ^ self scan1 ].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $u) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
((currentCharacter between:$0 and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$b)
or:[ (currentCharacter between:$d and:$z) ]
]
]
])
ifTrue:[ ^ self scan1 ].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $c) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
((currentCharacter between:$0 and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$s)
or:[ (currentCharacter between:$u and:$z) ]
]
]
])
ifTrue:[ ^ self scan1 ].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $t) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
(currentCharacter isLetterOrDigit or:[ currentCharacter == $_ ]) ifTrue:[
^ self scan1
].
(currentCharacter between:$. and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $-) ifTrue:[
self recordMatch:#( 36 ).
self step.
((currentCharacter between:$- and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$e)
or:[ (currentCharacter between:$g and:$z) ]
]
]
])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $f) ifTrue:[
self recordMatch:#( 36 ).
self step.
(currentCharacter isXMLDigit
or:[
(currentCharacter between:$- and:$/)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$n)
or:[ (currentCharacter between:$p and:$z) ]
]
]
]
])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $o) ifTrue:[
self recordMatch:#( 36 ).
self step.
((currentCharacter between:$- and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$q)
or:[ (currentCharacter between:$s and:$z) ]
]
]
])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $r) ifTrue:[
self recordMatch:#( 36 ).
self step.
(currentCharacter isXMLDigit
or:[
(currentCharacter between:$- and:$/)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$d)
or:[ (currentCharacter between:$f and:$z) ]
]
]
]
])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $e) ifTrue:[
self recordMatch:#( 36 ).
self step.
(currentCharacter isXMLDigit
or:[
(currentCharacter between:$- and:$/)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$h)
or:[ (currentCharacter between:$j and:$z) ]
]
]
]
])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $i) ifTrue:[
self recordMatch:#( 36 ).
self step.
((currentCharacter between:$- and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$f)
or:[ (currentCharacter between:$h and:$z) ]
]
]
])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $g) ifTrue:[
self recordMatch:#( 36 ).
self step.
((currentCharacter between:$- and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$m)
or:[ (currentCharacter between:$o and:$z) ]
]
]
])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $n) ifTrue:[
self recordMatch:#( 31 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
(currentCharacter == $t) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
((currentCharacter between:$0 and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[ (currentCharacter between:$a and:$x) or:[ currentCharacter == $z ] ]
]
])
ifTrue:[ ^ self scan1 ].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $y) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
((currentCharacter between:$0 and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$o)
or:[ (currentCharacter between:$q and:$z) ]
]
]
])
ifTrue:[ ^ self scan1 ].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $p) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
(currentCharacter isXMLDigit
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$d)
or:[ (currentCharacter between:$f and:$z) ]
]
]
])
ifTrue:[ ^ self scan1 ].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $e) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
((currentCharacter between:$0 and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$c)
or:[ (currentCharacter between:$e and:$z) ]
]
]
])
ifTrue:[ ^ self scan1 ].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $d) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
(currentCharacter isXMLDigit
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$d)
or:[ (currentCharacter between:$f and:$z) ]
]
]
])
ifTrue:[ ^ self scan1 ].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $e) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
((currentCharacter between:$0 and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$e)
or:[ (currentCharacter between:$g and:$z) ]
]
]
])
ifTrue:[ ^ self scan1 ].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $f) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
(currentCharacter isLetterOrDigit or:[ currentCharacter == $_ ]) ifTrue:[
^ self scan1
].
(currentCharacter between:$. and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $-) ifTrue:[
self recordMatch:#( 36 ).
self step.
((currentCharacter between:$- and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$e)
or:[ (currentCharacter between:$g and:$z) ]
]
]
])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $f) ifTrue:[
self recordMatch:#( 36 ).
self step.
(currentCharacter isXMLDigit
or:[
(currentCharacter between:$- and:$/)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$n)
or:[ (currentCharacter between:$p and:$z) ]
]
]
]
])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $o) ifTrue:[
self recordMatch:#( 36 ).
self step.
((currentCharacter between:$- and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$q)
or:[ (currentCharacter between:$s and:$z) ]
]
]
])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $r) ifTrue:[
self recordMatch:#( 36 ).
self step.
(currentCharacter isXMLDigit
or:[
(currentCharacter between:$- and:$/)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$d)
or:[ (currentCharacter between:$f and:$z) ]
]
]
]
])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $e) ifTrue:[
self recordMatch:#( 36 ).
self step.
(currentCharacter isXMLDigit
or:[
(currentCharacter between:$- and:$/)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$h)
or:[ (currentCharacter between:$j and:$z) ]
]
]
]
])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $i) ifTrue:[
self recordMatch:#( 36 ).
self step.
((currentCharacter between:$- and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$f)
or:[ (currentCharacter between:$h and:$z) ]
]
]
])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $g) ifTrue:[
self recordMatch:#( 36 ).
self step.
((currentCharacter between:$- and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$m)
or:[ (currentCharacter between:$o and:$z) ]
]
]
])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $n) ifTrue:[
self recordMatch:#( 17 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
(currentCharacter == $u) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
((currentCharacter between:$0 and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$m)
or:[ (currentCharacter between:$o and:$z) ]
]
]
])
ifTrue:[ ^ self scan1 ].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $n) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
(currentCharacter isXMLDigit
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$h)
or:[ (currentCharacter between:$j and:$z) ]
]
]
])
ifTrue:[ ^ self scan1 ].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $i) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
(currentCharacter isXMLDigit
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$n)
or:[ (currentCharacter between:$p and:$z) ]
]
]
])
ifTrue:[ ^ self scan1 ].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $o) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
((currentCharacter between:$0 and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$m)
or:[ (currentCharacter between:$o and:$z) ]
]
]
])
ifTrue:[ ^ self scan1 ].
(currentCharacter between:$- and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $n) ifTrue:[
self recordMatch:#( 33 36 ).
self step.
(currentCharacter isLetterOrDigit or:[ currentCharacter == $_ ]) ifTrue:[
^ self scan1
].
(currentCharacter between:$. and:$/) ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $-) ifTrue:[
self recordMatch:#( 36 ).
self step.
((currentCharacter between:$- and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$e)
or:[ (currentCharacter between:$g and:$z) ]
]
]
])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $f) ifTrue:[
self recordMatch:#( 36 ).
self step.
(currentCharacter isXMLDigit
or:[
(currentCharacter between:$- and:$/)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$n)
or:[ (currentCharacter between:$p and:$z) ]
]
]
]
])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $o) ifTrue:[
self recordMatch:#( 36 ).
self step.
((currentCharacter between:$- and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$q)
or:[ (currentCharacter between:$s and:$z) ]
]
]
])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $r) ifTrue:[
self recordMatch:#( 36 ).
self step.
(currentCharacter isXMLDigit
or:[
(currentCharacter between:$- and:$/)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$d)
or:[ (currentCharacter between:$f and:$z) ]
]
]
]
])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $e) ifTrue:[
self recordMatch:#( 36 ).
self step.
(currentCharacter isXMLDigit
or:[
(currentCharacter between:$- and:$/)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$h)
or:[ (currentCharacter between:$j and:$z) ]
]
]
]
])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $i) ifTrue:[
self recordMatch:#( 36 ).
self step.
((currentCharacter between:$- and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$f)
or:[ (currentCharacter between:$h and:$z) ]
]
]
])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $g) ifTrue:[
self recordMatch:#( 36 ).
self step.
((currentCharacter between:$- and:$9)
or:[
(currentCharacter between:$A and:$Z)
or:[
currentCharacter == $_
or:[
(currentCharacter between:$a and:$m)
or:[ (currentCharacter between:$o and:$z) ]
]
]
])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
(currentCharacter == $n) ifTrue:[
self recordMatch:#( 25 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
ifTrue:[
[
self recordMatch:#( 36 ).
self step.
(currentCharacter isLetterOrDigit
or:[ (currentCharacter between:$- and:$/) or:[ currentCharacter == $_ ] ])
] whileTrue.
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
].
^ self reportLastMatch
"Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !
!CDefinitionScanner methodsFor:'generated-tokens'!
emptySymbolTokenId
^63
"Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
errorTokenId
^64
"Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !
!CDefinitionScanner class methodsFor:'documentation'!
version
^ '$Header: /opt/data/cvs/cvut-fel/cface/Cface__CDefinitionScanner.st,v 1.1 2008/02/26 16:00:43 vranyj1 Exp $'
! !