tools/JavaParserI.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Sat, 19 Jan 2013 23:54:47 +0000
branchrefactoring-vmdata
changeset 1986 9e63ab553922
parent 1947 dbebba5f7d70
child 2069 75d40b7b986f
permissions -rw-r--r--
JavaNativeMethod & their implementation transformed to pass a reveiver. Java still does not boot at this point, some overloaded natives in sun,misc.Unsafe has to be fixed manually.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
    10
		keywords floatingPointLiteral integerLiteral characterLiteral
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
    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
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   108
builder
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   109
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   110
    ^nil
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   111
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   112
    "Created: / 10-03-2012 / 12:17:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   113
!
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   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
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   121
!JavaParserI methodsFor:'grammar-blocks'!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   122
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   123
block
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   124
    "Do no parse content of the block"
1420
574d4bda2162 Fixes - all test pass
vranyj1
parents: 1419
diff changeset
   125
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   126
    ^BlockParser new    
1420
574d4bda2162 Fixes - all test pass
vranyj1
parents: 1419
diff changeset
   127
574d4bda2162 Fixes - all test pass
vranyj1
parents: 1419
diff changeset
   128
"/    ^ (self tokenFor: '{') , (self tokenFor: '}')
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   129
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   130
    "Created: / 11-03-2012 / 13:20:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   131
! !
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   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
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   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
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   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
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   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
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   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
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   185
identifier
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   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
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   189
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   190
"/    ^  self asToken: (((keyword not) , (booleanLiteral not) , (nullLiteral not) , identifierChars ))
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   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
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   227
abstractKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   228
    ^ self tokenParserFor:'abstract'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   229
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   230
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   231
assertKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   232
    ^ self tokenParserFor:'assert'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   233
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   234
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   235
booleanKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   236
    ^ self tokenParserFor:'boolean'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   237
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   238
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   239
breakKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   240
    ^ self tokenParserFor:'break'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   241
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   242
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   243
byteKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   244
    ^ self tokenParserFor:'byte'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   245
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   246
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   247
caseKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   248
    ^ self tokenParserFor:'case'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   249
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   250
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   251
catchKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   252
    ^ self tokenParserFor:'catch'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   253
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   254
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   255
charKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   256
    ^ self tokenParserFor:'char'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   257
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   258
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   259
classKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   260
    ^ self tokenParserFor:'class'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   261
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   262
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   263
constKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   264
    ^ self tokenParserFor:'const'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   265
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   266
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   267
continueKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   268
    ^ self tokenParserFor:'continue'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   269
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   270
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   271
defaultKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   272
    ^ self tokenParserFor:'default'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   273
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   274
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   275
doKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   276
    ^ self tokenParserFor:'do'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   277
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   278
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   279
doubleKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   280
    ^ self tokenParserFor:'double'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   281
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   282
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   283
elseKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   284
    ^ self tokenParserFor:'else'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   285
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   286
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   287
enumKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   288
    ^ self tokenParserFor:'enum'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   289
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   290
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   291
extendsKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   292
    ^ self tokenParserFor:'extends'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   293
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   294
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   295
finalKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   296
    ^ self tokenParserFor:'final'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   297
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   298
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   299
finallyKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   300
    ^ self tokenParserFor:'finally'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   301
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   302
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   303
floatKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   304
    ^ self tokenParserFor:'float'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   305
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   306
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   307
forKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   308
    ^ self tokenParserFor:'for'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   309
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   310
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   311
gotoKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   312
    ^ self tokenParserFor:'goto'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   313
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   314
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   315
ifKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   316
    ^ self tokenParserFor:'if'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   317
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   318
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   319
implementsKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   320
    ^ self tokenParserFor:'implements'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   321
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   322
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   323
importKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   324
    ^ self tokenParserFor:'import'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   325
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   326
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   327
instanceofKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   328
    ^ self tokenParserFor:'instanceof'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   329
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   330
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   331
intKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   332
    ^ self tokenParserFor:'int'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   333
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   334
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   335
interfaceKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   336
    ^ self tokenParserFor:'interface'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   337
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   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
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   359
longKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   360
    ^ self tokenParserFor:'long'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   361
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   362
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   363
nativeKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   364
    ^ self tokenParserFor:'native'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   365
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   366
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   367
newKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   368
    ^ self tokenParserFor:'new'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   369
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   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
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   389
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   390
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   391
packageKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   392
    ^ self tokenParserFor:'package'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   393
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   394
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   395
privateKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   396
    ^ self tokenParserFor:'private'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   397
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   398
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   399
protectedKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   400
    ^ self tokenParserFor:'protected'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   401
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   402
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   403
publicKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   404
    ^ self tokenParserFor:'public'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   405
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   406
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   407
returnKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   408
    ^ self tokenParserFor:'return'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   409
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   410
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   411
shortKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   412
    ^ self tokenParserFor:'short'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   413
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   414
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   415
staticKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   416
    ^ self tokenParserFor:'static'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   417
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   418
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   419
strictfpKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   420
    ^ self tokenParserFor:'strictfp'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   421
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   422
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   423
superKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   424
    ^ self tokenParserFor:'super'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   425
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   426
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   427
switchKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   428
    ^ self tokenParserFor:'switch'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   429
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   430
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   431
synchronizedKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   432
    ^ self tokenParserFor:'synchronized'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   433
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   434
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   435
thisKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   436
    ^ self tokenParserFor:'this'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   437
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   438
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   439
throwKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   440
    ^ self tokenParserFor:'throw'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   441
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   442
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   443
throwsKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   444
    ^ self tokenParserFor:'throws'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   445
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   446
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   447
transientKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   448
    ^ self tokenParserFor:'transient'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   449
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   450
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   451
tryKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   452
    ^ self tokenParserFor:'try'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   453
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   454
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   455
voidKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   456
    ^ self tokenParserFor:'void'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   457
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   458
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   459
volatileKW
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   460
    ^ self tokenParserFor:'volatile'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   461
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   462
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   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
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   495
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   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
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   505
    "Modified: / 15-03-2012 / 00:11:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   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
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   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
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   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
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   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
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   534
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   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
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   543
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   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
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   606
        super initialize.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   607
        "/self initializeStartingAt: #start.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   608
        
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   609
        self initializeKeywords.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   610
        self initializeOperators.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   611
        self initializeSeparators.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   612
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   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
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   618
        | values |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   619
        keywords := Dictionary new.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   620
        values := #('abstract' 'assert' 'boolean' 'break' 'byte' 'case'  'catch' 'char' 'class' 'const'
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   621
           'continue' 'default' 'do' 'double' 'else' 'enum' 'extends' 'final'  'finally' 'float'
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   622
           'for' 'if' 'goto' 'implements' 'import' 'instanceof' 'int' 'interface' 'long' 'native'
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   623
           'new' 'package' 'private' 'protected' 'public' 'return' 'short' 'static' 'strictfp' 'super'
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   624
           'switch' 'synchronized' 'this' 'throw' 'throws' 'transient' 'try' 'void' 'volatile' 'while').
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   625
        
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   626
        values do: [:eachKeyword |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   627
                keywords at: eachKeyword 
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   628
                        put: (PPUnresolvedParser named: ('keyword', eachKeyword first asUppercase asString , eachKeyword allButFirst))          
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   629
                ].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   630
        
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   631
        keywords keysAndValuesDo:  [:key :value |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   632
                (keywords at: key) def: key asParser trim
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   633
        ]
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   634
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   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
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   640
        | values |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   641
        operators := Dictionary new.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   642
        values := #(    '>>>=' '>>>' '>>=' '>>' '>=' '>'        '<<=' '<<' '<=' '<'     '++' '+=' '+'   '--' '-=' '-'   '&&' '&=' '&'
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   643
                                        '||' '|=' '|'   '*=' '*'        '%=' '%'        '/=' '/'        '^=' '^'        '!!=' '!!'        '==' '='        '~'     '?'     ':'     '@' ).
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   644
        
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   645
        values do: [:eachOperator |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   646
                operators at: eachOperator 
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   647
                        put: (PPUnresolvedParser named: ('operator', eachOperator asString))            
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   648
                ].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   649
        
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   650
        operators  keysAndValuesDo:  [:key :value |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   651
                (operators at: key) def: (key asParser trim)]
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   652
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   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
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   658
        | values |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   659
        separators := Dictionary new.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   660
        values := #( '(' ')' '{' '}' '[' ']' ';' ',' '.' ).
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   661
        
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   662
        values do: [:eachSeparator |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   663
                separators at: eachSeparator 
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   664
                        put: (PPUnresolvedParser named: ('separator', eachSeparator asString))          
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   665
                ].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   666
        
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   667
        separators  keysAndValuesDo:  [:key :value |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   668
                (separators at: key) def: (key asParser trim)]
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   669
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   670
    "Modified: / 10-03-2012 / 13:16:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   671
!
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   672
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   673
initializeStartingAt: aSymbol
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   674
        | allVariableNames ignoredVariableNames productionIndexesAndNames debugger |
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   675
        self initialize.        
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   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
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   683
        "find all the productions that need to be initialized"
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   684
        allVariableNames := self class allInstVarNames
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   685
                collect: [ :each | each asSymbol ].
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   686
        ignoredVariableNames := self class ignoredNames
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   687
                collect: [ :each | each asSymbol ].
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   688
        productionIndexesAndNames := ((1 to: self class instSize)
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   689
                collect: [ :index | index -> (allVariableNames at: index) ])
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   690
                reject: [ :assoc | ignoredVariableNames includes: assoc value ].
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   691
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   692
        "initialize productions with an undefined parser to be replaced later"
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   693
        parser := PPUnresolvedParser named: aSymbol.
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   694
        productionIndexesAndNames do: [ :assoc |
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   695
                self instVarAt: assoc key put: (PPUnresolvedParser named: assoc value) ].
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   696
        parser def: (self perform: aSymbol).
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   697
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   698
        "resolve unresolved parsers with their actual implementation"
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   699
        productionIndexesAndNames do: [ :assoc |
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   700
                (self respondsTo: assoc value)
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   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
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   711
                                ] ]
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   712
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   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
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   715
! !
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   716
1420
574d4bda2162 Fixes - all test pass
vranyj1
parents: 1419
diff changeset
   717
!JavaParserI methodsFor:'parsing'!
574d4bda2162 Fixes - all test pass
vranyj1
parents: 1419
diff changeset
   718
574d4bda2162 Fixes - all test pass
vranyj1
parents: 1419
diff changeset
   719
parse: anObject
574d4bda2162 Fixes - all test pass
vranyj1
parents: 1419
diff changeset
   720
    "Parse anObject with the receiving parser and answer the parse-result or an instance of PPFailure."
574d4bda2162 Fixes - all test pass
vranyj1
parents: 1419
diff changeset
   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
574d4bda2162 Fixes - all test pass
vranyj1
parents: 1419
diff changeset
   731
574d4bda2162 Fixes - all test pass
vranyj1
parents: 1419
diff changeset
   732
    "Created: / 15-03-2012 / 11:10:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
574d4bda2162 Fixes - all test pass
vranyj1
parents: 1419
diff changeset
   733
! !
574d4bda2162 Fixes - all test pass
vranyj1
parents: 1419
diff changeset
   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
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   743
!JavaParserI methodsFor:'querying'!
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   744
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   745
productionAt: aSymbol ifAbsent: aBlock
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   746
    "Answer the production named aSymbol, if there is no such production answer the result of evaluating aBlock."
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   747
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   748
    parser isNil ifTrue:[
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   749
        self initializeStartingAt: aSymbol.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   750
    ].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   751
    ^super productionAt: aSymbol ifAbsent: aBlock
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   752
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   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
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   758
asToken:aParser
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   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
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   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
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   766
        ^ (self tokenFor:$[) , (self tokenFor:$])
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   767
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   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
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   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
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   775
    ] ifFalse:[
1944
25a444558ba2 Java parser classes cleanup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1881
diff changeset
   776
        self tokenParserFor:aString
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   777
    ]
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   778
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   779
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   780
"/    | p |
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   781
"/
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   782
"/    p := keywords at: aString ifAbsent:[nil].
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   783
"/    p notNil ifTrue:[ ^ self asToken: p ].
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   784
"/
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   785
"/    p := operators at: aString ifAbsent:[nil].
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   786
"/    p notNil ifTrue:[ ^ self asToken: p ].
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   787
"/
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   788
"/    p := separators at: aString ifAbsent:[nil].
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   789
"/    p notNil ifTrue:[ ^ self asToken: p ].
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   790
"/
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   791
"/    self error: 'Should not be reached'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   792
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   793
    "Modified: / 15-03-2012 / 08:53:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   794
! !
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   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!