SmaCC__CScanner.st
author vranyj1
Wed, 17 Nov 2010 21:57:55 +0000
changeset 20 4ea23addc2c4
parent 5 79cd4e3c7011
child 25 5a6921729520
permissions -rw-r--r--
Makefile updated
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
     1
"{ Package: 'stx:goodies/smaCC' }"
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
     2
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
     3
"{ NameSpace: SmaCC }"
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
     4
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
     5
SmaCCScanner subclass:#CScanner
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
     6
	instanceVariableNames:'typeNames'
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
     7
	classVariableNames:''
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
     8
	poolDictionaries:''
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
     9
	category:'SmaCC-Example Parsers'
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    10
!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    11
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    12
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    13
!CScanner class methodsFor:'generated-comments'!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    14
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    15
scannerDefinitionComment
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    16
5
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    17
	"<H>: [a-fA-F0-9]        ;
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    18
<IS>: [uUlL]    ;
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    19
<D>: [0-9]      ;
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    20
<E>: [Ee][\+\-]?<D>+    ;
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    21
<FS>: [fFlL]    ;
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    22
<ELLIPSIS> : \.\.\. ;
5
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    23
<comment>: \/ \*        ;
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    24
<LETTER> : [a-zA-Z_] ;
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    25
<DIGIT> : [0-9] ;
5
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    26
<IDENTIFIER>: <LETTER> (<LETTER>|<DIGIT>)*      ;
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    27
<CONSTANT>: (0[xX]<H>+<IS>?) | 
5
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    28
                                (<D>+<IS>?) | 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    29
                                (<D>+<E><FS>?) | 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    30
                                <D>*\.<D>+<E>?<FS>? | 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    31
                                (L? \' ( (\\ .) | ([^\\\""]) )+ \')      ;
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    32
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    33
<STRING_LITERAL>: L? \"" ( (\\ .) | ([^\\\""]) )* \""      ;
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    34
5
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    35
<LEFT_BLOCK>: \[ | (\< \:)      ;
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    36
<RIGHT_BLOCK>: \] | (\: \>)     ;
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    37
<LEFT_BRACE>: \{ | (\< \%)      ;
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    38
<RIGHT_BRACE>: \} | (\% \>)     ;
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    39
5
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    40
<whitespace>: \s+       ;
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    41
"
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    42
5
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    43
    "Modified: / 18-11-2008 / 13:47:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    44
! !
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    45
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    46
!CScanner class methodsFor:'generated-initialization'!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    47
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    48
initializeKeywordMap
5
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    49
    keywordMap := Dictionary new.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    50
    #( #(IDENTIFIER 'auto' 65)
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    51
     #(IDENTIFIER 'break' 48)
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    52
     #(IDENTIFIER 'case' 38)
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    53
     #(IDENTIFIER 'char' 73)
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    54
     #(IDENTIFIER 'const' 40)
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    55
     #(IDENTIFIER 'continue' 47)
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    56
     #(IDENTIFIER 'default' 39)
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    57
     #(IDENTIFIER 'do' 54)
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    58
     #(IDENTIFIER 'double' 70)
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    59
     #(IDENTIFIER 'else' 46)
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    60
     #(IDENTIFIER 'enum' 45)
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    61
     #(IDENTIFIER 'extern' 58)
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    62
     #(IDENTIFIER 'float' 67)
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    63
     #(IDENTIFIER 'for' 49)
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    64
     #(IDENTIFIER 'goto' 50)
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    65
     #(IDENTIFIER 'if' 42)
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    66
     #(IDENTIFIER 'int' 69)
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    67
     #(IDENTIFIER 'long' 66)
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    68
     #(IDENTIFIER 'register' 71)
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    69
     #(IDENTIFIER 'return' 56)
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    70
     #(IDENTIFIER 'short' 68)
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    71
     #(IDENTIFIER 'signed' 51)
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    72
     #(IDENTIFIER 'sizeof' 24)
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    73
     #(IDENTIFIER 'static' 61)
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    74
     #(IDENTIFIER 'struct' 43)
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    75
     #(IDENTIFIER 'switch' 52)
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    76
     #(IDENTIFIER 'typedef' 57)
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    77
     #(IDENTIFIER 'union' 44)
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    78
     #(IDENTIFIER 'unsigned' 55)
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    79
     #(IDENTIFIER 'void' 72)
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    80
     #(IDENTIFIER 'volatile' 41)
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    81
     #(IDENTIFIER 'while' 53) ) 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    82
            do:[:each | 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    83
                (keywordMap at:each first ifAbsentPut:[ Dictionary new ]) at:(each at:2)
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    84
                    put:each last
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    85
            ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    86
    ^ keywordMap
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    87
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
    88
    "Modified: / 18-11-2008 / 13:47:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    89
! !
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    90
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    91
!CScanner class methodsFor:'public'!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    92
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    93
needsLineNumbers
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    94
	^true
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    95
! !
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    96
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    97
!CScanner methodsFor:'default token handling'!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    98
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    99
comment
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   100
	| char |
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   101
	
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   102
	[[(char := stream next) isNil or: [char == $*]] whileFalse.
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   103
	stream atEnd ifTrue: [self scannerError].
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   104
	stream peekFor: $/] 
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   105
			whileFalse.
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   106
	^self whitespace
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   107
! !
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   108
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   109
!CScanner methodsFor:'generated-scanner'!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   110
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   111
scan1
5
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   112
    [
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   113
        self recordMatch:#( 77 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   114
        self step.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   115
        (currentCharacter isXMLDigit)
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   116
    ] whileTrue.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   117
    (currentCharacter == $F 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   118
        or:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   119
            currentCharacter == $L 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   120
                or:[ currentCharacter == $f or:[ currentCharacter == $l ] ]
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   121
        ]) 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   122
            ifTrue:[ ^ self recordAndReportMatch:#( 77 ). ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   123
    ^ self reportLastMatch
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   124
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   125
    "Modified: / 18-11-2008 / 13:47:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   126
!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   127
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   128
scan2
5
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   129
    self step.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   130
    (currentCharacter isXMLDigit) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   131
        ^ self scan3
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   132
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   133
    ^ self reportLastMatch
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   134
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   135
    "Modified: / 18-11-2008 / 13:47:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   136
!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   137
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   138
scan3
5
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   139
    [
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   140
        self recordMatch:#( 77 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   141
        self step.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   142
        (currentCharacter isXMLDigit)
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   143
    ] whileTrue.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   144
    (currentCharacter == $F 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   145
        or:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   146
            currentCharacter == $L 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   147
                or:[ currentCharacter == $f or:[ currentCharacter == $l ] ]
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   148
        ]) 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   149
            ifTrue:[ ^ self recordAndReportMatch:#( 77 ). ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   150
    (currentCharacter == $E or:[ currentCharacter == $e ]) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   151
        ^ self scan4
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   152
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   153
    ^ self reportLastMatch
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   154
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   155
    "Modified: / 18-11-2008 / 13:47:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   156
!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   157
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   158
scan4
5
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   159
    self step.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   160
    (currentCharacter isXMLDigit) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   161
        ^ self scan1
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   162
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   163
    (currentCharacter == $+ or:[ currentCharacter == $- ]) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   164
        self step.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   165
        (currentCharacter isXMLDigit) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   166
            ^ self scan1
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   167
        ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   168
        ^ self reportLastMatch
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   169
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   170
    ^ self reportLastMatch
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   171
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   172
    "Modified: / 18-11-2008 / 13:47:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   173
!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   174
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   175
scan5
5
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   176
    self step.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   177
    (currentCharacter <= $!! 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   178
        or:[ (currentCharacter between:$# and:$[) or:[ currentCharacter >= $] ] ]) 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   179
            ifTrue:[ ^ self scan6 ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   180
    (currentCharacter == $\) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   181
        ^ self scan7
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   182
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   183
    ^ self reportLastMatch
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   184
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   185
    "Modified: / 18-11-2008 / 13:47:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   186
!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   187
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   188
scan6
5
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   189
    [
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   190
        self step.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   191
        (currentCharacter <= $!! 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   192
            or:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   193
                (currentCharacter between:$# and:$&) 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   194
                    or:[ (currentCharacter between:$( and:$[) or:[ currentCharacter >= $] ] ]
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   195
            ])
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   196
    ] whileTrue.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   197
    (currentCharacter == $') ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   198
        [
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   199
            self recordMatch:#( 77 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   200
            self step.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   201
            (currentCharacter <= $!! 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   202
                or:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   203
                    (currentCharacter between:$# and:$&) 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   204
                        or:[ (currentCharacter between:$( and:$[) or:[ currentCharacter >= $] ] ]
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   205
                ]) 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   206
                    ifTrue:[ ^ self scan6 ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   207
            (currentCharacter == $')
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   208
        ] whileTrue.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   209
        (currentCharacter == $\) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   210
            ^ self scan7
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   211
        ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   212
        ^ self reportLastMatch
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   213
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   214
    (currentCharacter == $\) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   215
        ^ self scan7
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   216
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   217
    ^ self reportLastMatch
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   218
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   219
    "Modified: / 18-11-2008 / 13:47:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   220
!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   221
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   222
scan7
5
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   223
    self step.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   224
    (currentCharacter isImmediate) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   225
        ^ self scan6
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   226
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   227
    ^ self reportLastMatch
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   228
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   229
    "Modified: / 18-11-2008 / 13:47:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   230
!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   231
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   232
scan8
5
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   233
    [
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   234
        self step.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   235
        (currentCharacter <= $!! 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   236
            or:[ (currentCharacter between:$# and:$[) or:[ currentCharacter >= $] ] ])
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   237
    ] whileTrue.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   238
    (currentCharacter == $") ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   239
        ^ self recordAndReportMatch:#( 78 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   240
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   241
    (currentCharacter == $\) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   242
        self step.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   243
        (currentCharacter isImmediate) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   244
            ^ self scan8
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   245
        ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   246
        ^ self reportLastMatch
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   247
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   248
    ^ self reportLastMatch
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   249
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   250
    "Modified: / 18-11-2008 / 13:47:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   251
!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   252
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   253
scan9
5
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   254
    [
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   255
        self recordMatch:#( 77 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   256
        self step.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   257
        (currentCharacter isXMLDigit)
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   258
    ] whileTrue.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   259
    (currentCharacter == $L 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   260
        or:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   261
            currentCharacter == $U 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   262
                or:[ currentCharacter == $l or:[ currentCharacter == $u ] ]
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   263
        ]) 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   264
            ifTrue:[ ^ self recordAndReportMatch:#( 77 ). ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   265
    (currentCharacter == $E or:[ currentCharacter == $e ]) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   266
        ^ self scan4
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   267
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   268
    (currentCharacter == $.) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   269
        ^ self scan2
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   270
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   271
    ^ self reportLastMatch
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   272
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   273
    "Modified: / 18-11-2008 / 13:47:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   274
!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   275
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   276
scanForToken
5
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   277
    self step.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   278
    ((currentCharacter between:$A and:$K) 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   279
        or:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   280
            (currentCharacter between:$M and:$Z) 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   281
                or:[ currentCharacter == $_ or:[ (currentCharacter between:$a and:$z) ] ]
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   282
        ]) 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   283
            ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   284
                [
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   285
                    self recordMatch:#IDENTIFIER.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   286
                    self step.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   287
                    (currentCharacter isLetterOrDigit or:[ currentCharacter == $_ ])
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   288
                ] whileTrue.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   289
                ^ self reportLastMatch
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   290
            ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   291
    (currentCharacter between:$1 and:$9) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   292
        ^ self scan9
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   293
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   294
    (currentCharacter isSeparator 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   295
        or:[ currentCharacter == (Character codePoint:16rB) ]) 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   296
            ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   297
                [
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   298
                    self recordMatch:#whitespace.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   299
                    self step.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   300
                    (currentCharacter isSeparator 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   301
                        or:[ currentCharacter == (Character codePoint:16rB) ])
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   302
                ] whileTrue.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   303
                ^ self reportLastMatch
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   304
            ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   305
    (currentCharacter == $!!) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   306
        self recordMatch:#( 32 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   307
        self step.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   308
        (currentCharacter == $=) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   309
            ^ self recordAndReportMatch:#( 4 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   310
        ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   311
        ^ self reportLastMatch
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   312
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   313
    (currentCharacter == $") ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   314
        ^ self scan8
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   315
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   316
    (currentCharacter == $%) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   317
        self recordMatch:#( 30 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   318
        self step.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   319
        (currentCharacter == $=) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   320
            ^ self recordAndReportMatch:#( 10 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   321
        ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   322
        (currentCharacter == $>) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   323
            ^ self recordAndReportMatch:#( 82 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   324
        ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   325
        ^ self reportLastMatch
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   326
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   327
    (currentCharacter == $&) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   328
        self recordMatch:#( 28 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   329
        self step.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   330
        (currentCharacter == $&) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   331
            ^ self recordAndReportMatch:#( 5 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   332
        ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   333
        (currentCharacter == $=) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   334
            ^ self recordAndReportMatch:#( 63 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   335
        ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   336
        ^ self reportLastMatch
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   337
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   338
    (currentCharacter == $') ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   339
        ^ self scan5
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   340
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   341
    (currentCharacter == $() ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   342
        ^ self recordAndReportMatch:#( 25 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   343
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   344
    (currentCharacter == $)) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   345
        ^ self recordAndReportMatch:#( 26 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   346
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   347
    (currentCharacter == $*) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   348
        self recordMatch:#( 34 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   349
        self step.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   350
        (currentCharacter == $=) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   351
            ^ self recordAndReportMatch:#( 12 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   352
        ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   353
        ^ self reportLastMatch
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   354
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   355
    (currentCharacter == $+) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   356
        self recordMatch:#( 35 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   357
        self step.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   358
        (currentCharacter == $+) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   359
            ^ self recordAndReportMatch:#( 23 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   360
        ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   361
        (currentCharacter == $=) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   362
            ^ self recordAndReportMatch:#( 11 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   363
        ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   364
        ^ self reportLastMatch
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   365
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   366
    (currentCharacter == $,) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   367
        ^ self recordAndReportMatch:#( 21 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   368
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   369
    (currentCharacter == $-) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   370
        self recordMatch:#( 36 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   371
        self step.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   372
        (currentCharacter == $-) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   373
            ^ self recordAndReportMatch:#( 20 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   374
        ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   375
        (currentCharacter == $=) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   376
            ^ self recordAndReportMatch:#( 19 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   377
        ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   378
        (currentCharacter == $>) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   379
            ^ self recordAndReportMatch:#( 22 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   380
        ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   381
        ^ self reportLastMatch
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   382
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   383
    (currentCharacter == $.) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   384
        self recordMatch:#( 27 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   385
        self step.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   386
        (currentCharacter isXMLDigit) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   387
            ^ self scan3
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   388
        ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   389
        (currentCharacter == $.) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   390
            self step.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   391
            (currentCharacter == $.) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   392
                ^ self recordAndReportMatch:#( 74 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   393
            ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   394
            ^ self reportLastMatch
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   395
        ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   396
        ^ self reportLastMatch
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   397
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   398
    (currentCharacter == $/) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   399
        self recordMatch:#( 29 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   400
        self step.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   401
        (currentCharacter == $*) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   402
            ^ self recordAndReportMatch:#comment.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   403
        ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   404
        (currentCharacter == $=) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   405
            ^ self recordAndReportMatch:#( 13 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   406
        ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   407
        ^ self reportLastMatch
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   408
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   409
    (currentCharacter == $0) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   410
        self recordMatch:#( 77 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   411
        self step.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   412
        (currentCharacter isXMLDigit) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   413
            ^ self scan9
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   414
        ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   415
        (currentCharacter == $L 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   416
            or:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   417
                currentCharacter == $U 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   418
                    or:[ currentCharacter == $l or:[ currentCharacter == $u ] ]
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   419
            ]) 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   420
                ifTrue:[ ^ self recordAndReportMatch:#( 77 ). ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   421
        (currentCharacter == $E or:[ currentCharacter == $e ]) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   422
            ^ self scan4
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   423
        ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   424
        (currentCharacter == $X or:[ currentCharacter == $x ]) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   425
            self step.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   426
            (currentCharacter isXMLDigit 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   427
                or:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   428
                    (currentCharacter between:$A and:$F) 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   429
                        or:[ (currentCharacter between:$a and:$f) ]
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   430
                ]) 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   431
                    ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   432
                        [
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   433
                            self recordMatch:#( 77 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   434
                            self step.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   435
                            (currentCharacter isXMLDigit 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   436
                                or:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   437
                                    (currentCharacter between:$A and:$F) 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   438
                                        or:[ (currentCharacter between:$a and:$f) ]
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   439
                                ])
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   440
                        ] whileTrue.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   441
                        (currentCharacter == $L 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   442
                            or:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   443
                                currentCharacter == $U 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   444
                                    or:[ currentCharacter == $l or:[ currentCharacter == $u ] ]
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   445
                            ]) 
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   446
                                ifTrue:[ ^ self recordAndReportMatch:#( 77 ). ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   447
                        ^ self reportLastMatch
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   448
                    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   449
            ^ self reportLastMatch
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   450
        ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   451
        (currentCharacter == $.) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   452
            ^ self scan2
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   453
        ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   454
        ^ self reportLastMatch
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   455
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   456
    (currentCharacter == $:) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   457
        self recordMatch:#( 16 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   458
        self step.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   459
        (currentCharacter == $>) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   460
            ^ self recordAndReportMatch:#( 80 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   461
        ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   462
        ^ self reportLastMatch
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   463
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   464
    (currentCharacter == $;) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   465
        ^ self recordAndReportMatch:#( 60 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   466
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   467
    (currentCharacter == $<) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   468
        self recordMatch:#( 18 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   469
        self step.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   470
        (currentCharacter == $%) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   471
            ^ self recordAndReportMatch:#( 81 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   472
        ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   473
        (currentCharacter == $:) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   474
            ^ self recordAndReportMatch:#( 79 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   475
        ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   476
        (currentCharacter == $<) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   477
            self recordMatch:#( 33 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   478
            self step.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   479
            (currentCharacter == $=) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   480
                ^ self recordAndReportMatch:#( 37 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   481
            ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   482
            ^ self reportLastMatch
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   483
        ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   484
        (currentCharacter == $=) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   485
            ^ self recordAndReportMatch:#( 7 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   486
        ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   487
        ^ self reportLastMatch
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   488
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   489
    (currentCharacter == $=) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   490
        self recordMatch:#( 17 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   491
        self step.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   492
        (currentCharacter == $=) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   493
            ^ self recordAndReportMatch:#( 3 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   494
        ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   495
        ^ self reportLastMatch
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   496
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   497
    (currentCharacter == $>) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   498
        self recordMatch:#( 6 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   499
        self step.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   500
        (currentCharacter == $=) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   501
            ^ self recordAndReportMatch:#( 8 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   502
        ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   503
        (currentCharacter == $>) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   504
            self recordMatch:#( 14 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   505
            self step.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   506
            (currentCharacter == $=) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   507
                ^ self recordAndReportMatch:#( 62 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   508
            ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   509
            ^ self reportLastMatch
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   510
        ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   511
        ^ self reportLastMatch
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   512
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   513
    (currentCharacter == $?) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   514
        ^ self recordAndReportMatch:#( 15 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   515
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   516
    (currentCharacter == $L) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   517
        self recordMatch:#IDENTIFIER.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   518
        self step.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   519
        (currentCharacter isLetterOrDigit or:[ currentCharacter == $_ ]) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   520
            [
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   521
                self recordMatch:#IDENTIFIER.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   522
                self step.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   523
                (currentCharacter isLetterOrDigit or:[ currentCharacter == $_ ])
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   524
            ] whileTrue.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   525
            ^ self reportLastMatch
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   526
        ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   527
        (currentCharacter == $") ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   528
            ^ self scan8
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   529
        ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   530
        (currentCharacter == $') ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   531
            ^ self scan5
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   532
        ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   533
        ^ self reportLastMatch
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   534
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   535
    (currentCharacter == $[) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   536
        ^ self recordAndReportMatch:#( 79 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   537
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   538
    (currentCharacter == $]) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   539
        ^ self recordAndReportMatch:#( 80 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   540
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   541
    (currentCharacter == $^) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   542
        self recordMatch:#( 1 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   543
        self step.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   544
        (currentCharacter == $=) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   545
            ^ self recordAndReportMatch:#( 64 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   546
        ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   547
        ^ self reportLastMatch
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   548
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   549
    (currentCharacter == ${) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   550
        ^ self recordAndReportMatch:#( 81 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   551
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   552
    (currentCharacter == $|) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   553
        self recordMatch:#( 2 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   554
        self step.
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   555
        (currentCharacter == $=) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   556
            ^ self recordAndReportMatch:#( 59 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   557
        ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   558
        (currentCharacter == $|) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   559
            ^ self recordAndReportMatch:#( 9 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   560
        ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   561
        ^ self reportLastMatch
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   562
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   563
    (currentCharacter == $}) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   564
        ^ self recordAndReportMatch:#( 82 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   565
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   566
    (currentCharacter == $~) ifTrue:[
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   567
        ^ self recordAndReportMatch:#( 31 ).
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   568
    ].
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   569
    ^ self reportLastMatch
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   570
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   571
    "Modified: / 18-11-2008 / 13:47:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   572
! !
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   573
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   574
!CScanner methodsFor:'generated-tokens'!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   575
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   576
CONSTANTId
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   577
	^77
5
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   578
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   579
    "Modified: / 18-11-2008 / 13:47:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   580
!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   581
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   582
IDENTIFIERId
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   583
	^76
5
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   584
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   585
    "Modified: / 18-11-2008 / 13:47:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   586
!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   587
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   588
TYPE_NAMEId
5
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   589
	^132
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   590
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   591
    "Modified: / 18-11-2008 / 13:47:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   592
!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   593
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   594
emptySymbolTokenId
5
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   595
	^147
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   596
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   597
    "Modified: / 18-11-2008 / 13:47:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   598
!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   599
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   600
errorTokenId
5
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   601
	^148
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   602
79cd4e3c7011 Added option "Show item sets".
vranyj1
parents: 1
diff changeset
   603
    "Modified: / 18-11-2008 / 13:47:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   604
! !
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   605
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   606
!CScanner methodsFor:'initialize-release'!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   607
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   608
initialize
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   609
	super initialize.
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   610
	typeNames := Set new
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   611
! !
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   612
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   613
!CScanner methodsFor:'public'!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   614
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   615
IDENTIFIER
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   616
	| name token |
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   617
	name := outputStream contents.
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   618
	matchActions := (typeNames includes: name) 
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   619
				ifTrue: [Array with: self TYPE_NAMEId]
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   620
				ifFalse: [Array with: self IDENTIFIERId].
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   621
	outputStream reset.
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   622
	token := SmaCCToken 
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   623
				value: name
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   624
				start: start
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   625
				id: matchActions.
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   626
	matchActions := nil.
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   627
	returnMatchBlock value: token
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   628
!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   629
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   630
addTypeName: aString 
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   631
	typeNames add: aString
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   632
! !
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   633
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   634
!CScanner class methodsFor:'documentation'!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   635
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   636
version
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   637
    ^ '$Header: /opt/data/cvs/stx/goodies/smaCC/SmaCC__CScanner.st,v 1.1 2006-02-09 21:13:27 vranyj1 Exp $'
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   638
! !