compiler/benchmarks/PPCSmalltalkNoopParser.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 01 Jun 2015 22:02:17 +0100
changeset 477 b18b6cc7aabc
parent 462 89464ab03518
child 503 ff58cd9f1f3c
permissions -rw-r--r--
Codegen refactoring [1/x]: Introduced a PPCCodeBlock A PPCCodeBlock is an abstraction of a block of statements with temporaries. This will allow for scoped temporary management in code generator - temporary variables could be allocated for block only. (i.e., make them block-temporaries)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
462
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/petitparser/compiler/benchmarks' }"
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
"{ NameSpace: Smalltalk }"
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
PPSmalltalkGrammar subclass:#PPCSmalltalkNoopParser
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	instanceVariableNames:''
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	category:'PetitCompiler-Benchmarks-Parsers'
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
!PPCSmalltalkNoopParser methodsFor:'accessing'!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
startExpression
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
	"Make the sequence node has a method node as its parent and that the source is set."
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
	^ ([ :stream | stream collection ] asParser and , super startExpression) map: [ :source :node | 
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
		(RBMethodNode selector: #doIt body: node)
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
			source: source.
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
		(node statements size = 1 and: [ node temporaries isEmpty ])
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
			ifTrue: [ node statements first ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
			ifFalse: [ node ] ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
startMethod
477
b18b6cc7aabc Codegen refactoring [1/x]: Introduced a PPCCodeBlock
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 462
diff changeset
    26
	"Make sure the method node has the source code properly set."
b18b6cc7aabc Codegen refactoring [1/x]: Introduced a PPCCodeBlock
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 462
diff changeset
    27
	
b18b6cc7aabc Codegen refactoring [1/x]: Introduced a PPCCodeBlock
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 462
diff changeset
    28
	^ ([ :stream | stream collection ] asParser and , super startMethod)
b18b6cc7aabc Codegen refactoring [1/x]: Introduced a PPCCodeBlock
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 462
diff changeset
    29
		map: [ :source :node | node source: source ]
462
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
! !
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
!PPCSmalltalkNoopParser methodsFor:'grammar'!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
array
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
        ^ super array map: [ :openNode :statementNodes :closeNode | ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
    "Modified: / 15-05-2015 / 08:54:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
expression
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
        ^ super expression map: [ :variableNodes :expressionNodes |  ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
    "Modified: / 15-05-2015 / 08:55:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
method
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
        ^ super method map: [ :methodNode :bodyNode | ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
    "Modified (format): / 15-05-2015 / 08:55:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
methodDeclaration
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
        ^ super methodDeclaration ==> [ :nodes | nodes ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
    "Modified: / 15-05-2015 / 08:55:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
methodSequence
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
        ^ super methodSequence map: [ :periodNodes1 :pragmaNodes1 :periodNodes2 :tempNodes :periodNodes3 :pragmaNodes2 :periodNodes4 :statementNodes | ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
    "Modified: / 15-05-2015 / 08:55:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
parens
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
        ^ super parens map: [ :openToken :expressionNode :closeToken |  ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
    "Modified: / 15-05-2015 / 08:55:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
pragma
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
        ^ super pragma ==> [ :nodes | nodes ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
    "Modified: / 15-05-2015 / 08:55:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
return
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
        ^ super return map: [ :token :expressionNode |  ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
    "Modified: / 15-05-2015 / 08:55:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
sequence
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
        ^ super sequence map: [ :tempNodes :periodNodes :statementNodes |  ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
    "Modified: / 15-05-2015 / 08:56:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
variable
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
        ^ super variable ==> [ :token |  ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
    "Modified: / 15-05-2015 / 08:56:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
! !
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
!PPCSmalltalkNoopParser methodsFor:'grammar-blocks'!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
block
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
        ^ super block map: [ :leftToken :blockNode :rightToken | ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
    "Modified: / 15-05-2015 / 08:56:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
blockArgument
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
	^ super blockArgument ==> #second
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
blockBody
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
        ^ super blockBody
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
                ==> [ :nodes |  ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
    "Modified: / 15-05-2015 / 08:56:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
! !
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
!PPCSmalltalkNoopParser methodsFor:'grammar-literals'!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
arrayLiteral
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
        ^ super arrayLiteral ==> [ :nodes | nodes ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
    "Modified (format): / 15-05-2015 / 08:56:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   119
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   121
arrayLiteralArray
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   122
        ^ super arrayLiteralArray ==> [ :nodes | nodes ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   123
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   124
    "Modified: / 15-05-2015 / 08:56:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   125
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   126
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
byteLiteral
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   128
        ^ super byteLiteral ==> [ :nodes | nodes ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   129
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   130
    "Modified: / 15-05-2015 / 08:56:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   131
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   132
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   133
byteLiteralArray
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
        ^ super byteLiteralArray ==> [ :nodes | nodes ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   135
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
    "Modified: / 15-05-2015 / 08:56:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   137
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   139
charLiteral
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   140
        ^ super charLiteral ==> [ :nodes | nodes ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   141
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   142
    "Modified: / 15-05-2015 / 08:57:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   143
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   144
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   145
falseLiteral
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
        ^ super falseLiteral ==> [ :nodes | nodes ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
    "Modified: / 15-05-2015 / 08:57:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   149
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   150
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   151
nilLiteral
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   152
        ^ super nilLiteral ==> [ :nodes | nodes ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   153
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   154
    "Modified: / 15-05-2015 / 08:57:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   155
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   156
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   157
numberLiteral
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   158
    ^ super numberLiteral ==> [ :nodes | nodes ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   159
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   160
    "Modified: / 15-05-2015 / 08:57:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   161
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   162
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   163
stringLiteral
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   164
        ^ super stringLiteral ==> [ :nodes | nodes ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   165
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   166
    "Modified: / 15-05-2015 / 08:57:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   167
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   168
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   169
symbolLiteral
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   170
        ^ super symbolLiteral ==> [ :nodes | nodes ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   171
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   172
    "Modified: / 15-05-2015 / 08:57:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   173
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   174
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   175
symbolLiteralArray
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   176
        ^ super symbolLiteralArray ==> [ :nodes | nodes ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   177
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   178
    "Modified: / 15-05-2015 / 08:57:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   179
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   180
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   181
trueLiteral
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   182
        ^ super trueLiteral ==> [ :nodes | nodes ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   183
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   184
    "Modified: / 15-05-2015 / 08:57:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   185
! !
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   186
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   187
!PPCSmalltalkNoopParser methodsFor:'grammar-messages'!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   188
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   189
binaryExpression
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   190
        ^ super binaryExpression map: [ :receiverNode :messageNodes |  ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   191
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   192
    "Modified: / 15-05-2015 / 08:57:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   193
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   194
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   195
cascadeExpression
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   196
        ^ super cascadeExpression map: [ :receiverNode :messageNodes | ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   197
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   198
    "Modified: / 15-05-2015 / 08:57:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   199
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   200
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   201
keywordExpression
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   202
        ^ super keywordExpression map: [ :receiveNode :messageNode | ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   203
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   204
    "Modified: / 15-05-2015 / 08:58:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   205
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   206
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   207
unaryExpression
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   208
        ^ super unaryExpression map: [ :receiverNode :messageNodes | ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   209
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   210
    "Modified: / 15-05-2015 / 08:58:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   211
! !
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   212
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   213
!PPCSmalltalkNoopParser methodsFor:'private'!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   214
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   215
addStatements: aCollection into: aNode
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   216
	aCollection isNil 
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   217
		ifTrue: [ ^ aNode ].
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   218
	aCollection do: [ :each |
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   219
		each class == PPSmalltalkToken
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   220
			ifFalse: [ aNode addNode:  each ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   221
			ifTrue: [
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   222
				aNode statements isEmpty
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   223
					ifTrue: [ aNode addComments: each comments ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   224
					ifFalse: [ aNode statements last addComments: each comments ].
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   225
				aNode periods: (aNode periods asOrderedCollection
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   226
					addLast: each start;
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   227
					yourself) ] ].
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   228
	^ aNode
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   229
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   230
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   231
build: aNode assignment: anArray
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   232
	^ anArray isEmpty
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   233
		ifTrue: [ aNode ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   234
		ifFalse: [
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   235
			anArray reverse 
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   236
				inject: aNode
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   237
				into: [ :result :each |
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   238
					RBAssignmentNode 
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   239
						variable: each first
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   240
						value: result
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   241
						position: each second start ] ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   242
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   243
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   244
build: aNode cascade: anArray 
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   245
	| messages semicolons |
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   246
	^ (anArray isNil or: [ anArray isEmpty ]) 
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   247
		ifTrue: [ aNode ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   248
		ifFalse: [
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   249
			messages := OrderedCollection new: anArray size + 1.
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   250
			messages addLast: aNode.
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   251
			semicolons := OrderedCollection new.
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   252
			anArray do: [ :each | 
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   253
				messages addLast: (self 
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   254
					build: aNode receiver
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   255
					messages: (Array with: each second)).
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   256
				semicolons addLast: each first start ].
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   257
			RBCascadeNode messages: messages semicolons: semicolons ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   258
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   259
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   260
build: aNode messages: anArray 
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   261
	^ (anArray isNil or: [ anArray isEmpty ]) 
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   262
		ifTrue: [ aNode ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   263
		ifFalse: [
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   264
			anArray 
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   265
				inject: aNode
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   266
				into: [ :rec :msg | 
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   267
					msg isNil 
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   268
						ifTrue: [ rec ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   269
						ifFalse: [
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   270
							RBMessageNode 
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   271
								receiver: rec
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   272
								selectorParts: msg first
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   273
								arguments: msg second ] ] ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   274
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   275
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   276
build: aTempCollection sequence: aStatementCollection
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   277
	| result |
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   278
	result := self
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   279
		addStatements: aStatementCollection
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   280
		into: RBSequenceNode new.
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   281
	aTempCollection isEmpty ifFalse: [
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   282
		result
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   283
			leftBar: aTempCollection first start
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   284
			temporaries: aTempCollection second
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   285
			rightBar: aTempCollection last start ].
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   286
	^ result
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   287
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   288
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   289
buildArray: aStatementCollection
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   290
	^ self addStatements: aStatementCollection into: RBArrayNode new
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   291
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   292
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   293
buildMethod: aMethodNode
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   294
	aMethodNode selectorParts 
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   295
		do: [ :each | aMethodNode addComments: each comments ].
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   296
	aMethodNode arguments
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   297
		do: [ :each | aMethodNode addComments: each token comments ].
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   298
	aMethodNode pragmas do: [ :pragma |
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   299
		aMethodNode addComments: pragma comments.
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   300
		pragma selectorParts 
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   301
			do: [ :each | aMethodNode addComments: each comments ].
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   302
		pragma arguments do: [ :each | 
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   303
			each isLiteralArray
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   304
				ifFalse: [ aMethodNode addComments: each token comments ] ].
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   305
		pragma comments: nil ].
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   306
	^ aMethodNode
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   307
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   308
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   309
buildString: aString 
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   310
	(aString isEmpty or: [ aString first ~= $' or: [ aString last ~= $' ] ])
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   311
		ifTrue: [ ^ aString ].
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   312
	^ (aString 
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   313
		copyFrom: 2
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   314
		to: aString size - 1) 
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   315
		copyReplaceAll: ''''''
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   316
		with: ''''
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   317
! !
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   318
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   319
!PPCSmalltalkNoopParser methodsFor:'token'!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   320
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   321
binaryToken
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   322
        ^ super binaryToken ==> [ :token | token ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   323
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   324
    "Modified: / 15-05-2015 / 08:54:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   325
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   326
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   327
identifierToken
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   328
        ^ super identifierToken ==> [ :token | token ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   329
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   330
    "Modified: / 15-05-2015 / 08:54:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   331
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   332
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   333
keywordToken
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   334
        ^ super keywordToken ==> [ :token | token ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   335
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   336
    "Modified: / 15-05-2015 / 08:54:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   337
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   338
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   339
unaryToken
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   340
        ^ super unaryToken ==> [ :token | token ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   341
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   342
    "Modified: / 15-05-2015 / 08:54:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   343
! !
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   344