compiler/Dart__Parser.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Fri, 11 Jan 2013 13:41:57 +0000
changeset 4 5ef74750c3bc
parent 3 46c322c66a29
child 6 06efdfe62106
permissions -rw-r--r--
- Dart::Parser class: Dart::Parser
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'jv:dart/compiler' }"
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
"{ NameSpace: Dart }"
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
PPCompositeParser subclass:#Parser
2
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
     6
	instanceVariableNames:'additiveExpression additiveOperator argumentList arguments
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
     7
		assignableExpression assignableSelector assignmentOperator
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
     8
		bitwiseAndExpression bitwiseOperator bitwiseOrExpression
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
     9
		bitwiseXorExpression block catchPart classDefinition
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    10
		classMemberDefinition compilationUnit compoundLiteral
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    11
		conditionalExpression constInitializedIdentifier
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    12
		constInitializedVariableDeclaration
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    13
		constantConstructorDeclaration constantExpression
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    14
		constructorDeclaration declaration declaredIdentifier defaultCase
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    15
		defaultFormalParameter directive equalityExpression
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    16
		equalityOperator expression expressionInParentheses
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    17
		expressionList factoryConstructorDeclaration factorySpecification
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    18
		fieldFormalParameter fieldInitializer finalVarOrType finallyPart
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    19
		forInitializerStatement forLoopParts formalParameterList
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    20
		functionBody functionBodyOrNative functionDeclaration
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    21
		functionExpression functionExpressionBody functionNative
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    22
		functionPrefix functionTypeAlias getOrSet identifier
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    23
		importReference importReferences incrementOperator
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    24
		initializedIdentifier initializedIdentifierList
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    25
		initializedVariableDeclaration initializers interfaceDefinition
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    26
		interfaceMemberDefinition interfaces isOperator
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    27
		iterationStatement label libraryBody libraryDefinition
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    28
		libraryImport librarySource libraryUnit listLiteral literal
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    29
		logicalAndExpression logicalOrExpression mapLiteral
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    30
		mapLiteralEntry methodDeclaration multiplicativeExpression
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    31
		multiplicativeOperator namedArgument namedConstructorDeclaration
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    32
		namedFormalParameters negateOperator nonLabelledStatement
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    33
		normalFormalParameter normalFormalParameterTail postfixExpression
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    34
		postfixOperator prefixOperator primary primaryFE primaryNoFE
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    35
		qualified redirection relationalExpression relationalOperator
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    36
		returnType selectionStatement selector shiftExpression
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    37
		shiftOperator simpleFormalParameter sourceUrls
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    38
		specialSignatureDefinition statement statements
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    39
		staticFinalDeclaration staticFinalDeclarationList
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    40
		superCallOrFieldInitializer superclass superinterfaces switchCase
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    41
		topLevelDefinition tryStatement type typeArguments typeList
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    42
		typeParameter typeParameters unaryExpression
8fedb5e096fc Initial grammar definition based on http://slps.github.com/zoo/index.html#Google_Dart.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    43
		userDefinableOperator variableDeclaration'
3
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    44
	classVariableNames:'Debugging'
1
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
	poolDictionaries:''
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
	category:'Languages-Dart-Parser'
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
!
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
PPParser subclass:#TokenParser
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
	instanceVariableNames:'tokenType'
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
	classVariableNames:''
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
	poolDictionaries:''
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
	privateIn:Parser
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
!
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
3
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    57
!Parser class methodsFor:'initialization'!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    58
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    59
debugging: aBoolean
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    60
    Debugging := aBoolean
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    61
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    62
    "
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    63
        JavaParser debugging: true.
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    64
        JavaParser debugging: false.
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    65
    "
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    66
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    67
    "Created: / 11-01-2013 / 11:32:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    68
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    69
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    70
initialize
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    71
    "Invoked at system start or when the class is dynamically loaded."
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    72
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    73
    "/ please change as required (and remove this comment)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    74
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    75
    Debugging := false.
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    76
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    77
    "Modified: / 11-01-2013 / 11:32:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    78
! !
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    79
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    80
!Parser methodsFor:'accessing'!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    81
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    82
start
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    83
    ^compilationUnit , (TokenParser for: #EOF).
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    84
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    85
    "Created: / 11-01-2013 / 13:19:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    86
! !
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    87
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    88
!Parser methodsFor:'grammar'!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    89
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    90
additiveExpression
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    91
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    92
        ^ (multiplicativeExpression , ((additiveOperator , multiplicativeExpression) star))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    93
        / ((TokenParser for: #super) , ((additiveOperator , multiplicativeExpression) plus))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    94
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    95
    "Modified: / 11-01-2013 / 09:59:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    96
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    97
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    98
additiveOperator
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    99
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   100
	^ ('+' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   101
	/ ('-' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   102
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   103
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   104
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   105
argumentList
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   106
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   107
	^ (namedArgument , (((',' asParser) , namedArgument) star))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   108
	/ (expressionList , (((',' asParser) , namedArgument) star))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   109
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   110
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   111
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   112
arguments
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   113
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   114
	^('(' asParser) , (argumentList optional) , (')' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   115
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   116
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   117
assignableExpression
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   118
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   119
        ^ (primary , (((arguments star) , assignableSelector) plus))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   120
        / ((TokenParser for: #super) , assignableSelector)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   121
        / identifier
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   122
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   123
    "Modified: / 11-01-2013 / 10:00:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   124
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   125
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   126
assignableSelector
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   127
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   128
	^ (('[' asParser) , constantExpression , (']' asParser))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   129
	/ (('.' asParser) , identifier)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   130
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   131
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   132
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   133
assignmentOperator
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   134
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   135
	^ ('=' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   136
	/ ('*=' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   137
	/ ('/=' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   138
	/ ('~/=' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   139
	/ ('%=' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   140
	/ ('+=' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   141
	/ ('-=' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   142
	/ ('<<=' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   143
	/ (('>' asParser) , ('>' asParser) , ('>' asParser) , ('=' asParser))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   144
	/ (('>' asParser) , ('>' asParser) , ('=' asParser))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   145
	/ ('&=' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   146
	/ ('^=' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   147
	/ ('|=' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   148
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   149
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   150
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   151
bitwiseAndExpression
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   152
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   153
        ^ (equalityExpression , ((('&' asParser) , equalityExpression) star))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   154
        / ((TokenParser for: #super) , ((('&' asParser) , equalityExpression) plus))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   155
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   156
    "Modified: / 11-01-2013 / 10:00:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   157
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   158
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   159
bitwiseOperator
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   160
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   161
	^ ('&' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   162
	/ ('^' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   163
	/ ('|' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   164
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   165
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   166
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   167
bitwiseOrExpression
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   168
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   169
	^ (bitwiseXorExpression , ((('|' asParser) , bitwiseXorExpression) star))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   170
	/ ((TokenParser for:#super) , ((('|' asParser) , bitwiseXorExpression) plus))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   171
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   172
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   173
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   174
bitwiseXorExpression
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   175
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   176
	^ (bitwiseAndExpression , ((('^' asParser) , bitwiseAndExpression) star))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   177
	/ ((TokenParser for:#super) , ((('^' asParser) , bitwiseAndExpression) plus))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   178
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   179
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   180
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   181
block
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   182
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   183
	^('{' asParser) , statements , ('}' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   184
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   185
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   186
catchPart
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   187
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   188
	^(TokenParser for:#catch) , ('(' asParser) , declaredIdentifier , (((',' asParser) , declaredIdentifier) optional) , (')' asParser) , block
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   189
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   190
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   191
classDefinition
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   192
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   193
	^ ((TokenParser for:#class) , identifier , (typeParameters optional) , (superclass optional) , (interfaces optional) , ('{' asParser) , (classMemberDefinition star) , ('}' asParser))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   194
	/ ((TokenParser for:#class) , identifier , (typeParameters optional) , (interfaces optional) , (TokenParser for:#native) , (TokenParser for:#string) , ('{' asParser) , (classMemberDefinition star) , ('}' asParser))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   195
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   196
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   197
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   198
classMemberDefinition
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   199
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   200
	^ (declaration , (';' asParser))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   201
	/ (constructorDeclaration , (';' asParser))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   202
	/ (methodDeclaration , functionBodyOrNative)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   203
	/ ((TokenParser for:#const) , factoryConstructorDeclaration , functionNative)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   204
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   205
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   206
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   207
compilationUnit
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   208
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   209
        ^( ((TokenParser for: #'#!!') optional) , (directive star) , (topLevelDefinition star) )
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   210
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   211
    "Modified: / 11-01-2013 / 13:18:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   212
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   213
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   214
compoundLiteral
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   215
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   216
	^ listLiteral
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   217
	/ mapLiteral
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   218
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   219
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   220
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   221
conditionalExpression
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   222
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   223
	^logicalOrExpression , ((('?' asParser) , constantExpression , (':' asParser) , constantExpression) optional)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   224
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   225
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   226
constInitializedIdentifier
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   227
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   228
	^identifier , ((('=' asParser) , constantExpression) optional)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   229
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   230
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   231
constInitializedVariableDeclaration
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   232
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   233
	^declaredIdentifier , ((('=' asParser) , constantExpression) optional) , (((',' asParser) , constInitializedIdentifier) star)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   234
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   235
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   236
constantConstructorDeclaration
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   237
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   238
	^(TokenParser for:#const) , qualified , formalParameterList
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   239
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   240
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   241
constantExpression
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   242
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   243
	^ (assignableExpression , assignmentOperator , constantExpression)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   244
	/ conditionalExpression
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   245
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   246
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   247
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   248
constructorDeclaration
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   249
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   250
	^ (identifier , formalParameterList , ((redirection / initializers ) optional))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   251
	/ (namedConstructorDeclaration , ((redirection / initializers ) optional))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   252
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   253
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   254
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   255
declaration
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   256
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   257
	^ (constantConstructorDeclaration , ((redirection / initializers ) optional))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   258
	/ (functionDeclaration , redirection)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   259
	/ (namedConstructorDeclaration , redirection)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   260
	/ ((TokenParser for:#abstract) , specialSignatureDefinition)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   261
	/ ((TokenParser for:#abstract) , functionDeclaration)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   262
	/ ((TokenParser for:#static) , (TokenParser for:#final) , (type optional) , staticFinalDeclarationList)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   263
	/ (((TokenParser for:#static) optional) , constInitializedVariableDeclaration)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   264
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   265
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   266
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   267
declaredIdentifier
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   268
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   269
	^ ((TokenParser for:#final) , (type optional) , identifier)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   270
	/ ((TokenParser for:#var) , identifier)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   271
	/ (type , identifier)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   272
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   273
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   274
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   275
defaultCase
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   276
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   277
	^(label optional) , (((TokenParser for:#case) , constantExpression , (':' asParser)) star) , (TokenParser for:#default) , (':' asParser) , statements
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   278
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   279
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   280
defaultFormalParameter
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   281
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   282
	^normalFormalParameter , ((('=' asParser) , constantExpression) optional)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   283
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   284
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   285
directive
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   286
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   287
	^('#' asParser) , identifier , arguments , (';' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   288
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   289
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   290
equalityExpression
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   291
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   292
	^ (relationalExpression , ((equalityOperator , relationalExpression) optional))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   293
	/ ((TokenParser for:#super) , equalityOperator , relationalExpression)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   294
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   295
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   296
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   297
equalityOperator
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   298
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   299
	^ ('==' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   300
	/ ('!!=' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   301
	/ ('===' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   302
	/ ('!!==' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   303
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   304
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   305
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   306
expression
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   307
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   308
        ^ (assignableExpression , assignmentOperator , expression)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   309
        / conditionalExpression
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   310
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   311
    "Created: / 11-01-2013 / 13:22:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   312
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   313
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   314
expressionInParentheses
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   315
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   316
	^('(' asParser) , constantExpression , (')' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   317
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   318
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   319
expressionList
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   320
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   321
	^constantExpression , (((',' asParser) , constantExpression) star)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   322
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   323
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   324
factoryConstructorDeclaration
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   325
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   326
	^(TokenParser for:#factory) , qualified , (typeParameters optional) , ((('.' asParser) , identifier) optional) , formalParameterList
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   327
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   328
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   329
factorySpecification
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   330
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   331
	^(TokenParser for:#factory) , type
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   332
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   333
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   334
fieldFormalParameter
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   335
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   336
	^(finalVarOrType optional) , (TokenParser for:#this) , ('.' asParser) , identifier
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   337
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   338
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   339
fieldInitializer
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   340
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   341
	^(((TokenParser for:#this) , ('.' asParser)) optional) , identifier , ('=' asParser) , conditionalExpression
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   342
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   343
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   344
finalVarOrType
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   345
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   346
	^ ((TokenParser for:#final) , (type optional))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   347
	/ (TokenParser for:#var)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   348
	/ type
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   349
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   350
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   351
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   352
finallyPart
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   353
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   354
	^(TokenParser for:#finally) , block
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   355
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   356
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   357
forInitializerStatement
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   358
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   359
	^ (initializedVariableDeclaration , (';' asParser))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   360
	/ ((constantExpression optional) , (';' asParser))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   361
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   362
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   363
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   364
forLoopParts
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   365
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   366
	^ (forInitializerStatement , (constantExpression optional) , (';' asParser) , (expressionList optional))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   367
	/ (declaredIdentifier , (TokenParser for:#in) , constantExpression)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   368
	/ (identifier , (TokenParser for:#in) , constantExpression)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   369
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   370
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   371
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   372
formalParameterList
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   373
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   374
	^ (('(' asParser) , (namedFormalParameters optional) , (')' asParser))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   375
	/ (('(' asParser) , normalFormalParameter , (normalFormalParameterTail optional) , (')' asParser))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   376
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   377
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   378
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   379
functionBody
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   380
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   381
	^ (('=>' asParser) , constantExpression , (';' asParser))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   382
	/ block
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   383
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   384
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   385
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   386
functionBodyOrNative
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   387
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   388
	^ ((TokenParser for:#native) , functionBody)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   389
	/ functionNative
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   390
	/ functionBody
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   391
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   392
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   393
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   394
functionDeclaration
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   395
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   396
	^(returnType optional) , identifier , formalParameterList
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   397
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   398
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   399
functionExpression
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   400
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   401
	^(((returnType optional) , identifier) optional) , formalParameterList , functionExpressionBody
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   402
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   403
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   404
functionExpressionBody
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   405
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   406
	^ (('=>' asParser) , constantExpression)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   407
	/ block
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   408
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   409
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   410
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   411
functionNative
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   412
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   413
	^(TokenParser for:#native) , ((TokenParser for:#string) optional) , (';' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   414
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   415
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   416
functionPrefix
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   417
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   418
	^(returnType optional) , identifier
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   419
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   420
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   421
functionTypeAlias
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   422
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   423
	^(TokenParser for:#typedef) , functionPrefix , (typeParameters optional) , formalParameterList , (';' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   424
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   425
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   426
getOrSet
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   427
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   428
	^ (TokenParser for:#get)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   429
	/ (TokenParser for:#set)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   430
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   431
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   432
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   433
identifier
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   434
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   435
        ^ (TokenParser for:#identifier_no_dollar)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   436
        / (TokenParser for:#identifier)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   437
        / (TokenParser for:#abstract)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   438
        / (TokenParser for:#assert)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   439
        / (TokenParser for:#class)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   440
        / (TokenParser for:#extends)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   441
        / (TokenParser for:#factory)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   442
        / (TokenParser for:#get)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   443
        / (TokenParser for:#implements)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   444
        / (TokenParser for:#import)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   445
        / (TokenParser for:#interface)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   446
        / (TokenParser for:#is)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   447
        / (TokenParser for:#library)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   448
        / (TokenParser for:#native)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   449
        / (TokenParser for:#negate)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   450
        / (TokenParser for:#operator)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   451
        / (TokenParser for:#set)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   452
        / (TokenParser for:#source)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   453
        / (TokenParser for:#static)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   454
        / (TokenParser for:#typedef)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   455
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   456
    "Modified: / 11-01-2013 / 13:25:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   457
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   458
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   459
importReference
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   460
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   461
	^(((TokenParser for:#identifier) , (':' asParser)) optional) , (TokenParser for:#string)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   462
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   463
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   464
importReferences
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   465
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   466
	^importReference , (((',' asParser) , importReference) star) , ((',' asParser) optional)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   467
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   468
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   469
incrementOperator
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   470
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   471
        ^ ('++' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   472
        / ('--' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   473
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   474
    "Created: / 11-01-2013 / 13:27:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   475
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   476
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   477
initializedIdentifier
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   478
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   479
	^identifier , ((('=' asParser) , constantExpression) optional)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   480
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   481
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   482
initializedIdentifierList
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   483
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   484
	^initializedIdentifier , (((',' asParser) , initializedIdentifier) star)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   485
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   486
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   487
initializedVariableDeclaration
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   488
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   489
	^declaredIdentifier , ((('=' asParser) , constantExpression) optional) , (((',' asParser) , initializedIdentifier) star)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   490
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   491
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   492
initializers
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   493
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   494
	^(':' asParser) , superCallOrFieldInitializer , (((',' asParser) , superCallOrFieldInitializer) star)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   495
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   496
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   497
interfaceDefinition
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   498
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   499
	^(TokenParser for:#interface) , identifier , (typeParameters optional) , (superinterfaces optional) , (factorySpecification optional) , ('{' asParser) , (interfaceMemberDefinition star) , ('}' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   500
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   501
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   502
interfaceMemberDefinition
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   503
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   504
	^ ((TokenParser for:#static) , (TokenParser for:#final) , (type optional) , initializedIdentifierList , (';' asParser))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   505
	/ (functionDeclaration , (';' asParser))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   506
	/ (constantConstructorDeclaration , (';' asParser))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   507
	/ (namedConstructorDeclaration , (';' asParser))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   508
	/ (specialSignatureDefinition , (';' asParser))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   509
	/ (variableDeclaration , (';' asParser))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   510
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   511
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   512
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   513
interfaces
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   514
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   515
	^(TokenParser for:#implements) , typeList
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   516
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   517
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   518
isOperator
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   519
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   520
	^(TokenParser for:#is) , (('!!' asParser) optional)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   521
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   522
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   523
iterationStatement
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   524
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   525
	^ ((TokenParser for:#while) , ('(' asParser) , constantExpression , (')' asParser) , statement)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   526
	/ ((TokenParser for:#do) , statement , (TokenParser for:#while) , ('(' asParser) , constantExpression , (')' asParser) , (';' asParser))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   527
	/ ((TokenParser for:#for) , ('(' asParser) , forLoopParts , (')' asParser) , statement)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   528
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   529
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   530
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   531
label
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   532
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   533
	^identifier , (':' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   534
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   535
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   536
libraryBody
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   537
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   538
	^(libraryImport optional) , (librarySource optional)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   539
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   540
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   541
libraryDefinition
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   542
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   543
	^(TokenParser for:#library) , ('{' asParser) , libraryBody , ('}' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   544
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   545
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   546
libraryImport
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   547
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   548
	^(TokenParser for:#import) , ('=' asParser) , ('[' asParser) , (importReferences optional) , (']' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   549
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   550
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   551
librarySource
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   552
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   553
	^(TokenParser for:#source) , ('=' asParser) , ('[' asParser) , (sourceUrls optional) , (']' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   554
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   555
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   556
libraryUnit
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   557
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   558
        ^libraryDefinition end
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   559
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   560
    "Modified: / 11-01-2013 / 10:07:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   561
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   562
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   563
listLiteral
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   564
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   565
	^('[' asParser) , ((expressionList , ((',' asParser) optional)) optional) , (']' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   566
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   567
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   568
literal
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   569
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   570
        ^ (TokenParser for: #null)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   571
        / (TokenParser for: #true)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   572
        / (TokenParser for: #false)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   573
        / (TokenParser for: #number)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   574
        / (TokenParser for:#string)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   575
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   576
    "Modified: / 11-01-2013 / 10:08:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   577
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   578
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   579
logicalAndExpression
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   580
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   581
	^bitwiseOrExpression , ((('&&' asParser) , bitwiseOrExpression) star)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   582
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   583
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   584
logicalOrExpression
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   585
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   586
	^logicalAndExpression , ((('||' asParser) , logicalAndExpression) star)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   587
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   588
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   589
mapLiteral
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   590
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   591
	^('{' asParser) , ((mapLiteralEntry , (((',' asParser) , mapLiteralEntry) star) , ((',' asParser) optional)) optional) , ('}' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   592
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   593
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   594
mapLiteralEntry
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   595
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   596
	^(TokenParser for:#string) , (':' asParser) , constantExpression
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   597
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   598
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   599
methodDeclaration
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   600
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   601
	^ factoryConstructorDeclaration
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   602
	/ ((TokenParser for:#static) , functionDeclaration)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   603
	/ specialSignatureDefinition
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   604
	/ (functionDeclaration , (initializers optional))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   605
	/ (namedConstructorDeclaration , (initializers optional))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   606
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   607
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   608
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   609
multiplicativeExpression
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   610
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   611
	^ (unaryExpression , ((multiplicativeOperator , unaryExpression) star))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   612
	/ ((TokenParser for:#super) , ((multiplicativeOperator , unaryExpression) plus))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   613
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   614
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   615
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   616
multiplicativeOperator
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   617
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   618
	^ ('*' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   619
	/ ('/' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   620
	/ ('%' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   621
	/ ('~/' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   622
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   623
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   624
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   625
namedArgument
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   626
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   627
	^label , constantExpression
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   628
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   629
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   630
namedConstructorDeclaration
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   631
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   632
	^identifier , ('.' asParser) , identifier , formalParameterList
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   633
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   634
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   635
namedFormalParameters
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   636
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   637
	^('[' asParser) , defaultFormalParameter , (((',' asParser) , defaultFormalParameter) star) , (']' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   638
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   639
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   640
negateOperator
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   641
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   642
	^ ('!!' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   643
	/ ('~' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   644
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   645
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   646
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   647
nonLabelledStatement
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   648
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   649
        ^ block
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   650
        / (initializedVariableDeclaration , (';' asParser))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   651
        / iterationStatement
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   652
        / selectionStatement
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   653
        / tryStatement
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   654
        / ((TokenParser for: #break) , (identifier optional) , (';' asParser))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   655
        / ((TokenParser for: #continue) , (identifier optional) , (';' asParser))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   656
        / ((TokenParser for: #return) , (constantExpression optional) , (';' asParser))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   657
        / ((TokenParser for: #throw) , (constantExpression optional) , (';' asParser))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   658
        / ((constantExpression optional) , (';' asParser))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   659
        / ((TokenParser for: #assert) , ('(' asParser) , conditionalExpression , (')' asParser) , (';' asParser))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   660
        / (functionDeclaration , functionBody)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   661
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   662
    "Modified: / 11-01-2013 / 10:09:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   663
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   664
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   665
normalFormalParameter
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   666
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   667
	^ functionDeclaration
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   668
	/ fieldFormalParameter
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   669
	/ simpleFormalParameter
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   670
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   671
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   672
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   673
normalFormalParameterTail
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   674
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   675
	^ ((',' asParser) , namedFormalParameters)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   676
	/ ((',' asParser) , normalFormalParameter , (normalFormalParameterTail optional))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   677
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   678
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   679
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   680
postfixExpression
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   681
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   682
	^ (assignableExpression , postfixOperator)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   683
	/ (primary , (selector star))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   684
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   685
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   686
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   687
postfixOperator
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   688
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   689
	^ ('++' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   690
	/ ('--' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   691
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   692
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   693
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   694
prefixOperator
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   695
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   696
	^ additiveOperator
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   697
	/ negateOperator
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   698
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   699
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   700
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   701
primary
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   702
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   703
	^ primaryNoFE
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   704
	/ primaryFE
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   705
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   706
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   707
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   708
primaryFE
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   709
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   710
	^ functionExpression
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   711
	/ primaryNoFE
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   712
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   713
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   714
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   715
primaryNoFE
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   716
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   717
        ^ (TokenParser for:#this)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   718
        / ((TokenParser for:#super) , assignableSelector)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   719
        / literal
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   720
        / identifier
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   721
        / (((TokenParser for:#const) optional) , (typeArguments optional) , compoundLiteral)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   722
        / (((TokenParser for: #new) / (TokenParser for:#const) ) , type , ((('.' asParser) , identifier) optional) , arguments)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   723
        / expressionInParentheses
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   724
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   725
    "Modified: / 11-01-2013 / 10:09:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   726
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   727
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   728
qualified
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   729
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   730
	^identifier , ((('.' asParser) , identifier) optional)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   731
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   732
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   733
redirection
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   734
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   735
	^(':' asParser) , (TokenParser for:#this) , ((('.' asParser) , identifier) optional) , arguments
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   736
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   737
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   738
relationalExpression
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   739
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   740
	^ (shiftExpression , (((isOperator , type) / (relationalOperator , shiftExpression) ) optional))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   741
	/ ((TokenParser for:#super) , relationalOperator , shiftExpression)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   742
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   743
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   744
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   745
relationalOperator
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   746
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   747
	^ (('>' asParser) , ('=' asParser))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   748
	/ ('>' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   749
	/ ('<=' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   750
	/ ('<' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   751
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   752
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   753
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   754
returnType
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   755
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   756
        ^ (TokenParser for: #void)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   757
        / type
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   758
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   759
    "Modified: / 11-01-2013 / 10:09:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   760
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   761
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   762
selectionStatement
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   763
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   764
        ^ ((TokenParser for: #if) , ('(' asParser) , constantExpression , (')' asParser) , statement , (((TokenParser for: #else) , statement) optional))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   765
        / ((TokenParser for: #switch) , ('(' asParser) , constantExpression , (')' asParser) , ('{' asParser) , (switchCase star) , (defaultCase optional) , ('}' asParser))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   766
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   767
    "Modified: / 11-01-2013 / 10:10:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   768
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   769
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   770
selector
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   771
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   772
	^ assignableSelector
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   773
	/ arguments
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   774
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   775
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   776
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   777
shiftExpression
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   778
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   779
	^ (additiveExpression , ((shiftOperator , additiveExpression) star))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   780
	/ ((TokenParser for:#super) , ((shiftOperator , additiveExpression) plus))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   781
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   782
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   783
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   784
shiftOperator
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   785
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   786
	^ ('<<' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   787
	/ (('>' asParser) , ('>' asParser) , ('>' asParser))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   788
	/ (('>' asParser) , ('>' asParser))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   789
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   790
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   791
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   792
simpleFormalParameter
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   793
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   794
	^ declaredIdentifier
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   795
	/ identifier
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   796
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   797
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   798
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   799
sourceUrls
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   800
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   801
	^(TokenParser for:#string) , (((',' asParser) , (TokenParser for:#string)) star) , ((',' asParser) optional)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   802
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   803
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   804
specialSignatureDefinition
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   805
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   806
        ^ (((TokenParser for:#static) optional) , (returnType optional) , getOrSet , identifier , formalParameterList)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   807
        / ((returnType optional) , (TokenParser for: #operator) , userDefinableOperator , formalParameterList)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   808
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   809
    "Modified: / 11-01-2013 / 10:10:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   810
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   811
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   812
statement
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   813
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   814
	^(label star) , nonLabelledStatement
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   815
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   816
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   817
statements
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   818
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   819
	^statement star
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   820
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   821
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   822
staticFinalDeclaration
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   823
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   824
	^identifier , ('=' asParser) , constantExpression
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   825
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   826
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   827
staticFinalDeclarationList
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   828
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   829
	^staticFinalDeclaration , (((',' asParser) , staticFinalDeclaration) star)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   830
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   831
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   832
superCallOrFieldInitializer
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   833
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   834
	^ ((TokenParser for:#super) , arguments)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   835
	/ ((TokenParser for:#super) , ('.' asParser) , identifier , arguments)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   836
	/ fieldInitializer
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   837
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   838
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   839
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   840
superclass
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   841
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   842
        ^(TokenParser for: #extends) , type
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   843
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   844
    "Modified: / 11-01-2013 / 10:10:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   845
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   846
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   847
superinterfaces
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   848
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   849
        ^(TokenParser for: #extends) , typeList
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   850
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   851
    "Modified: / 11-01-2013 / 10:10:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   852
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   853
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   854
switchCase
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   855
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   856
	^(label optional) , (((TokenParser for:#case) , constantExpression , (':' asParser)) plus) , statements
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   857
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   858
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   859
topLevelDefinition
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   860
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   861
	^ classDefinition
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   862
	/ interfaceDefinition
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   863
	/ functionTypeAlias
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   864
	/ (functionDeclaration , functionBodyOrNative)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   865
	/ ((returnType optional) , getOrSet , identifier , formalParameterList , functionBodyOrNative)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   866
	/ ((TokenParser for:#final) , (type optional) , staticFinalDeclarationList , (';' asParser))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   867
	/ (constInitializedVariableDeclaration , (';' asParser))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   868
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   869
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   870
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   871
tryStatement
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   872
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   873
        ^(TokenParser for: #try) , block , (((catchPart plus) , (finallyPart optional)) / finallyPart )
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   874
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   875
    "Modified: / 11-01-2013 / 10:10:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   876
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   877
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   878
type
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   879
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   880
	^qualified , (typeArguments optional)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   881
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   882
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   883
typeArguments
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   884
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   885
	^('<' asParser) , typeList , ('>' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   886
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   887
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   888
typeList
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   889
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   890
	^type , (((',' asParser) , type) star)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   891
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   892
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   893
typeParameter
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   894
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   895
        ^identifier , (((TokenParser for: #extends) , type) optional)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   896
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   897
    "Modified: / 11-01-2013 / 10:11:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   898
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   899
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   900
typeParameters
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   901
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   902
	^('<' asParser) , typeParameter , (((',' asParser) , typeParameter) star) , ('>' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   903
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   904
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   905
unaryExpression
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   906
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   907
	^ postfixExpression
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   908
	/ (prefixOperator , unaryExpression)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   909
	/ (negateOperator , (TokenParser for:#super))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   910
	/ (('-' asParser) , (TokenParser for:#super))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   911
	/ (postfixOperator , assignableExpression)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   912
	
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   913
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   914
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   915
userDefinableOperator
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   916
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   917
        ^ multiplicativeOperator
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   918
        / additiveOperator
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   919
        / shiftOperator
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   920
        / relationalOperator
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   921
        / bitwiseOperator
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   922
        / ('==' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   923
        / ('~' asParser)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   924
        / (TokenParser for: #negate)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   925
        / (('[' asParser) , (']' asParser))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   926
        / (('[' asParser) , (']' asParser) , ('=' asParser))
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   927
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   928
    "Modified: / 11-01-2013 / 10:11:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   929
!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   930
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   931
variableDeclaration
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   932
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   933
	^declaredIdentifier , (((',' asParser) , identifier) star)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   934
! !
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   935
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   936
!Parser methodsFor:'initialization'!
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   937
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   938
initializeStartingAt: aSymbol
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   939
        | allVariableNames ignoredVariableNames productionIndexesAndNames debugger |
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   940
        self initialize.        
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   941
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   942
        Debugging ifTrue:[
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   943
            PPDebugger notNil ifTrue:[
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   944
                self assert: (Smalltalk loadPackage: 'stx:goodies/petitparser/devtools').
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   945
                debugger := PPDebugger new
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   946
            ].
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   947
        ].
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   948
        "find all the productions that need to be initialized"
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   949
        allVariableNames := self class allInstVarNames
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   950
                collect: [ :each | each asSymbol ].
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   951
        ignoredVariableNames := self class ignoredNames
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   952
                collect: [ :each | each asSymbol ].
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   953
        productionIndexesAndNames := ((1 to: self class instSize)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   954
                collect: [ :index | index -> (allVariableNames at: index) ])
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   955
                reject: [ :assoc | ignoredVariableNames includes: assoc value ].
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   956
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   957
        "initialize productions with an undefined parser to be replaced later"
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   958
        parser := PPUnresolvedParser named: aSymbol.
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   959
        productionIndexesAndNames do: [ :assoc |
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   960
                self instVarAt: assoc key put: (PPUnresolvedParser named: assoc value) ].
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   961
        parser def: (self perform: aSymbol).
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   962
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   963
        "resolve unresolved parsers with their actual implementation"
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   964
        productionIndexesAndNames do: [ :assoc |
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   965
                (self respondsTo: assoc value)
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   966
                        ifFalse: [ self error: 'Unable to initialize ' , assoc value printString ]
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   967
                        ifTrue: [ 
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   968
                            | production |
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   969
                            production := ((self perform: assoc value)  name: assoc value; yourself).
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   970
                            Debugging ifTrue:[
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   971
                                production := PPDebuggingParser parser: production  debugger: debugger
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   972
                            ].
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   973
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   974
                            (self instVarAt: assoc key) def: production.
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   975
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   976
                                ] ]
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   977
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   978
    "Created: / 12-03-2012 / 16:51:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   979
    "Modified: / 11-01-2013 / 11:35:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   980
! !
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
   981
1
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   982
!Parser::TokenParser class methodsFor:'instance creation'!
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   983
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   984
for: tokenType
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   985
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   986
    ^self new tokenType: tokenType
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   987
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   988
    "Created: / 14-03-2012 / 23:10:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   989
! !
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   990
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   991
!Parser::TokenParser methodsFor:'accessing'!
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   992
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   993
tokenType
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   994
    ^ tokenType
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   995
!
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   996
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   997
tokenType:aSymbol
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   998
    tokenType := aSymbol.
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   999
! !
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
  1000
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
  1001
!Parser::TokenParser methodsFor:'parsing'!
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
  1002
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
  1003
parseOn:aJavaScanner
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
  1004
    "Parse aStream with the receiving parser and answer the parse-result or an instance of PPFailure. 
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
  1005
    Override this method in subclasses to specify custom parse behavior. Do not call this method from outside, 
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
  1006
    instead use #parse:."
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
  1007
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
  1008
    | pos |
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
  1009
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
  1010
    pos := aJavaScanner position.
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
  1011
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
  1012
    ^(aJavaScanner nextToken = tokenType) ifTrue:[
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
  1013
        aJavaScanner token
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
  1014
    ] ifFalse:[
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
  1015
        aJavaScanner position: pos.
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
  1016
        PPFailure message: (tokenType printString , ' token expected (got ', aJavaScanner tokenType , ' {',(aJavaScanner tokenValue ? '<nil>') printString,'})') at: aJavaScanner position
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
  1017
    ]
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
  1018
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
  1019
    "Modified: / 17-03-2012 / 13:34:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
  1020
! !
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
  1021
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
  1022
!Parser class methodsFor:'documentation'!
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
  1023
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
  1024
version_HG
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
  1025
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
  1026
    ^ '$Changeset: <not expanded> $'
46dd2b3b6974 Initial outline of Dart parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
  1027
! !
3
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
  1028
46c322c66a29 More work on parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
  1029
Parser initialize!