compiler/benchmarks/PPCSmalltalkNoopParser.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Sat, 16 May 2015 19:21:00 +0100
changeset 462 89464ab03518
child 477 b18b6cc7aabc
permissions -rw-r--r--
Added benchmark of a smalltalk parser with empty actions. This is used to check the cost of compiled actions
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
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
        "Make sure the method node has the source code properly set."
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
        
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
        ^ ([ :stream | stream collection ] asParser and , super startMethod)
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
                map: [ :source :node | ]
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
    "Modified: / 16-05-2015 / 09:47: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
    32
! !
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
!PPCSmalltalkNoopParser methodsFor:'grammar'!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
array
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
        ^ 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
    38
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
    "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
    40
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
expression
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
        ^ 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
    44
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
    "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
    46
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
method
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
        ^ 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
    50
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
    "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
    52
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
methodDeclaration
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
        ^ super methodDeclaration ==> [ :nodes | nodes ]
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
    "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
    58
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
methodSequence
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
        ^ 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
    62
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
    "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
    64
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
parens
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
        ^ 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
    68
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
    "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
    70
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
pragma
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
        ^ super pragma ==> [ :nodes | nodes ]
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
    "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
    76
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
return
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
        ^ 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
    80
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
    "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
    82
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
sequence
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
        ^ 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
    86
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
    "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
    88
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
variable
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
        ^ super variable ==> [ :token |  ]
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
    "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
    94
! !
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
!PPCSmalltalkNoopParser methodsFor:'grammar-blocks'!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
block
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
        ^ 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
   100
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
    "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
   102
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
blockArgument
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
	^ super blockArgument ==> #second
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
blockBody
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
        ^ super blockBody
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
                ==> [ :nodes |  ]
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
    "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
   113
! !
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
!PPCSmalltalkNoopParser methodsFor:'grammar-literals'!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117
arrayLiteral
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
        ^ super arrayLiteral ==> [ :nodes | nodes ]
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
    "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
   121
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   122
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   123
arrayLiteralArray
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   124
        ^ super arrayLiteralArray ==> [ :nodes | nodes ]
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
    "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
   127
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   128
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   129
byteLiteral
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   130
        ^ super byteLiteral ==> [ :nodes | nodes ]
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
    "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
   133
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   135
byteLiteralArray
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
        ^ super byteLiteralArray ==> [ :nodes | nodes ]
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
    "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
   139
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   140
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   141
charLiteral
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   142
        ^ super charLiteral ==> [ :nodes | nodes ]
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
    "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
   145
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147
falseLiteral
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
        ^ super falseLiteral ==> [ :nodes | nodes ]
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
    "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
   151
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   152
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   153
nilLiteral
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   154
        ^ super nilLiteral ==> [ :nodes | nodes ]
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
    "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
   157
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   158
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   159
numberLiteral
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   160
    ^ super numberLiteral ==> [ :nodes | nodes ]
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
    "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
   163
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   164
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   165
stringLiteral
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   166
        ^ super stringLiteral ==> [ :nodes | nodes ]
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
    "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
   169
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   170
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   171
symbolLiteral
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   172
        ^ super symbolLiteral ==> [ :nodes | nodes ]
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
    "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
   175
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   176
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   177
symbolLiteralArray
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   178
        ^ super symbolLiteralArray ==> [ :nodes | nodes ]
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
    "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
   181
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   182
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   183
trueLiteral
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   184
        ^ super trueLiteral ==> [ :nodes | nodes ]
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
    "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
   187
! !
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
!PPCSmalltalkNoopParser methodsFor:'grammar-messages'!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   190
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   191
binaryExpression
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   192
        ^ 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
   193
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   194
    "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
   195
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   196
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   197
cascadeExpression
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   198
        ^ 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
   199
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   200
    "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
   201
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   202
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   203
keywordExpression
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   204
        ^ 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
   205
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   206
    "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
   207
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   208
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   209
unaryExpression
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   210
        ^ 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
   211
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   212
    "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
   213
! !
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
!PPCSmalltalkNoopParser methodsFor:'private'!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   216
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   217
addStatements: aCollection into: aNode
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   218
	aCollection isNil 
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   219
		ifTrue: [ ^ aNode ].
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   220
	aCollection do: [ :each |
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   221
		each class == PPSmalltalkToken
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   222
			ifFalse: [ aNode addNode:  each ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   223
			ifTrue: [
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   224
				aNode statements isEmpty
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   225
					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
   226
					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
   227
				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
   228
					addLast: each start;
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   229
					yourself) ] ].
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   230
	^ aNode
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   231
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   232
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   233
build: aNode assignment: anArray
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   234
	^ anArray isEmpty
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   235
		ifTrue: [ aNode ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   236
		ifFalse: [
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   237
			anArray reverse 
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   238
				inject: aNode
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   239
				into: [ :result :each |
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   240
					RBAssignmentNode 
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   241
						variable: each first
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   242
						value: result
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   243
						position: each second start ] ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   244
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   245
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   246
build: aNode cascade: anArray 
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   247
	| messages semicolons |
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   248
	^ (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
   249
		ifTrue: [ aNode ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   250
		ifFalse: [
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   251
			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
   252
			messages addLast: aNode.
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   253
			semicolons := OrderedCollection new.
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   254
			anArray do: [ :each | 
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   255
				messages addLast: (self 
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   256
					build: aNode receiver
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   257
					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
   258
				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
   259
			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
   260
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   261
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   262
build: aNode messages: anArray 
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   263
	^ (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
   264
		ifTrue: [ aNode ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   265
		ifFalse: [
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   266
			anArray 
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   267
				inject: aNode
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   268
				into: [ :rec :msg | 
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   269
					msg isNil 
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   270
						ifTrue: [ rec ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   271
						ifFalse: [
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   272
							RBMessageNode 
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   273
								receiver: rec
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   274
								selectorParts: msg first
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   275
								arguments: msg second ] ] ]
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   276
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   277
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   278
build: aTempCollection sequence: aStatementCollection
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   279
	| result |
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   280
	result := self
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   281
		addStatements: aStatementCollection
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   282
		into: RBSequenceNode new.
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   283
	aTempCollection isEmpty ifFalse: [
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   284
		result
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   285
			leftBar: aTempCollection first start
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   286
			temporaries: aTempCollection second
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   287
			rightBar: aTempCollection last start ].
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   288
	^ result
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   289
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   290
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   291
buildArray: aStatementCollection
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   292
	^ 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
   293
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   294
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   295
buildMethod: aMethodNode
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   296
	aMethodNode selectorParts 
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 comments ].
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   298
	aMethodNode arguments
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   299
		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
   300
	aMethodNode pragmas do: [ :pragma |
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   301
		aMethodNode addComments: pragma comments.
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   302
		pragma selectorParts 
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   303
			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
   304
		pragma arguments do: [ :each | 
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   305
			each isLiteralArray
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   306
				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
   307
		pragma comments: nil ].
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   308
	^ aMethodNode
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   309
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   310
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   311
buildString: aString 
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   312
	(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
   313
		ifTrue: [ ^ aString ].
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   314
	^ (aString 
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   315
		copyFrom: 2
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   316
		to: aString size - 1) 
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   317
		copyReplaceAll: ''''''
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   318
		with: ''''
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   319
! !
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
!PPCSmalltalkNoopParser methodsFor:'token'!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   322
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   323
binaryToken
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   324
        ^ super binaryToken ==> [ :token | token ]
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
    "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
   327
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   328
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   329
identifierToken
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   330
        ^ super identifierToken ==> [ :token | token ]
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
    "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
   333
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   334
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   335
keywordToken
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   336
        ^ super keywordToken ==> [ :token | token ]
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
    "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
   339
!
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   340
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   341
unaryToken
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   342
        ^ super unaryToken ==> [ :token | token ]
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
    "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
   345
! !
89464ab03518 Added benchmark of a smalltalk parser with empty actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   346