author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Sat, 19 Jan 2013 23:54:47 +0000 | |
branch | refactoring-vmdata |
changeset 1986 | 9e63ab553922 |
parent 1947 | dbebba5f7d70 |
child 2069 | 75d40b7b986f |
permissions | -rw-r--r-- |
1403
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
1 |
"{ Package: 'stx:libjava/tools' }" |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
2 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
3 |
PPCompositeParser subclass:#JavaParserI |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
4 |
instanceVariableNames:'unicodeEscape rawInputCharacter unicodeMarker hexDigit |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
5 |
lineTerminator unicodeInputCharacter inputElements sub |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
6 |
inputElement whiteSpace comment javaToken keyword literal |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
7 |
separator operator identifier traditionalComment endOfLineComment |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
8 |
commentTail charactersInLine commentTailStar notStar |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
9 |
notStarNotSlash inputCharacter booleanLiteral nullLiteral |
1419 | 10 |
keywords floatingPointLiteral integerLiteral characterLiteral |
11 |
stringLiteral input operators separators block' |
|
1946
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
12 |
classVariableNames:'Debugging' |
1403
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
13 |
poolDictionaries:'' |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
14 |
category:'Languages-Java-Parser' |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
15 |
! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
16 |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
17 |
PPParser subclass:#BlockParser |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
18 |
instanceVariableNames:'' |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
19 |
classVariableNames:'' |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
20 |
poolDictionaries:'' |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
21 |
privateIn:JavaParserI |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
22 |
! |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
23 |
|
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
24 |
PPParser subclass:#TokenParser |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
25 |
instanceVariableNames:'tokenType' |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
26 |
classVariableNames:'' |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
27 |
poolDictionaries:'' |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
28 |
privateIn:JavaParserI |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
29 |
! |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
30 |
|
1879
7d232ff32dde
Refactoring of JavaParserII>>importDeclaration
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1818
diff
changeset
|
31 |
!JavaParserI class methodsFor:'documentation'! |
7d232ff32dde
Refactoring of JavaParserII>>importDeclaration
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1818
diff
changeset
|
32 |
|
7d232ff32dde
Refactoring of JavaParserII>>importDeclaration
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1818
diff
changeset
|
33 |
documentation |
7d232ff32dde
Refactoring of JavaParserII>>importDeclaration
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1818
diff
changeset
|
34 |
" |
7d232ff32dde
Refactoring of JavaParserII>>importDeclaration
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1818
diff
changeset
|
35 |
Part of petit parser for Java. Contains only lexical structure. |
7d232ff32dde
Refactoring of JavaParserII>>importDeclaration
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1818
diff
changeset
|
36 |
Usefull only for inheriting and extending |
7d232ff32dde
Refactoring of JavaParserII>>importDeclaration
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1818
diff
changeset
|
37 |
|
7d232ff32dde
Refactoring of JavaParserII>>importDeclaration
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1818
diff
changeset
|
38 |
[author:] |
7d232ff32dde
Refactoring of JavaParserII>>importDeclaration
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1818
diff
changeset
|
39 |
Jan Vrany <jan.vrany@fit.cvut.cz> |
7d232ff32dde
Refactoring of JavaParserII>>importDeclaration
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1818
diff
changeset
|
40 |
|
7d232ff32dde
Refactoring of JavaParserII>>importDeclaration
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1818
diff
changeset
|
41 |
[instance variables:] |
7d232ff32dde
Refactoring of JavaParserII>>importDeclaration
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1818
diff
changeset
|
42 |
|
7d232ff32dde
Refactoring of JavaParserII>>importDeclaration
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1818
diff
changeset
|
43 |
[class variables:] |
7d232ff32dde
Refactoring of JavaParserII>>importDeclaration
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1818
diff
changeset
|
44 |
|
7d232ff32dde
Refactoring of JavaParserII>>importDeclaration
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1818
diff
changeset
|
45 |
[see also:] |
7d232ff32dde
Refactoring of JavaParserII>>importDeclaration
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1818
diff
changeset
|
46 |
|
7d232ff32dde
Refactoring of JavaParserII>>importDeclaration
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1818
diff
changeset
|
47 |
" |
7d232ff32dde
Refactoring of JavaParserII>>importDeclaration
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1818
diff
changeset
|
48 |
! ! |
1403
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
49 |
|
1946
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
50 |
!JavaParserI class methodsFor:'initialization'! |
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
51 |
|
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
52 |
debugging: aBoolean |
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
53 |
Debugging := aBoolean |
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
54 |
|
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
55 |
" |
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
56 |
JavaParser debugging: true. |
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
57 |
JavaParser debugging: false. |
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
58 |
" |
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
59 |
|
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
60 |
"Created: / 11-01-2013 / 11:32:46 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
61 |
! |
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
62 |
|
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
63 |
initialize |
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
64 |
"Invoked at system start or when the class is dynamically loaded." |
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
65 |
|
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
66 |
"/ please change as required (and remove this comment) |
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
67 |
|
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
68 |
Debugging := false. |
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
69 |
|
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
70 |
"Modified: / 11-01-2013 / 11:32:22 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
71 |
! ! |
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
72 |
|
1403
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
73 |
!JavaParserI class methodsFor:'instance creation'! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
74 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
75 |
new |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
76 |
"return an initialized instance" |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
77 |
|
1947
dbebba5f7d70
Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1946
diff
changeset
|
78 |
^ self basicNew initializeStartingAt: #start. |
dbebba5f7d70
Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1946
diff
changeset
|
79 |
|
dbebba5f7d70
Some more work on source partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1946
diff
changeset
|
80 |
"Modified: / 11-01-2013 / 12:29:11 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
1403
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
81 |
! ! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
82 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
83 |
!JavaParserI class methodsFor:'accessing'! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
84 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
85 |
ignoredNames |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
86 |
"Answer a collection of instance-variables that should not be automatically initialized with productions, but that are used internal to the composite parser." |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
87 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
88 |
| newArray | |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
89 |
newArray := Array new: ((self namesToIgnore size) + (super ignoredNames size)). |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
90 |
newArray |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
91 |
replaceFrom: 1 |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
92 |
to: self namesToIgnore size |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
93 |
with: self namesToIgnore. |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
94 |
newArray |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
95 |
replaceFrom: (self namesToIgnore size + 1) |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
96 |
to: newArray size |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
97 |
with: super ignoredNames. |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
98 |
^newArray |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
99 |
! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
100 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
101 |
namesToIgnore |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
102 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
103 |
^#('keywords' 'operators' 'separators') |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
104 |
! ! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
105 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
106 |
!JavaParserI methodsFor:'accessing'! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
107 |
|
1412 | 108 |
builder |
109 |
||
110 |
^nil |
|
111 |
||
112 |
"Created: / 10-03-2012 / 12:17:30 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
113 |
! |
|
114 |
||
1403
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
115 |
start |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
116 |
"Default start production." |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
117 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
118 |
^ input end |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
119 |
! ! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
120 |
|
1415 | 121 |
!JavaParserI methodsFor:'grammar-blocks'! |
122 |
||
123 |
block |
|
124 |
"Do no parse content of the block" |
|
1420 | 125 |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
126 |
^BlockParser new |
1420 | 127 |
|
128 |
"/ ^ (self tokenFor: '{') , (self tokenFor: '}') |
|
1415 | 129 |
|
130 |
"Created: / 11-03-2012 / 13:20:20 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
131 |
! ! |
|
132 |
||
1403
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
133 |
!JavaParserI methodsFor:'grammar-comments'! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
134 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
135 |
charactersInLine |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
136 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
137 |
^ inputCharacter plus |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
138 |
! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
139 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
140 |
comment |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
141 |
"traditional -> /* |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
142 |
endOfLine -> //" |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
143 |
^ traditionalComment / endOfLineComment |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
144 |
! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
145 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
146 |
commentTail |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
147 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
148 |
^ ('*' asParser , commentTailStar ) / |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
149 |
(notStar , commentTail) |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
150 |
! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
151 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
152 |
commentTailStar |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
153 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
154 |
^ ('/' asParser ) / |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
155 |
('*' asParser , commentTailStar ) / |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
156 |
(notStarNotSlash , commentTail ) |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
157 |
! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
158 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
159 |
endOfLineComment |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
160 |
|
1419 | 161 |
^ 'cxcxcx' asParser |
1403
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
162 |
|
1419 | 163 |
"Modified: / 14-03-2012 / 23:13:39 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
1403
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
164 |
! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
165 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
166 |
notStar |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
167 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
168 |
^ lineTerminator / ('*' asParser not , inputCharacter) |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
169 |
! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
170 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
171 |
notStarNotSlash |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
172 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
173 |
^ lineTerminator / ((PPPredicateObjectParser anyOf: '*/') not , inputCharacter ) |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
174 |
! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
175 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
176 |
traditionalComment |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
177 |
|
1419 | 178 |
^ 'aaaaa' asParser |
1403
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
179 |
|
1419 | 180 |
"Modified: / 14-03-2012 / 23:13:51 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
1403
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
181 |
! ! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
182 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
183 |
!JavaParserI methodsFor:'grammar-identifiers'! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
184 |
|
1417 | 185 |
identifier |
186 |
||
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
187 |
^ (self tokenParserFor:#Identifier) ==> [:token|token value] |
1403
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
188 |
|
1417 | 189 |
|
190 |
"/ ^ self asToken: (((keyword not) , (booleanLiteral not) , (nullLiteral not) , identifierChars )) |
|
191 |
||
1881
80d037e8a596
JavaParser refactoring - qualifiedName & qualifiedNameForImport.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1879
diff
changeset
|
192 |
"Modified: / 15-12-2012 / 22:32:10 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
1403
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
193 |
! ! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
194 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
195 |
!JavaParserI methodsFor:'grammar-input'! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
196 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
197 |
input |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
198 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
199 |
^ (inputElements optional) , (sub optional) |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
200 |
! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
201 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
202 |
inputElement |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
203 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
204 |
^ whiteSpace / comment / javaToken |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
205 |
! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
206 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
207 |
inputElements |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
208 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
209 |
^ inputElement plus |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
210 |
! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
211 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
212 |
javaToken |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
213 |
"/self flag: 'TODO: check order'. |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
214 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
215 |
^ keyword / literal / separator / operator / identifier |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
216 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
217 |
"Modified: / 23-08-2011 / 00:17:29 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
218 |
! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
219 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
220 |
sub |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
221 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
222 |
^ (Character value: 26) asParser |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
223 |
! ! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
224 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
225 |
!JavaParserI methodsFor:'grammar-keywords'! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
226 |
|
1415 | 227 |
abstractKW |
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
228 |
^ self tokenParserFor:'abstract' |
1415 | 229 |
! |
230 |
||
231 |
assertKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
232 |
^ self tokenParserFor:'assert' |
1415 | 233 |
! |
234 |
||
235 |
booleanKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
236 |
^ self tokenParserFor:'boolean' |
1415 | 237 |
! |
238 |
||
239 |
breakKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
240 |
^ self tokenParserFor:'break' |
1415 | 241 |
! |
242 |
||
243 |
byteKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
244 |
^ self tokenParserFor:'byte' |
1415 | 245 |
! |
246 |
||
247 |
caseKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
248 |
^ self tokenParserFor:'case' |
1415 | 249 |
! |
250 |
||
251 |
catchKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
252 |
^ self tokenParserFor:'catch' |
1415 | 253 |
! |
254 |
||
255 |
charKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
256 |
^ self tokenParserFor:'char' |
1415 | 257 |
! |
258 |
||
259 |
classKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
260 |
^ self tokenParserFor:'class' |
1415 | 261 |
! |
262 |
||
263 |
constKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
264 |
^ self tokenParserFor:'const' |
1415 | 265 |
! |
266 |
||
267 |
continueKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
268 |
^ self tokenParserFor:'continue' |
1415 | 269 |
! |
270 |
||
271 |
defaultKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
272 |
^ self tokenParserFor:'default' |
1415 | 273 |
! |
274 |
||
275 |
doKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
276 |
^ self tokenParserFor:'do' |
1415 | 277 |
! |
278 |
||
279 |
doubleKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
280 |
^ self tokenParserFor:'double' |
1415 | 281 |
! |
282 |
||
283 |
elseKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
284 |
^ self tokenParserFor:'else' |
1415 | 285 |
! |
286 |
||
287 |
enumKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
288 |
^ self tokenParserFor:'enum' |
1415 | 289 |
! |
290 |
||
291 |
extendsKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
292 |
^ self tokenParserFor:'extends' |
1415 | 293 |
! |
294 |
||
295 |
finalKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
296 |
^ self tokenParserFor:'final' |
1415 | 297 |
! |
298 |
||
299 |
finallyKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
300 |
^ self tokenParserFor:'finally' |
1415 | 301 |
! |
302 |
||
303 |
floatKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
304 |
^ self tokenParserFor:'float' |
1415 | 305 |
! |
306 |
||
307 |
forKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
308 |
^ self tokenParserFor:'for' |
1415 | 309 |
! |
310 |
||
311 |
gotoKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
312 |
^ self tokenParserFor:'goto' |
1415 | 313 |
! |
314 |
||
315 |
ifKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
316 |
^ self tokenParserFor:'if' |
1415 | 317 |
! |
318 |
||
319 |
implementsKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
320 |
^ self tokenParserFor:'implements' |
1415 | 321 |
! |
322 |
||
323 |
importKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
324 |
^ self tokenParserFor:'import' |
1415 | 325 |
! |
326 |
||
327 |
instanceofKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
328 |
^ self tokenParserFor:'instanceof' |
1415 | 329 |
! |
330 |
||
331 |
intKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
332 |
^ self tokenParserFor:'int' |
1415 | 333 |
! |
334 |
||
335 |
interfaceKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
336 |
^ self tokenParserFor:'interface' |
1415 | 337 |
! |
338 |
||
1403
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
339 |
keyword |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
340 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
341 |
| keywordParsers keywordParser | |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
342 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
343 |
keywordParsers := keywords keys asSortedCollection "/SortedSafely |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
344 |
collect: [:eachKey | keywords at: eachKey ]. |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
345 |
keywordParser := nil. |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
346 |
keywordParsers do:[:each| |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
347 |
keywordParser notNil ifTrue:[ |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
348 |
keywordParser := keywordParser / each |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
349 |
] ifFalse:[ |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
350 |
keywordParser := each |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
351 |
] |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
352 |
]. |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
353 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
354 |
^ "self asToken: "keywordParser |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
355 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
356 |
"Modified: / 09-03-2012 / 20:48:09 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
357 |
! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
358 |
|
1415 | 359 |
longKW |
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
360 |
^ self tokenParserFor:'long' |
1415 | 361 |
! |
362 |
||
363 |
nativeKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
364 |
^ self tokenParserFor:'native' |
1415 | 365 |
! |
366 |
||
367 |
newKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
368 |
^ self tokenParserFor:'new' |
1415 | 369 |
! |
370 |
||
1403
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
371 |
operator |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
372 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
373 |
| operatorParsers operatorParser | |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
374 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
375 |
operatorParsers := operators keys asSortedCollection "/SortedSafely |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
376 |
collect: [:eachKey | operators at: eachKey ]. |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
377 |
operatorParser := nil. |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
378 |
operatorParsers do:[:each| |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
379 |
operatorParser notNil ifTrue:[ |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
380 |
operatorParser := operatorParser / each |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
381 |
] ifFalse:[ |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
382 |
operatorParser := each |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
383 |
] |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
384 |
]. |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
385 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
386 |
^ "self asToken: "operatorParser |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
387 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
388 |
"Modified: / 09-03-2012 / 20:50:35 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
1415 | 389 |
! |
390 |
||
391 |
packageKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
392 |
^ self tokenParserFor:'package' |
1415 | 393 |
! |
394 |
||
395 |
privateKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
396 |
^ self tokenParserFor:'private' |
1415 | 397 |
! |
398 |
||
399 |
protectedKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
400 |
^ self tokenParserFor:'protected' |
1415 | 401 |
! |
402 |
||
403 |
publicKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
404 |
^ self tokenParserFor:'public' |
1415 | 405 |
! |
406 |
||
407 |
returnKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
408 |
^ self tokenParserFor:'return' |
1415 | 409 |
! |
410 |
||
411 |
shortKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
412 |
^ self tokenParserFor:'short' |
1415 | 413 |
! |
414 |
||
415 |
staticKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
416 |
^ self tokenParserFor:'static' |
1415 | 417 |
! |
418 |
||
419 |
strictfpKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
420 |
^ self tokenParserFor:'strictfp' |
1415 | 421 |
! |
422 |
||
423 |
superKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
424 |
^ self tokenParserFor:'super' |
1415 | 425 |
! |
426 |
||
427 |
switchKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
428 |
^ self tokenParserFor:'switch' |
1415 | 429 |
! |
430 |
||
431 |
synchronizedKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
432 |
^ self tokenParserFor:'synchronized' |
1415 | 433 |
! |
434 |
||
435 |
thisKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
436 |
^ self tokenParserFor:'this' |
1415 | 437 |
! |
438 |
||
439 |
throwKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
440 |
^ self tokenParserFor:'throw' |
1415 | 441 |
! |
442 |
||
443 |
throwsKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
444 |
^ self tokenParserFor:'throws' |
1415 | 445 |
! |
446 |
||
447 |
transientKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
448 |
^ self tokenParserFor:'transient' |
1415 | 449 |
! |
450 |
||
451 |
tryKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
452 |
^ self tokenParserFor:'try' |
1415 | 453 |
! |
454 |
||
455 |
voidKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
456 |
^ self tokenParserFor:'void' |
1415 | 457 |
! |
458 |
||
459 |
volatileKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
460 |
^ self tokenParserFor:'volatile' |
1415 | 461 |
! |
462 |
||
463 |
whileKW |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
464 |
^ self tokenParserFor:'while' |
1403
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
465 |
! ! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
466 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
467 |
!JavaParserI methodsFor:'grammar-lineTerminators'! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
468 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
469 |
inputCharacter |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
470 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
471 |
^(lineTerminator not) , unicodeInputCharacter ==> #second |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
472 |
! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
473 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
474 |
lineTerminator |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
475 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
476 |
^ (Character lf asParser) / (Character cr asParser , (Character lf asParser ) optional ) |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
477 |
! ! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
478 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
479 |
!JavaParserI methodsFor:'grammar-literals'! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
480 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
481 |
literal |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
482 |
"a literal must be a single token. Whitespaces are not allowed inside the literal" |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
483 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
484 |
^" self asToken: "(nullLiteral / booleanLiteral / floatingPointLiteral / integerLiteral / characterLiteral / stringLiteral) |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
485 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
486 |
"Modified: / 09-03-2012 / 20:49:04 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
487 |
! ! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
488 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
489 |
!JavaParserI methodsFor:'grammar-literals-boolean'! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
490 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
491 |
booleanLiteral |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
492 |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
493 |
^ self tokenParserFor:#boolean |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
494 |
"Modified: / 14-03-2012 / 23:36:55 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
1419 | 495 |
|
496 |
"Modified: / 14-03-2012 / 23:36:55 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1403
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
497 |
! ! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
498 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
499 |
!JavaParserI methodsFor:'grammar-literals-character'! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
500 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
501 |
characterLiteral |
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
502 |
^ self tokenParserFor:#Character |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
503 |
"Modified: / 15-03-2012 / 00:11:19 / Jan Vrany <jan.vrany@fit.cvut.cz>" "Modified (format): / 15-03-2012 / 08:35:46 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
1403
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
504 |
|
1419 | 505 |
"Modified: / 15-03-2012 / 00:11:19 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
506 |
"Modified (format): / 15-03-2012 / 08:35:46 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1403
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
507 |
! ! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
508 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
509 |
!JavaParserI methodsFor:'grammar-literals-floating'! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
510 |
|
1419 | 511 |
floatingPointLiteral |
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
512 |
^ (self tokenParserFor:#Float) / |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
513 |
(self tokenParserFor:#Double) |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
514 |
"Modified: / 15-03-2012 / 00:03:12 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
1403
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
515 |
|
1419 | 516 |
"Modified: / 15-03-2012 / 00:03:12 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
1403
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
517 |
! ! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
518 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
519 |
!JavaParserI methodsFor:'grammar-literals-integer'! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
520 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
521 |
integerLiteral |
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
522 |
^ (self tokenParserFor:#Integer) / |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
523 |
(self tokenParserFor:#LongInteger) |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
524 |
"Modified: / 15-03-2012 / 00:00:01 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
1403
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
525 |
|
1419 | 526 |
"Modified: / 15-03-2012 / 00:00:01 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
1403
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
527 |
! ! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
528 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
529 |
!JavaParserI methodsFor:'grammar-literals-null'! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
530 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
531 |
nullLiteral |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
532 |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
533 |
^ self tokenParserFor:#null |
1419 | 534 |
|
535 |
"Modified: / 14-03-2012 / 23:22:46 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1403
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
536 |
! ! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
537 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
538 |
!JavaParserI methodsFor:'grammar-literals-string'! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
539 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
540 |
stringLiteral |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
541 |
|
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
542 |
^ self tokenParserFor:#String |
1419 | 543 |
|
544 |
"Modified: / 14-03-2012 / 23:42:45 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1403
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
545 |
! ! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
546 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
547 |
!JavaParserI methodsFor:'grammar-separators'! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
548 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
549 |
separator |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
550 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
551 |
"should it be: |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
552 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
553 |
| separatorParsers | |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
554 |
separatorParsers := separators keysSortedSafely |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
555 |
collect: [:eachKey | separators at: eachKey ]. |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
556 |
^ (separatorParsers reduce: [ :a :b | a / b ]) token trimBlanks |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
557 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
558 |
for consistency to keywords and operators ?" |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
559 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
560 |
^"self asToken: "(PPPredicateObjectParser anyOf: '(){}[];,.' ) |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
561 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
562 |
"Modified: / 09-03-2012 / 20:49:15 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
563 |
! ! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
564 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
565 |
!JavaParserI methodsFor:'grammar-unicode-escapes'! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
566 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
567 |
hexDigit |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
568 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
569 |
^#hex asParser |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
570 |
! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
571 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
572 |
rawInputCharacter |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
573 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
574 |
^#any asParser |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
575 |
! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
576 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
577 |
unicodeEscape |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
578 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
579 |
^ $\ asParser , unicodeMarker , hexDigit , hexDigit , hexDigit , hexDigit |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
580 |
! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
581 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
582 |
unicodeInputCharacter |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
583 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
584 |
^ unicodeEscape / rawInputCharacter |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
585 |
! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
586 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
587 |
unicodeMarker |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
588 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
589 |
^$u asParser plus |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
590 |
! ! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
591 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
592 |
!JavaParserI methodsFor:'grammar-whiteSpace'! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
593 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
594 |
whiteSpace |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
595 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
596 |
^ (Character space asParser ) / |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
597 |
(Character tab asParser ) / |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
598 |
((Character value: 12) asParser ) / |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
599 |
lineTerminator |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
600 |
! ! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
601 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
602 |
!JavaParserI methodsFor:'initialization'! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
603 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
604 |
initialize |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
605 |
|
1412 | 606 |
super initialize. |
607 |
"/self initializeStartingAt: #start. |
|
608 |
||
609 |
self initializeKeywords. |
|
610 |
self initializeOperators. |
|
611 |
self initializeSeparators. |
|
612 |
||
613 |
"Modified: / 10-03-2012 / 12:13:15 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1403
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
614 |
! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
615 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
616 |
initializeKeywords |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
617 |
|
1412 | 618 |
| values | |
619 |
keywords := Dictionary new. |
|
620 |
values := #('abstract' 'assert' 'boolean' 'break' 'byte' 'case' 'catch' 'char' 'class' 'const' |
|
621 |
'continue' 'default' 'do' 'double' 'else' 'enum' 'extends' 'final' 'finally' 'float' |
|
622 |
'for' 'if' 'goto' 'implements' 'import' 'instanceof' 'int' 'interface' 'long' 'native' |
|
623 |
'new' 'package' 'private' 'protected' 'public' 'return' 'short' 'static' 'strictfp' 'super' |
|
624 |
'switch' 'synchronized' 'this' 'throw' 'throws' 'transient' 'try' 'void' 'volatile' 'while'). |
|
625 |
||
626 |
values do: [:eachKeyword | |
|
627 |
keywords at: eachKeyword |
|
628 |
put: (PPUnresolvedParser named: ('keyword', eachKeyword first asUppercase asString , eachKeyword allButFirst)) |
|
629 |
]. |
|
630 |
||
631 |
keywords keysAndValuesDo: [:key :value | |
|
632 |
(keywords at: key) def: key asParser trim |
|
633 |
] |
|
634 |
||
635 |
"Modified: / 10-03-2012 / 13:16:05 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1403
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
636 |
! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
637 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
638 |
initializeOperators |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
639 |
|
1412 | 640 |
| values | |
641 |
operators := Dictionary new. |
|
642 |
values := #( '>>>=' '>>>' '>>=' '>>' '>=' '>' '<<=' '<<' '<=' '<' '++' '+=' '+' '--' '-=' '-' '&&' '&=' '&' |
|
643 |
'||' '|=' '|' '*=' '*' '%=' '%' '/=' '/' '^=' '^' '!!=' '!!' '==' '=' '~' '?' ':' '@' ). |
|
644 |
||
645 |
values do: [:eachOperator | |
|
646 |
operators at: eachOperator |
|
647 |
put: (PPUnresolvedParser named: ('operator', eachOperator asString)) |
|
648 |
]. |
|
649 |
||
650 |
operators keysAndValuesDo: [:key :value | |
|
651 |
(operators at: key) def: (key asParser trim)] |
|
652 |
||
653 |
"Modified: / 10-03-2012 / 13:16:28 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1403
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
654 |
! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
655 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
656 |
initializeSeparators |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
657 |
|
1412 | 658 |
| values | |
659 |
separators := Dictionary new. |
|
660 |
values := #( '(' ')' '{' '}' '[' ']' ';' ',' '.' ). |
|
661 |
||
662 |
values do: [:eachSeparator | |
|
663 |
separators at: eachSeparator |
|
664 |
put: (PPUnresolvedParser named: ('separator', eachSeparator asString)) |
|
665 |
]. |
|
666 |
||
667 |
separators keysAndValuesDo: [:key :value | |
|
668 |
(separators at: key) def: (key asParser trim)] |
|
669 |
||
670 |
"Modified: / 10-03-2012 / 13:16:35 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1419 | 671 |
! |
672 |
||
673 |
initializeStartingAt: aSymbol |
|
674 |
| allVariableNames ignoredVariableNames productionIndexesAndNames debugger | |
|
675 |
self initialize. |
|
676 |
||
1946
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
677 |
Debugging ifTrue:[ |
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
678 |
PPDebugger notNil ifTrue:[ |
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
679 |
self assert: (Smalltalk loadPackage: 'stx:goodies/petitparser/devtools'). |
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
680 |
debugger := PPDebugger new |
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
681 |
]. |
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
682 |
]. |
1419 | 683 |
"find all the productions that need to be initialized" |
684 |
allVariableNames := self class allInstVarNames |
|
685 |
collect: [ :each | each asSymbol ]. |
|
686 |
ignoredVariableNames := self class ignoredNames |
|
687 |
collect: [ :each | each asSymbol ]. |
|
688 |
productionIndexesAndNames := ((1 to: self class instSize) |
|
689 |
collect: [ :index | index -> (allVariableNames at: index) ]) |
|
690 |
reject: [ :assoc | ignoredVariableNames includes: assoc value ]. |
|
691 |
||
692 |
"initialize productions with an undefined parser to be replaced later" |
|
693 |
parser := PPUnresolvedParser named: aSymbol. |
|
694 |
productionIndexesAndNames do: [ :assoc | |
|
695 |
self instVarAt: assoc key put: (PPUnresolvedParser named: assoc value) ]. |
|
696 |
parser def: (self perform: aSymbol). |
|
697 |
||
698 |
"resolve unresolved parsers with their actual implementation" |
|
699 |
productionIndexesAndNames do: [ :assoc | |
|
700 |
(self respondsTo: assoc value) |
|
701 |
ifFalse: [ self error: 'Unable to initialize ' , assoc value printString ] |
|
1946
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
702 |
ifTrue: [ |
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
703 |
| production | |
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
704 |
production := ((self perform: assoc value) name: assoc value; yourself). |
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
705 |
Debugging ifTrue:[ |
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
706 |
production := PPDebuggingParser parser: production debugger: debugger |
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
707 |
]. |
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
708 |
|
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
709 |
(self instVarAt: assoc key) def: production. |
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
710 |
|
1419 | 711 |
] ] |
712 |
||
713 |
"Created: / 12-03-2012 / 16:51:01 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1946
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
714 |
"Modified: / 11-01-2013 / 11:35:52 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
1412 | 715 |
! ! |
716 |
||
1420 | 717 |
!JavaParserI methodsFor:'parsing'! |
718 |
||
719 |
parse: anObject |
|
720 |
"Parse anObject with the receiving parser and answer the parse-result or an instance of PPFailure." |
|
721 |
||
1424
9d8337007106
Fixes in JavaSyntaxHighlighter to use new JavaParser
vranyj1
parents:
1421
diff
changeset
|
722 |
| scanner | |
9d8337007106
Fixes in JavaSyntaxHighlighter to use new JavaParser
vranyj1
parents:
1421
diff
changeset
|
723 |
|
9d8337007106
Fixes in JavaSyntaxHighlighter to use new JavaParser
vranyj1
parents:
1421
diff
changeset
|
724 |
(anObject isKindOf: JavaScanner) ifFalse:[ |
9d8337007106
Fixes in JavaSyntaxHighlighter to use new JavaParser
vranyj1
parents:
1421
diff
changeset
|
725 |
scanner := JavaScanner for: anObject readStream. |
9d8337007106
Fixes in JavaSyntaxHighlighter to use new JavaParser
vranyj1
parents:
1421
diff
changeset
|
726 |
] ifTrue:[ |
9d8337007106
Fixes in JavaSyntaxHighlighter to use new JavaParser
vranyj1
parents:
1421
diff
changeset
|
727 |
scanner := anObject |
9d8337007106
Fixes in JavaSyntaxHighlighter to use new JavaParser
vranyj1
parents:
1421
diff
changeset
|
728 |
]. |
9d8337007106
Fixes in JavaSyntaxHighlighter to use new JavaParser
vranyj1
parents:
1421
diff
changeset
|
729 |
|
9d8337007106
Fixes in JavaSyntaxHighlighter to use new JavaParser
vranyj1
parents:
1421
diff
changeset
|
730 |
^super parse: scanner |
1420 | 731 |
|
732 |
"Created: / 15-03-2012 / 11:10:53 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
733 |
! ! |
|
734 |
||
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
735 |
!JavaParserI methodsFor:'private'! |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
736 |
|
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
737 |
tokenParserFor: aSymbol |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
738 |
^TokenParser for:aSymbol |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
739 |
|
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
740 |
"Created: / 11-01-2013 / 11:12:36 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
741 |
! ! |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
742 |
|
1412 | 743 |
!JavaParserI methodsFor:'querying'! |
744 |
||
745 |
productionAt: aSymbol ifAbsent: aBlock |
|
746 |
"Answer the production named aSymbol, if there is no such production answer the result of evaluating aBlock." |
|
747 |
||
748 |
parser isNil ifTrue:[ |
|
749 |
self initializeStartingAt: aSymbol. |
|
750 |
]. |
|
751 |
^super productionAt: aSymbol ifAbsent: aBlock |
|
752 |
||
753 |
"Created: / 10-03-2012 / 12:15:29 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1403
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
754 |
! ! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
755 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
756 |
!JavaParserI methodsFor:'utility'! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
757 |
|
1415 | 758 |
asToken:aParser |
759 |
^aParser |
|
1403
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
760 |
|
1415 | 761 |
"Created: / 11-03-2012 / 08:43:51 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
1403
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
762 |
! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
763 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
764 |
emptySquaredParenthesis |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
765 |
|
1419 | 766 |
^ (self tokenFor:$[) , (self tokenFor:$]) |
1415 | 767 |
|
768 |
"Created: / 11-03-2012 / 00:02:09 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1403
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
769 |
! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
770 |
|
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
771 |
tokenFor: aString |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
772 |
|
1419 | 773 |
^aString size == 1 ifTrue:[ |
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
774 |
self tokenParserFor:aString first |
1412 | 775 |
] ifFalse:[ |
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
776 |
self tokenParserFor:aString |
1412 | 777 |
] |
1403
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
778 |
|
1415 | 779 |
|
1419 | 780 |
"/ | p | |
781 |
"/ |
|
782 |
"/ p := keywords at: aString ifAbsent:[nil]. |
|
783 |
"/ p notNil ifTrue:[ ^ self asToken: p ]. |
|
784 |
"/ |
|
785 |
"/ p := operators at: aString ifAbsent:[nil]. |
|
786 |
"/ p notNil ifTrue:[ ^ self asToken: p ]. |
|
787 |
"/ |
|
788 |
"/ p := separators at: aString ifAbsent:[nil]. |
|
789 |
"/ p notNil ifTrue:[ ^ self asToken: p ]. |
|
790 |
"/ |
|
791 |
"/ self error: 'Should not be reached' |
|
1415 | 792 |
|
1419 | 793 |
"Modified: / 15-03-2012 / 08:53:08 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
1415 | 794 |
! ! |
795 |
||
1944
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
796 |
!JavaParserI::BlockParser class methodsFor:'documentation'! |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
797 |
|
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
798 |
version_HG |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
799 |
|
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
800 |
^ '$Changeset: <not expanded> $' |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
801 |
! |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
802 |
|
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
803 |
version_SVN |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
804 |
^ '§Id§' |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
805 |
! ! |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
806 |
|
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
807 |
!JavaParserI::BlockParser methodsFor:'parsing'! |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
808 |
|
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
809 |
parseOn: aStream |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
810 |
|
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
811 |
| openCount peekC start stop | |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
812 |
|
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
813 |
aStream skipSeparators. |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
814 |
peekC := aStream peek. |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
815 |
peekC == #/ ifTrue:[ |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
816 |
aStream next. |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
817 |
aStream skipComment |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
818 |
]. |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
819 |
|
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
820 |
peekC ~~ ${ ifTrue:[ |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
821 |
^ PPFailure message: ('unexpected char (got ', peekC, ' expecting { )') at: aStream position |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
822 |
]. |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
823 |
openCount := 1. |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
824 |
aStream next. |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
825 |
start := aStream position. |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
826 |
[ openCount ~~ 0 ] whileTrue:[ |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
827 |
aStream atEnd ifTrue:[ |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
828 |
^ PPFailure message: ('unexpected end of input') at: aStream position |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
829 |
]. |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
830 |
peekC := aStream peek. |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
831 |
peekC == ${ ifTrue:[ |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
832 |
aStream next. |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
833 |
openCount := openCount + 1 |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
834 |
] ifFalse:[peekC == $} ifTrue:[ |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
835 |
aStream next. |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
836 |
openCount := openCount - 1 |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
837 |
] ifFalse:[peekC == $/ ifTrue:[ |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
838 |
aStream next. |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
839 |
aStream peek == $* ifTrue:[ |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
840 |
aStream next. |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
841 |
aStream rememberTokenStartPosition:2. |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
842 |
aStream skipComment |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
843 |
] ifFalse:[ |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
844 |
aStream peek == $/ ifTrue:[ |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
845 |
aStream next. |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
846 |
aStream rememberTokenStartPosition:0. |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
847 |
aStream skipEOLComment |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
848 |
] |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
849 |
] |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
850 |
] ifFalse:[peekC == $" ifTrue:[ |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
851 |
aStream rememberTokenStartPosition. |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
852 |
aStream nextString: $" character: false. |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
853 |
] ifFalse:[peekC == $' ifTrue:[ |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
854 |
aStream rememberTokenStartPosition. |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
855 |
aStream nextString: $' character: true. |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
856 |
] ifFalse:[ |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
857 |
aStream next |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
858 |
]]]]] |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
859 |
]. |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
860 |
stop := aStream position. |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
861 |
JavaScanner::Token new |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
862 |
type: #__Block__; |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
863 |
value: nil; |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
864 |
startPosition: start; |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
865 |
endPosition: stop; |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
866 |
yourself. |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
867 |
|
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
868 |
|
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
869 |
|
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
870 |
" |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
871 |
( JavaBlockParser new trim , ';' asParser trim) parse: '{ } ;' |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
872 |
|
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
873 |
" |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
874 |
|
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
875 |
"Modified: / 11-01-2013 / 11:14:45 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
876 |
! ! |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
877 |
|
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
878 |
!JavaParserI::TokenParser class methodsFor:'documentation'! |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
879 |
|
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
880 |
version_HG |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
881 |
|
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
882 |
^ '$Changeset: <not expanded> $' |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
883 |
! |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
884 |
|
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
885 |
version_SVN |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
886 |
^ '§Id§' |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
887 |
! ! |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
888 |
|
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
889 |
!JavaParserI::TokenParser class methodsFor:'instance creation'! |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
890 |
|
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
891 |
for: tokenType |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
892 |
|
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
893 |
^self new tokenType: tokenType |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
894 |
|
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
895 |
"Created: / 14-03-2012 / 23:10:29 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
896 |
! ! |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
897 |
|
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
898 |
!JavaParserI::TokenParser methodsFor:'accessing'! |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
899 |
|
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
900 |
tokenType |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
901 |
^ tokenType |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
902 |
! |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
903 |
|
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
904 |
tokenType:something |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
905 |
tokenType := something. |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
906 |
! ! |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
907 |
|
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
908 |
!JavaParserI::TokenParser methodsFor:'parsing'! |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
909 |
|
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
910 |
parseOn:aJavaScanner |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
911 |
"Parse aStream with the receiving parser and answer the parse-result or an instance of PPFailure. |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
912 |
Override this method in subclasses to specify custom parse behavior. Do not call this method from outside, |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
913 |
instead use #parse:." |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
914 |
|
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
915 |
| pos | |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
916 |
|
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
917 |
pos := aJavaScanner position. |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
918 |
|
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
919 |
^(aJavaScanner nextToken = tokenType) ifTrue:[ |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
920 |
aJavaScanner token |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
921 |
] ifFalse:[ |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
922 |
aJavaScanner position: pos. |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
923 |
PPFailure message: (tokenType printString , ' token expected (got ', aJavaScanner tokenType , ' {',(aJavaScanner tokenValue ? '<nil>') printString,'})') at: aJavaScanner position |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
924 |
] |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
925 |
|
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
926 |
"Modified: / 17-03-2012 / 13:34:15 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
927 |
! ! |
25a444558ba2
Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1881
diff
changeset
|
928 |
|
1403
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
929 |
!JavaParserI class methodsFor:'documentation'! |
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
930 |
|
1879
7d232ff32dde
Refactoring of JavaParserII>>importDeclaration
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1818
diff
changeset
|
931 |
version_HG |
7d232ff32dde
Refactoring of JavaParserII>>importDeclaration
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1818
diff
changeset
|
932 |
|
7d232ff32dde
Refactoring of JavaParserII>>importDeclaration
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1818
diff
changeset
|
933 |
^ '$Changeset: <not expanded> $' |
7d232ff32dde
Refactoring of JavaParserII>>importDeclaration
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1818
diff
changeset
|
934 |
! |
7d232ff32dde
Refactoring of JavaParserII>>importDeclaration
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1818
diff
changeset
|
935 |
|
1403
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
936 |
version_SVN |
1879
7d232ff32dde
Refactoring of JavaParserII>>importDeclaration
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1818
diff
changeset
|
937 |
^ '§Id§' |
1403
1740f7ba7015
Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff
changeset
|
938 |
! ! |
1946
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
939 |
|
e61f570d24f2
Added debugging flag to JavaParser. Removed old parser tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1944
diff
changeset
|
940 |
JavaParserI initialize! |