tools/GroovyScanner.st
author Claus Gittinger <cg@exept.de>
Thu, 14 Feb 2019 14:57:14 +0100
branchcvs_MAIN
changeset 3882 8fc7564975e5
parent 3458 6a8487b950d2
child 3860 e87f2f1439e9
child 3980 c6875f04c2f4
permissions -rw-r--r--
#DOCUMENTATION by cg class: GroovySourceHighlighter comment/format in: #markUnknownIdentifierFrom:to:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3458
6a8487b950d2 class: GroovyScanner
Claus Gittinger <cg@exept.de>
parents: 3240
diff changeset
     1
"{ Encoding: utf8 }"
6a8487b950d2 class: GroovyScanner
Claus Gittinger <cg@exept.de>
parents: 3240
diff changeset
     2
2873
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
"{ Package: 'stx:libjava/tools' }"
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
3458
6a8487b950d2 class: GroovyScanner
Claus Gittinger <cg@exept.de>
parents: 3240
diff changeset
     5
"{ NameSpace: Smalltalk }"
6a8487b950d2 class: GroovyScanner
Claus Gittinger <cg@exept.de>
parents: 3240
diff changeset
     6
2873
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
JavaScanner subclass:#GroovyScanner
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	instanceVariableNames:''
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	classVariableNames:''
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
	poolDictionaries:''
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
	category:'Languages-Groovy-Tools-Source'
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
!
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
3105
7cc116da75e8 Added 'def' to keywords.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3101
diff changeset
    15
!GroovyScanner class methodsFor:'initialization'!
7cc116da75e8 Added 'def' to keywords.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3101
diff changeset
    16
7cc116da75e8 Added 'def' to keywords.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3101
diff changeset
    17
setupKeywordTable
7cc116da75e8 Added 'def' to keywords.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3101
diff changeset
    18
    "initialize the scanners actionTables - these are used to dispatch
7cc116da75e8 Added 'def' to keywords.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3101
diff changeset
    19
     into scanner methods as characters are read"
7cc116da75e8 Added 'def' to keywords.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3101
diff changeset
    20
7cc116da75e8 Added 'def' to keywords.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3101
diff changeset
    21
    super setupKeywordTable.
7cc116da75e8 Added 'def' to keywords.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3101
diff changeset
    22
    KeywordTable at: 'def' put: #def.
7cc116da75e8 Added 'def' to keywords.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3101
diff changeset
    23
7cc116da75e8 Added 'def' to keywords.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3101
diff changeset
    24
    "Created: / 14-05-2014 / 14:06:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7cc116da75e8 Added 'def' to keywords.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3101
diff changeset
    25
! !
7cc116da75e8 Added 'def' to keywords.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3101
diff changeset
    26
3101
446b34b9a386 Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2873
diff changeset
    27
!GroovyScanner methodsFor:'error reporting'!
446b34b9a386 Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2873
diff changeset
    28
446b34b9a386 Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2873
diff changeset
    29
warnPossibleIncompatibility:aString position:smallInteger1 to:smallInteger2
446b34b9a386 Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2873
diff changeset
    30
446b34b9a386 Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2873
diff changeset
    31
    "Created: / 12-05-2014 / 16:23:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
446b34b9a386 Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2873
diff changeset
    32
! !
446b34b9a386 Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2873
diff changeset
    33
2873
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
!GroovyScanner methodsFor:'reading next token'!
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
nextString:delimiter character:ignored
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
    |s pos nextChar inString inTrippleQuoteString |
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
    s := (String new:20) writeStream.
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
    pos := source position.
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
    source next.
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
    nextChar := source next.
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
    inString := true.
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
    inTrippleQuoteString := false.
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
    (delimiter == $" and:[nextChar == $"]) ifTrue:[
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
        source peek == $" ifTrue:[
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
            inTrippleQuoteString := true.
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
            nextChar := source next.
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
            nextChar := source next.
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
        ].
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
    ].
3101
446b34b9a386 Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2873
diff changeset
    54
    (delimiter == $' and:[nextChar == $']) ifTrue:[
446b34b9a386 Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2873
diff changeset
    55
        source peek == $' ifTrue:[
446b34b9a386 Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2873
diff changeset
    56
            inTrippleQuoteString := true.
446b34b9a386 Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2873
diff changeset
    57
            nextChar := source next.
446b34b9a386 Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2873
diff changeset
    58
            nextChar := source next.
446b34b9a386 Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2873
diff changeset
    59
        ].
446b34b9a386 Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2873
diff changeset
    60
    ]. 
2873
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
    [inString] whileTrue:[
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
        nextChar isNil ifTrue:[
3240
4e707dec1e44 Fix in GroovyScanner: honour allowRunawayString
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3105
diff changeset
    64
            allowRunawayString ifTrue:[
4e707dec1e44 Fix in GroovyScanner: honour allowRunawayString
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3105
diff changeset
    65
                tokenValue := s contents.
4e707dec1e44 Fix in GroovyScanner: honour allowRunawayString
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3105
diff changeset
    66
                tokenType := #String.          
4e707dec1e44 Fix in GroovyScanner: honour allowRunawayString
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3105
diff changeset
    67
                ^ tokenType.
4e707dec1e44 Fix in GroovyScanner: honour allowRunawayString
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3105
diff changeset
    68
            ].
2873
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
            self syntaxError:'unexpected end-of-input in String'
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
                    position:pos + 1 to:(source position).
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
            tokenValue := nil.
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
            tokenType := #EOF.
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
            ^ tokenType
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
        ].
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
        nextChar == $\ ifTrue:[
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
            nextChar := source next.
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
            nextChar := self characterEscape:nextChar.
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
        ] ifFalse:[
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
            (nextChar == Character cr) ifTrue:[
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
                lineNr := lineNr + 1
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
            ] ifFalse:[
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
                (nextChar == delimiter) ifTrue:[
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
                    inTrippleQuoteString ifTrue:[
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
                        nextChar := source next.
3101
446b34b9a386 Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2873
diff changeset
    85
                        nextChar == delimiter ifTrue:[
446b34b9a386 Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2873
diff changeset
    86
                            "/ OK, two $"/$' found...
2873
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
                            nextChar := source next.
3101
446b34b9a386 Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2873
diff changeset
    88
                            nextChar == delimiter ifTrue:[
2873
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
                                inString := false.
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
                            ] ifFalse:[
3101
446b34b9a386 Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2873
diff changeset
    91
                                s nextPut:delimiter.
446b34b9a386 Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2873
diff changeset
    92
                                s nextPut:delimiter.
2873
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
                            ].
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
                        ] ifFalse:[
3101
446b34b9a386 Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2873
diff changeset
    95
                            s nextPut:delimiter.
2873
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
                        ].
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
                    ] ifFalse:[
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
                        (source peekOrNil == delimiter) ifTrue:[
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
                            source next
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
                        ] ifFalse:[
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
                            inString := false
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
                        ]
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
                    ]
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
                ].
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
            ].
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
        ].
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
        inString ifTrue:[
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
            s nextPut:nextChar.
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
            nextChar := source next
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
        ]
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
    ].
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
    tokenValue := s contents.
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
    tokenType := #String.
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
    ^ tokenType
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
    "Created: / 18-10-2013 / 12:54:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3240
4e707dec1e44 Fix in GroovyScanner: honour allowRunawayString
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3105
diff changeset
   119
    "Modified: / 18-09-2014 / 11:40:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3101
446b34b9a386 Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2873
diff changeset
   120
!
446b34b9a386 Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2873
diff changeset
   121
446b34b9a386 Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2873
diff changeset
   122
nextToken
446b34b9a386 Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2873
diff changeset
   123
    "Refefined here to support hash-bang"
446b34b9a386 Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2873
diff changeset
   124
446b34b9a386 Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2873
diff changeset
   125
    source position < 1 ifTrue:[ 
446b34b9a386 Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2873
diff changeset
   126
        source peek == $# ifTrue:[ 
446b34b9a386 Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2873
diff changeset
   127
            source next.
446b34b9a386 Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2873
diff changeset
   128
            source peek == $!! ifTrue:[ 
446b34b9a386 Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2873
diff changeset
   129
                source nextLine.
446b34b9a386 Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2873
diff changeset
   130
            ].
446b34b9a386 Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2873
diff changeset
   131
        ].
446b34b9a386 Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2873
diff changeset
   132
    ].
446b34b9a386 Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2873
diff changeset
   133
    ^ super nextToken
446b34b9a386 Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2873
diff changeset
   134
446b34b9a386 Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2873
diff changeset
   135
    "Created: / 12-05-2014 / 16:21:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2873
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
! !
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   137
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
!GroovyScanner class methodsFor:'documentation'!
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   139
3458
6a8487b950d2 class: GroovyScanner
Claus Gittinger <cg@exept.de>
parents: 3240
diff changeset
   140
version_CVS
6a8487b950d2 class: GroovyScanner
Claus Gittinger <cg@exept.de>
parents: 3240
diff changeset
   141
6a8487b950d2 class: GroovyScanner
Claus Gittinger <cg@exept.de>
parents: 3240
diff changeset
   142
    ^ '$Header$'
6a8487b950d2 class: GroovyScanner
Claus Gittinger <cg@exept.de>
parents: 3240
diff changeset
   143
!
6a8487b950d2 class: GroovyScanner
Claus Gittinger <cg@exept.de>
parents: 3240
diff changeset
   144
2873
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   145
version_HG
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147
    ^ '$Changeset: <not expanded> $'
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
! !
3084c43f20a1 Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   149