author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Sun, 10 May 2015 14:20:24 +0100 | |
changeset 454 | a9cd5ea7cc36 |
parent 436 | e1c44b571db9 |
permissions | -rw-r--r-- |
435 | 1 |
"{ Package: 'stx:goodies/petitparser/parsers/java' }" |
2 |
||
3 |
"{ NameSpace: Smalltalk }" |
|
4 |
||
5 |
PPParser subclass:#PPJavaWhitespaceParser |
|
6 |
instanceVariableNames:'separator' |
|
7 |
classVariableNames:'' |
|
8 |
poolDictionaries:'' |
|
9 |
category:'PetitJava-Core' |
|
10 |
! |
|
11 |
||
454
a9cd5ea7cc36
Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
436
diff
changeset
|
12 |
|
435 | 13 |
!PPJavaWhitespaceParser methodsFor:'as yet unclassified'! |
14 |
||
15 |
acceptsEpsilon |
|
16 |
^ true |
|
17 |
! |
|
18 |
||
19 |
acceptsEpsilonOpenSet: set |
|
20 |
^ true |
|
21 |
! |
|
22 |
||
23 |
firstCharParser |
|
24 |
^ PPFailingParser new |
|
25 |
! |
|
26 |
||
27 |
firstCharSet |
|
28 |
^ PPCharSetPredicate on: [:e | false ] |
|
29 |
! |
|
30 |
||
31 |
isNullable |
|
32 |
^ true |
|
33 |
! |
|
34 |
||
35 |
name |
|
36 |
^ 'java_ws' |
|
37 |
! |
|
38 |
||
39 |
parseOn: context |
|
454
a9cd5ea7cc36
Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
436
diff
changeset
|
40 |
|
a9cd5ea7cc36
Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
436
diff
changeset
|
41 |
| start | |
435 | 42 |
|
454
a9cd5ea7cc36
Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
436
diff
changeset
|
43 |
[ |
a9cd5ea7cc36
Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
436
diff
changeset
|
44 |
| peekTwice | |
a9cd5ea7cc36
Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
436
diff
changeset
|
45 |
[ context atEnd not and: [ context peek isSeparator ] ] |
a9cd5ea7cc36
Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
436
diff
changeset
|
46 |
whileTrue: [ context next ]. |
a9cd5ea7cc36
Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
436
diff
changeset
|
47 |
peekTwice := context peekTwice. |
a9cd5ea7cc36
Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
436
diff
changeset
|
48 |
((peekTwice first = $/) and: |
a9cd5ea7cc36
Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
436
diff
changeset
|
49 |
[ (peekTwice second = $*) or: [peekTwice second = $/]]) |
a9cd5ea7cc36
Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
436
diff
changeset
|
50 |
] whileTrue: [ |
a9cd5ea7cc36
Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
436
diff
changeset
|
51 |
context next. |
a9cd5ea7cc36
Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
436
diff
changeset
|
52 |
start := context position. |
a9cd5ea7cc36
Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
436
diff
changeset
|
53 |
(context next = $*) |
a9cd5ea7cc36
Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
436
diff
changeset
|
54 |
ifTrue: [ context upToAll: '*/' ] |
a9cd5ea7cc36
Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
436
diff
changeset
|
55 |
ifFalse: [ |
a9cd5ea7cc36
Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
436
diff
changeset
|
56 |
| position | |
a9cd5ea7cc36
Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
436
diff
changeset
|
57 |
position := context position. |
a9cd5ea7cc36
Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
436
diff
changeset
|
58 |
context upToAnyOf: String crlf]. |
a9cd5ea7cc36
Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
436
diff
changeset
|
59 |
]. |
a9cd5ea7cc36
Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
436
diff
changeset
|
60 |
|
a9cd5ea7cc36
Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
436
diff
changeset
|
61 |
"Modified: / 10-05-2015 / 07:57:03 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
435 | 62 |
! ! |
63 |