src/tools/JavaParserI.st
author vranyj1
Sat, 10 Mar 2012 13:18:15 +0000
branchjk_new_structure
changeset 1412 93b28a7963b0
parent 1406 f2a792802ba8
child 1415 6b0bbeb08b5a
permissions -rw-r--r--
Fixes and improvements 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
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    19
		octalEscape zeroToThree input operators separators'
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
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
    32
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
    33
	instanceVariableNames:''
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    34
	classVariableNames:''
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    35
	poolDictionaries:''
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    36
	privateIn:JavaParserI
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    37
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    38
1406
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
    39
JavaParserI::SubParser subclass:#MultiLineCommentParser
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    40
	instanceVariableNames:''
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    41
	classVariableNames:''
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    42
	poolDictionaries:''
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    43
	privateIn:JavaParserI
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    44
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    45
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    46
JavaParserI comment:''
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    47
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    48
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    49
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    50
!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
    51
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    52
new
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    53
    "return an initialized instance"
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    54
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    55
    ^ self basicNew initialize.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    56
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    57
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    58
!JavaParserI class methodsFor:'accessing'!
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
ignoredNames
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    61
	"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
    62
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    63
	| newArray |	
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    64
	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
    65
	newArray
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    66
		replaceFrom: 1
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    67
		to: self namesToIgnore size
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    68
		with: self namesToIgnore.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    69
	newArray
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    70
		replaceFrom: (self namesToIgnore size + 1)
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    71
		to: newArray size
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    72
		with: super ignoredNames.	
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    73
	^newArray
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    74
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    75
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    76
namesToIgnore
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    77
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    78
	^#('keywords' 'operators' 'separators')
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    79
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    80
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    81
!JavaParserI methodsFor:'accessing'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    82
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
    83
builder
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
    84
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
    85
    ^nil
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
    86
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
    87
    "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
    88
!
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
    89
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    90
start
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    91
	"Default start production."
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    92
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    93
	^ input end
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    94
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    95
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    96
!JavaParserI methodsFor:'grammar-comments'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    97
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    98
charactersInLine   
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
    99
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   100
	^ inputCharacter plus
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   101
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   102
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   103
comment
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   104
	"traditional -> /*
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   105
	 endOfLine -> //"
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   106
	^ traditionalComment / endOfLineComment
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   107
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   108
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   109
commentTail
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   110
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   111
	^ 	('*' asParser , commentTailStar ) /
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   112
		(notStar , commentTail)
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   113
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   114
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   115
commentTailStar 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   116
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   117
	^ ('/' asParser ) /
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   118
	  ('*' asParser , commentTailStar ) /
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   119
	  (notStarNotSlash , commentTail )
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   120
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   121
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   122
endOfLineComment 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   123
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   124
        ^ (SingleLineCommentParser for: self) trim
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   125
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   126
    "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
   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
notStar
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
	^ lineTerminator / ('*' asParser not , inputCharacter)
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   132
!
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
notStarNotSlash  
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   135
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   136
	^ 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
   137
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   138
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   139
traditionalComment
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   140
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   141
        ^ (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
   142
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   143
    "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
   144
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   145
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   146
!JavaParserI methodsFor:'grammar-identifiers'!
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
identifier 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   149
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   150
	^  self asToken: (((keyword not) , (booleanLiteral not) , (nullLiteral not) , identifierChars ))
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   151
!
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
identifierChars
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   154
	
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   155
	^ javaLetter plus , javaLetterOrDigit star
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   156
!
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
javaLetter
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   159
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   160
	^ (#letter asParser) / (PPPredicateObjectParser anyOf: '_$')
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   161
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   162
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   163
javaLetterOrDigit
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
	^ javaLetter / (#digit asParser)
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   166
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   167
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   168
!JavaParserI methodsFor:'grammar-input'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   169
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   170
input
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   171
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   172
	^ (inputElements optional) , (sub optional)
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   173
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   174
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   175
inputElement
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
	^ whiteSpace / comment / javaToken
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   178
!
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
inputElements
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
	^ inputElement plus
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   183
!
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
javaToken
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   186
        "/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
   187
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   188
        ^ 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
   189
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   190
    "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
   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
sub
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
	^ (Character value: 26) asParser 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   196
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   197
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   198
!JavaParserI methodsFor:'grammar-keywords'!
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
keyword
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
        | keywordParsers keywordParser |
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
        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
   205
                                                                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
   206
        keywordParser := nil.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   207
        keywordParsers do:[:each|
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   208
            keywordParser notNil ifTrue:[
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   209
                keywordParser := keywordParser / each
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   210
            ] ifFalse:[
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   211
                keywordParser := each
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
        ].
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
        ^ "self asToken: "keywordParser
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   216
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   217
    "Modified: / 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
   218
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   219
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   220
operator
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
        | operatorParsers operatorParser |
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   223
        
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   224
        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
   225
                                                                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
   226
        operatorParser := nil.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   227
        operatorParsers do:[:each|
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   228
            operatorParser notNil ifTrue:[
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   229
                operatorParser := operatorParser / each
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   230
            ] ifFalse:[
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   231
                operatorParser := each
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   232
            ]
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   233
        ].
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   234
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   235
        ^ "self asToken: "operatorParser
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   236
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   237
    "Modified: / 09-03-2012 / 20:50:35 / 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
   238
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   239
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   240
!JavaParserI methodsFor:'grammar-lineTerminators'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   241
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   242
inputCharacter 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   243
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   244
	^(lineTerminator not) , unicodeInputCharacter ==> #second
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   245
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   246
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   247
lineTerminator
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   248
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   249
	^ (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
   250
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   251
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   252
!JavaParserI methodsFor:'grammar-literals'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   253
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   254
literal
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   255
        "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
   256
        
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   257
        ^" 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
   258
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   259
    "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
   260
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   261
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   262
!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
   263
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   264
booleanLiteral 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   265
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   266
 ^ ('true' asParser) / ('false' asParser)
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   267
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   268
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   269
!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
   270
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   271
characterLiteral 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   272
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   273
 ^ $' asParser , ( escapeSequence / singleCharacter ), $' asParser
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   274
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   275
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   276
singleCharacter 	
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   277
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   278
	^( 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
   279
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   280
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   281
!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
   282
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   283
escapeSequence 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   284
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   285
	^ ($\ asParser , (PPPredicateObjectParser anyOf: 'btnfr""''\' ) ) /
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   286
	   octalEscape 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   287
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   288
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   289
octalEscape
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   290
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   291
	^ $\ 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
   292
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   293
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   294
zeroToThree
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   295
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   296
	^PPPredicateObjectParser anyOf: '0123'
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   297
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   298
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   299
!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
   300
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   301
binaryExponent
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   302
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   303
 ^ binaryExponentIndicator , signedInteger
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   304
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   305
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   306
binaryExponentIndicator
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   307
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   308
  ^ PPPredicateObjectParser anyOf: 'pP'
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   309
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   310
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   311
decimalFloatingPointLiteral
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   312
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   313
	|dot|
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   314
	dot := $. asParser.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   315
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   316
 ^ ( ( (dot , digits) 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   317
        / 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   318
        (digits , dot , digits optional)) , 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   319
			exponentPart optional , floatTypeSuffix optional ) 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   320
  	/ 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   321
  	(digits , 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   322
		( (exponentPart , floatTypeSuffix optional) 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   323
		  /
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   324
		  (exponentPart optional , floatTypeSuffix) ))
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   325
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   326
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   327
exponentIndicator
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   328
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   329
  ^ PPPredicateObjectParser anyOf: 'eE'
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   330
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   331
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   332
exponentPart
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   333
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   334
 ^ exponentIndicator , signedInteger
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   335
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   336
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   337
floatTypeSuffix
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
	^ PPPredicateObjectParser anyOf: 'fFdD'
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
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   342
floatingPointLiteral
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   343
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   344
  ^ hexadecimalFloatingPointLiteral / decimalFloatingPointLiteral
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   345
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   346
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   347
hexSignificand 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   348
	|dot|
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   349
	dot := $. asParser.
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
 ^  (hexNumeral , dot optional) /
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   352
    ($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
   353
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   354
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   355
hexadecimalFloatingPointLiteral
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   356
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   357
 ^ hexSignificand , binaryExponent , floatTypeSuffix optional
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   358
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   359
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   360
sign
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   361
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   362
  ^PPPredicateObjectParser anyOf: '-+'
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   363
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   364
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   365
signedInteger
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   366
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   367
  ^ sign optional , digits
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   368
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   369
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   370
!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
   371
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   372
decimalIntegerLiteral
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   373
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   374
 ^ decimalNumeral , (integerTypeSuffix optional)
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   375
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   376
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   377
decimalNumeral 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   378
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   379
	^($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
   380
!
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
digits 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   383
	"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
   384
	^#digit asParser plus
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
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   387
hexDigits 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   388
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   389
	^hexDigit plus
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   390
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   391
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   392
hexIntegerLiteral 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   393
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   394
  ^ hexNumeral , (integerTypeSuffix optional)
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   395
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   396
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   397
hexNumeral 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   398
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   399
	^$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
   400
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   401
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   402
integerLiteral
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   404
  ^ hexIntegerLiteral / octalIntegerLiteral / decimalIntegerLiteral
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   405
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   406
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   407
integerTypeSuffix
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   408
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   409
	^ PPPredicateObjectParser anyOf: 'lL'
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   410
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   411
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   412
nonZeroDigit 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   413
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   414
	^PPPredicateObjectParser anyOf: '123456789'.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   415
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   416
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   417
octalDigit 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   418
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   419
	^PPPredicateObjectParser anyOf: '01234567'
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   420
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   421
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   422
octalDigits
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   423
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   424
	^ octalDigit plus
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   425
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   426
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   427
octalIntegerLiteral 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   428
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   429
 ^ octalNumeral , (integerTypeSuffix optional)
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   430
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   431
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   432
octalNumeral 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   433
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   434
	^($0 asParser) , octalDigits
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   435
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   436
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   437
!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
   438
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   439
nullLiteral 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   440
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   441
 ^ 'null' asParser
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   442
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   443
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   444
!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
   445
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   446
stringCharacter
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   447
		
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   448
	^ ( ( 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
   449
	   escapeSequence 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   450
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   451
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   452
stringCharacters
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   453
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   454
	^ stringCharacter plus
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   455
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   456
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   457
stringLiteral 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   458
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   459
 ^ $" asParser , stringCharacters optional , $" asParser
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   460
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   461
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   462
!JavaParserI methodsFor:'grammar-separators'!
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
separator
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   465
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   466
        "should it be:
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   467
        
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   468
        | separatorParsers |
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   469
        separatorParsers := separators keysSortedSafely 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   470
                                                                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
   471
        ^ (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
   472
        
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   473
        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
   474
        
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   475
        ^"self asToken: "(PPPredicateObjectParser anyOf: '(){}[];,.' )
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
    "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
   478
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   479
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   480
!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
   481
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   482
hexDigit 
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
	^#hex asParser
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
rawInputCharacter
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
	^#any asParser
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
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   492
unicodeEscape
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
	^ $\ 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
   495
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   496
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   497
unicodeInputCharacter
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   498
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   499
	 ^ unicodeEscape / rawInputCharacter
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   500
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   501
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   502
unicodeMarker
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   503
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   504
	^$u asParser plus
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   505
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   506
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   507
!JavaParserI methodsFor:'grammar-whiteSpace'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   508
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   509
whiteSpace
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   510
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   511
	^ (Character space asParser ) /
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   512
	  (Character tab asParser ) /
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   513
	  ((Character value: 12) asParser ) /
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   514
		lineTerminator 
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
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   517
!JavaParserI methodsFor:'initialization'!
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
initialize
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   520
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   521
        super initialize.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   522
        "/self initializeStartingAt: #start.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   523
        
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   524
        self initializeKeywords.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   525
        self initializeOperators.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   526
        self initializeSeparators.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   527
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   528
    "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
   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
initializeKeywords
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   532
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   533
        | values |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   534
        keywords := Dictionary new.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   535
        values := #('abstract' 'assert' 'boolean' 'break' 'byte' 'case'  'catch' 'char' 'class' 'const'
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   536
           'continue' 'default' 'do' 'double' 'else' 'enum' 'extends' 'final'  'finally' 'float'
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   537
           'for' 'if' 'goto' 'implements' 'import' 'instanceof' 'int' 'interface' 'long' 'native'
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   538
           'new' 'package' 'private' 'protected' 'public' 'return' 'short' 'static' 'strictfp' 'super'
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   539
           'switch' 'synchronized' 'this' 'throw' 'throws' 'transient' 'try' 'void' 'volatile' 'while').
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   540
        
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   541
        values do: [:eachKeyword |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   542
                keywords at: eachKeyword 
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   543
                        put: (PPUnresolvedParser named: ('keyword', eachKeyword first asUppercase asString , eachKeyword allButFirst))          
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   544
                ].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   545
        
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   546
        keywords keysAndValuesDo:  [:key :value |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   547
                (keywords at: key) def: key asParser trim
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   548
        ]
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   549
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   550
    "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
   551
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   552
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   553
initializeOperators
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   554
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   555
        | values |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   556
        operators := Dictionary new.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   557
        values := #(    '>>>=' '>>>' '>>=' '>>' '>=' '>'        '<<=' '<<' '<=' '<'     '++' '+=' '+'   '--' '-=' '-'   '&&' '&=' '&'
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   558
                                        '||' '|=' '|'   '*=' '*'        '%=' '%'        '/=' '/'        '^=' '^'        '!!=' '!!'        '==' '='        '~'     '?'     ':'     '@' ).
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   559
        
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   560
        values do: [:eachOperator |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   561
                operators at: eachOperator 
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   562
                        put: (PPUnresolvedParser named: ('operator', eachOperator asString))            
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   563
                ].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   564
        
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   565
        operators  keysAndValuesDo:  [:key :value |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   566
                (operators at: key) def: (key asParser trim)]
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   567
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   568
    "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
   569
!
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
initializeSeparators
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   572
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   573
        | values |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   574
        separators := Dictionary new.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   575
        values := #( '(' ')' '{' '}' '[' ']' ';' ',' '.' ).
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   576
        
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   577
        values do: [:eachSeparator |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   578
                separators at: eachSeparator 
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   579
                        put: (PPUnresolvedParser named: ('separator', eachSeparator asString))          
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   580
                ].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   581
        
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   582
        separators  keysAndValuesDo:  [:key :value |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   583
                (separators at: key) def: (key asParser trim)]
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   584
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   585
    "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
   586
! !
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   587
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   588
!JavaParserI methodsFor:'querying'!
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   589
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   590
productionAt: aSymbol ifAbsent: aBlock
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   591
    "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
   592
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   593
    parser isNil ifTrue:[
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   594
        self initializeStartingAt: aSymbol.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   595
    ].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   596
    ^super productionAt: aSymbol ifAbsent: aBlock
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   597
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   598
    "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
   599
! !
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
!JavaParserI methodsFor:'utility'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   602
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   603
asToken: aParser
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   604
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   605
        ^aParser "javaToken"
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
    "Modified: / 09-03-2012 / 20:50:42 / 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
   608
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   609
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   610
emptySquaredParenthesis
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
	^ self asToken: (((self tokenFor: '['), (self tokenFor: ']')))
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   613
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   614
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   615
tokenFor: aString
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   616
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   617
    | p |
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   618
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   619
    p := keywords at: aString ifAbsent:[nil].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   620
    p notNil ifTrue:[ ^ self asToken: p ].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   621
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   622
    p := operators at: aString ifAbsent:[nil].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   623
    p notNil ifTrue:[ ^ self asToken: p ].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   624
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   625
    p := separators at: aString ifAbsent:[nil].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   626
    p notNil ifTrue:[ ^ self asToken: p ].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   627
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   628
    self error: 'Should not be reached'
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   629
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   630
    "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
   631
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   632
1406
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   633
!JavaParserI::SubParser class methodsFor:'instance creation'!
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   634
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   635
for: masterParser
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   636
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   637
    ^self new masterParser: masterParser
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   638
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   639
    "Created: / 09-03-2012 / 16:59:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   640
! !
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   641
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   642
!JavaParserI::SubParser methodsFor:'accessing'!
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   643
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   644
builder
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   645
    ^masterParser builder
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   646
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   647
    "Created: / 09-03-2012 / 16:58:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   648
!
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   649
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   650
masterParser
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   651
    ^ masterParser
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   652
!
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   653
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   654
masterParser:aJavaPetitParser
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   655
    masterParser := aJavaPetitParser.
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   656
! !
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   657
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   658
!JavaParserI::SingleLineCommentParser methodsFor:'parsing'!
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   659
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   660
parseOn: aStream
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   661
    | literal wasStar start end b|
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   662
    wasStar := false.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   663
    start := aStream position + 1.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   664
    
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   665
    (aStream next: 2) = '//' ifFalse: [
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   666
            ^ PPFailure message: '// expected' at: aStream position.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   667
    ].
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   668
    
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   669
    [literal := aStream next.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   670
            literal = (Character cr) or: [ aStream atEnd ]
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   671
    ] whileFalse.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   672
    end := aStream position.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   673
    
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   674
    ^(b := self builder) notNil ifTrue:[
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   675
        b   start: start stop: end line: nil;
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   676
            newComment: nil.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   677
    ] ifFalse:[
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   678
        nil
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   679
    ]
1406
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   680
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   681
    "Modified: / 10-03-2012 / 12:19:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1406
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   682
! !
f2a792802ba8 Fixes in JavaParserI
vranyj1
parents: 1403
diff changeset
   683
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   684
!JavaParserI::MultiLineCommentParser methodsFor:'parsing'!
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
buildNodeFrom: start to: end line: line text: text
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   687
    | b |
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   688
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   689
    ^(b := self builder) notNil ifTrue:[
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   690
        b   start: start stop: end line: line;
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   691
            newComment: text.
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   692
    ] ifFalse:[
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   693
        nil
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   694
    ]
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   695
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   696
    "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
   697
    "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
   698
!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   699
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   700
checkStart: aStream
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   701
	^ (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
   702
!
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
parseOn:aStream 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   705
    | 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
   706
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   707
    wasStar := false.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   708
    line := aStream lineNumber.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   709
    start := aStream position + 1.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   710
    (self checkStart:aStream) ifFalse:[
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   711
        ^ 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
   712
    ].
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
        aStream atEnd ifTrue:[
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   715
            ^ 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
   716
        ].
1412
93b28a7963b0 Fixes and improvements in parser
vranyj1
parents: 1406
diff changeset
   717
        literal := aStream next.
1403
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   718
        wasStar and:[ literal = $/ ]
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   719
    ] whileFalse:[ wasStar := literal = $* ].
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   720
    end := aStream position.
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   721
    ^ 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
   722
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   723
    "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
   724
    "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
   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
startSequence 
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   728
	^ '/*'
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   729
! !
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   730
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   731
!JavaParserI class methodsFor:'documentation'!
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   732
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   733
version_SVN
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   734
    ^ '$Id$'
1740f7ba7015 Some refactoring in Java parser and highlighter - full Java parser based on PetitParser checked in
vranyj1
parents:
diff changeset
   735
! !