SmaCC__SmaCCScannerScanner.st
author vranyj1
Wed, 17 Nov 2010 21:57:55 +0000
changeset 20 4ea23addc2c4
parent 16 55254a6f8404
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:#SmaCCScannerScanner
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
     6
	instanceVariableNames:''
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-Scanner Generator'
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    10
!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    11
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    12
SmaCCScannerScanner comment:'SmaCCScannerScanner is the scanner for the scanner definition'
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    13
!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    14
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    15
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    16
!SmaCCScannerScanner class methodsFor:'generated-comments'!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    17
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    18
scannerDefinitionComment
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    19
16
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    20
	"<backslashcharacter>    :       \\ [^cx] | \\ c [A-Z] | \\ x [0-9A-Fa-f]{1,4} ;
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    21
<characterblock>        : \[ ([^\]\\] | <backslashcharacter> )+ \] ;
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    22
<whitespace>    :       [\ \t\v\r\n]+ ;
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    23
<tokenname>     :       \< [a-zA-Z_] \w* \> ;
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    24
<comment>       :       \# [^\r\n]* ;
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    25
<repeat>        :       \{ [0-9]* \, [0-9]* \} ;
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    26
<character>     :       [^\ \t\v\\\r\n\{\(\[\.] ; 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    27
<anycharacter>  : \. ;
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    28
"
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    29
! !
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    30
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    31
!SmaCCScannerScanner methodsFor:'generated-scanner'!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    32
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    33
scan1
16
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    34
    [
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    35
        self step.
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    36
        (currentCharacter <= $[ or:[ currentCharacter >= $^ ])
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    37
    ] whileTrue.
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    38
    (currentCharacter == $\) ifTrue:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    39
        ^ self scan2
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    40
    ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    41
    (currentCharacter == $]) ifTrue:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    42
        ^ self recordAndReportMatch:#( 10 ).
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    43
    ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    44
    ^ self reportLastMatch
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    45
!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    46
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    47
scan2
16
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    48
    self step.
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    49
    (currentCharacter <= $b 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    50
        or:[ (currentCharacter between:$d and:$w) or:[ currentCharacter >= $y ] ]) 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    51
            ifTrue:[ ^ self scan1 ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    52
    (currentCharacter == $c) ifTrue:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    53
        self step.
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    54
        (currentCharacter between:$A and:$Z) ifTrue:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    55
            ^ self scan1
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    56
        ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    57
        ^ self reportLastMatch
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    58
    ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    59
    (currentCharacter == $x) ifTrue:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    60
        self step.
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    61
        (currentCharacter isNationalDigit 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    62
            or:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    63
                (currentCharacter between:$A and:$F) 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    64
                    or:[ (currentCharacter between:$a and:$f) ]
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    65
            ]) 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    66
                ifTrue:[ ^ self scan1 ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    67
        ^ self reportLastMatch
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    68
    ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    69
    ^ self reportLastMatch
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    70
!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    71
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    72
scanForToken
16
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    73
    self step.
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    74
    (currentCharacter <= (Character codePoint:16r8) 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    75
        or:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    76
            currentCharacter == (Character codePoint:16rC) 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    77
                or:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    78
                    (currentCharacter between:(Character codePoint:16rE)
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    79
                        and:(Character codePoint:16r1F)) 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    80
                            or:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    81
                                (currentCharacter between:$!! and:$") 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    82
                                    or:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    83
                                        (currentCharacter between:$$ and:$') 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    84
                                            or:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    85
                                                (currentCharacter between:$, and:$-) 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    86
                                                    or:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    87
                                                        (currentCharacter between:$/ and:$9) 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    88
                                                            or:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    89
                                                                (currentCharacter between:$= and:$>) 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    90
                                                                    or:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    91
                                                                        (currentCharacter between:$@ and:$Z) 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    92
                                                                            or:[ (currentCharacter between:$] and:$z) or:[ currentCharacter >= $} ] ]
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    93
                                                                    ]
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    94
                                                            ]
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    95
                                                    ]
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    96
                                            ]
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    97
                                    ]
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    98
                            ]
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
    99
                ]
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   100
        ]) 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   101
            ifTrue:[ ^ self recordAndReportMatch:#( 15 ). ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   102
    ((currentCharacter between:(Character tab) and:(Character codePoint:16rB)) 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   103
        or:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   104
            currentCharacter == (Character codePoint:16rD) 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   105
                or:[ currentCharacter == (Character space) ]
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   106
        ]) 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   107
            ifTrue:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   108
                [
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   109
                    self recordMatch:#whitespace.
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   110
                    self step.
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   111
                    ((currentCharacter between:(Character tab) and:(Character codePoint:16rB)) 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   112
                        or:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   113
                            currentCharacter == (Character codePoint:16rD) 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   114
                                or:[ currentCharacter == (Character space) ]
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   115
                        ])
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   116
                ] whileTrue.
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   117
                ^ self reportLastMatch
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   118
            ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   119
    (currentCharacter == $#) ifTrue:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   120
        self recordMatch:#comment.
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   121
        self step.
16
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   122
        (currentCharacter <= (Character tab) 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   123
            or:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   124
                (currentCharacter between:(Character codePoint:16rB)
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   125
                    and:(Character codePoint:16rC)) 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   126
                        or:[ currentCharacter >= (Character codePoint:16rE) ]
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   127
            ]) 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   128
                ifTrue:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   129
                    [
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   130
                        self recordMatch:#comment.
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   131
                        self step.
16
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   132
                        (currentCharacter <= (Character tab) 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   133
                            or:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   134
                                (currentCharacter between:(Character codePoint:16rB)
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   135
                                    and:(Character codePoint:16rC)) 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   136
                                        or:[ currentCharacter >= (Character codePoint:16rE) ]
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   137
                            ])
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   138
                    ] whileTrue.
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   139
                    ^ self reportLastMatch
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   140
                ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   141
        ^ self reportLastMatch
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   142
    ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   143
    (currentCharacter == $() ifTrue:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   144
        ^ self recordAndReportMatch:#( 1 ).
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   145
    ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   146
    (currentCharacter == $)) ifTrue:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   147
        ^ self recordAndReportMatch:#( 4 15 ).
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   148
    ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   149
    (currentCharacter == $*) ifTrue:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   150
        ^ self recordAndReportMatch:#( 3 15 ).
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   151
    ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   152
    (currentCharacter == $+) ifTrue:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   153
        ^ self recordAndReportMatch:#( 5 15 ).
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   154
    ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   155
    (currentCharacter == $.) ifTrue:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   156
        ^ self recordAndReportMatch:#( 16 ).
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   157
    ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   158
    (currentCharacter == $:) ifTrue:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   159
        ^ self recordAndReportMatch:#( 7 15 ).
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   160
    ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   161
    (currentCharacter == $;) ifTrue:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   162
        ^ self recordAndReportMatch:#( 8 15 ).
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   163
    ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   164
    (currentCharacter == $<) ifTrue:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   165
        self recordMatch:#( 15 ).
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   166
        self step.
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   167
        (currentCharacter isLetter or:[ currentCharacter == $_ ]) ifTrue:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   168
            [
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   169
                self step.
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   170
                (currentCharacter isLetterOrDigit or:[ currentCharacter == $_ ])
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   171
            ] whileTrue.
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   172
            (currentCharacter == $>) ifTrue:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   173
                ^ self recordAndReportMatch:#( 12 ).
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   174
            ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   175
            ^ self reportLastMatch
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   176
        ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   177
        ^ self reportLastMatch
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   178
    ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   179
    (currentCharacter == $?) ifTrue:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   180
        ^ self recordAndReportMatch:#( 6 15 ).
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   181
    ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   182
    (currentCharacter == $[) ifTrue:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   183
        self step.
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   184
        (currentCharacter <= $[ or:[ currentCharacter >= $^ ]) ifTrue:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   185
            ^ self scan1
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   186
        ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   187
        (currentCharacter == $\) ifTrue:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   188
            ^ self scan2
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   189
        ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   190
        ^ self reportLastMatch
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   191
    ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   192
    (currentCharacter == $\) ifTrue:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   193
        self step.
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   194
        (currentCharacter <= $b 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   195
            or:[ (currentCharacter between:$d and:$w) or:[ currentCharacter >= $y ] ]) 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   196
                ifTrue:[ ^ self recordAndReportMatch:#( 9 ). ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   197
        (currentCharacter == $c) ifTrue:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   198
            self step.
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   199
            (currentCharacter between:$A and:$Z) ifTrue:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   200
                ^ self recordAndReportMatch:#( 9 ).
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   201
            ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   202
            ^ self reportLastMatch
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   203
        ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   204
        (currentCharacter == $x) ifTrue:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   205
            self step.
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   206
            (currentCharacter isNationalDigit 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   207
                or:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   208
                    (currentCharacter between:$A and:$F) 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   209
                        or:[ (currentCharacter between:$a and:$f) ]
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   210
                ]) 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   211
                    ifTrue:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   212
                        self recordMatch:#( 9 ).
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   213
                        self step.
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   214
                        (currentCharacter isNationalDigit 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   215
                            or:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   216
                                (currentCharacter between:$A and:$F) 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   217
                                    or:[ (currentCharacter between:$a and:$f) ]
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   218
                            ]) 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   219
                                ifTrue:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   220
                                    self recordMatch:#( 9 ).
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   221
                                    self step.
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   222
                                    (currentCharacter isNationalDigit 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   223
                                        or:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   224
                                            (currentCharacter between:$A and:$F) 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   225
                                                or:[ (currentCharacter between:$a and:$f) ]
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   226
                                        ]) 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   227
                                            ifTrue:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   228
                                                self recordMatch:#( 9 ).
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   229
                                                self step.
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   230
                                                (currentCharacter isNationalDigit 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   231
                                                    or:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   232
                                                        (currentCharacter between:$A and:$F) 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   233
                                                            or:[ (currentCharacter between:$a and:$f) ]
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   234
                                                    ]) 
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   235
                                                        ifTrue:[ ^ self recordAndReportMatch:#( 9 ). ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   236
                                                ^ self reportLastMatch
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   237
                                            ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   238
                                    ^ self reportLastMatch
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   239
                                ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   240
                        ^ self reportLastMatch
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   241
                    ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   242
            ^ self reportLastMatch
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   243
        ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   244
        ^ self reportLastMatch
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   245
    ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   246
    (currentCharacter == ${) ifTrue:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   247
        [
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   248
            self step.
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   249
            (currentCharacter isNationalDigit)
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   250
        ] whileTrue.
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   251
        (currentCharacter == $,) ifTrue:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   252
            [
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   253
                self step.
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   254
                (currentCharacter isNationalDigit)
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   255
            ] whileTrue.
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   256
            (currentCharacter == $}) ifTrue:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   257
                ^ self recordAndReportMatch:#( 14 ).
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   258
            ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   259
            ^ self reportLastMatch
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   260
        ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   261
        ^ self reportLastMatch
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   262
    ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   263
    (currentCharacter == $|) ifTrue:[
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   264
        ^ self recordAndReportMatch:#( 2 15 ).
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   265
    ].
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   266
    ^ self reportLastMatch
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   267
! !
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   268
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   269
!SmaCCScannerScanner methodsFor:'generated-tokens'!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   270
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   271
emptySymbolTokenId
16
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   272
	^21
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   273
!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   274
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   275
errorTokenId
16
55254a6f8404 Generated scanners how uses Character>>is* methods on iff they
vranyj1
parents: 15
diff changeset
   276
	^22
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   277
! !
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   278
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   279
!SmaCCScannerScanner class methodsFor:'documentation'!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   280
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   281
version
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   282
    ^ '$Header: /opt/data/cvs/stx/goodies/smaCC/SmaCC__SmaCCScannerScanner.st,v 1.1 2006-02-09 21:18:41 vranyj1 Exp $'
15
8b8cd1701c33 added version_SVN method
vranyj1
parents: 1
diff changeset
   283
!
8b8cd1701c33 added version_SVN method
vranyj1
parents: 1
diff changeset
   284
8b8cd1701c33 added version_SVN method
vranyj1
parents: 1
diff changeset
   285
version_SVN
8b8cd1701c33 added version_SVN method
vranyj1
parents: 1
diff changeset
   286
    ^ '$Id$'
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   287
! !