author | Claus Gittinger <cg@exept.de> |
Sun, 23 Feb 2020 14:10:52 +0100 | |
branch | cvs_MAIN |
changeset 3999 | d7c199709abd |
parent 3980 | c6875f04c2f4 |
permissions | -rw-r--r-- |
3458 | 1 |
"{ Encoding: utf8 }" |
2 |
||
3980 | 3 |
" |
4 |
COPYRIGHT (c) 2018 by eXept Software AG |
|
5 |
All Rights Reserved |
|
6 |
||
7 |
This software is furnished under a license and may be used |
|
8 |
only in accordance with the terms of that license and with the |
|
9 |
inclusion of the above copyright notice. This software may not |
|
10 |
be provided or otherwise made available to, or used by, any |
|
11 |
other person. No title to or ownership of the software is |
|
12 |
hereby transferred. |
|
13 |
" |
|
2873
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
14 |
"{ Package: 'stx:libjava/tools' }" |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
15 |
|
3458 | 16 |
"{ NameSpace: Smalltalk }" |
17 |
||
2873
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
18 |
JavaScanner subclass:#GroovyScanner |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
19 |
instanceVariableNames:'' |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
20 |
classVariableNames:'' |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
21 |
poolDictionaries:'' |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
22 |
category:'Languages-Groovy-Tools-Source' |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
23 |
! |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
24 |
|
3980 | 25 |
!GroovyScanner class methodsFor:'documentation'! |
26 |
||
27 |
copyright |
|
28 |
" |
|
29 |
COPYRIGHT (c) 2018 by eXept Software AG |
|
30 |
All Rights Reserved |
|
31 |
||
32 |
This software is furnished under a license and may be used |
|
33 |
only in accordance with the terms of that license and with the |
|
34 |
inclusion of the above copyright notice. This software may not |
|
35 |
be provided or otherwise made available to, or used by, any |
|
36 |
other person. No title to or ownership of the software is |
|
37 |
hereby transferred. |
|
38 |
" |
|
39 |
! ! |
|
2873
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
40 |
|
3105
7cc116da75e8
Added 'def' to keywords.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3101
diff
changeset
|
41 |
!GroovyScanner class methodsFor:'initialization'! |
7cc116da75e8
Added 'def' to keywords.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3101
diff
changeset
|
42 |
|
7cc116da75e8
Added 'def' to keywords.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3101
diff
changeset
|
43 |
setupKeywordTable |
7cc116da75e8
Added 'def' to keywords.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3101
diff
changeset
|
44 |
"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
|
45 |
into scanner methods as characters are read" |
7cc116da75e8
Added 'def' to keywords.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3101
diff
changeset
|
46 |
|
7cc116da75e8
Added 'def' to keywords.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3101
diff
changeset
|
47 |
super setupKeywordTable. |
7cc116da75e8
Added 'def' to keywords.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3101
diff
changeset
|
48 |
KeywordTable at: 'def' put: #def. |
7cc116da75e8
Added 'def' to keywords.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3101
diff
changeset
|
49 |
|
7cc116da75e8
Added 'def' to keywords.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3101
diff
changeset
|
50 |
"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
|
51 |
! ! |
7cc116da75e8
Added 'def' to keywords.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3101
diff
changeset
|
52 |
|
3101
446b34b9a386
Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2873
diff
changeset
|
53 |
!GroovyScanner methodsFor:'error reporting'! |
446b34b9a386
Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2873
diff
changeset
|
54 |
|
446b34b9a386
Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2873
diff
changeset
|
55 |
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
|
56 |
|
446b34b9a386
Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2873
diff
changeset
|
57 |
"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
|
58 |
! ! |
446b34b9a386
Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2873
diff
changeset
|
59 |
|
2873
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
60 |
!GroovyScanner methodsFor:'reading next token'! |
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 |
nextString:delimiter character:ignored |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
63 |
|s pos nextChar inString inTrippleQuoteString | |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
64 |
|
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
65 |
s := (String new:20) writeStream. |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
66 |
|
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
67 |
pos := source position. |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
68 |
source next. |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
69 |
nextChar := source next. |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
70 |
inString := true. |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
71 |
inTrippleQuoteString := false. |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
72 |
|
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
73 |
(delimiter == $" and:[nextChar == $"]) ifTrue:[ |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
74 |
source peek == $" ifTrue:[ |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
75 |
inTrippleQuoteString := true. |
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 := source next. |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
78 |
]. |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
79 |
]. |
3101
446b34b9a386
Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2873
diff
changeset
|
80 |
(delimiter == $' and:[nextChar == $']) ifTrue:[ |
446b34b9a386
Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2873
diff
changeset
|
81 |
source peek == $' ifTrue:[ |
446b34b9a386
Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2873
diff
changeset
|
82 |
inTrippleQuoteString := true. |
446b34b9a386
Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2873
diff
changeset
|
83 |
nextChar := source next. |
446b34b9a386
Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2873
diff
changeset
|
84 |
nextChar := source next. |
446b34b9a386
Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2873
diff
changeset
|
85 |
]. |
446b34b9a386
Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2873
diff
changeset
|
86 |
]. |
2873
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
87 |
|
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
88 |
[inString] whileTrue:[ |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
89 |
nextChar isNil ifTrue:[ |
3240
4e707dec1e44
Fix in GroovyScanner: honour allowRunawayString
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3105
diff
changeset
|
90 |
allowRunawayString ifTrue:[ |
4e707dec1e44
Fix in GroovyScanner: honour allowRunawayString
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3105
diff
changeset
|
91 |
tokenValue := s contents. |
4e707dec1e44
Fix in GroovyScanner: honour allowRunawayString
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3105
diff
changeset
|
92 |
tokenType := #String. |
4e707dec1e44
Fix in GroovyScanner: honour allowRunawayString
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3105
diff
changeset
|
93 |
^ tokenType. |
4e707dec1e44
Fix in GroovyScanner: honour allowRunawayString
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3105
diff
changeset
|
94 |
]. |
2873
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
95 |
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
|
96 |
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
|
97 |
tokenValue := nil. |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
98 |
tokenType := #EOF. |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
99 |
^ tokenType |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
100 |
]. |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
101 |
nextChar == $\ ifTrue:[ |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
102 |
nextChar := source next. |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
103 |
nextChar := self characterEscape:nextChar. |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
104 |
] ifFalse:[ |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
105 |
(nextChar == Character cr) ifTrue:[ |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
106 |
lineNr := lineNr + 1 |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
107 |
] ifFalse:[ |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
108 |
(nextChar == delimiter) ifTrue:[ |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
109 |
inTrippleQuoteString ifTrue:[ |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
110 |
nextChar := source next. |
3101
446b34b9a386
Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2873
diff
changeset
|
111 |
nextChar == delimiter ifTrue:[ |
446b34b9a386
Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2873
diff
changeset
|
112 |
"/ OK, two $"/$' found... |
2873
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
113 |
nextChar := source next. |
3101
446b34b9a386
Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2873
diff
changeset
|
114 |
nextChar == delimiter ifTrue:[ |
2873
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
115 |
inString := false. |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
116 |
] ifFalse:[ |
3101
446b34b9a386
Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2873
diff
changeset
|
117 |
s nextPut:delimiter. |
446b34b9a386
Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2873
diff
changeset
|
118 |
s nextPut:delimiter. |
2873
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
119 |
]. |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
120 |
] ifFalse:[ |
3101
446b34b9a386
Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2873
diff
changeset
|
121 |
s nextPut:delimiter. |
2873
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
122 |
]. |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
123 |
] ifFalse:[ |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
124 |
(source peekOrNil == delimiter) ifTrue:[ |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
125 |
source next |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
126 |
] ifFalse:[ |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
127 |
inString := false |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
128 |
] |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
129 |
] |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
130 |
]. |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
131 |
]. |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
132 |
]. |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
133 |
inString ifTrue:[ |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
134 |
s nextPut:nextChar. |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
135 |
nextChar := source next |
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 |
|
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
139 |
tokenValue := s contents. |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
140 |
tokenType := #String. |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
141 |
|
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
142 |
^ tokenType |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
143 |
|
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
144 |
"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
|
145 |
"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
|
146 |
! |
446b34b9a386
Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2873
diff
changeset
|
147 |
|
446b34b9a386
Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2873
diff
changeset
|
148 |
nextToken |
446b34b9a386
Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2873
diff
changeset
|
149 |
"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
|
150 |
|
446b34b9a386
Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2873
diff
changeset
|
151 |
source position < 1 ifTrue:[ |
446b34b9a386
Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2873
diff
changeset
|
152 |
source peek == $# ifTrue:[ |
446b34b9a386
Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2873
diff
changeset
|
153 |
source next. |
446b34b9a386
Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2873
diff
changeset
|
154 |
source peek == $!! ifTrue:[ |
446b34b9a386
Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2873
diff
changeset
|
155 |
source nextLine. |
446b34b9a386
Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2873
diff
changeset
|
156 |
]. |
446b34b9a386
Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2873
diff
changeset
|
157 |
]. |
446b34b9a386
Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2873
diff
changeset
|
158 |
]. |
446b34b9a386
Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2873
diff
changeset
|
159 |
^ super nextToken |
446b34b9a386
Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2873
diff
changeset
|
160 |
|
446b34b9a386
Fixed GroovyScanner w.r.t ''' multiline comments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2873
diff
changeset
|
161 |
"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
|
162 |
! ! |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
163 |
|
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
164 |
!GroovyScanner class methodsFor:'documentation'! |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
165 |
|
3458 | 166 |
version_CVS |
167 |
||
168 |
^ '$Header$' |
|
169 |
! |
|
170 |
||
2873
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
171 |
version_HG |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
172 |
|
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
173 |
^ '$Changeset: <not expanded> $' |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
174 |
! ! |
3084c43f20a1
Introduced GroovyScanner with support for Groovy-only tokens...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
175 |