src/tools/JavaParserI.st
author vranyj1
Mon, 12 Mar 2012 09:58:19 +0000
branchjk_new_structure
changeset 1416 26c10dd1e5c6
parent 1415 6b0bbeb08b5a
child 1417 f4c3f5b90dd8
permissions -rw-r--r--
Fix in JavaParserI
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
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    10
		identifierChars javaLetter javaLetterOrDigit keywords
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    11
		floatingPointLiteral integerLiteral characterLiteral
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    12
		stringLiteral hexIntegerLiteral octalIntegerLiteral
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    13
		decimalIntegerLiteral decimalNumeral integerTypeSuffix hexNumeral
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    14
		octalNumeral nonZeroDigit digits hexDigits octalDigits octalDigit
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    15
		hexadecimalFloatingPointLiteral decimalFloatingPointLiteral
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    16
		exponentPart floatTypeSuffix exponentIndicator signedInteger sign
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    17
		hexSignificand binaryExponent binaryExponentIndicator
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    18
		escapeSequence singleCharacter stringCharacters stringCharacter
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
    19
		octalEscape zeroToThree 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
    20
	classVariableNames:''
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    21
	poolDictionaries:''
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    22
	category:'Languages-Java-Parser'
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    23
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    24
1406
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
    25
PPParser subclass:#SubParser
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
    26
	instanceVariableNames:'masterParser'
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
    27
	classVariableNames:''
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
    28
	poolDictionaries:''
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
    29
	privateIn:JavaParserI
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
    30
!
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
    31
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
    32
JavaParserI::SubParser subclass:#MultiLineCommentParser
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
    33
	instanceVariableNames:''
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
    34
	classVariableNames:''
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
    35
	poolDictionaries:''
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
    36
	privateIn:JavaParserI
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
    37
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
    38
1406
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
    39
JavaParserI::SubParser subclass:#SingleLineCommentParser
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    40
	instanceVariableNames:''
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    41
	classVariableNames:''
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    42
	poolDictionaries:''
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    43
	privateIn:JavaParserI
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    44
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    45
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
    46
JavaParserI::SubParser subclass:#BlockParser
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
    47
	instanceVariableNames:'openBlockChar closeBlockChar innerBlockCount'
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    48
	classVariableNames:''
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    49
	poolDictionaries:''
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    50
	privateIn:JavaParserI
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    51
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    52
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    53
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    54
!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
    55
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    56
new
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    57
    "return an initialized instance"
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    58
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    59
    ^ self basicNew initialize.
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
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    62
!JavaParserI class methodsFor:'accessing'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    63
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    64
ignoredNames
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    65
	"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
    66
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    67
	| newArray |	
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    68
	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
    69
	newArray
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    70
		replaceFrom: 1
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    71
		to: self namesToIgnore size
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    72
		with: self namesToIgnore.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    73
	newArray
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    74
		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
    75
		to: newArray size
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    76
		with: super ignoredNames.	
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    77
	^newArray
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    78
!
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
namesToIgnore
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
	^#('keywords' 'operators' 'separators')
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    83
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    84
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    85
!JavaParserI methodsFor:'accessing'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    86
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
    87
builder
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
    88
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
    89
    ^nil
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
    90
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
    91
    "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
    92
!
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
    93
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    94
start
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    95
	"Default start production."
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
	^ input end
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    98
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    99
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   100
!JavaParserI methodsFor:'grammar-blocks'!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   101
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   102
block
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   103
    "Do no parse content of the block"
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   104
    ^(BlockParser for: self) trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   105
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   106
    "Created: / 11-03-2012 / 13:20:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   107
! !
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   108
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   109
!JavaParserI methodsFor:'grammar-comments'!
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
charactersInLine   
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
	^ inputCharacter plus
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   114
!
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
comment
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   117
	"traditional -> /*
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   118
	 endOfLine -> //"
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   119
	^ traditionalComment / endOfLineComment
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   120
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   121
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   122
commentTail
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   123
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   124
	^ 	('*' asParser , commentTailStar ) /
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   125
		(notStar , commentTail)
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   126
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   127
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   128
commentTailStar 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   129
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   130
	^ ('/' asParser ) /
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   131
	  ('*' asParser , commentTailStar ) /
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   132
	  (notStarNotSlash , commentTail )
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   133
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   134
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   135
endOfLineComment 
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
        ^ (SingleLineCommentParser for: self) trim
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   138
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   139
    "Modified: / 09-03-2012 / 20:28:12 / 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
   140
!
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
notStar
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
	^ lineTerminator / ('*' asParser not , inputCharacter)
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   145
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   146
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   147
notStarNotSlash  
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
	^ 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
   150
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   151
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   152
traditionalComment
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   153
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   154
        ^ (MultiLineCommentParser for: self) trim
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   155
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   156
    "Modified: / 10-03-2012 / 12:28:36 / 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
   157
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   158
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   159
!JavaParserI methodsFor:'grammar-identifiers'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   160
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   161
identifier 
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
	^  self asToken: (((keyword not) , (booleanLiteral not) , (nullLiteral not) , identifierChars ))
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   164
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   165
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   166
identifierChars
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
	^ javaLetter plus , javaLetterOrDigit star
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   169
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   170
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   171
javaLetter
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   172
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   173
	^ (#letter asParser) / (PPPredicateObjectParser anyOf: '_$')
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   174
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   175
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   176
javaLetterOrDigit
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   177
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   178
	^ javaLetter / (#digit asParser)
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   179
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   180
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   181
!JavaParserI methodsFor:'grammar-input'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   182
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   183
input
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   184
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   185
	^ (inputElements optional) , (sub optional)
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   186
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   187
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   188
inputElement
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   189
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   190
	^ whiteSpace / comment / javaToken
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   191
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   192
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   193
inputElements
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   194
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   195
	^ inputElement plus
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   196
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   197
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   198
javaToken
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   199
        "/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
   200
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   201
        ^ 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
   202
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   203
    "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
   204
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   205
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   206
sub
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   207
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   208
	^ (Character value: 26) asParser 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   209
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   210
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   211
!JavaParserI methodsFor:'grammar-keywords'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   212
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   213
abstractKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   214
    ^ 'abstract' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   215
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   216
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   217
assertKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   218
    ^ 'assert' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   219
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   220
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   221
booleanKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   222
    ^ 'boolean' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   223
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   224
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   225
breakKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   226
    ^ 'break' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   227
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   228
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   229
byteKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   230
    ^ 'byte' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   231
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   232
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   233
caseKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   234
    ^ 'case' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   235
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   236
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   237
catchKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   238
    ^ 'catch' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   239
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   240
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   241
charKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   242
    ^ 'char' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   243
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   244
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   245
classKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   246
    ^ 'class' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   247
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   248
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   249
constKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   250
    ^ 'const' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   251
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   252
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   253
continueKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   254
    ^ 'continue' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   255
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   256
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   257
defaultKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   258
    ^ 'default' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   259
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   260
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   261
doKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   262
    ^ 'do' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   263
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   264
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   265
doubleKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   266
    ^ 'double' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   267
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   268
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   269
elseKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   270
    ^ 'else' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   271
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   272
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   273
enumKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   274
    ^ 'enum' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   275
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   276
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   277
extendsKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   278
    ^ 'extends' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   279
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   280
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   281
finalKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   282
    ^ 'final' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   283
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   284
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   285
finallyKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   286
    ^ 'finally' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   287
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   288
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   289
floatKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   290
    ^ 'float' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   291
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   292
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   293
forKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   294
    ^ 'for' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   295
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   296
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   297
gotoKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   298
    ^ 'goto' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   299
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   300
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   301
ifKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   302
    ^ 'if' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   303
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   304
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   305
implementsKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   306
    ^ 'implements' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   307
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   308
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   309
importKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   310
    ^ 'import' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   311
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   312
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   313
instanceofKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   314
    ^ 'instanceof' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   315
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   316
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   317
intKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   318
    ^ 'int' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   319
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   320
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   321
interfaceKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   322
    ^ 'interface' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   323
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   324
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   325
keyword
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
        | keywordParsers keywordParser |
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
        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
   330
                                                                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
   331
        keywordParser := nil.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   332
        keywordParsers do:[:each|
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   333
            keywordParser notNil ifTrue:[
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   334
                keywordParser := keywordParser / each
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   335
            ] ifFalse:[
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   336
                keywordParser := each
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   337
            ]
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   338
        ].
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   339
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   340
        ^ "self asToken: "keywordParser
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   341
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   342
    "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
   343
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   344
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   345
longKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   346
    ^ 'long' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   347
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   348
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   349
nativeKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   350
    ^ 'native' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   351
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   352
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   353
newKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   354
    ^ 'new' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   355
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   356
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   357
operator
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   358
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   359
        | operatorParsers operatorParser |
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   360
        
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   361
        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
   362
                                                                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
   363
        operatorParser := nil.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   364
        operatorParsers do:[:each|
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   365
            operatorParser notNil ifTrue:[
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   366
                operatorParser := operatorParser / each
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   367
            ] ifFalse:[
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   368
                operatorParser := each
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   369
            ]
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   370
        ].
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   371
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   372
        ^ "self asToken: "operatorParser
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   373
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   374
    "Modified: / 09-03-2012 / 20:50:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   375
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   376
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   377
packageKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   378
    ^ 'package' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   379
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   380
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   381
privateKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   382
    ^ 'private' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   383
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   384
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   385
protectedKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   386
    ^ 'protected' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   387
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   388
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   389
publicKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   390
    ^ 'public' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   391
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   392
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   393
returnKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   394
    ^ 'return' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   395
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   396
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   397
shortKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   398
    ^ 'short' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   399
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   400
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   401
staticKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   402
    ^ 'static' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   403
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   404
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   405
strictfpKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   406
    ^ 'strictfp' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   407
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   408
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   409
superKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   410
    ^ 'super' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   411
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   412
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   413
switchKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   414
    ^ 'switch' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   415
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   416
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   417
synchronizedKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   418
    ^ 'synchronized' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   419
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   420
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   421
thisKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   422
    ^ 'this' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   423
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   424
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   425
throwKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   426
    ^ 'throw' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   427
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   428
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   429
throwsKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   430
    ^ 'throws' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   431
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   432
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   433
transientKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   434
    ^ 'transient' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   435
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   436
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   437
tryKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   438
    ^ 'try' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   439
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   440
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   441
voidKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   442
    ^ 'void' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   443
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   444
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   445
volatileKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   446
    ^ 'volatile' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   447
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   448
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   449
whileKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   450
    ^ 'while' asParser trim
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   451
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   452
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   453
!JavaParserI methodsFor:'grammar-lineTerminators'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   454
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   455
inputCharacter 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   456
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   457
	^(lineTerminator not) , unicodeInputCharacter ==> #second
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
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   460
lineTerminator
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   461
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   462
	^ (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
   463
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   464
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   465
!JavaParserI methodsFor:'grammar-literals'!
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
literal
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   468
        "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
   469
        
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   470
        ^" 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
   471
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   472
    "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
   473
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   474
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   475
!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
   476
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   477
booleanLiteral 
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
 ^ ('true' asParser) / ('false' asParser)
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   480
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   481
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   482
!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
   483
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   484
characterLiteral 
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
 ^ $' asParser , ( escapeSequence / singleCharacter ), $' asParser
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   487
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   488
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   489
singleCharacter 	
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   490
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   491
	^( PPPredicateObjectParser anyOf: '''\') not , inputCharacter ==> #second
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   492
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   493
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   494
!JavaParserI methodsFor:'grammar-literals-escape'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   495
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   496
escapeSequence 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   497
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   498
	^ ($\ asParser , (PPPredicateObjectParser anyOf: 'btnfr""''\' ) ) /
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   499
	   octalEscape 
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
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   502
octalEscape
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
	^ $\ asParser , ( (zeroToThree , octalDigit , octalDigit) / (octalDigit , octalDigit optional) )
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
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   507
zeroToThree
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   508
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   509
	^PPPredicateObjectParser anyOf: '0123'
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
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   512
!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
   513
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   514
binaryExponent
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
 ^ binaryExponentIndicator , signedInteger
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   517
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   518
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   519
binaryExponentIndicator
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
  ^ PPPredicateObjectParser anyOf: 'pP'
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
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   524
decimalFloatingPointLiteral
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
	|dot|
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   527
	dot := $. asParser.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   528
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   529
 ^ ( ( (dot , digits) 
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
        (digits , dot , digits optional)) , 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   532
			exponentPart optional , floatTypeSuffix optional ) 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   533
  	/ 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   534
  	(digits , 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   535
		( (exponentPart , floatTypeSuffix optional) 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   536
		  /
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   537
		  (exponentPart optional , floatTypeSuffix) ))
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   538
!
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
exponentIndicator
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   541
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   542
  ^ PPPredicateObjectParser anyOf: 'eE'
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   543
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   544
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   545
exponentPart
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   546
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   547
 ^ exponentIndicator , signedInteger
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   548
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   549
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   550
floatTypeSuffix
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   551
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   552
	^ PPPredicateObjectParser anyOf: 'fFdD'
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
floatingPointLiteral
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   556
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   557
  ^ hexadecimalFloatingPointLiteral / decimalFloatingPointLiteral
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   558
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   559
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   560
hexSignificand 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   561
	|dot|
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   562
	dot := $. asParser.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   563
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   564
 ^  (hexNumeral , dot optional) /
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   565
    ($0 asParser , (PPPredicateObjectParser anyOf: 'xX') , hexDigits optional , dot , hexDigits )
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   566
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   567
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   568
hexadecimalFloatingPointLiteral
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   569
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   570
 ^ hexSignificand , binaryExponent , floatTypeSuffix optional
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   571
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   572
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   573
sign
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   574
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   575
  ^PPPredicateObjectParser anyOf: '-+'
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
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   578
signedInteger
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   579
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   580
  ^ sign optional , digits
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   581
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   582
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   583
!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
   584
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   585
decimalIntegerLiteral
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   586
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   587
 ^ decimalNumeral , (integerTypeSuffix optional)
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   588
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   589
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   590
decimalNumeral 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   591
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   592
	^($0 asParser) / (nonZeroDigit , digits optional) 
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
digits 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   596
	"digit is already defined, no need to redefine it"
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   597
	^#digit asParser plus
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   598
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   599
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   600
hexDigits 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   601
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   602
	^hexDigit plus
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   603
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   604
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   605
hexIntegerLiteral 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   606
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   607
  ^ hexNumeral , (integerTypeSuffix optional)
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   608
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   609
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   610
hexNumeral 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   611
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   612
	^$0 asParser, (PPPredicateObjectParser anyOf: 'xX' ), hexDigits
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   613
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   614
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   615
integerLiteral
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   616
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   617
  ^ hexIntegerLiteral / octalIntegerLiteral / decimalIntegerLiteral
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   618
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   619
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   620
integerTypeSuffix
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   621
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   622
	^ PPPredicateObjectParser anyOf: 'lL'
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   623
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   624
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   625
nonZeroDigit 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   626
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   627
	^PPPredicateObjectParser anyOf: '123456789'.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   628
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   629
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   630
octalDigit 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   631
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   632
	^PPPredicateObjectParser anyOf: '01234567'
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   633
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   634
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   635
octalDigits
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   636
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   637
	^ octalDigit plus
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   638
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   639
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   640
octalIntegerLiteral 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   641
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   642
 ^ octalNumeral , (integerTypeSuffix optional)
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   643
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   644
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   645
octalNumeral 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   646
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   647
	^($0 asParser) , octalDigits
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   648
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   649
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   650
!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
   651
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   652
nullLiteral 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   653
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   654
 ^ 'null' asParser
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   655
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   656
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   657
!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
   658
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   659
stringCharacter
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   660
		
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   661
	^ ( ( PPPredicateObjectParser anyOf: '"\') not , inputCharacter ==> #second ) /
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   662
	   escapeSequence 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   663
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   664
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   665
stringCharacters
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   666
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   667
	^ stringCharacter plus
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   668
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   669
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   670
stringLiteral 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   671
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   672
 ^ $" asParser , stringCharacters optional , $" asParser
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   673
! !
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
!JavaParserI methodsFor:'grammar-separators'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   676
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   677
separator
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   678
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   679
        "should it be:
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   680
        
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   681
        | separatorParsers |
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   682
        separatorParsers := separators keysSortedSafely 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   683
                                                                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
   684
        ^ (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
   685
        
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   686
        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
   687
        
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   688
        ^"self asToken: "(PPPredicateObjectParser anyOf: '(){}[];,.' )
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
    "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
   691
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   692
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   693
!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
   694
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   695
hexDigit 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   696
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   697
	^#hex asParser
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   698
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   699
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   700
rawInputCharacter
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   701
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   702
	^#any asParser
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   703
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   704
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   705
unicodeEscape
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   706
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   707
	^ $\ 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
   708
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   709
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   710
unicodeInputCharacter
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   711
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   712
	 ^ unicodeEscape / rawInputCharacter
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   713
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   714
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   715
unicodeMarker
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   716
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   717
	^$u asParser plus
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   718
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   719
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   720
!JavaParserI methodsFor:'grammar-whiteSpace'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   721
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   722
whiteSpace
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   723
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   724
	^ (Character space asParser ) /
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   725
	  (Character tab asParser ) /
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   726
	  ((Character value: 12) asParser ) /
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   727
		lineTerminator 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   728
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   729
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   730
!JavaParserI methodsFor:'initialization'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   731
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   732
initialize
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   733
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   734
        super initialize.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   735
        "/self initializeStartingAt: #start.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   736
        
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   737
        self initializeKeywords.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   738
        self initializeOperators.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   739
        self initializeSeparators.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   740
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   741
    "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
   742
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   743
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   744
initializeKeywords
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   745
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   746
        | values |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   747
        keywords := Dictionary new.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   748
        values := #('abstract' 'assert' 'boolean' 'break' 'byte' 'case'  'catch' 'char' 'class' 'const'
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   749
           'continue' 'default' 'do' 'double' 'else' 'enum' 'extends' 'final'  'finally' 'float'
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   750
           'for' 'if' 'goto' 'implements' 'import' 'instanceof' 'int' 'interface' 'long' 'native'
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   751
           'new' 'package' 'private' 'protected' 'public' 'return' 'short' 'static' 'strictfp' 'super'
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   752
           'switch' 'synchronized' 'this' 'throw' 'throws' 'transient' 'try' 'void' 'volatile' 'while').
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   753
        
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   754
        values do: [:eachKeyword |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   755
                keywords at: eachKeyword 
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   756
                        put: (PPUnresolvedParser named: ('keyword', eachKeyword first asUppercase asString , eachKeyword allButFirst))          
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   757
                ].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   758
        
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   759
        keywords keysAndValuesDo:  [:key :value |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   760
                (keywords at: key) def: key asParser trim
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   761
        ]
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   762
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   763
    "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
   764
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   765
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   766
initializeOperators
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   767
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   768
        | values |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   769
        operators := Dictionary new.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   770
        values := #(    '>>>=' '>>>' '>>=' '>>' '>=' '>'        '<<=' '<<' '<=' '<'     '++' '+=' '+'   '--' '-=' '-'   '&&' '&=' '&'
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   771
                                        '||' '|=' '|'   '*=' '*'        '%=' '%'        '/=' '/'        '^=' '^'        '!!=' '!!'        '==' '='        '~'     '?'     ':'     '@' ).
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   772
        
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   773
        values do: [:eachOperator |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   774
                operators at: eachOperator 
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   775
                        put: (PPUnresolvedParser named: ('operator', eachOperator asString))            
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   776
                ].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   777
        
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   778
        operators  keysAndValuesDo:  [:key :value |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   779
                (operators at: key) def: (key asParser trim)]
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   780
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   781
    "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
   782
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   783
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   784
initializeSeparators
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   785
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   786
        | values |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   787
        separators := Dictionary new.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   788
        values := #( '(' ')' '{' '}' '[' ']' ';' ',' '.' ).
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   789
        
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   790
        values do: [:eachSeparator |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   791
                separators at: eachSeparator 
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   792
                        put: (PPUnresolvedParser named: ('separator', eachSeparator asString))          
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   793
                ].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   794
        
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   795
        separators  keysAndValuesDo:  [:key :value |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   796
                (separators at: key) def: (key asParser trim)]
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   797
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   798
    "Modified: / 10-03-2012 / 13:16:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   799
! !
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   800
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   801
!JavaParserI methodsFor:'querying'!
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   802
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   803
productionAt: aSymbol ifAbsent: aBlock
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   804
    "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
   805
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   806
    parser isNil ifTrue:[
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   807
        self initializeStartingAt: aSymbol.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   808
    ].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   809
    ^super productionAt: aSymbol ifAbsent: aBlock
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   810
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   811
    "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
   812
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   813
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   814
!JavaParserI methodsFor:'utility'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   815
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   816
asToken:aParser
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   817
    ^aParser
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   818
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   819
    "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
   820
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   821
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   822
emptySquaredParenthesis
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   823
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   824
        ^ '[' asParser trim , ']' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   825
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   826
    "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
   827
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   828
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   829
tokenFor: aString
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   830
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   831
    | p |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   832
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   833
    p := keywords at: aString ifAbsent:[nil].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   834
    p notNil ifTrue:[ ^ self asToken: p ].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   835
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   836
    p := operators at: aString ifAbsent:[nil].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   837
    p notNil ifTrue:[ ^ self asToken: p ].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   838
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   839
    p := separators at: aString ifAbsent:[nil].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   840
    p notNil ifTrue:[ ^ self asToken: p ].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   841
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   842
    self error: 'Should not be reached'
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   843
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   844
    "Modified: / 10-03-2012 / 11:47:44 / 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
   845
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   846
1406
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   847
!JavaParserI::SubParser class methodsFor:'instance creation'!
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   848
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   849
for: masterParser
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   850
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   851
    ^self new masterParser: masterParser
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   852
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   853
    "Created: / 09-03-2012 / 16:59:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   854
! !
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   855
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   856
!JavaParserI::SubParser methodsFor:'accessing'!
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   857
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   858
builder
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   859
    ^masterParser builder
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   860
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   861
    "Created: / 09-03-2012 / 16:58:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   862
!
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   863
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   864
masterParser
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   865
    ^ masterParser
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   866
!
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   867
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   868
masterParser:aJavaPetitParser
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   869
    masterParser := aJavaPetitParser.
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   870
! !
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   871
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   872
!JavaParserI::MultiLineCommentParser methodsFor:'parsing'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   873
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   874
buildNodeFrom: start to: end line: line text: text
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   875
    | b |
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   876
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   877
    ^(b := self builder) notNil ifTrue:[
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   878
        b   start: start stop: end line: line;
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   879
            newComment: text.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   880
    ] ifFalse:[
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   881
        nil
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   882
    ]
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   883
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   884
    "Modified: / 29-12-2010 / 21:29:26 / Jan Kurs <kurs.jan@post.cz>"
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   885
    "Created: / 09-03-2012 / 17:05:39 / 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
   886
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   887
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   888
checkStart: aStream
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   889
	^ (aStream next: self startSequence size) = self startSequence 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   890
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   891
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   892
parseOn:aStream 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   893
    | literal  wasStar  line  start  end |
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   894
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   895
    wasStar := false.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   896
    line := aStream lineNumber.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   897
    start := aStream position + 1.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   898
    (self checkStart:aStream) ifFalse:[
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   899
        ^ PPFailure message:self startSequence , ' expected' at:aStream position.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   900
    ].
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   901
    [
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   902
        aStream atEnd ifTrue:[
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   903
            ^ PPFailure message:'unexpected end of input' at:aStream position.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   904
        ].
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   905
        literal := aStream next.
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   906
        wasStar and:[ literal = $/ ]
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   907
    ] whileFalse:[ wasStar := literal = $* ].
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   908
    end := aStream position.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   909
    ^ self buildNodeFrom: start to: end line: nil text: nil.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   910
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   911
    "Modified: / 29-12-2010 / 21:29:26 / Jan Kurs <kurs.jan@post.cz>"
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   912
    "Modified: / 10-03-2012 / 12:34: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
   913
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   914
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   915
startSequence 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   916
	^ '/*'
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   917
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   918
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   919
!JavaParserI::SingleLineCommentParser methodsFor:'parsing'!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   920
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   921
parseOn: aStream
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   922
    | literal wasStar start end b|
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   923
    wasStar := false.
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   924
    start := aStream position + 1.
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   925
    
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   926
    (aStream next: 2) = '//' ifFalse: [
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   927
            ^ PPFailure message: '// expected' at: aStream position.
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   928
    ].
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   929
    
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   930
    [literal := aStream next.
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   931
            literal = (Character cr) or: [ aStream atEnd ]
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   932
    ] whileFalse.
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   933
    end := aStream position.
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   934
    
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   935
    ^(b := self builder) notNil ifTrue:[
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   936
        b   start: start stop: end line: nil;
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   937
            newComment: nil.
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   938
    ] ifFalse:[
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   939
        nil
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   940
    ]
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   941
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   942
    "Modified: / 10-03-2012 / 12:19:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   943
! !
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   944
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   945
!JavaParserI::BlockParser methodsFor:'accessing'!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   946
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   947
closeBlockChar: anObject
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   948
	closeBlockChar := anObject
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   949
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   950
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   951
openBlockChar: anObject
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   952
	openBlockChar := anObject
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   953
! !
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   954
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   955
!JavaParserI::BlockParser methodsFor:'initialization'!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   956
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   957
initialize
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   958
	innerBlockCount := 0.
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   959
	openBlockChar := ${.
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   960
	closeBlockChar := $}.
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   961
! !
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   962
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   963
!JavaParserI::BlockParser methodsFor:'parsing'!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   964
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   965
decInnerBlockCount
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   966
	innerBlockCount := innerBlockCount - 1.
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   967
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   968
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   969
incInnerBlockCount
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   970
	innerBlockCount := innerBlockCount + 1.
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   971
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   972
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   973
parseLoop: aStream
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   974
	| literal |
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   975
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   976
	aStream atEnd ifFalse: 
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   977
	[
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   978
		literal := aStream uncheckedPeek.
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   979
		literal = openBlockChar  ifTrue: [ self incInnerBlockCount].
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   980
		literal = closeBlockChar  ifTrue: [ self decInnerBlockCount].
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   981
		aStream next.
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   982
		^true
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   983
	].
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   984
	^false
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   985
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   986
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   987
parseOn: aStream
1416
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
   988
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
   989
    | openCount peekC |
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   990
1416
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
   991
    peekC := aStream uncheckedPeek.
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
   992
    peekC ~~ openBlockChar ifTrue:[
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
   993
        ^ PPFailure message: ('unexpected char (got ', peekC, ' expecting ' , openBlockChar , ')') at: aStream position
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
   994
    ].
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
   995
    openCount := 1.
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
   996
    aStream next.
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
   997
    [ openCount ~~ 0 ] whileTrue:[
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
   998
        aStream atEnd ifTrue:[
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
   999
            ^ PPFailure message: ('unexpected end of input') at: aStream position
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1000
        ].
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1001
        peekC := aStream next.
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1002
        peekC == openBlockChar ifTrue:[
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1003
            openCount := openCount + 1
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1004
        ] ifFalse:[
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1005
            peekC == closeBlockChar ifTrue:[
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1006
                openCount := openCount - 1
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1007
            ].
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1008
        ].
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1009
    ].
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1010
    "Should return contents..."
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1011
    ^nil
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1012
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1013
    "
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1014
        ( BlockParser new trim , ';' asParser trim) parse: '{ } ;'
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1015
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1016
    "
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1017
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1018
    "Modified: / 11-03-2012 / 19:12:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1019
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1020
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1021
zeroBlockCount
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1022
	^ innerBlockCount = 0
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1023
! !
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1024
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
  1025
!JavaParserI class methodsFor:'documentation'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
  1026
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
  1027
version_SVN
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
  1028
    ^ '$Id$'
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
  1029
! !