parsers/java/PPJavaLexicon.st
author Patrik Svestka <patrik.svestka@gmail.com>
Wed, 14 Nov 2018 13:01:14 +0100
changeset 642 77d5fddb6462
parent 454 a9cd5ea7cc36
permissions -rw-r--r--
Issue #239: Fix all Smalltak/X source files to be in unicode (UTF8 without BOM) and prefixed by "{ Encoding: utf8 }" when any unicode character is present - All source *.st files are now Unicode UTF8 without BOM Files are in two groups (fileOut works this way in Smalltalk/X): - containing a unicode character have "{ Encoding: utf8 }" at the header - ASCII only are without the header
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
454
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
     1
"{ Package: 'stx:goodies/petitparser/parsers/java' }"
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
     2
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
     3
"{ NameSpace: Smalltalk }"
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
     4
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
     5
PPCompositeParser subclass:#PPJavaLexicon
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
     6
	instanceVariableNames:'unicodeEscape rawInputCharacter unicodeMarker hexDigit
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
     7
		lineTerminator unicodeInputCharacter inputElements sub
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
     8
		inputElement whiteSpace comment javaToken keyword literal
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
     9
		separator operator identifier traditionalComment endOfLineComment
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    10
		commentTail charactersInLine commentTailStar notStar
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    11
		notStarNotSlash inputCharacter booleanLiteral nullLiteral
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    12
		identifierChars javaLetter javaLetterOrDigit keywords
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    13
		floatingPointLiteral integerLiteral characterLiteral
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    14
		stringLiteral hexIntegerLiteral octalIntegerLiteral
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    15
		decimalIntegerLiteral decimalNumeral integerTypeSuffix hexNumeral
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    16
		octalNumeral nonZeroDigit digits hexDigits octalDigits octalDigit
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    17
		hexadecimalFloatingPointLiteral decimalFloatingPointLiteral
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    18
		exponentPart floatTypeSuffix exponentIndicator signedInteger sign
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    19
		hexSignificand binaryExponent binaryExponentIndicator
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    20
		escapeSequence singleCharacter stringCharacters stringCharacter
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    21
		octalEscape zeroToThree input operators separators trueToken
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    22
		falseToken nullToken'
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    23
	classVariableNames:''
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    24
	poolDictionaries:''
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    25
	category:'PetitJava-Core'
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    26
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    27
642
77d5fddb6462 Issue #239: Fix all Smalltak/X source files to be in unicode (UTF8 without BOM) and prefixed by "{ Encoding: utf8 }" when any unicode character is present
Patrik Svestka <patrik.svestka@gmail.com>
parents: 454
diff changeset
    28
PPJavaLexicon comment:'A parser with a definitions for some basic Java gramar parts
77d5fddb6462 Issue #239: Fix all Smalltak/X source files to be in unicode (UTF8 without BOM) and prefixed by "{ Encoding: utf8 }" when any unicode character is present
Patrik Svestka <patrik.svestka@gmail.com>
parents: 454
diff changeset
    29
77d5fddb6462 Issue #239: Fix all Smalltak/X source files to be in unicode (UTF8 without BOM) and prefixed by "{ Encoding: utf8 }" when any unicode character is present
Patrik Svestka <patrik.svestka@gmail.com>
parents: 454
diff changeset
    30
Grammar rules follow as closely as possible the specification found in "The Java Language Specification Third Edition"
77d5fddb6462 Issue #239: Fix all Smalltak/X source files to be in unicode (UTF8 without BOM) and prefixed by "{ Encoding: utf8 }" when any unicode character is present
Patrik Svestka <patrik.svestka@gmail.com>
parents: 454
diff changeset
    31
77d5fddb6462 Issue #239: Fix all Smalltak/X source files to be in unicode (UTF8 without BOM) and prefixed by "{ Encoding: utf8 }" when any unicode character is present
Patrik Svestka <patrik.svestka@gmail.com>
parents: 454
diff changeset
    32
URL = '
454
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    33
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    34
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    35
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    36
!PPJavaLexicon class methodsFor:'accessing'!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    37
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    38
ignoredNames
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    39
	"Answer a collection of instance-variables that should not be automatically initialized with productions, but that are used internal to the composite parser."
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    40
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    41
	| newArray |	
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    42
	newArray := Array new: ((self namesToIgnore size) + (super ignoredNames size)).
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    43
	newArray
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    44
		replaceFrom: 1
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    45
		to: self namesToIgnore size
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    46
		with: self namesToIgnore.
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    47
	newArray
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    48
		replaceFrom: (self namesToIgnore size + 1)
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    49
		to: newArray size
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    50
		with: super ignoredNames.	
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    51
	^newArray
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    52
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    53
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    54
namesToIgnore
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    55
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    56
	^#('keywords' 'operators' 'separators')
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    57
! !
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    58
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    59
!PPJavaLexicon methodsFor:'accessing'!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    60
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    61
start
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    62
	"Default start production."
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    63
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    64
	^ input end
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    65
! !
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    66
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    67
!PPJavaLexicon methodsFor:'grammar-comments'!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    68
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    69
charactersInLine   
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    70
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    71
	^ inputCharacter plus
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    72
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    73
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    74
comment
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    75
	"traditional -> /*
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    76
	 endOfLine -> //"
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    77
	^ traditionalComment / endOfLineComment
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    78
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    79
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    80
commentTail
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    81
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    82
	^ 	('*' asParser , commentTailStar ) /
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    83
		(notStar , commentTail)
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    84
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    85
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    86
commentTailStar 
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    87
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    88
	^ ('/' asParser ) /
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    89
	  ('*' asParser , commentTailStar ) /
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    90
	  (notStarNotSlash , commentTail )
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    91
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    92
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    93
endOfLineComment 
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    94
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    95
	^ '//' asParser , charactersInLine optional
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    96
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    97
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    98
notStar
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
    99
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   100
	^  ('*' asParser not , inputCharacter)/lineTerminator
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   101
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   102
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   103
notStarNotSlash  
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   104
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   105
	^ lineTerminator / ((PPPredicateObjectParser anyOf: '*/') not , inputCharacter )
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   106
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   107
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   108
traditionalComment
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   109
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   110
	^ '/*' asParser , commentTail
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   111
! !
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   112
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   113
!PPJavaLexicon methodsFor:'grammar-identifiers'!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   114
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   115
identifier 
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   116
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   117
	^  self asToken: (((keyword not) , (booleanLiteral not) , (nullLiteral not) , identifierChars ))
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   118
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   119
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   120
identifierChars
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   121
	
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   122
	^ javaLetter plus , javaLetterOrDigit star
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   123
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   124
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   125
javaLetter
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   126
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   127
	^ (#letter asParser) / (PPPredicateObjectParser anyOf: '_$')
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   128
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   129
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   130
javaLetterOrDigit
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   131
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   132
	^ javaLetter / (#digit asParser)
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   133
! !
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   134
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   135
!PPJavaLexicon methodsFor:'grammar-input'!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   136
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   137
input
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   138
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   139
	^ (inputElements optional) , (sub optional)
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   140
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   141
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   142
inputElement
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   143
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   144
	^ whiteSpace / comment / javaToken
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   145
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   146
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   147
inputElements
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   148
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   149
	^ inputElement plus
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   150
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   151
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   152
javaToken
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   153
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   154
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   155
	^ identifier / keyword / literal / separator / operator
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   156
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   157
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   158
sub
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   159
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   160
	^ (Character value: 26) asParser 
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   161
! !
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   162
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   163
!PPJavaLexicon methodsFor:'grammar-keywords'!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   164
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   165
keyword
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   166
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   167
        | keywordParsers |
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   168
        
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   169
        keywordParsers := keywords keys asSortedCollection collect: [:eachKey | keywords at: eachKey ].
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   170
        ^ self asToken: ( (keywordParsers reduce: [ :a :b | a / b ]) )
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   171
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   172
    "Modified (format): / 21-04-2015 / 15:27:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   173
! !
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   174
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   175
!PPJavaLexicon methodsFor:'grammar-lineTerminators'!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   176
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   177
inputCharacter 
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   178
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   179
	^(lineTerminator not) , unicodeInputCharacter ==> #second
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   180
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   181
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   182
lineTerminator
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   183
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   184
    self flag: 'Hack alert - should be fixed immediately in PJTraditionalCommentsNode>>comment:'.
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   185
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   186
        ^ (((Character codePoint: 10) asParser) ==> [ :lf | Array with: lf with: nil ])
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   187
          / (((Character codePoint: 13) asParser , ((Character codePoint: 10) asParser ) optional )) ==> [ :nodes | Array with: nodes first with: nil ]
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   188
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   189
    "Modified: / 21-04-2015 / 17:16:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   190
! !
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   191
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   192
!PPJavaLexicon methodsFor:'grammar-literals'!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   193
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   194
literal
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   195
	"a literal must be a single token. Whitespaces are not allowed inside the literal"
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   196
	
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   197
	^ nullLiteral / booleanLiteral / floatingPointLiteral / integerLiteral / characterLiteral / stringLiteral
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   198
! !
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   199
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   200
!PPJavaLexicon methodsFor:'grammar-literals-boolean'!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   201
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   202
booleanLiteral 
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   203
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   204
 ^ trueToken / falseToken
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   205
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   206
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   207
falseToken
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   208
	^ ('false' asParser , #word asParser not) javaToken
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   209
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   210
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   211
nullToken
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   212
	^ ('null' asParser , #word asParser not) javaToken
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   213
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   214
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   215
trueToken
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   216
	^ ('true' asParser , #word asParser not) javaToken
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   217
! !
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   218
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   219
!PPJavaLexicon methodsFor:'grammar-literals-character'!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   220
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   221
characterLiteral 
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   222
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   223
 ^ ($' asParser , ( escapeSequence / singleCharacter ), $' asParser) javaToken
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   224
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   225
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   226
singleCharacter 	
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   227
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   228
	^( PPPredicateObjectParser anyOf: '''\') not , inputCharacter ==> #second
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   229
! !
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   230
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   231
!PPJavaLexicon methodsFor:'grammar-literals-escape'!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   232
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   233
escapeSequence 
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   234
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   235
	^ ($\ asParser , (PPPredicateObjectParser anyOf: 'btnfr""''\' ) ) /
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   236
	   octalEscape 
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   237
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   238
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   239
octalEscape
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   240
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   241
	^ $\ asParser , ( (zeroToThree , octalDigit , octalDigit) / (octalDigit , octalDigit optional) )
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   242
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   243
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   244
zeroToThree
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   245
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   246
	^PPPredicateObjectParser anyOf: '0123'
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   247
! !
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   248
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   249
!PPJavaLexicon methodsFor:'grammar-literals-floating'!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   250
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   251
binaryExponent
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   252
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   253
 ^ binaryExponentIndicator , signedInteger
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   254
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   255
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   256
binaryExponentIndicator
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   257
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   258
  ^ PPPredicateObjectParser anyOf: 'pP'
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   259
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   260
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   261
decimalFloatingPointLiteral
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   262
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   263
	|dot|
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   264
	dot := $. asParser.
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   265
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   266
 ^ ( ( (dot , digits) 
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   267
        / 
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   268
        (digits , dot , digits optional)) , 
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   269
			exponentPart optional , floatTypeSuffix optional ) 
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   270
  	/ 
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   271
  	(digits , 
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   272
		( (exponentPart , floatTypeSuffix optional) 
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   273
		  /
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   274
		  (exponentPart optional , floatTypeSuffix) ))
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   275
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   276
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   277
exponentIndicator
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   278
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   279
  ^ PPPredicateObjectParser anyOf: 'eE'
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   280
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   281
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   282
exponentPart
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   283
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   284
 ^ exponentIndicator , signedInteger
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   285
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   286
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   287
floatTypeSuffix
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   288
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   289
	^ PPPredicateObjectParser anyOf: 'fFdD'
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   290
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   291
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   292
floatingPointLiteral
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   293
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   294
  ^ (hexadecimalFloatingPointLiteral / decimalFloatingPointLiteral) javaToken
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   295
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   296
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   297
hexSignificand 
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   298
	|dot|
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   299
	dot := $. asParser.
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   300
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   301
 ^  (hexNumeral , dot optional) /
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   302
    ($0 asParser , (PPPredicateObjectParser anyOf: 'xX') , hexDigits optional , dot , hexDigits )
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   303
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   304
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   305
hexadecimalFloatingPointLiteral
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   306
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   307
 ^ hexSignificand , binaryExponent , floatTypeSuffix optional
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   308
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   309
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   310
sign
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   311
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   312
  ^PPPredicateObjectParser anyOf: '-+'
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   313
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   314
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   315
signedInteger
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   316
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   317
  ^ sign optional , digits
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   318
! !
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   319
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   320
!PPJavaLexicon methodsFor:'grammar-literals-integer'!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   321
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   322
decimalIntegerLiteral
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   323
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   324
 ^ decimalNumeral , (integerTypeSuffix optional)
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   325
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   326
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   327
decimalNumeral 
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   328
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   329
	^($0 asParser) / (nonZeroDigit , digits optional) 
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   330
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   331
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   332
digits 
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   333
	"digit is already defined, no need to redefine it"
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   334
	^#digit asParser plus
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   335
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   336
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   337
hexDigits 
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   338
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   339
	^hexDigit plus
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   340
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   341
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   342
hexIntegerLiteral 
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   343
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   344
  ^ hexNumeral , (integerTypeSuffix optional)
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   345
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   346
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   347
hexNumeral 
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   348
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   349
	^$0 asParser, (PPPredicateObjectParser anyOf: 'xX' ), hexDigits
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   350
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   351
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   352
integerLiteral
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   353
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   354
  ^ (hexIntegerLiteral / octalIntegerLiteral / decimalIntegerLiteral) javaToken
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   355
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   356
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   357
integerTypeSuffix
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   358
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   359
	^ PPPredicateObjectParser anyOf: 'lL'
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   360
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   361
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   362
nonZeroDigit 
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   363
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   364
	^PPPredicateObjectParser anyOf: '123456789'.
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   365
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   366
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   367
octalDigit 
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   368
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   369
	^PPPredicateObjectParser anyOf: '01234567'
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   370
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   371
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   372
octalDigits
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   373
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   374
	^ octalDigit plus
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   375
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   376
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   377
octalIntegerLiteral 
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   378
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   379
 ^ octalNumeral , (integerTypeSuffix optional)
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   380
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   381
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   382
octalNumeral 
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   383
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   384
	^($0 asParser) , octalDigits
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   385
! !
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   386
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   387
!PPJavaLexicon methodsFor:'grammar-literals-null'!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   388
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   389
nullLiteral 
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   390
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   391
 ^ nullToken
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   392
! !
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   393
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   394
!PPJavaLexicon methodsFor:'grammar-literals-string'!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   395
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   396
stringCharacter
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   397
		
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   398
	^ ( ( PPPredicateObjectParser anyOf: '"\') not , inputCharacter ==> #second ) /
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   399
	   escapeSequence 
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   400
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   401
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   402
stringCharacters
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   403
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   404
	^ stringCharacter plus
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   405
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   406
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   407
stringLiteral 
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   408
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   409
 ^ ($" asParser , stringCharacters optional , $" asParser) javaToken
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   410
! !
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   411
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   412
!PPJavaLexicon methodsFor:'grammar-operators'!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   413
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   414
operator
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   415
        | operatorParsers |
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   416
        
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   417
        operatorParsers := operators keys asSortedCollection collect: [:eachKey | operators at: eachKey ].                                                
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   418
        ^self asToken:  (operatorParsers reduce: [ :a :b | a / b ])
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   419
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   420
    "Modified: / 21-04-2015 / 15:26:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   421
! !
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   422
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   423
!PPJavaLexicon methodsFor:'grammar-separators'!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   424
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   425
separator	
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   426
	^self asToken: (PPPredicateObjectParser anyOf: '(){}[];,.' )
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   427
! !
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   428
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   429
!PPJavaLexicon methodsFor:'grammar-unicode-escapes'!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   430
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   431
hexDigit 
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   432
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   433
	^#hex asParser
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   434
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   435
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   436
rawInputCharacter
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   437
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   438
	^#any asParser
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   439
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   440
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   441
unicodeEscape
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   442
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   443
	^ $\ asParser , unicodeMarker , hexDigit , hexDigit , hexDigit , hexDigit
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   444
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   445
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   446
unicodeInputCharacter
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   447
	 ^ unicodeEscape / rawInputCharacter
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   448
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   449
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   450
unicodeMarker
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   451
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   452
	^$u asParser plus
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   453
! !
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   454
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   455
!PPJavaLexicon methodsFor:'grammar-whiteSpace'!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   456
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   457
whiteSpace
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   458
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   459
	^ (Character space asParser ) /
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   460
	  (Character tab asParser ) /
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   461
	  ((Character value: 12) asParser ) /
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   462
		lineTerminator 
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   463
! !
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   464
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   465
!PPJavaLexicon methodsFor:'initialization'!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   466
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   467
initialize
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   468
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   469
	super initialize.
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   470
	
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   471
	self initializeKeywords.
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   472
	self initializeOperators.
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   473
	self initializeSeparators.
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   474
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   475
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   476
initializeKeywords
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   477
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   478
	| values |
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   479
	keywords := Dictionary new.
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   480
	values := #('abstract' 'assert' 'boolean' 'break' 'byte' 'case'  'catch' 'char' 'class' 'const'
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   481
	   'continue' 'default' 'do' 'double' 'else' 'enum' 'extends' 'final'  'finally' 'float'
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   482
	   'for' 'if' 'goto' 'implements' 'import' 'instanceof' 'int' 'interface' 'long' 'native'
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   483
	   'new' 'package' 'private' 'protected' 'public' 'return' 'short' 'static' 'strictfp' 'super'
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   484
	   'switch' 'synchronized' 'this' 'throw' 'throws' 'transient' 'try' 'void' 'volatile' 'while').
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   485
	
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   486
	values do: [:eachKeyword |
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   487
		keywords at: eachKeyword 
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   488
			put: (PPUnresolvedParser named: ('keyword', eachKeyword first asUppercase asString , eachKeyword allButFirst))		
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   489
		].
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   490
	
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   491
	keywords keysAndValuesDo:  [:key :value |
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   492
		(keywords at: key) def: (key asParser ,  #word asParser not)]
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   493
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   494
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   495
initializeOperators
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   496
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   497
	| values |
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   498
	operators := Dictionary new.
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   499
	values := #(	'>>>=' '>>>' '>>=' '>>' '>=' '>'	'<<=' '<<' '<=' '<'	'++' '+=' '+'	'--' '-=' '-'	'&&' '&=' '&'
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   500
					'||' '|=' '|'	'*=' '*'	'%=' '%'	'/=' '/'	'^=' '^'	'!!=' '!!'	'==' '='	'~'	'?'	':'	'@' ).
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   501
	" @ ? perhaps for annotation but not in the doc "
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   502
	values do: [:eachOperator |
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   503
		operators at: eachOperator 
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   504
			put: (PPUnresolvedParser named: ('operator', eachOperator asString))		
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   505
		].
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   506
	
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   507
	operators  keysAndValuesDo:  [:key :value |
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   508
		(operators at: key) def: (key asParser)]
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   509
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   510
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   511
initializeSeparators
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   512
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   513
	| values |
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   514
	separators := Dictionary new.
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   515
	values := #( '(' ')' '{' '}' '[' ']' ';' ',' '.' ).
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   516
	
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   517
	values do: [:eachSeparator |
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   518
		separators at: eachSeparator 
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   519
			put: (PPUnresolvedParser named: ('separator', eachSeparator asString))		
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   520
		].
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   521
	
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   522
	separators  keysAndValuesDo:  [:key :value |
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   523
		(separators at: key) def: (key asParser)]
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   524
! !
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   525
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   526
!PPJavaLexicon methodsFor:'utility'!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   527
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   528
asToken: aParser
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   529
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   530
	^aParser javaToken
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   531
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   532
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   533
emptySquaredParenthesis
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   534
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   535
	^ self asToken: (((self tokenFor: '['), (self tokenFor: ']')))
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   536
!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   537
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   538
tokenFor: aString
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   539
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   540
	^self asToken: (keywords at: aString 
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   541
						ifAbsent: [separators at: aString 
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   542
							ifAbsent: [operators at: aString] ])
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   543
! !
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   544
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   545
!PPJavaLexicon class methodsFor:'documentation'!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   546
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   547
version_HG
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   548
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   549
    ^ '$Changeset: <not expanded> $'
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   550
! !
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 437
diff changeset
   551