src/tools/JavaParserI.st
author vranyj1
Mon, 12 Mar 2012 19:05:30 +0000
branchjk_new_structure
changeset 1417 f4c3f5b90dd8
parent 1416 26c10dd1e5c6
child 1418 5f07e6439cbd
permissions -rw-r--r--
Fixes in parser
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
1417
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
    32
PPParser subclass:#IdentifierParser
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
    33
	instanceVariableNames:''
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
    34
	classVariableNames:''
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
    35
	poolDictionaries:''
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
    36
	privateIn:JavaParserI
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
    37
!
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
    38
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
    39
JavaParserI::SubParser subclass:#MultiLineCommentParser
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
    40
	instanceVariableNames:''
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
    41
	classVariableNames:''
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
    42
	poolDictionaries:''
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
    43
	privateIn:JavaParserI
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
    44
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
    45
1406
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
    46
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
    47
	instanceVariableNames:''
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
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
    53
JavaParserI::SubParser subclass:#BlockParser
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
    54
	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
    55
	classVariableNames:''
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    56
	poolDictionaries:''
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    57
	privateIn:JavaParserI
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
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
!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
    62
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    63
new
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    64
    "return an initialized instance"
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    65
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    66
    ^ self basicNew initialize.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    67
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    68
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    69
!JavaParserI class methodsFor:'accessing'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    70
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    71
ignoredNames
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    72
	"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
    73
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    74
	| newArray |	
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    75
	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
    76
	newArray
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    77
		replaceFrom: 1
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    78
		to: self namesToIgnore size
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    79
		with: self namesToIgnore.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    80
	newArray
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    81
		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
    82
		to: newArray size
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    83
		with: super ignoredNames.	
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    84
	^newArray
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    85
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    86
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    87
namesToIgnore
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    88
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    89
	^#('keywords' 'operators' 'separators')
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    90
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    91
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    92
!JavaParserI methodsFor:'accessing'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    93
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
    94
builder
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
    95
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
    96
    ^nil
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
    97
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
    98
    "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
    99
!
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   100
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   101
start
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   102
	"Default start production."
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   103
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   104
	^ input end
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   105
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   106
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   107
!JavaParserI methodsFor:'grammar-blocks'!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   108
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   109
block
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   110
    "Do no parse content of the block"
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   111
    ^(BlockParser for: self) trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   112
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   113
    "Created: / 11-03-2012 / 13:20:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   114
! !
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   115
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   116
!JavaParserI methodsFor:'grammar-comments'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   117
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   118
charactersInLine   
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   119
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   120
	^ inputCharacter plus
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
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   123
comment
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   124
	"traditional -> /*
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   125
	 endOfLine -> //"
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   126
	^ traditionalComment / endOfLineComment
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
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   129
commentTail
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   130
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
		(notStar , 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
commentTailStar 
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
	^ ('/' asParser ) /
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   138
	  ('*' asParser , commentTailStar ) /
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   139
	  (notStarNotSlash , commentTail )
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
endOfLineComment 
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
        ^ (SingleLineCommentParser for: self) trim
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
    "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
   147
!
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
notStar
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
	^ lineTerminator / ('*' asParser not , inputCharacter)
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   152
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   153
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   154
notStarNotSlash  
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   155
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   156
	^ 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
   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
traditionalComment
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   160
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   161
        ^ (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
   162
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   163
    "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
   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
!JavaParserI methodsFor:'grammar-identifiers'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   167
1417
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   168
identifier
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   169
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   170
    ^ IdentifierParser new
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   171
1417
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   172
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   173
"/    ^  self asToken: (((keyword not) , (booleanLiteral not) , (nullLiteral not) , identifierChars ))
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   174
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   175
    "Modified: / 12-03-2012 / 17:38:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   176
!
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
identifierChars
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
	^ javaLetter plus , javaLetterOrDigit star
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   181
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   182
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   183
javaLetter
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
	^ (#letter asParser) / (PPPredicateObjectParser anyOf: '_$')
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
javaLetterOrDigit
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
	^ javaLetter / (#digit asParser)
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
!JavaParserI methodsFor:'grammar-input'!
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
input
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   196
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   197
	^ (inputElements optional) , (sub optional)
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   198
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   199
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   200
inputElement
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   201
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   202
	^ whiteSpace / comment / javaToken
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   203
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   204
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   205
inputElements
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   206
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   207
	^ inputElement plus
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   208
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   209
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   210
javaToken
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   211
        "/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
   212
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   213
        ^ 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
   214
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   215
    "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
   216
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   217
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   218
sub
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   219
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   220
	^ (Character value: 26) asParser 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   221
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   222
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   223
!JavaParserI methodsFor:'grammar-keywords'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   224
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   225
abstractKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   226
    ^ 'abstract' 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
assertKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   230
    ^ 'assert' 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
booleanKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   234
    ^ 'boolean' 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
breakKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   238
    ^ 'break' 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
byteKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   242
    ^ 'byte' 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
caseKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   246
    ^ 'case' 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
catchKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   250
    ^ 'catch' 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
charKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   254
    ^ 'char' 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
classKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   258
    ^ 'class' 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
constKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   262
    ^ 'const' 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
continueKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   266
    ^ 'continue' 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
defaultKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   270
    ^ 'default' 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
doKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   274
    ^ 'do' 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
doubleKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   278
    ^ 'double' 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
elseKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   282
    ^ 'else' 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
enumKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   286
    ^ 'enum' 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
extendsKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   290
    ^ 'extends' 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
finalKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   294
    ^ 'final' 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
finallyKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   298
    ^ 'finally' 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
floatKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   302
    ^ 'float' 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
forKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   306
    ^ 'for' 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
gotoKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   310
    ^ 'goto' 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
ifKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   314
    ^ 'if' 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
implementsKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   318
    ^ 'implements' 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
importKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   322
    ^ 'import' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   323
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   324
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   325
instanceofKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   326
    ^ 'instanceof' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   327
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   328
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   329
intKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   330
    ^ 'int' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   331
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   332
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   333
interfaceKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   334
    ^ 'interface' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   335
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   336
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   337
keyword
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
        | keywordParsers keywordParser |
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   340
        
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   341
        keywordParsers := keywords keys asSortedCollection "/SortedSafely 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   342
                                                                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
   343
        keywordParser := nil.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   344
        keywordParsers do:[:each|
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   345
            keywordParser notNil ifTrue:[
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   346
                keywordParser := keywordParser / each
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   347
            ] ifFalse:[
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   348
                keywordParser := each
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   349
            ]
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   350
        ].
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   351
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   352
        ^ "self asToken: "keywordParser
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   353
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   354
    "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
   355
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   356
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   357
longKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   358
    ^ 'long' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   359
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   360
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   361
nativeKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   362
    ^ 'native' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   363
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   364
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   365
newKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   366
    ^ 'new' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   367
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   368
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   369
operator
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
        | operatorParsers operatorParser |
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   372
        
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   373
        operatorParsers := operators keys asSortedCollection "/SortedSafely 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   374
                                                                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
   375
        operatorParser := nil.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   376
        operatorParsers do:[:each|
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   377
            operatorParser notNil ifTrue:[
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   378
                operatorParser := operatorParser / each
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   379
            ] ifFalse:[
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   380
                operatorParser := each
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   381
            ]
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   382
        ].
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   383
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   384
        ^ "self asToken: "operatorParser
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   385
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   386
    "Modified: / 09-03-2012 / 20:50:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1415
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
packageKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   390
    ^ 'package' 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
privateKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   394
    ^ 'private' 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
protectedKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   398
    ^ 'protected' 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
publicKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   402
    ^ 'public' 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
returnKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   406
    ^ 'return' 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
shortKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   410
    ^ 'short' 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
staticKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   414
    ^ 'static' 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
strictfpKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   418
    ^ 'strictfp' 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
superKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   422
    ^ 'super' 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
switchKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   426
    ^ 'switch' 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
synchronizedKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   430
    ^ 'synchronized' 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
thisKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   434
    ^ 'this' 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
throwKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   438
    ^ 'throw' 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
throwsKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   442
    ^ 'throws' 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
transientKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   446
    ^ 'transient' 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
tryKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   450
    ^ 'try' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   451
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   452
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   453
voidKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   454
    ^ 'void' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   455
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   456
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   457
volatileKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   458
    ^ 'volatile' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   459
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   460
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   461
whileKW
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   462
    ^ 'while' asParser trim
1403
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-lineTerminators'!
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
inputCharacter 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   468
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   469
	^(lineTerminator not) , unicodeInputCharacter ==> #second
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   470
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   471
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   472
lineTerminator
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
	^ (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
   475
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   476
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   477
!JavaParserI methodsFor:'grammar-literals'!
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
literal
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   480
        "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
   481
        
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   482
        ^" 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
   483
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   484
    "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
   485
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   486
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   487
!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
   488
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   489
booleanLiteral 
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
 ^ ('true' asParser) / ('false' asParser)
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-character'!
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
characterLiteral 
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 , ( escapeSequence / singleCharacter ), $' asParser
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   499
!
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
singleCharacter 	
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   502
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   503
	^( 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
   504
! !
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
!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
   507
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   508
escapeSequence 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   509
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   510
	^ ($\ asParser , (PPPredicateObjectParser anyOf: 'btnfr""''\' ) ) /
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   511
	   octalEscape 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   512
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   513
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   514
octalEscape
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
	^ $\ 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
   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
zeroToThree
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: '0123'
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
!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
   525
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   526
binaryExponent
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   527
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   528
 ^ binaryExponentIndicator , signedInteger
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   529
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   530
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   531
binaryExponentIndicator
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   532
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   533
  ^ PPPredicateObjectParser anyOf: 'pP'
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   534
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   535
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   536
decimalFloatingPointLiteral
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   537
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   538
	|dot|
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   539
	dot := $. asParser.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   540
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   541
 ^ ( ( (dot , digits) 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   542
        / 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   543
        (digits , dot , digits optional)) , 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   544
			exponentPart optional , floatTypeSuffix optional ) 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   545
  	/ 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   546
  	(digits , 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   547
		( (exponentPart , floatTypeSuffix optional) 
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
		  (exponentPart optional , floatTypeSuffix) ))
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   550
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   551
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   552
exponentIndicator
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
  ^ PPPredicateObjectParser anyOf: 'eE'
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   555
!
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
exponentPart
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
 ^ exponentIndicator , signedInteger
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   560
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   561
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   562
floatTypeSuffix
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
	^ PPPredicateObjectParser anyOf: 'fFdD'
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   565
!
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
floatingPointLiteral
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   568
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   569
  ^ hexadecimalFloatingPointLiteral / decimalFloatingPointLiteral
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   570
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   571
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   572
hexSignificand 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   573
	|dot|
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   574
	dot := $. asParser.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   575
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   576
 ^  (hexNumeral , dot optional) /
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   577
    ($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
   578
!
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
hexadecimalFloatingPointLiteral
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
 ^ hexSignificand , binaryExponent , floatTypeSuffix optional
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   583
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   584
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   585
sign
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
  ^PPPredicateObjectParser anyOf: '-+'
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
signedInteger
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
  ^ sign optional , digits
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
!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
   596
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   597
decimalIntegerLiteral
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
 ^ decimalNumeral , (integerTypeSuffix optional)
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   600
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   601
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   602
decimalNumeral 
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
	^($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
   605
!
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
digits 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   608
	"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
   609
	^#digit asParser plus
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   610
!
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
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
	^hexDigit plus
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   615
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   616
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   617
hexIntegerLiteral 
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
  ^ hexNumeral , (integerTypeSuffix optional)
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   620
!
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
hexNumeral 
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
	^$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
   625
!
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
integerLiteral
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
  ^ hexIntegerLiteral / octalIntegerLiteral / decimalIntegerLiteral
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   630
!
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
integerTypeSuffix
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
	^ PPPredicateObjectParser anyOf: 'lL'
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   635
!
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
nonZeroDigit 
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
	^PPPredicateObjectParser anyOf: '123456789'.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   640
!
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
octalDigit 
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
	^PPPredicateObjectParser anyOf: '01234567'
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   645
!
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
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
	^ octalDigit plus
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   650
!
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
octalIntegerLiteral 
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
 ^ octalNumeral , (integerTypeSuffix optional)
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
octalNumeral 
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
	^($0 asParser) , octalDigits
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
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   662
!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
   663
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   664
nullLiteral 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   665
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   666
 ^ 'null' asParser
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   667
! !
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
!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
   670
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   671
stringCharacter
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   672
		
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   673
	^ ( ( 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
   674
	   escapeSequence 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   675
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   676
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   677
stringCharacters
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
	^ stringCharacter plus
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
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   682
stringLiteral 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   683
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   684
 ^ $" asParser , stringCharacters optional , $" asParser
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
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   687
!JavaParserI methodsFor:'grammar-separators'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   688
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   689
separator
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   690
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   691
        "should it be:
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
        | separatorParsers |
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   694
        separatorParsers := separators keysSortedSafely 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   695
                                                                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
   696
        ^ (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
   697
        
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   698
        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
   699
        
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   700
        ^"self asToken: "(PPPredicateObjectParser anyOf: '(){}[];,.' )
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
    "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
   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
!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
   706
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   707
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
	^#hex asParser
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   710
!
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
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
	^#any asParser
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   715
!
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
unicodeEscape
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
	^ $\ 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
   720
!
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
unicodeInputCharacter
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
	 ^ unicodeEscape / rawInputCharacter
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   725
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   726
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   727
unicodeMarker
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
	^$u asParser plus
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   730
! !
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
!JavaParserI methodsFor:'grammar-whiteSpace'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   733
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   734
whiteSpace
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   735
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   736
	^ (Character space asParser ) /
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   737
	  (Character tab asParser ) /
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   738
	  ((Character value: 12) asParser ) /
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   739
		lineTerminator 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   740
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   741
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   742
!JavaParserI methodsFor:'initialization'!
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
initialize
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
        super initialize.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   747
        "/self initializeStartingAt: #start.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   748
        
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   749
        self initializeKeywords.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   750
        self initializeOperators.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   751
        self initializeSeparators.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   752
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   753
    "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
   754
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   755
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   756
initializeKeywords
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   757
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   758
        | values |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   759
        keywords := Dictionary new.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   760
        values := #('abstract' 'assert' 'boolean' 'break' 'byte' 'case'  'catch' 'char' 'class' 'const'
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   761
           'continue' 'default' 'do' 'double' 'else' 'enum' 'extends' 'final'  'finally' 'float'
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   762
           'for' 'if' 'goto' 'implements' 'import' 'instanceof' 'int' 'interface' 'long' 'native'
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   763
           'new' 'package' 'private' 'protected' 'public' 'return' 'short' 'static' 'strictfp' 'super'
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   764
           'switch' 'synchronized' 'this' 'throw' 'throws' 'transient' 'try' 'void' 'volatile' 'while').
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   765
        
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   766
        values do: [:eachKeyword |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   767
                keywords at: eachKeyword 
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   768
                        put: (PPUnresolvedParser named: ('keyword', eachKeyword first asUppercase asString , eachKeyword allButFirst))          
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   769
                ].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   770
        
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   771
        keywords keysAndValuesDo:  [:key :value |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   772
                (keywords at: key) def: key asParser trim
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   773
        ]
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   774
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   775
    "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
   776
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   777
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   778
initializeOperators
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   779
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   780
        | values |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   781
        operators := Dictionary new.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   782
        values := #(    '>>>=' '>>>' '>>=' '>>' '>=' '>'        '<<=' '<<' '<=' '<'     '++' '+=' '+'   '--' '-=' '-'   '&&' '&=' '&'
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   783
                                        '||' '|=' '|'   '*=' '*'        '%=' '%'        '/=' '/'        '^=' '^'        '!!=' '!!'        '==' '='        '~'     '?'     ':'     '@' ).
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   784
        
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   785
        values do: [:eachOperator |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   786
                operators at: eachOperator 
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   787
                        put: (PPUnresolvedParser named: ('operator', eachOperator asString))            
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   788
                ].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   789
        
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   790
        operators  keysAndValuesDo:  [:key :value |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   791
                (operators at: key) def: (key asParser trim)]
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   792
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   793
    "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
   794
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   795
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   796
initializeSeparators
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   797
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   798
        | values |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   799
        separators := Dictionary new.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   800
        values := #( '(' ')' '{' '}' '[' ']' ';' ',' '.' ).
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   801
        
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   802
        values do: [:eachSeparator |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   803
                separators at: eachSeparator 
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   804
                        put: (PPUnresolvedParser named: ('separator', eachSeparator asString))          
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   805
                ].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   806
        
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   807
        separators  keysAndValuesDo:  [:key :value |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   808
                (separators at: key) def: (key asParser trim)]
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   809
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   810
    "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
   811
! !
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   812
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   813
!JavaParserI methodsFor:'querying'!
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   814
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   815
productionAt: aSymbol ifAbsent: aBlock
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   816
    "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
   817
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   818
    parser isNil ifTrue:[
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   819
        self initializeStartingAt: aSymbol.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   820
    ].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   821
    ^super productionAt: aSymbol ifAbsent: aBlock
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   822
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   823
    "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
   824
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   825
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   826
!JavaParserI methodsFor:'utility'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   827
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   828
asToken:aParser
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   829
    ^aParser
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   830
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   831
    "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
   832
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   833
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   834
emptySquaredParenthesis
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   835
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   836
        ^ '[' asParser trim , ']' asParser trim
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   837
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   838
    "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
   839
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   840
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   841
tokenFor: aString
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   842
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   843
    | p |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   844
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   845
    p := keywords at: aString ifAbsent:[nil].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   846
    p notNil ifTrue:[ ^ self asToken: p ].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   847
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   848
    p := operators at: aString ifAbsent:[nil].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   849
    p notNil ifTrue:[ ^ self asToken: p ].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   850
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   851
    p := separators at: aString ifAbsent:[nil].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   852
    p notNil ifTrue:[ ^ self asToken: p ].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   853
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   854
    self error: 'Should not be reached'
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   855
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   856
    "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
   857
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   858
1406
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   859
!JavaParserI::SubParser class methodsFor:'instance creation'!
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   860
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   861
for: masterParser
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   862
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   863
    ^self new masterParser: masterParser
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   864
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   865
    "Created: / 09-03-2012 / 16:59:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
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
!JavaParserI::SubParser methodsFor:'accessing'!
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   869
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   870
builder
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   871
    ^masterParser builder
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   872
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   873
    "Created: / 09-03-2012 / 16:58:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   874
!
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   875
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   876
masterParser
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   877
    ^ masterParser
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   878
!
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   879
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   880
masterParser:aJavaPetitParser
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   881
    masterParser := aJavaPetitParser.
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   882
! !
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   883
1417
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   884
!JavaParserI::IdentifierParser methodsFor:'parsing'!
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   885
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   886
parseOn:aStream
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   887
    "Parses Java identifier from given Stream"
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   888
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   889
    | ident |
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   890
    ident := (String new: 10) writeStream.
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   891
    aStream peek isLetter ifFalse:[
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   892
        ^ PPFailure message:'letter expected' at: aStream position
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   893
    ].
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   894
    ident nextPut: aStream next.
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   895
    [ 
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   896
        aStream atEnd not and: [aStream peek isLetterOrDigit]
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   897
    ] whileTrue:[
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   898
        ident nextPut: aStream next.
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   899
    ].
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   900
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   901
    ident := ident contents.
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   902
    (#('abstract' 'assert' 'boolean' 'break' 'byte' 'case'  'catch' 'char' 'class' 'const'
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   903
           'continue' 'default' 'do' 'double' 'else' 'enum' 'extends' 'final'  'finally' 'float'
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   904
           'for' 'if' 'goto' 'implements' 'import' 'instanceof' 'int' 'interface' 'long' 'native'
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   905
           'new' 'package' 'private' 'protected' 'public' 'return' 'short' 'static' 'strictfp' 'super'
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   906
           'switch' 'synchronized' 'this' 'throw' 'throws' 'transient' 'try' 'void' 'volatile' 'while'
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   907
           'true' 'false' 'null') includes: ident) ifTrue:[
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   908
               ^ PPFailure message:'identifier expected' at: aStream position
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   909
            ].
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   910
    ^ident
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   911
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   912
    "Modified: / 12-03-2012 / 17:40:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   913
! !
f4c3f5b90dd8 Fixes in parser
vranyj1
parents: 1416
diff changeset
   914
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   915
!JavaParserI::MultiLineCommentParser methodsFor:'parsing'!
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
buildNodeFrom: start to: end line: line text: text
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   918
    | b |
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   919
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   920
    ^(b := self builder) notNil ifTrue:[
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   921
        b   start: start stop: end line: line;
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   922
            newComment: text.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   923
    ] ifFalse:[
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   924
        nil
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   925
    ]
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   926
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   927
    "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
   928
    "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
   929
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   930
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   931
checkStart: aStream
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   932
	^ (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
   933
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   934
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   935
parseOn:aStream 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   936
    | 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
   937
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   938
    wasStar := false.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   939
    line := aStream lineNumber.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   940
    start := aStream position + 1.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   941
    (self checkStart:aStream) ifFalse:[
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   942
        ^ 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
   943
    ].
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   944
    [
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   945
        aStream atEnd ifTrue:[
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   946
            ^ 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
   947
        ].
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   948
        literal := aStream next.
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   949
        wasStar and:[ literal = $/ ]
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   950
    ] whileFalse:[ wasStar := literal = $* ].
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   951
    end := aStream position.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   952
    ^ 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
   953
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   954
    "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
   955
    "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
   956
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   957
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   958
startSequence 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   959
	^ '/*'
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   960
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   961
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   962
!JavaParserI::SingleLineCommentParser methodsFor:'parsing'!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   963
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   964
parseOn: aStream
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   965
    | literal wasStar start end b|
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   966
    wasStar := false.
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   967
    start := aStream position + 1.
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   968
    
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   969
    (aStream next: 2) = '//' ifFalse: [
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   970
            ^ PPFailure message: '// expected' at: aStream position.
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
    [literal := aStream next.
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   974
            literal = (Character cr) or: [ aStream atEnd ]
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   975
    ] whileFalse.
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   976
    end := aStream position.
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   977
    
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   978
    ^(b := self builder) notNil ifTrue:[
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   979
        b   start: start stop: end line: nil;
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   980
            newComment: nil.
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   981
    ] ifFalse:[
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   982
        nil
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   983
    ]
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   984
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   985
    "Modified: / 10-03-2012 / 12:19:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   986
! !
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   987
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   988
!JavaParserI::BlockParser methodsFor:'accessing'!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   989
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   990
closeBlockChar: anObject
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   991
	closeBlockChar := anObject
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   992
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   993
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   994
openBlockChar: anObject
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   995
	openBlockChar := anObject
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   996
! !
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   997
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   998
!JavaParserI::BlockParser methodsFor:'initialization'!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
   999
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1000
initialize
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1001
	innerBlockCount := 0.
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1002
	openBlockChar := ${.
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1003
	closeBlockChar := $}.
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1004
! !
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1005
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1006
!JavaParserI::BlockParser methodsFor:'parsing'!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1007
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1008
decInnerBlockCount
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1009
	innerBlockCount := innerBlockCount - 1.
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1010
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1011
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1012
incInnerBlockCount
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1013
	innerBlockCount := innerBlockCount + 1.
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1014
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1015
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1016
parseLoop: aStream
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1017
	| literal |
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1018
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1019
	aStream atEnd ifFalse: 
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1020
	[
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1021
		literal := aStream uncheckedPeek.
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1022
		literal = openBlockChar  ifTrue: [ self incInnerBlockCount].
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1023
		literal = closeBlockChar  ifTrue: [ self decInnerBlockCount].
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1024
		aStream next.
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1025
		^true
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1026
	].
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1027
	^false
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1028
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1029
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1030
parseOn: aStream
1416
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1031
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1032
    | openCount peekC |
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1033
1416
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1034
    peekC := aStream uncheckedPeek.
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1035
    peekC ~~ openBlockChar ifTrue:[
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1036
        ^ PPFailure message: ('unexpected char (got ', peekC, ' expecting ' , openBlockChar , ')') at: aStream position
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1037
    ].
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1038
    openCount := 1.
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1039
    aStream next.
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1040
    [ openCount ~~ 0 ] whileTrue:[
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1041
        aStream atEnd ifTrue:[
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1042
            ^ PPFailure message: ('unexpected end of input') at: aStream position
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1043
        ].
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1044
        peekC := aStream next.
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1045
        peekC == openBlockChar ifTrue:[
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1046
            openCount := openCount + 1
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1047
        ] ifFalse:[
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1048
            peekC == closeBlockChar ifTrue:[
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1049
                openCount := openCount - 1
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1050
            ].
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1051
        ].
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1052
    ].
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1053
    "Should return contents..."
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1054
    ^nil
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1055
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1056
    "
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1057
        ( BlockParser new trim , ';' asParser trim) parse: '{ } ;'
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1058
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1059
    "
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1060
26c10dd1e5c6 Fix in JavaParserI
vranyj1
parents: 1415
diff changeset
  1061
    "Modified: / 11-03-2012 / 19:12:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1415
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1062
!
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1063
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1064
zeroBlockCount
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1065
	^ innerBlockCount = 0
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1066
! !
6b0bbeb08b5a Fixes in Parser
vranyj1
parents: 1412
diff changeset
  1067
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
  1068
!JavaParserI class methodsFor:'documentation'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
  1069
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
  1070
version_SVN
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
  1071
    ^ '$Id$'
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
  1072
! !