tools/JavaParserI.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Sun, 16 Dec 2012 21:04:02 +0100
branchdirectory_structure_refactoring
changeset 1899 800c0f76adce
parent 1818 2e5ed72e7dfd
child 1879 7d232ff32dde
permissions -rw-r--r--
Closing branch directory_structure_refactoring
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'
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    12
	classVariableNames:''
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
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    17
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    18
!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
    19
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    20
new
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    21
    "return an initialized instance"
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    22
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    23
    ^ self basicNew initialize.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    24
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    25
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    26
!JavaParserI class methodsFor:'accessing'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    27
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    28
ignoredNames
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    29
	"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
    30
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    31
	| newArray |	
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    32
	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
    33
	newArray
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    34
		replaceFrom: 1
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    35
		to: self namesToIgnore size
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    36
		with: self namesToIgnore.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    37
	newArray
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    38
		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
    39
		to: newArray size
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    40
		with: super ignoredNames.	
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    41
	^newArray
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    42
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    43
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    44
namesToIgnore
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    45
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    46
	^#('keywords' 'operators' 'separators')
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    47
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    48
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    49
!JavaParserI methodsFor:'accessing'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    50
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
    51
builder
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
    52
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
    53
    ^nil
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
    54
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
    55
    "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
    56
!
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
    57
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    58
start
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    59
	"Default start production."
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    60
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    61
	^ input end
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    62
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    63
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
    64
!JavaParserI methodsFor:'grammar-blocks'!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
    65
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
    66
block
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
    67
    "Do no parse content of the block"
1420
574d4bda2162 Fixes - all test pass
vranyj1
parents: 1419
diff changeset
    68
574d4bda2162 Fixes - all test pass
vranyj1
parents: 1419
diff changeset
    69
    ^JavaBlockParser new    
574d4bda2162 Fixes - all test pass
vranyj1
parents: 1419
diff changeset
    70
574d4bda2162 Fixes - all test pass
vranyj1
parents: 1419
diff changeset
    71
"/    ^ (self tokenFor: '{') , (self tokenFor: '}')
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
    72
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
    73
    "Created: / 11-03-2012 / 13:20:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
    74
! !
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
    75
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    76
!JavaParserI methodsFor:'grammar-comments'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    77
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    78
charactersInLine   
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    79
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    80
	^ inputCharacter plus
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
comment
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    84
	"traditional -> /*
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    85
	 endOfLine -> //"
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    86
	^ traditionalComment / endOfLineComment
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
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    89
commentTail
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    90
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    91
	^ 	('*' asParser , commentTailStar ) /
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    92
		(notStar , commentTail)
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    93
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    94
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    95
commentTailStar 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    96
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    97
	^ ('/' asParser ) /
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    98
	  ('*' asParser , commentTailStar ) /
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    99
	  (notStarNotSlash , commentTail )
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
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   102
endOfLineComment 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   103
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   104
        ^ 'cxcxcx' asParser
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   105
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   106
    "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
   107
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   108
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   109
notStar
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   110
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   111
	^ lineTerminator / ('*' asParser not , inputCharacter)
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   112
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   113
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   114
notStarNotSlash  
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   115
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   116
	^ 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
   117
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   118
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   119
traditionalComment
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   120
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   121
        ^ 'aaaaa' asParser
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   122
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   123
    "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
   124
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   125
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   126
!JavaParserI methodsFor:'grammar-identifiers'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   127
1417
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   128
identifier
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   129
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   130
    ^ JavaTokenParser for: #Identifier
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   131
1417
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   132
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   133
"/    ^  self asToken: (((keyword not) , (booleanLiteral not) , (nullLiteral not) , identifierChars ))
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   134
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   135
    "Modified: / 14-03-2012 / 23:10:52 / 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
   136
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   137
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   138
!JavaParserI methodsFor:'grammar-input'!
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
input
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   141
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   142
	^ (inputElements optional) , (sub optional)
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   143
!
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
inputElement
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   146
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   147
	^ whiteSpace / comment / javaToken
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   148
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   149
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   150
inputElements
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
	^ inputElement plus
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
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   155
javaToken
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   156
        "/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
   157
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   158
        ^ 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
   159
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   160
    "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
   161
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   162
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   163
sub
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
	^ (Character value: 26) asParser 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   166
! !
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
!JavaParserI methodsFor:'grammar-keywords'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   169
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   170
abstractKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   171
    ^ JavaTokenParser for:'abstract'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   172
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   173
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   174
assertKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   175
    ^ JavaTokenParser for:'assert'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   176
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   177
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   178
booleanKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   179
    ^ JavaTokenParser for:'boolean'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   180
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   181
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   182
breakKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   183
    ^ JavaTokenParser for:'break'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   184
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   185
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   186
byteKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   187
    ^ JavaTokenParser for:'byte'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   188
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   189
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   190
caseKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   191
    ^ JavaTokenParser for:'case'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   192
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   193
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   194
catchKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   195
    ^ JavaTokenParser for:'catch'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   196
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   197
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   198
charKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   199
    ^ JavaTokenParser for:'char'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   200
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   201
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   202
classKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   203
    ^ JavaTokenParser for:'class'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   204
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   205
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   206
constKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   207
    ^ JavaTokenParser for:'const'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   208
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   209
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   210
continueKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   211
    ^ JavaTokenParser for:'continue'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   212
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   213
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   214
defaultKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   215
    ^ JavaTokenParser for:'default'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   216
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   217
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   218
doKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   219
    ^ JavaTokenParser for:'do'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   220
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   221
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   222
doubleKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   223
    ^ JavaTokenParser for:'double'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   224
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   225
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   226
elseKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   227
    ^ JavaTokenParser for:'else'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   228
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   229
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   230
enumKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   231
    ^ JavaTokenParser for:'enum'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   232
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   233
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   234
extendsKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   235
    ^ JavaTokenParser for:'extends'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   236
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   237
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   238
finalKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   239
    ^ JavaTokenParser for:'final'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   240
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   241
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   242
finallyKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   243
    ^ JavaTokenParser for:'finally'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   244
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   245
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   246
floatKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   247
    ^ JavaTokenParser for:'float'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   248
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   249
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   250
forKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   251
    ^ JavaTokenParser for:'for'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   252
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   253
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   254
gotoKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   255
    ^ JavaTokenParser for:'goto'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   256
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   257
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   258
ifKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   259
    ^ JavaTokenParser for:'if'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   260
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   261
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   262
implementsKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   263
    ^ JavaTokenParser for:'implements'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   264
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   265
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   266
importKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   267
    ^ JavaTokenParser for:'import'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   268
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   269
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   270
instanceofKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   271
    ^ JavaTokenParser for:'instanceof'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   272
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   273
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   274
intKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   275
    ^ JavaTokenParser for:'int'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   276
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   277
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   278
interfaceKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   279
    ^ JavaTokenParser for:'interface'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   280
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   281
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   282
keyword
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   283
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   284
        | keywordParsers keywordParser |
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   285
        
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   286
        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
   287
                                                                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
   288
        keywordParser := nil.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   289
        keywordParsers do:[:each|
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   290
            keywordParser notNil ifTrue:[
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   291
                keywordParser := keywordParser / each
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   292
            ] ifFalse:[
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   293
                keywordParser := each
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   294
            ]
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   295
        ].
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   296
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   297
        ^ "self asToken: "keywordParser
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   298
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   299
    "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
   300
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   301
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   302
longKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   303
    ^ JavaTokenParser for:'long'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   304
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   305
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   306
nativeKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   307
    ^ JavaTokenParser for:'native'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   308
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   309
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   310
newKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   311
    ^ JavaTokenParser for:'new'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   312
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   313
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   314
operator
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   315
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   316
        | operatorParsers operatorParser |
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   317
        
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   318
        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
   319
                                                                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
   320
        operatorParser := nil.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   321
        operatorParsers do:[:each|
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   322
            operatorParser notNil ifTrue:[
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   323
                operatorParser := operatorParser / each
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   324
            ] ifFalse:[
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   325
                operatorParser := each
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   326
            ]
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   327
        ].
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   328
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   329
        ^ "self asToken: "operatorParser
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   330
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   331
    "Modified: / 09-03-2012 / 20:50:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   332
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   333
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   334
packageKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   335
    ^ JavaTokenParser for:'package'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   336
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   337
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   338
privateKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   339
    ^ JavaTokenParser for:'private'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   340
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   341
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   342
protectedKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   343
    ^ JavaTokenParser for:'protected'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   344
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   345
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   346
publicKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   347
    ^ JavaTokenParser for:'public'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   348
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   349
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   350
returnKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   351
    ^ JavaTokenParser for:'return'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   352
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   353
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   354
shortKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   355
    ^ JavaTokenParser for:'short'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   356
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   357
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   358
staticKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   359
    ^ JavaTokenParser for:'static'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   360
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   361
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   362
strictfpKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   363
    ^ JavaTokenParser for:'strictfp'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   364
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   365
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   366
superKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   367
    ^ JavaTokenParser for:'super'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   368
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   369
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   370
switchKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   371
    ^ JavaTokenParser for:'switch'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   372
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   373
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   374
synchronizedKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   375
    ^ JavaTokenParser for:'synchronized'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   376
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   377
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   378
thisKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   379
    ^ JavaTokenParser for:'this'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   380
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   381
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   382
throwKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   383
    ^ JavaTokenParser for:'throw'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   384
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   385
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   386
throwsKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   387
    ^ JavaTokenParser for:'throws'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   388
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   389
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   390
transientKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   391
    ^ JavaTokenParser for:'transient'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   392
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   393
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   394
tryKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   395
    ^ JavaTokenParser for:'try'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   396
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   397
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   398
voidKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   399
    ^ JavaTokenParser for:'void'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   400
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   401
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   402
volatileKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   403
    ^ JavaTokenParser for:'volatile'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   404
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   405
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   406
whileKW
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   407
    ^ JavaTokenParser for:'while'
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   408
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   409
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   410
!JavaParserI methodsFor:'grammar-lineTerminators'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   411
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   412
inputCharacter 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   413
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   414
	^(lineTerminator not) , unicodeInputCharacter ==> #second
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   415
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   416
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   417
lineTerminator
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   418
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   419
	^ (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
   420
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   421
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   422
!JavaParserI methodsFor:'grammar-literals'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   423
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   424
literal
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   425
        "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
   426
        
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   427
        ^" 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
   428
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   429
    "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
   430
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   431
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   432
!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
   433
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   434
booleanLiteral 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   435
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   436
    ^ (JavaTokenParser for: #boolean)
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   437
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   438
    "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
   439
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   440
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   441
!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
   442
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   443
characterLiteral 
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   444
    ^ (JavaTokenParser for: #Character)
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   445
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   446
    "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
   447
    "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
   448
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   449
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   450
!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
   451
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   452
floatingPointLiteral
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   453
    ^ (JavaTokenParser for: #Float) /
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   454
            (JavaTokenParser for: #Double)
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   455
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   456
    "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
   457
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   458
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   459
!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
   460
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   461
integerLiteral
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   462
    ^ (JavaTokenParser for: #Integer) /
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   463
            (JavaTokenParser for: #LongInteger)
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   464
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   465
    "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
   466
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   467
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   468
!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
   469
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   470
nullLiteral 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   471
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   472
    ^ JavaTokenParser for: #null
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   473
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   474
    "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
   475
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   476
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   477
!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
   478
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   479
stringLiteral 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   480
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   481
    ^ JavaTokenParser for: #String
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   482
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   483
    "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
   484
! !
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
!JavaParserI methodsFor:'grammar-separators'!
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
separator
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   489
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   490
        "should it be:
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   491
        
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   492
        | separatorParsers |
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   493
        separatorParsers := separators keysSortedSafely 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   494
                                                                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
   495
        ^ (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
   496
        
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   497
        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
   498
        
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   499
        ^"self asToken: "(PPPredicateObjectParser anyOf: '(){}[];,.' )
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
    "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
   502
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   503
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   504
!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
   505
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   506
hexDigit 
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
	^#hex asParser
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   509
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   510
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   511
rawInputCharacter
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   512
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   513
	^#any asParser
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   514
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   515
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   516
unicodeEscape
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
	^ $\ 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
   519
!
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
unicodeInputCharacter
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   522
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   523
	 ^ unicodeEscape / rawInputCharacter
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   524
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   525
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   526
unicodeMarker
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
	^$u asParser plus
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   529
! !
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
!JavaParserI methodsFor:'grammar-whiteSpace'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   532
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   533
whiteSpace
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   534
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   535
	^ (Character space asParser ) /
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   536
	  (Character tab asParser ) /
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   537
	  ((Character value: 12) asParser ) /
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   538
		lineTerminator 
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
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   541
!JavaParserI methodsFor:'initialization'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   542
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   543
initialize
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   544
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   545
        super initialize.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   546
        "/self initializeStartingAt: #start.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   547
        
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   548
        self initializeKeywords.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   549
        self initializeOperators.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   550
        self initializeSeparators.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   551
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   552
    "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
   553
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   554
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   555
initializeKeywords
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   556
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   557
        | values |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   558
        keywords := Dictionary new.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   559
        values := #('abstract' 'assert' 'boolean' 'break' 'byte' 'case'  'catch' 'char' 'class' 'const'
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   560
           'continue' 'default' 'do' 'double' 'else' 'enum' 'extends' 'final'  'finally' 'float'
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   561
           'for' 'if' 'goto' 'implements' 'import' 'instanceof' 'int' 'interface' 'long' 'native'
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   562
           'new' 'package' 'private' 'protected' 'public' 'return' 'short' 'static' 'strictfp' 'super'
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   563
           'switch' 'synchronized' 'this' 'throw' 'throws' 'transient' 'try' 'void' 'volatile' 'while').
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   564
        
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   565
        values do: [:eachKeyword |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   566
                keywords at: eachKeyword 
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   567
                        put: (PPUnresolvedParser named: ('keyword', eachKeyword first asUppercase asString , eachKeyword allButFirst))          
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   568
                ].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   569
        
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   570
        keywords keysAndValuesDo:  [:key :value |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   571
                (keywords at: key) def: key asParser trim
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   572
        ]
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   573
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   574
    "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
   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
initializeOperators
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   578
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   579
        | values |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   580
        operators := Dictionary new.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   581
        values := #(    '>>>=' '>>>' '>>=' '>>' '>=' '>'        '<<=' '<<' '<=' '<'     '++' '+=' '+'   '--' '-=' '-'   '&&' '&=' '&'
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   582
                                        '||' '|=' '|'   '*=' '*'        '%=' '%'        '/=' '/'        '^=' '^'        '!!=' '!!'        '==' '='        '~'     '?'     ':'     '@' ).
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   583
        
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   584
        values do: [:eachOperator |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   585
                operators at: eachOperator 
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   586
                        put: (PPUnresolvedParser named: ('operator', eachOperator asString))            
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   587
                ].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   588
        
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   589
        operators  keysAndValuesDo:  [:key :value |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   590
                (operators at: key) def: (key asParser trim)]
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   591
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   592
    "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
   593
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   594
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   595
initializeSeparators
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   596
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   597
        | values |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   598
        separators := Dictionary new.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   599
        values := #( '(' ')' '{' '}' '[' ']' ';' ',' '.' ).
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   600
        
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   601
        values do: [:eachSeparator |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   602
                separators at: eachSeparator 
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   603
                        put: (PPUnresolvedParser named: ('separator', eachSeparator asString))          
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   604
                ].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   605
        
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   606
        separators  keysAndValuesDo:  [:key :value |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   607
                (separators at: key) def: (key asParser trim)]
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   608
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   609
    "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
   610
!
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   611
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   612
initializeStartingAt: aSymbol
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   613
        | allVariableNames ignoredVariableNames productionIndexesAndNames debugger |
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   614
        self initialize.        
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   615
1485
e99402483998 - JavaParserI
vranyj1
parents: 1424
diff changeset
   616
        "/debugger := PPDebugger new.
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   617
        "find all the productions that need to be initialized"
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   618
        allVariableNames := self class allInstVarNames
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   619
                collect: [ :each | each asSymbol ].
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   620
        ignoredVariableNames := self class ignoredNames
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   621
                collect: [ :each | each asSymbol ].
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   622
        productionIndexesAndNames := ((1 to: self class instSize)
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   623
                collect: [ :index | index -> (allVariableNames at: index) ])
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   624
                reject: [ :assoc | ignoredVariableNames includes: assoc value ].
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   625
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   626
        "initialize productions with an undefined parser to be replaced later"
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   627
        parser := PPUnresolvedParser named: aSymbol.
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   628
        productionIndexesAndNames do: [ :assoc |
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   629
                self instVarAt: assoc key put: (PPUnresolvedParser named: assoc value) ].
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   630
        parser def: (self perform: aSymbol).
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   631
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   632
        "resolve unresolved parsers with their actual implementation"
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   633
        productionIndexesAndNames do: [ :assoc |
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   634
                (self respondsTo: assoc value)
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   635
                        ifFalse: [ self error: 'Unable to initialize ' , assoc value printString ]
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   636
                        ifTrue: [ (self instVarAt: assoc key) def: 
1421
d68e361680e9 Parser improved, now it parser whole java.lang (code block skipped for now)
vranyj1
parents: 1420
diff changeset
   637
"/                                (PPDebuggingParser parser:
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   638
                                    ((self perform: assoc value)  name: assoc value; yourself)
1421
d68e361680e9 Parser improved, now it parser whole java.lang (code block skipped for now)
vranyj1
parents: 1420
diff changeset
   639
"/                                    debugger: debugger)
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   640
                                ] ]
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   641
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   642
    "Created: / 12-03-2012 / 16:51:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   643
! !
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   644
1420
574d4bda2162 Fixes - all test pass
vranyj1
parents: 1419
diff changeset
   645
!JavaParserI methodsFor:'parsing'!
574d4bda2162 Fixes - all test pass
vranyj1
parents: 1419
diff changeset
   646
574d4bda2162 Fixes - all test pass
vranyj1
parents: 1419
diff changeset
   647
parse: anObject
574d4bda2162 Fixes - all test pass
vranyj1
parents: 1419
diff changeset
   648
    "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
   649
1424
9d8337007106 Fixes in JavaSyntaxHighlighter to use new JavaParser
vranyj1
parents: 1421
diff changeset
   650
    | scanner |
9d8337007106 Fixes in JavaSyntaxHighlighter to use new JavaParser
vranyj1
parents: 1421
diff changeset
   651
9d8337007106 Fixes in JavaSyntaxHighlighter to use new JavaParser
vranyj1
parents: 1421
diff changeset
   652
    (anObject isKindOf: JavaScanner) ifFalse:[
9d8337007106 Fixes in JavaSyntaxHighlighter to use new JavaParser
vranyj1
parents: 1421
diff changeset
   653
        scanner := JavaScanner for: anObject readStream.
9d8337007106 Fixes in JavaSyntaxHighlighter to use new JavaParser
vranyj1
parents: 1421
diff changeset
   654
    ] ifTrue:[
9d8337007106 Fixes in JavaSyntaxHighlighter to use new JavaParser
vranyj1
parents: 1421
diff changeset
   655
        scanner := anObject
9d8337007106 Fixes in JavaSyntaxHighlighter to use new JavaParser
vranyj1
parents: 1421
diff changeset
   656
    ].
9d8337007106 Fixes in JavaSyntaxHighlighter to use new JavaParser
vranyj1
parents: 1421
diff changeset
   657
9d8337007106 Fixes in JavaSyntaxHighlighter to use new JavaParser
vranyj1
parents: 1421
diff changeset
   658
    ^super parse: scanner
1420
574d4bda2162 Fixes - all test pass
vranyj1
parents: 1419
diff changeset
   659
574d4bda2162 Fixes - all test pass
vranyj1
parents: 1419
diff changeset
   660
    "Created: / 15-03-2012 / 11:10:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
574d4bda2162 Fixes - all test pass
vranyj1
parents: 1419
diff changeset
   661
! !
574d4bda2162 Fixes - all test pass
vranyj1
parents: 1419
diff changeset
   662
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   663
!JavaParserI methodsFor:'querying'!
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   664
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   665
productionAt: aSymbol ifAbsent: aBlock
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   666
    "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
   667
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   668
    parser isNil ifTrue:[
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   669
        self initializeStartingAt: aSymbol.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   670
    ].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   671
    ^super productionAt: aSymbol ifAbsent: aBlock
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   672
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   673
    "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
   674
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   675
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   676
!JavaParserI methodsFor:'utility'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   677
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   678
asToken:aParser
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   679
    ^aParser
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   680
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   681
    "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
   682
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   683
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   684
emptySquaredParenthesis
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   685
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   686
        ^ (self tokenFor:$[) , (self tokenFor:$])
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   687
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   688
    "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
   689
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   690
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   691
tokenFor: aString
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   692
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   693
    ^aString size == 1 ifTrue:[
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   694
        JavaTokenParser for: aString first
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   695
    ] ifFalse:[
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   696
        JavaTokenParser for: aString
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   697
    ]
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   698
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   699
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   700
"/    | p |
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   701
"/
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   702
"/    p := keywords at: aString ifAbsent:[nil].
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   703
"/    p notNil ifTrue:[ ^ self asToken: p ].
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   704
"/
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   705
"/    p := operators at: aString ifAbsent:[nil].
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   706
"/    p notNil ifTrue:[ ^ self asToken: p ].
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   707
"/
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   708
"/    p := separators at: aString ifAbsent:[nil].
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   709
"/    p notNil ifTrue:[ ^ self asToken: p ].
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   710
"/
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   711
"/    self error: 'Should not be reached'
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   712
1419
ec8c810acddb Parser is now based on JavaScanner
vranyj1
parents: 1418
diff changeset
   713
    "Modified: / 15-03-2012 / 08:53:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   714
! !
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   715
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   716
!JavaParserI class methodsFor:'documentation'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   717
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   718
version_SVN
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   719
    ^ '$Id$'
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   720
! !