SmaCC__StParser.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 01 Aug 2019 20:05:55 +0100
changeset 28 0cddbc023329
parent 25 5a6921729520
permissions -rw-r--r--
Remove leftover `Makefile`

"{ Package: 'stx:goodies/smaCC' }"

"{ NameSpace: SmaCC }"

SmaCCParser subclass:#StParser
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	category:'SmaCC-Example Parsers'
!


!StParser class methodsFor:'accessing'!

parseExpression: aString 
	^self simplifyExpression: (self parse: aString
				startingAt: self startingStateForSequenceNode)
!

parseExpression: aString onError: aBlock 
	^self simplifyExpression: (self 
				parse: aString
				startingAt: self startingStateForSequenceNode
				onError: aBlock)
!

parseMethod: aString 
	^self parse: aString startingAt: self startingStateForMethod
!

parseMethod: aString onError: aBlock 
	^self 
		parse: aString
		startingAt: self startingStateForMethod
		onError: aBlock
! !

!StParser class methodsFor:'generated-accessing'!

scannerClass
	^StScanner
! !

!StParser class methodsFor:'generated-comments'!

parserDefinitionComment

	"%id <number> <negative_number> <name> <binary_symbol>;
%start SequenceNode ;

Method:
	  <name> MethodSequenceNode {(RBMethodNode selector: '1' value asSymbol arguments: #() body: '2' last) ""tags: '2' first; yourself""}
	| BinaryMethodName MethodSequenceNode {(RBMethodNode selector: '1' first arguments: '1' last body: '2' last) ""tags: '2' first; yourself""}
	| KeywordMethodName MethodSequenceNode {(RBMethodNode selector: '1' first contents asSymbol arguments: '1' last body: '2' last) ""tags: '2' first; yourself""};

BinaryMethodName:
	<binary_symbol> Variable {Array with: '1' value asSymbol with: (Array with: '2')} ;

KeywordMethodName:
	<keyword> Variable {| stream | stream := WriteStream on: (String new: 30). stream nextPutAll: '1' value. Array with: stream with: (OrderedCollection with: '2')}
	| KeywordMethodName <keyword> Variable {'1' first nextPutAll: '2' value. '1' last add: '3'. '1'};

Primitives:
	{OrderedCollection new}
	| Primitives ""<"" PrimitiveMessageSend "">"" {'1' add: ('2' startPosition to: '4' startPosition); yourself};

PrimitiveMessageSend:
	| PrimitiveMessageSend <keyword> {nil}
	| PrimitiveMessageSend Literal {nil}
	| PrimitiveMessageSend ""("" {nil}
	| PrimitiveMessageSend "")"" {nil}
	| PrimitiveMessageSend ""{"" {nil}
	| PrimitiveMessageSend ""}"" {nil}
	| PrimitiveMessageSend "";"" {nil}
	| PrimitiveMessageSend ""."" {nil}
	| PrimitiveMessageSend <name> {nil}
	| PrimitiveMessageSend <binary_symbol> {nil};

MethodSequenceNode:
	Primitives ""|"" TemporaryVariables ""|"" Primitives Statements {Array with: ('1' addAll: '5'; yourself) with: (RBSequenceNode temporaries: '3' statements: '6')}
	| Primitives ""||"" Primitives Statements {Array with: ('1' addAll: '3'; yourself) with: (RBSequenceNode temporaries: #() statements: '4')}
	| Primitives Statements {Array with: '1' with: (RBSequenceNode temporaries: #() statements: '2')};

SequenceNode:
	Temporaries Statements {RBSequenceNode temporaries: '1' statements: '2'};

Temporaries:
	{#()}
	| ""||"" {#()}
	| ""|"" TemporaryVariables ""|"" {'2'};

TemporaryVariables:
	{OrderedCollection new}
	| TemporaryVariables Variable {'1' add: '2'; yourself};

Statements:
	{OrderedCollection new}
	| StatementList "".""? {#liftFirstValue:}
	| StatementList ""."" ""^"" Expression "".""? {'1' add: (RBReturnNode value: '4'); yourself}
	| ""^"" Expression "".""? {OrderedCollection with: (RBReturnNode value: '2')};

StatementList:
	Expression
	| StatementList ""."" Expression {'1' add: '3'; yourself};

Block:
	""["" BlockArgs ""|"" SequenceNode ""]"" {RBBlockNode arguments: '2' body: '4'}
	| ""["" SequenceNode ""]"" {RBBlockNode body: '2'}
	| ""["" BlockArgs ""]"" {RBBlockNode arguments: '2' body: (RBSequenceNode statements: #())}
	| ""["" BlockArgs ""||"" TemporaryVariables ""|"" Statements ""]"" {RBBlockNode arguments: '2' body: (RBSequenceNode temporaries: '4' statements: '6')};

BlockArgs:
	"":"" Variable {OrderedCollection with: '2'}
	| BlockArgs "":"" Variable {'1' add: '3'; yourself};


Expression:
	Variable "":="" Expression {RBAssignmentNode variable: '1' value: '3'}
|	Cascade {#liftFirstValue:};

Cascade:
	MessageSend CascadeList 
				{| messages |
				'2' isEmpty ifTrue: [^'1'].
				messages := OrderedCollection new: '2' size + 1.
				messages add: '1'.
				'2' do: [:each | messages add: (RBMessageNode receiver: '1' receiver selector: each first contents asSymbol arguments: each last)].
				RBCascadeNode messages: messages}
|	Primary {#liftFirstValue:};

MessageSend:
	KeywordMessageSend {#liftFirstValue:}
|	BinaryMessageSend {#liftFirstValue:}
|	UnaryMessageSend {#liftFirstValue:};

CascadeList:
	{OrderedCollection new}
|	CascadeList "";"" SimpleMessage {'1' add: '3'; yourself};

SimpleMessage:
	UnaryMessage {#liftFirstValue:}
|	BinaryMessage {#liftFirstValue:}
|	KeywordMessage {#liftFirstValue:};

KeywordMessageSend:
	BinaryMessageSend KeywordMessage {#createMessageNodeFrom:}
|	UnaryMessageSend KeywordMessage {#createMessageNodeFrom:}
|	Primary KeywordMessage {#createMessageNodeFrom:};

KeywordMessage:
	<keyword> KeywordArgument {| stream | stream := WriteStream on: (String new: 30). stream nextPutAll: '1' value. Array with: stream with: (OrderedCollection with: '2')}
|	KeywordMessage <keyword> KeywordArgument {'1' first nextPutAll: '2' value. '1' last add: '3'. '1'};

KeywordArgument:
	BinaryMessageSend {#liftFirstValue:}
|	UnaryMessageSend {#liftFirstValue:}
|	Primary {#liftFirstValue:};

BinaryMessageSend:
	BinaryMessageSend BinaryMessage {#createMessageNodeFrom:}
|	UnaryMessageSend BinaryMessage {#createMessageNodeFrom:}
|	Primary BinaryMessage {#createMessageNodeFrom:} ;

BinaryMessage :
	<binary_symbol> BinaryArgument {Array with: (ReadStream on: '1' value) with: (Array with: '2')};

BinaryArgument:
	UnaryMessageSend {#liftFirstValue:}
|	Primary {#liftFirstValue:};

UnaryMessageSend :
	UnaryMessageSend UnaryMessage {#createMessageNodeFrom:}
|	Primary UnaryMessage {#createMessageNodeFrom:};

UnaryMessage :
	<name> {Array with: (ReadStream on: '1' value) with: #()};


Primary: 
	""("" Expression "")"" {#liftSecondValue:}
|	Literal {RBLiteralNode value: '1'}
|	Variable {#liftFirstValue:}
|	Block {#liftFirstValue:};

Variable: 
	<name> {RBVariableNode named: '1' value}
|	<dotted_name> {RBVariableNode named: '1' value};

Literal:
	""true"" {true}
|	""false"" {false}
|	""nil"" {nil}
|	<number> {'1' value}
|	<negative_number> {'1' value}
|	<character> {'1' value at: 2}
|	<string> {('1' value copyFrom: 2 to: '1' value size - 1) copyReplaceAll: '''''' with: ''''}
|	 ""#"" <string> {(('2' value copyFrom: 2 to: '2' value size - 1) copyReplaceAll: '''''' with: '''') asSymbol}
|	""#"" <name> {'2' value asSymbol}
|	""#"" <binary_symbol> {'2' value asSymbol}
|	""#"" <keyword> {'2' value asSymbol}
|	""#"" <multikeyword> {'2' value asSymbol}
|	""#"" ""["" ByteArray ""]"" {'3' contents}
|	""#"" ""("" Array "")"" {'3' contents}
|	""#"" ""{"" <name> ""}"" {'3' value asQualifiedReference}
|	""#"" ""{"" <dotted_name> ""}"" {'3' value asQualifiedReference};

ByteArray: 
	{WriteStream on: ByteArray new}
|	ByteArray <number> {'1' nextPut: '2' value; yourself};

Array: 
	{WriteStream on: Array new}
|	Array ArrayLiteral {'1' nextPut: '2'; yourself} 
|	Array <name> "":="" {'2' stopPosition + 1 = '3' startPosition ifTrue: ['1' nextPut: ('2' value, ':') asSymbol] ifFalse: ['1' nextPut: '2' value asSymbol; nextPut: #':']. scanner position: '3' startPosition. currentToken := nil. '1'};

ArrayLiteral:
	Literal {#liftFirstValue:}
|	<name> {'1' value asSymbol}
|	<binary_symbol> {'1' value asSymbol}
|	<keyword> {'1' value asSymbol}
|	<multikeyword> {'1' value asSymbol}
|	""{"" <name> ""}"" {'2' value asQualifiedReference}
|	""{"" <dotted_name> ""}"" {'2' value asQualifiedReference}
|	""("" Array "")"" {'2' contents}
|	""["" ByteArray ""]"" {'2' contents}
|	<any_char> {'1' value asSymbol}
|	<dotted_name> {'1' value};"
! !

!StParser class methodsFor:'generated-starting states'!

startingStateForMethod
	^1
!

startingStateForSequenceNode
	^2
! !

!StParser class methodsFor:'private'!

simplifyExpression: aSequenceNode 
	^(aSequenceNode statements size == 1 
		and: [aSequenceNode temporaries isEmpty]) 
			ifTrue: [aSequenceNode statements first]
			ifFalse: [aSequenceNode]
! !

!StParser methodsFor:'generated-reduction actions'!

reduceActionForArray1: nodes
	^WriteStream on: Array new
!

reduceActionForArray2: nodes
	^(nodes at: 1)
		nextPut: (nodes at: 2);
		yourself
!

reduceActionForArray3: nodes
	(nodes at: 2) stopPosition + 1 = (nodes at: 3) startPosition 
		ifTrue: [(nodes at: 1) nextPut: ((nodes at: 2) value , ':') asSymbol]
		ifFalse: 
			[(nodes at: 1)
				nextPut: (nodes at: 2) value asSymbol;
				nextPut: #':'].
	scanner position: (nodes at: 3) startPosition.
	currentToken := nil.
	^nodes at: 1
!

reduceActionForArrayLiteral10: nodes
	^(nodes at: 1) value asSymbol
!

reduceActionForArrayLiteral11: nodes
	^(nodes at: 1) value
!

reduceActionForArrayLiteral2: nodes
	^(nodes at: 1) value asSymbol
!

reduceActionForArrayLiteral3: nodes
	^(nodes at: 1) value asSymbol
!

reduceActionForArrayLiteral4: nodes
	^(nodes at: 1) value asSymbol
!

reduceActionForArrayLiteral5: nodes
	^(nodes at: 1) value asSymbol
!

reduceActionForArrayLiteral6: nodes
	^(nodes at: 2) value asQualifiedReference
!

reduceActionForArrayLiteral7: nodes
	^(nodes at: 2) value asQualifiedReference
!

reduceActionForArrayLiteral8: nodes
	^(nodes at: 2) contents
!

reduceActionForArrayLiteral9: nodes
	^(nodes at: 2) contents
!

reduceActionForBinaryMessage1: nodes
	^Array with: (ReadStream on: (nodes at: 1) value) with: (Array with: (nodes at: 2))
!

reduceActionForBinaryMethodName1: nodes
	^Array with: (nodes at: 1) value asSymbol with: (Array with: (nodes at: 2))
!

reduceActionForBlock1: nodes
	^RBBlockNode arguments: (nodes at: 2) body: (nodes at: 4)
!

reduceActionForBlock2: nodes
	^RBBlockNode body: (nodes at: 2)
!

reduceActionForBlock3: nodes
	^RBBlockNode arguments: (nodes at: 2) body: (RBSequenceNode statements: #())
!

reduceActionForBlock4: nodes
	^RBBlockNode arguments: (nodes at: 2)
		body: (RBSequenceNode temporaries: (nodes at: 4) statements: (nodes at: 6))
!

reduceActionForBlockArgs1: nodes
	^OrderedCollection with: (nodes at: 2)
!

reduceActionForBlockArgs2: nodes
	^(nodes at: 1)
		add: (nodes at: 3);
		yourself
!

reduceActionForByteArray1: nodes
	^WriteStream on: ByteArray new
!

reduceActionForByteArray2: nodes
	^(nodes at: 1)
		nextPut: (nodes at: 2) value;
		yourself
!

reduceActionForCascade1: nodes
	| messages |
	(nodes at: 2) isEmpty ifTrue: [^nodes at: 1].
	messages := OrderedCollection new: (nodes at: 2) size + 1.
	messages add: (nodes at: 1).
	(nodes at: 2) do: 
			[:each | 
			messages add: (RBMessageNode 
						receiver: (nodes at: 1) receiver
						selector: each first contents asSymbol
						arguments: each last)].
	^RBCascadeNode messages: messages
!

reduceActionForCascadeList1: nodes
	^OrderedCollection new
!

reduceActionForCascadeList2: nodes
	^(nodes at: 1)
		add: (nodes at: 3);
		yourself
!

reduceActionForExpression1: nodes
	^RBAssignmentNode variable: (nodes at: 1) value: (nodes at: 3)
!

reduceActionForKeywordMessage1: nodes
	| stream |
	stream := WriteStream on: (String new: 30).
	stream nextPutAll: (nodes at: 1) value.
	^Array with: stream with: (OrderedCollection with: (nodes at: 2))
!

reduceActionForKeywordMessage2: nodes
	(nodes at: 1) first nextPutAll: (nodes at: 2) value.
	(nodes at: 1) last add: (nodes at: 3).
	^nodes at: 1
!

reduceActionForKeywordMethodName1: nodes
	| stream |
	stream := WriteStream on: (String new: 30).
	stream nextPutAll: (nodes at: 1) value.
	^Array with: stream with: (OrderedCollection with: (nodes at: 2))
!

reduceActionForKeywordMethodName2: nodes
	(nodes at: 1) first nextPutAll: (nodes at: 2) value.
	(nodes at: 1) last add: (nodes at: 3).
	^nodes at: 1
!

reduceActionForLiteral10: nodes
	^(nodes at: 2) value asSymbol
!

reduceActionForLiteral11: nodes
	^(nodes at: 2) value asSymbol
!

reduceActionForLiteral12: nodes
	^(nodes at: 2) value asSymbol
!

reduceActionForLiteral13: nodes
	^(nodes at: 3) contents
!

reduceActionForLiteral14: nodes
	^(nodes at: 3) contents
!

reduceActionForLiteral15: nodes
	^(nodes at: 3) value asQualifiedReference
!

reduceActionForLiteral16: nodes
	^(nodes at: 3) value asQualifiedReference
!

reduceActionForLiteral1: nodes
	^true
!

reduceActionForLiteral2: nodes
	^false
!

reduceActionForLiteral3: nodes
	^nil
!

reduceActionForLiteral4: nodes
	^(nodes at: 1) value
!

reduceActionForLiteral5: nodes
	^(nodes at: 1) value
!

reduceActionForLiteral6: nodes
	^(nodes at: 1) value at: 2
!

reduceActionForLiteral7: nodes
	^((nodes at: 1) value copyFrom: 2 to: (nodes at: 1) value size - 1) 
		copyReplaceAll: ''''''
		with: ''''
!

reduceActionForLiteral8: nodes
	^(((nodes at: 2) value copyFrom: 2 to: (nodes at: 2) value size - 1) 
		copyReplaceAll: ''''''
		with: '''') asSymbol
!

reduceActionForLiteral9: nodes
	^(nodes at: 2) value asSymbol
!

reduceActionForMethod1: nodes
	^RBMethodNode 
		selector: (nodes at: 1) value asSymbol
		arguments: #()
		body: (nodes at: 2) last
!

reduceActionForMethod2: nodes
	^RBMethodNode 
		selector: (nodes at: 1) first
		arguments: (nodes at: 1) last
		body: (nodes at: 2) last
!

reduceActionForMethod3: nodes
	^RBMethodNode 
		selector: (nodes at: 1) first contents asSymbol
		arguments: (nodes at: 1) last
		body: (nodes at: 2) last
!

reduceActionForMethodSequenceNode1: nodes
	^Array with: ((nodes at: 1)
				addAll: (nodes at: 5);
				yourself)
		with: (RBSequenceNode temporaries: (nodes at: 3) statements: (nodes at: 6))
!

reduceActionForMethodSequenceNode2: nodes
	^Array with: ((nodes at: 1)
				addAll: (nodes at: 3);
				yourself)
		with: (RBSequenceNode temporaries: #() statements: (nodes at: 4))
!

reduceActionForMethodSequenceNode3: nodes
	^Array with: (nodes at: 1)
		with: (RBSequenceNode temporaries: #() statements: (nodes at: 2))
!

reduceActionForOptional_____1: nodes
	^nil
!

reduceActionForOptional_____2: nodes
	^nodes at: 1
!

reduceActionForPrimary2: nodes
	^RBLiteralNode value: (nodes at: 1)
!

reduceActionForPrimitiveMessageSend10: nodes
	^nil
!

reduceActionForPrimitiveMessageSend11: nodes
	^nil
!

reduceActionForPrimitiveMessageSend2: nodes
	^nil
!

reduceActionForPrimitiveMessageSend3: nodes
	^nil
!

reduceActionForPrimitiveMessageSend4: nodes
	^nil
!

reduceActionForPrimitiveMessageSend5: nodes
	^nil
!

reduceActionForPrimitiveMessageSend6: nodes
	^nil
!

reduceActionForPrimitiveMessageSend7: nodes
	^nil
!

reduceActionForPrimitiveMessageSend8: nodes
	^nil
!

reduceActionForPrimitiveMessageSend9: nodes
	^nil
!

reduceActionForPrimitives1: nodes
	^OrderedCollection new
!

reduceActionForPrimitives2: nodes
	^(nodes at: 1)
		add: ((nodes at: 2) startPosition to: (nodes at: 4) startPosition);
		yourself
!

reduceActionForSequenceNode1: nodes
	^RBSequenceNode temporaries: (nodes at: 1) statements: (nodes at: 2)
!

reduceActionForStatementList2: nodes
	^(nodes at: 1)
		add: (nodes at: 3);
		yourself
!

reduceActionForStatements1: nodes
	^OrderedCollection new
!

reduceActionForStatements3: nodes
	^(nodes at: 1)
		add: (RBReturnNode value: (nodes at: 4));
		yourself
!

reduceActionForStatements4: nodes
	^OrderedCollection with: (RBReturnNode value: (nodes at: 2))
!

reduceActionForTemporaries1: nodes
	^#()
!

reduceActionForTemporaries2: nodes
	^#()
!

reduceActionForTemporaries3: nodes
	^nodes at: 2
!

reduceActionForTemporaryVariables1: nodes
	^OrderedCollection new
!

reduceActionForTemporaryVariables2: nodes
	^(nodes at: 1)
		add: (nodes at: 2);
		yourself
!

reduceActionForUnaryMessage1: nodes
	^Array with: (ReadStream on: (nodes at: 1) value) with: #()
!

reduceActionForVariable1: nodes
	^RBVariableNode named: (nodes at: 1) value
!

reduceActionForVariable2: nodes
	^RBVariableNode named: (nodes at: 1) value
! !

!StParser methodsFor:'generated-tables'!

reduceTable
	^#(
#(33 0 #reduceActionForTemporaries1:)
#(33 1 #reduceActionForTemporaries2:)
#(33 3 #reduceActionForTemporaries3:)
#(34 0 #reduceActionForStatements1:)
#(34 2 #liftFirstValue:)
#(34 5 #reduceActionForStatements3:)
#(34 3 #reduceActionForStatements4:)
#(35 1 #reduceActionForVariable1:)
#(35 1 #reduceActionForVariable2:)
#(36 1 #reduceFor:)
#(36 3 #reduceActionForStatementList2:)
#(37 0 #reduceActionForTemporaryVariables1:)
#(37 2 #reduceActionForTemporaryVariables2:)
#(38 3 #reduceActionForExpression1:)
#(38 1 #liftFirstValue:)
#(39 2 #reduceActionForBlockArgs1:)
#(39 3 #reduceActionForBlockArgs2:)
#(40 5 #reduceActionForBlock1:)
#(40 3 #reduceActionForBlock2:)
#(40 3 #reduceActionForBlock3:)
#(40 7 #reduceActionForBlock4:)
#(41 2 #reduceActionForCascade1:)
#(41 1 #liftFirstValue:)
#(42 1 #liftFirstValue:)
#(42 1 #liftFirstValue:)
#(42 1 #liftFirstValue:)
#(43 0 #reduceActionForCascadeList1:)
#(43 3 #reduceActionForCascadeList2:)
#(44 3 #liftSecondValue:)
#(44 1 #reduceActionForPrimary2:)
#(44 1 #liftFirstValue:)
#(44 1 #liftFirstValue:)
#(45 0 #reduceActionForOptional_____1:)
#(45 1 #reduceActionForOptional_____2:)
#(46 2 #createMessageNodeFrom:)
#(46 2 #createMessageNodeFrom:)
#(46 2 #createMessageNodeFrom:)
#(47 2 #createMessageNodeFrom:)
#(47 2 #createMessageNodeFrom:)
#(48 1 #liftFirstValue:)
#(48 1 #liftFirstValue:)
#(48 1 #liftFirstValue:)
#(49 0 #reduceFor:)
#(49 2 #reduceActionForPrimitiveMessageSend2:)
#(49 2 #reduceActionForPrimitiveMessageSend3:)
#(49 2 #reduceActionForPrimitiveMessageSend4:)
#(49 2 #reduceActionForPrimitiveMessageSend5:)
#(49 2 #reduceActionForPrimitiveMessageSend6:)
#(49 2 #reduceActionForPrimitiveMessageSend7:)
#(49 2 #reduceActionForPrimitiveMessageSend8:)
#(49 2 #reduceActionForPrimitiveMessageSend9:)
#(49 2 #reduceActionForPrimitiveMessageSend10:)
#(49 2 #reduceActionForPrimitiveMessageSend11:)
#(50 1 #reduceActionForUnaryMessage1:)
#(51 2 #reduceActionForBinaryMessage1:)
#(52 2 #reduceActionForKeywordMessage1:)
#(52 3 #reduceActionForKeywordMessage2:)
#(53 1 #liftFirstValue:)
#(53 1 #liftFirstValue:)
#(53 1 #liftFirstValue:)
#(54 1 #liftFirstValue:)
#(54 1 #liftFirstValue:)
#(55 1 #reduceFor:)
#(56 2 #reduceActionForMethod1:)
#(56 2 #reduceActionForMethod2:)
#(56 2 #reduceActionForMethod3:)
#(57 2 #reduceActionForKeywordMethodName1:)
#(57 3 #reduceActionForKeywordMethodName2:)
#(58 2 #reduceActionForBinaryMethodName1:)
#(59 0 #reduceActionForByteArray1:)
#(59 2 #reduceActionForByteArray2:)
#(60 0 #reduceActionForArray1:)
#(60 2 #reduceActionForArray2:)
#(60 3 #reduceActionForArray3:)
#(61 1 #liftFirstValue:)
#(61 1 #reduceActionForArrayLiteral2:)
#(61 1 #reduceActionForArrayLiteral3:)
#(61 1 #reduceActionForArrayLiteral4:)
#(61 1 #reduceActionForArrayLiteral5:)
#(61 3 #reduceActionForArrayLiteral6:)
#(61 3 #reduceActionForArrayLiteral7:)
#(61 3 #reduceActionForArrayLiteral8:)
#(61 3 #reduceActionForArrayLiteral9:)
#(61 1 #reduceActionForArrayLiteral10:)
#(61 1 #reduceActionForArrayLiteral11:)
#(62 2 #createMessageNodeFrom:)
#(62 2 #createMessageNodeFrom:)
#(62 2 #createMessageNodeFrom:)
#(65 6 #reduceActionForMethodSequenceNode1:)
#(65 4 #reduceActionForMethodSequenceNode2:)
#(65 2 #reduceActionForMethodSequenceNode3:)
#(66 2 #reduceActionForSequenceNode1:)
#(67 1 #reduceActionForLiteral1:)
#(67 1 #reduceActionForLiteral2:)
#(67 1 #reduceActionForLiteral3:)
#(67 1 #reduceActionForLiteral4:)
#(67 1 #reduceActionForLiteral5:)
#(67 1 #reduceActionForLiteral6:)
#(67 1 #reduceActionForLiteral7:)
#(67 2 #reduceActionForLiteral8:)
#(67 2 #reduceActionForLiteral9:)
#(67 2 #reduceActionForLiteral10:)
#(67 2 #reduceActionForLiteral11:)
#(67 2 #reduceActionForLiteral12:)
#(67 4 #reduceActionForLiteral13:)
#(67 4 #reduceActionForLiteral14:)
#(67 4 #reduceActionForLiteral15:)
#(67 4 #reduceActionForLiteral16:)
#(68 0 #reduceActionForPrimitives1:)
#(68 4 #reduceActionForPrimitives2:)
)
!

transitionTable
	^#(
#[1 0 13 0 20 0 17 0 24 0 21 0 26 0 25 0 56 0 29 0 57 0 33 0 58]
#[1 0 6 0 2 0 6 0 4 0 6 0 10 0 6 0 13 0 6 0 14 0 37 0 15 0 41 0 17 0 6 0 18 0 6 0 19 0 6 0 20 0 6 0 21 0 6 0 22 0 6 0 23 0 6 0 29 0 6 0 30 0 45 0 33 0 6 0 63 0 49 0 66]
#[1 1 182 0 2 1 182 0 4 1 182 0 8 1 182 0 10 1 182 0 13 1 182 0 14 1 182 0 15 1 182 0 17 1 182 0 18 1 182 0 19 1 182 0 20 1 182 0 21 1 182 0 22 1 182 0 23 1 182 0 29 1 182 0 30 1 182 0 63 0 53 0 65 0 57 0 68]
#[1 0 61 0 20 0 65 0 29 0 69 0 35]
#[1 0 61 0 20 0 65 0 29 0 73 0 35]
#[0 0 0 0 63]
#[1 1 182 0 2 1 182 0 4 1 182 0 8 1 182 0 10 1 182 0 13 1 182 0 14 1 182 0 15 1 182 0 17 1 182 0 18 1 182 0 19 1 182 0 20 1 182 0 21 1 182 0 22 1 182 0 23 0 77 0 24 1 182 0 29 1 182 0 30 1 182 0 63 0 81 0 65 0 57 0 68]
#[1 1 182 0 2 1 182 0 4 1 182 0 8 1 182 0 10 1 182 0 13 1 182 0 14 1 182 0 15 1 182 0 17 1 182 0 18 1 182 0 19 1 182 0 20 1 182 0 21 1 182 0 22 1 182 0 23 1 182 0 29 1 182 0 30 1 182 0 63 0 85 0 65 0 57 0 68]
#[0 0 10 0 2 0 4 0 10 0 12 0 13 0 14 0 18 0 19 0 20 0 21 0 22 0 23 0 29 0 30 0 63]
#[1 0 50 0 17 0 50 0 20 0 50 0 29 0 89 0 37]
#[1 0 93 0 2 0 97 0 4 0 101 0 10 0 18 0 12 0 105 0 13 0 109 0 14 0 113 0 18 0 117 0 19 0 61 0 20 0 121 0 21 0 125 0 22 0 129 0 23 0 65 0 29 0 133 0 30 0 137 0 34 0 141 0 35 0 145 0 36 0 149 0 38 0 153 0 40 0 157 0 41 0 161 0 42 0 165 0 44 0 169 0 46 0 173 0 47 0 177 0 62 0 18 0 63 0 181 0 67]
#[0 0 0 0 63]
#[0 1 2 0 63]
#[1 0 93 0 2 0 97 0 4 0 185 0 8 0 101 0 10 0 105 0 13 0 109 0 14 0 189 0 15 0 193 0 17 0 113 0 18 0 117 0 19 0 61 0 20 0 121 0 21 0 125 0 22 0 129 0 23 0 65 0 29 0 133 0 30 0 197 0 34 0 141 0 35 0 145 0 36 0 149 0 38 0 153 0 40 0 157 0 41 0 161 0 42 0 165 0 44 0 169 0 46 0 173 0 47 0 177 0 62 0 18 0 63 0 181 0 67]
#[0 0 34 0 1 0 2 0 4 0 5 0 8 0 9 0 10 0 11 0 12 0 13 0 14 0 15 0 16 0 17 0 18 0 19 0 20 0 21 0 22 0 23 0 24 0 26 0 29 0 30 0 63]
#[0 0 38 0 1 0 2 0 4 0 5 0 8 0 9 0 10 0 11 0 12 0 13 0 14 0 15 0 16 0 17 0 18 0 19 0 20 0 21 0 22 0 23 0 24 0 26 0 29 0 30 0 63]
#[0 1 14 0 2 0 4 0 8 0 10 0 13 0 14 0 15 0 17 0 18 0 19 0 20 0 21 0 22 0 23 0 24 0 29 0 30 0 63]
#[0 1 22 0 2 0 4 0 8 0 10 0 13 0 14 0 15 0 17 0 18 0 19 0 20 0 21 0 22 0 23 0 29 0 30 0 63]
#[1 0 61 0 20 0 65 0 29 0 201 0 35]
#[0 1 10 0 63]
#[0 1 6 0 63]
#[1 0 205 0 17 0 61 0 20 0 65 0 29 0 209 0 35]
#[1 0 93 0 2 0 97 0 4 0 101 0 10 0 105 0 13 0 109 0 14 0 113 0 18 0 61 0 20 0 121 0 21 0 125 0 22 0 129 0 23 0 65 0 29 0 133 0 30 0 141 0 35 0 213 0 38 0 153 0 40 0 157 0 41 0 161 0 42 0 165 0 44 0 169 0 46 0 173 0 47 0 177 0 62 0 181 0 67]
#[1 0 217 0 2 0 221 0 6 0 225 0 18 0 229 0 20 0 233 0 23 0 237 0 24 0 241 0 25 0 245 0 26]
#[0 1 126 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 9 0 10 0 12 0 13 0 14 0 18 0 20 0 21 0 22 0 23 0 24 0 25 0 26 0 29 0 30 0 32 0 63]
#[0 1 122 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 9 0 10 0 12 0 13 0 14 0 18 0 20 0 21 0 22 0 23 0 24 0 25 0 26 0 29 0 30 0 32 0 63]
#[0 1 118 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 9 0 10 0 12 0 13 0 14 0 18 0 20 0 21 0 22 0 23 0 24 0 25 0 26 0 29 0 30 0 32 0 63]
#[1 0 6 0 2 0 6 0 4 0 6 0 10 0 6 0 12 0 6 0 13 0 6 0 14 0 37 0 15 0 249 0 16 0 41 0 17 0 6 0 18 0 6 0 19 0 6 0 20 0 6 0 21 0 6 0 22 0 6 0 23 0 6 0 29 0 6 0 30 0 45 0 33 0 253 0 39 1 1 0 66]
#[1 0 93 0 2 0 97 0 4 0 101 0 10 0 105 0 13 0 109 0 14 0 113 0 18 0 61 0 20 0 121 0 21 0 125 0 22 0 129 0 23 0 65 0 29 0 133 0 30 0 141 0 35 1 5 0 38 0 153 0 40 0 157 0 41 0 161 0 42 0 165 0 44 0 169 0 46 0 173 0 47 0 177 0 62 0 181 0 67]
#[0 1 130 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 9 0 10 0 12 0 13 0 14 0 18 0 20 0 21 0 22 0 23 0 24 0 25 0 26 0 29 0 30 0 32 0 63]
#[0 1 134 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 9 0 10 0 12 0 13 0 14 0 18 0 20 0 21 0 22 0 23 0 24 0 25 0 26 0 29 0 30 0 32 0 63]
#[0 1 142 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 9 0 10 0 12 0 13 0 14 0 18 0 20 0 21 0 22 0 23 0 24 0 25 0 26 0 29 0 30 0 32 0 63]
#[0 1 138 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 9 0 10 0 12 0 13 0 14 0 18 0 20 0 21 0 22 0 23 0 24 0 25 0 26 0 29 0 30 0 32 0 63]
#[0 1 114 0 12 0 63]
#[1 0 126 0 1 0 126 0 5 1 9 0 11 0 126 0 12 0 126 0 20 0 126 0 24 0 126 0 26 0 126 0 63]
#[1 1 13 0 5 0 134 0 12 1 17 0 45 0 134 0 63]
#[0 0 42 0 5 0 12 0 63]
#[0 0 130 0 1 0 5 0 9 0 12 0 20 0 24 0 26 0 63]
#[0 0 62 0 1 0 5 0 12 0 63]
#[1 0 110 0 1 0 110 0 5 0 110 0 9 0 110 0 12 1 21 0 43 0 110 0 63]
#[1 0 94 0 1 0 94 0 5 0 94 0 12 1 25 0 20 1 29 0 24 1 33 0 26 1 37 0 50 1 41 0 51 1 45 0 52 0 94 0 63]
#[1 0 102 0 1 0 102 0 5 0 102 0 9 0 102 0 12 1 29 0 24 1 33 0 26 1 49 0 51 1 53 0 52 0 102 0 63]
#[1 0 106 0 1 0 106 0 5 0 106 0 9 0 106 0 12 1 25 0 20 1 29 0 24 1 33 0 26 1 57 0 50 1 61 0 51 1 65 0 52 0 106 0 63]
#[0 0 98 0 1 0 5 0 9 0 12 0 63]
#[0 0 122 0 1 0 5 0 9 0 12 0 20 0 24 0 26 0 63]
#[1 0 174 0 1 0 174 0 2 0 174 0 3 0 174 0 4 0 174 0 5 0 174 0 6 0 174 0 7 0 174 0 9 0 174 0 10 0 174 0 13 0 174 0 14 0 174 0 20 0 174 0 21 0 174 0 22 0 174 0 23 0 174 0 24 0 174 0 26 0 174 0 30 1 69 0 49]
#[1 1 182 0 2 1 182 0 4 1 182 0 8 1 182 0 10 1 182 0 13 1 182 0 14 1 182 0 18 1 182 0 19 1 182 0 20 1 182 0 21 1 182 0 22 1 182 0 23 1 182 0 29 1 182 0 30 1 182 0 63 1 73 0 68]
#[1 0 50 0 17 0 50 0 20 0 50 0 29 1 77 0 37]
#[0 1 110 0 63]
#[0 1 18 0 2 0 4 0 8 0 10 0 13 0 14 0 15 0 17 0 18 0 19 0 20 0 21 0 22 0 23 0 24 0 29 0 30 0 63]
#[0 0 14 0 2 0 4 0 10 0 12 0 13 0 14 0 18 0 19 0 20 0 21 0 22 0 23 0 29 0 30 0 63]
#[0 0 54 0 17 0 20 0 29]
#[0 1 81 0 1]
#[1 1 34 0 1 1 34 0 2 1 34 0 4 1 34 0 6 1 34 0 10 1 34 0 13 1 34 0 14 1 34 0 18 1 34 0 20 1 34 0 21 1 34 0 22 1 34 0 23 1 34 0 24 1 34 0 25 1 34 0 26 1 34 0 29 1 34 0 30 1 34 0 32 1 85 0 60]
#[1 1 89 0 20 1 93 0 29]
#[1 1 26 0 12 1 26 0 21 1 97 0 59]
#[0 1 150 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 9 0 10 0 12 0 13 0 14 0 18 0 20 0 21 0 22 0 23 0 24 0 25 0 26 0 29 0 30 0 32 0 63]
#[0 1 146 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 9 0 10 0 12 0 13 0 14 0 18 0 20 0 21 0 22 0 23 0 24 0 25 0 26 0 29 0 30 0 32 0 63]
#[0 1 158 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 9 0 10 0 12 0 13 0 14 0 18 0 20 0 21 0 22 0 23 0 24 0 25 0 26 0 29 0 30 0 32 0 63]
#[0 1 162 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 9 0 10 0 12 0 13 0 14 0 18 0 20 0 21 0 22 0 23 0 24 0 25 0 26 0 29 0 30 0 32 0 63]
#[0 1 154 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 9 0 10 0 12 0 13 0 14 0 18 0 20 0 21 0 22 0 23 0 24 0 25 0 26 0 29 0 30 0 32 0 63]
#[1 0 61 0 20 0 65 0 29 1 101 0 35]
#[1 1 105 0 12 1 109 0 15 1 113 0 16 1 117 0 17]
#[0 1 121 0 12]
#[1 1 125 0 5 0 134 0 12 1 129 0 45 0 134 0 63]
#[1 0 93 0 2 0 97 0 4 0 101 0 10 0 105 0 13 0 109 0 14 0 113 0 18 0 61 0 20 0 121 0 21 0 125 0 22 0 129 0 23 0 65 0 29 0 133 0 30 0 141 0 35 1 133 0 38 0 153 0 40 0 157 0 41 0 161 0 42 0 165 0 44 0 169 0 46 0 173 0 47 0 177 0 62 0 181 0 67]
#[1 0 93 0 2 0 97 0 4 0 101 0 10 0 138 0 12 0 105 0 13 0 109 0 14 0 113 0 18 1 137 0 19 0 61 0 20 0 121 0 21 0 125 0 22 0 129 0 23 0 65 0 29 0 133 0 30 0 141 0 35 1 141 0 38 0 153 0 40 0 157 0 41 0 161 0 42 0 165 0 44 0 169 0 46 0 173 0 47 0 177 0 62 0 138 0 63 0 181 0 67]
#[0 0 22 0 12 0 63]
#[1 0 90 0 1 0 90 0 5 1 145 0 9 0 90 0 12 0 90 0 63]
#[0 0 218 0 1 0 5 0 9 0 12 0 20 0 24 0 26 0 63]
#[1 0 93 0 2 0 97 0 4 0 101 0 10 0 105 0 13 0 109 0 14 0 113 0 18 0 61 0 20 0 121 0 21 0 125 0 22 0 129 0 23 0 65 0 29 0 133 0 30 1 149 0 35 0 153 0 40 1 153 0 44 1 157 0 46 1 161 0 47 1 165 0 53 0 181 0 67]
#[1 0 93 0 2 0 97 0 4 0 101 0 10 0 105 0 13 0 109 0 14 0 113 0 18 0 61 0 20 0 121 0 21 0 125 0 22 0 129 0 23 0 65 0 29 0 133 0 30 1 149 0 35 0 153 0 40 1 169 0 44 1 173 0 47 1 177 0 54 0 181 0 67]
#[0 0 158 0 1 0 5 0 9 0 12 0 20 0 24 0 26 0 63]
#[0 0 150 0 1 0 5 0 9 0 12 0 24 0 26 0 63]
#[1 1 98 0 1 1 98 0 5 1 98 0 9 1 98 0 12 1 181 0 24 1 98 0 63]
#[0 0 142 0 1 0 5 0 9 0 12 0 24 0 26 0 63]
#[1 1 90 0 1 1 90 0 5 1 90 0 9 1 90 0 12 1 181 0 24 1 90 0 63]
#[0 0 154 0 1 0 5 0 9 0 12 0 20 0 24 0 26 0 63]
#[0 0 146 0 1 0 5 0 9 0 12 0 24 0 26 0 63]
#[1 1 94 0 1 1 94 0 5 1 94 0 9 1 94 0 12 1 181 0 24 1 94 0 63]
#[1 1 185 0 1 1 189 0 2 1 193 0 3 0 97 0 4 1 197 0 5 1 201 0 6 1 205 0 7 1 209 0 9 0 101 0 10 0 105 0 13 0 109 0 14 1 213 0 20 0 121 0 21 0 125 0 22 0 129 0 23 1 217 0 24 1 221 0 26 0 133 0 30 1 225 0 67]
#[1 0 93 0 2 0 97 0 4 0 185 0 8 0 101 0 10 0 105 0 13 0 109 0 14 0 113 0 18 0 117 0 19 0 61 0 20 0 121 0 21 0 125 0 22 0 129 0 23 0 65 0 29 0 133 0 30 1 229 0 34 0 141 0 35 0 145 0 36 0 149 0 38 0 153 0 40 0 157 0 41 0 161 0 42 0 165 0 44 0 169 0 46 0 173 0 47 0 177 0 62 0 18 0 63 0 181 0 67]
#[1 1 233 0 17 0 61 0 20 0 65 0 29 0 209 0 35]
#[0 0 118 0 1 0 5 0 9 0 12 0 20 0 24 0 26 0 63]
#[1 1 237 0 1 1 241 0 2 0 97 0 4 1 245 0 6 0 101 0 10 0 105 0 13 0 109 0 14 1 249 0 18 1 253 0 20 0 121 0 21 0 125 0 22 0 129 0 23 2 1 0 24 2 5 0 25 2 9 0 26 2 13 0 29 0 133 0 30 2 17 0 32 2 21 0 61 2 25 0 67]
#[0 2 29 0 3]
#[0 2 33 0 3]
#[1 2 37 0 12 2 41 0 21]
#[0 0 66 0 12 0 15 0 16 0 17]
#[0 0 82 0 1 0 5 0 9 0 12 0 20 0 24 0 26 0 63]
#[1 0 50 0 17 0 50 0 20 0 50 0 29 2 45 0 37]
#[1 0 61 0 20 0 65 0 29 2 49 0 35]
#[1 0 6 0 2 0 6 0 4 0 6 0 10 0 6 0 12 0 6 0 13 0 6 0 14 0 37 0 15 0 41 0 17 0 6 0 18 0 6 0 19 0 6 0 20 0 6 0 21 0 6 0 22 0 6 0 23 0 6 0 29 0 6 0 30 0 45 0 33 2 53 0 66]
#[0 0 78 0 1 0 5 0 9 0 12 0 20 0 24 0 26 0 63]
#[0 0 138 0 12 0 63]
#[0 0 30 0 12 0 63]
#[0 0 58 0 1 0 5 0 12 0 63]
#[1 0 93 0 2 0 97 0 4 0 101 0 10 0 105 0 13 0 109 0 14 0 113 0 18 0 61 0 20 0 121 0 21 0 125 0 22 0 129 0 23 0 65 0 29 0 133 0 30 0 141 0 35 2 57 0 38 0 153 0 40 0 157 0 41 0 161 0 42 0 165 0 44 0 169 0 46 0 173 0 47 0 177 0 62 0 181 0 67]
#[0 0 46 0 5 0 12 0 63]
#[1 1 25 0 20 1 29 0 24 1 33 0 26 2 61 0 48 2 65 0 50 2 69 0 51 2 73 0 52]
#[0 0 126 0 1 0 5 0 9 0 12 0 20 0 24 0 26 0 63]
#[1 0 242 0 1 0 242 0 5 0 242 0 9 0 242 0 12 1 25 0 20 0 242 0 24 1 33 0 26 1 37 0 50 1 41 0 51 0 242 0 63]
#[1 0 234 0 1 0 234 0 5 0 234 0 9 0 234 0 12 0 234 0 24 1 33 0 26 1 49 0 51 0 234 0 63]
#[1 0 238 0 1 0 238 0 5 0 238 0 9 0 238 0 12 1 25 0 20 0 238 0 24 1 33 0 26 1 57 0 50 1 61 0 51 0 238 0 63]
#[0 0 226 0 1 0 5 0 9 0 12 0 24 0 63]
#[1 0 250 0 1 0 250 0 5 0 250 0 9 0 250 0 12 1 25 0 20 0 250 0 24 0 250 0 26 1 37 0 50 0 250 0 63]
#[1 0 246 0 1 0 246 0 5 0 246 0 9 0 246 0 12 1 25 0 20 0 246 0 24 0 246 0 26 1 57 0 50 0 246 0 63]
#[0 0 222 0 1 0 5 0 9 0 12 0 24 0 26 0 63]
#[1 0 93 0 2 0 97 0 4 0 101 0 10 0 105 0 13 0 109 0 14 0 113 0 18 0 61 0 20 0 121 0 21 0 125 0 22 0 129 0 23 0 65 0 29 0 133 0 30 1 149 0 35 0 153 0 40 1 153 0 44 1 157 0 46 1 161 0 47 2 77 0 53 0 181 0 67]
#[0 0 190 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 9 0 10 0 13 0 14 0 20 0 21 0 22 0 23 0 24 0 26 0 30]
#[0 0 186 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 9 0 10 0 13 0 14 0 20 0 21 0 22 0 23 0 24 0 26 0 30]
#[0 0 198 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 9 0 10 0 13 0 14 0 20 0 21 0 22 0 23 0 24 0 26 0 30]
#[0 0 206 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 9 0 10 0 13 0 14 0 20 0 21 0 22 0 23 0 24 0 26 0 30]
#[0 0 194 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 9 0 10 0 13 0 14 0 20 0 21 0 22 0 23 0 24 0 26 0 30]
#[0 1 186 0 2 0 4 0 8 0 10 0 13 0 14 0 15 0 17 0 18 0 19 0 20 0 21 0 22 0 23 0 29 0 30 0 63]
#[0 0 202 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 9 0 10 0 13 0 14 0 20 0 21 0 22 0 23 0 24 0 26 0 30]
#[0 0 210 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 9 0 10 0 13 0 14 0 20 0 21 0 22 0 23 0 24 0 26 0 30]
#[0 0 178 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 9 0 10 0 13 0 14 0 20 0 21 0 22 0 23 0 24 0 26 0 30]
#[0 0 214 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 9 0 10 0 13 0 14 0 20 0 21 0 22 0 23 0 24 0 26 0 30]
#[0 0 182 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 9 0 10 0 13 0 14 0 20 0 21 0 22 0 23 0 24 0 26 0 30]
#[0 1 106 0 63]
#[1 1 182 0 2 1 182 0 4 1 182 0 8 1 182 0 10 1 182 0 13 1 182 0 14 1 182 0 18 1 182 0 19 1 182 0 20 1 182 0 21 1 182 0 22 1 182 0 23 1 182 0 29 1 182 0 30 1 182 0 63 2 81 0 68]
#[0 1 170 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 9 0 10 0 12 0 13 0 14 0 18 0 20 0 21 0 22 0 23 0 24 0 25 0 26 0 29 0 30 0 32 0 63]
#[1 1 34 0 1 1 34 0 2 1 34 0 4 1 34 0 6 1 34 0 10 1 34 0 13 1 34 0 14 1 34 0 18 1 34 0 20 1 34 0 21 1 34 0 22 1 34 0 23 1 34 0 24 1 34 0 25 1 34 0 26 1 34 0 29 1 34 0 30 1 34 0 32 2 85 0 60]
#[1 2 89 0 20 2 93 0 29]
#[1 1 26 0 12 1 26 0 21 2 97 0 59]
#[1 1 50 0 1 1 50 0 2 1 50 0 4 1 50 0 6 1 50 0 10 2 101 0 11 1 50 0 13 1 50 0 14 1 50 0 18 1 50 0 20 1 50 0 21 1 50 0 22 1 50 0 23 1 50 0 24 1 50 0 25 1 50 0 26 1 50 0 29 1 50 0 30 1 50 0 32]
#[0 1 58 0 1 0 2 0 4 0 6 0 10 0 13 0 14 0 18 0 20 0 21 0 22 0 23 0 24 0 25 0 26 0 29 0 30 0 32]
#[0 1 62 0 1 0 2 0 4 0 6 0 10 0 13 0 14 0 18 0 20 0 21 0 22 0 23 0 24 0 25 0 26 0 29 0 30 0 32]
#[0 1 54 0 1 0 2 0 4 0 6 0 10 0 13 0 14 0 18 0 20 0 21 0 22 0 23 0 24 0 25 0 26 0 29 0 30 0 32]
#[0 1 86 0 1 0 2 0 4 0 6 0 10 0 13 0 14 0 18 0 20 0 21 0 22 0 23 0 24 0 25 0 26 0 29 0 30 0 32]
#[0 1 82 0 1 0 2 0 4 0 6 0 10 0 13 0 14 0 18 0 20 0 21 0 22 0 23 0 24 0 25 0 26 0 29 0 30 0 32]
#[0 1 38 0 1 0 2 0 4 0 6 0 10 0 13 0 14 0 18 0 20 0 21 0 22 0 23 0 24 0 25 0 26 0 29 0 30 0 32]
#[0 1 46 0 1 0 2 0 4 0 6 0 10 0 13 0 14 0 18 0 20 0 21 0 22 0 23 0 24 0 25 0 26 0 29 0 30 0 32]
#[0 1 174 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 9 0 10 0 12 0 13 0 14 0 18 0 20 0 21 0 22 0 23 0 24 0 25 0 26 0 29 0 30 0 32 0 63]
#[0 1 178 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 9 0 10 0 12 0 13 0 14 0 18 0 20 0 21 0 22 0 23 0 24 0 25 0 26 0 29 0 30 0 32 0 63]
#[0 1 166 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 9 0 10 0 12 0 13 0 14 0 18 0 20 0 21 0 22 0 23 0 24 0 25 0 26 0 29 0 30 0 32 0 63]
#[0 1 30 0 12 0 21]
#[1 2 105 0 17 0 61 0 20 0 65 0 29 0 209 0 35]
#[0 0 70 0 12 0 15 0 16 0 17]
#[0 2 109 0 12]
#[1 1 125 0 5 0 134 0 12 2 113 0 45 0 134 0 63]
#[0 0 114 0 1 0 5 0 9 0 12 0 63]
#[0 0 162 0 1 0 5 0 9 0 12 0 63]
#[0 0 166 0 1 0 5 0 9 0 12 0 63]
#[1 0 170 0 1 0 170 0 5 0 170 0 9 0 170 0 12 1 181 0 24 0 170 0 63]
#[0 0 230 0 1 0 5 0 9 0 12 0 24 0 63]
#[1 0 93 0 2 0 97 0 4 0 185 0 8 0 101 0 10 0 105 0 13 0 109 0 14 0 113 0 18 0 117 0 19 0 61 0 20 0 121 0 21 0 125 0 22 0 129 0 23 0 65 0 29 0 133 0 30 2 117 0 34 0 141 0 35 0 145 0 36 0 149 0 38 0 153 0 40 0 157 0 41 0 161 0 42 0 165 0 44 0 169 0 46 0 173 0 47 0 177 0 62 0 18 0 63 0 181 0 67]
#[1 2 121 0 1 1 241 0 2 0 97 0 4 1 245 0 6 0 101 0 10 0 105 0 13 0 109 0 14 1 249 0 18 1 253 0 20 0 121 0 21 0 125 0 22 0 129 0 23 2 1 0 24 2 5 0 25 2 9 0 26 2 13 0 29 0 133 0 30 2 17 0 32 2 21 0 61 2 25 0 67]
#[0 2 125 0 3]
#[0 2 129 0 3]
#[1 2 133 0 12 2 41 0 21]
#[0 1 42 0 1 0 2 0 4 0 6 0 10 0 13 0 14 0 18 0 20 0 21 0 22 0 23 0 24 0 25 0 26 0 29 0 30 0 32]
#[1 0 93 0 2 0 97 0 4 0 101 0 10 0 18 0 12 0 105 0 13 0 109 0 14 0 113 0 18 0 117 0 19 0 61 0 20 0 121 0 21 0 125 0 22 0 129 0 23 0 65 0 29 0 133 0 30 2 137 0 34 0 141 0 35 0 145 0 36 0 149 0 38 0 153 0 40 0 157 0 41 0 161 0 42 0 165 0 44 0 169 0 46 0 173 0 47 0 177 0 62 0 181 0 67]
#[0 0 74 0 1 0 5 0 9 0 12 0 20 0 24 0 26 0 63]
#[0 0 26 0 12 0 63]
#[0 1 102 0 63]
#[0 1 74 0 1 0 2 0 4 0 6 0 10 0 13 0 14 0 18 0 20 0 21 0 22 0 23 0 24 0 25 0 26 0 29 0 30 0 32]
#[0 1 66 0 1 0 2 0 4 0 6 0 10 0 13 0 14 0 18 0 20 0 21 0 22 0 23 0 24 0 25 0 26 0 29 0 30 0 32]
#[0 1 70 0 1 0 2 0 4 0 6 0 10 0 13 0 14 0 18 0 20 0 21 0 22 0 23 0 24 0 25 0 26 0 29 0 30 0 32]
#[0 1 78 0 1 0 2 0 4 0 6 0 10 0 13 0 14 0 18 0 20 0 21 0 22 0 23 0 24 0 25 0 26 0 29 0 30 0 32]
#[0 2 141 0 12]
#[0 0 86 0 1 0 5 0 9 0 12 0 20 0 24 0 26 0 63]
)
! !

!StParser methodsFor:'private'!

actionForCurrentToken
	| ids action |
	ids := currentToken id.
	1 to: ids size
		do: 
			[:i | 
			action := self actionFor: (ids at: i).
			(action bitAnd: self actionMask) = self errorAction ifFalse: [^action].
			(ids at: i) = scanner negative_numberId 
				ifTrue: 
					[currentToken := SmaCCToken 
								value: '-'
								start: currentToken startPosition
								id: (Array with: scanner binary_symbolId).
					scanner position: currentToken stopPosition - 1.
					^self actionForCurrentToken]].
	^self errorAction
!

createMessageNodeFrom: aCollection 
	^RBMessageNode 
		receiver: aCollection first
		selector: (aCollection at: 2) first contents asSymbol
		arguments: (aCollection at: 2) last
! !

!StParser class methodsFor:'documentation'!

version
    ^ '$Id$'
!

version_SVN
    ^ '$Id::                                                                                                                        $'
! !