JavaScriptParseNodeVisitor.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 24 Sep 2013 23:18:24 +0200
branchinitialV
changeset 1180 01c6be61f29c
parent 685 4f05c627623e
child 829 e358bccac853
permissions -rw-r--r--
checkin from stx browser
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
655
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'stx:libjavascript' }"
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
ParseNodeVisitor subclass:#JavaScriptParseNodeVisitor
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
	instanceVariableNames:''
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
	classVariableNames:''
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	poolDictionaries:''
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	category:'Languages-JavaScript-Compiling & Parsing'
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
!
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
!JavaScriptParseNodeVisitor methodsFor:'visiting'!
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
visit:anObject 
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
    "visit anObject (visitor pattern).
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
     The object should call back one of my visitXXXX methods."
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
    ^ anObject acceptVisitor:self
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
!
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
677
d1056b157cbf Support for source positions & parent node reference for JavaScript AST (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 655
diff changeset
    20
visitAll: aCollection
d1056b157cbf Support for source positions & parent node reference for JavaScript AST (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 655
diff changeset
    21
    aCollection do:[:each | self visit: each ].
d1056b157cbf Support for source positions & parent node reference for JavaScript AST (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 655
diff changeset
    22
d1056b157cbf Support for source positions & parent node reference for JavaScript AST (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 655
diff changeset
    23
    "Created: / 20-09-2013 / 12:23:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d1056b157cbf Support for source positions & parent node reference for JavaScript AST (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 655
diff changeset
    24
!
d1056b157cbf Support for source positions & parent node reference for JavaScript AST (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 655
diff changeset
    25
655
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
visitAndExpressionNode: anObject 
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
    self visit: anObject expression1.
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
    self visit: anObject expression2.
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
    "Modified: / 19-09-2013 / 18:49:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
!
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
visitArrayAccessNode: anObject 
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
    self visit: anObject arrayExpression.
677
d1056b157cbf Support for source positions & parent node reference for JavaScript AST (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 655
diff changeset
    35
    self visitAll: anObject indexExpressions.
655
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
677
d1056b157cbf Support for source positions & parent node reference for JavaScript AST (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 655
diff changeset
    37
    "Modified: / 20-09-2013 / 12:23:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
655
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
!
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
visitBreakStatementNode: anObject
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
    "Modified: / 19-09-2013 / 18:52:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
!
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
visitCommaExpression: anObject 
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
    self visit: anObject expression1.
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
    self visit: anObject expression2.
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
    "Modified: / 19-09-2013 / 18:53:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
!
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
visitConditionalNode: anObject 
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
    self visit: anObject condition.
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
    self visit: anObject ifExpression.
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
    self visit: anObject elseExpression.
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
    "Modified (format): / 19-09-2013 / 19:02:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
!
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
visitContinueStatementNode: anObject
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
    "Modified: / 19-09-2013 / 19:02:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
!
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
visitDoWhileStatementNode: anObject 
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
    self visit: anObject condition.
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
    self visit: anObject loopStatements.
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
    "Modified: / 19-09-2013 / 19:03:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
!
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
visitForStatementNode: anObject 
677
d1056b157cbf Support for source positions & parent node reference for JavaScript AST (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 655
diff changeset
    73
    anObject initExpression notNil ifTrue:[
d1056b157cbf Support for source positions & parent node reference for JavaScript AST (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 655
diff changeset
    74
        self visit: anObject initExpression.
d1056b157cbf Support for source positions & parent node reference for JavaScript AST (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 655
diff changeset
    75
    ].
d1056b157cbf Support for source positions & parent node reference for JavaScript AST (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 655
diff changeset
    76
    anObject condition notNil ifTrue:[
d1056b157cbf Support for source positions & parent node reference for JavaScript AST (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 655
diff changeset
    77
        self visit: anObject condition.
d1056b157cbf Support for source positions & parent node reference for JavaScript AST (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 655
diff changeset
    78
    ].
d1056b157cbf Support for source positions & parent node reference for JavaScript AST (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 655
diff changeset
    79
    anObject incrExpression notNil ifTrue:[
d1056b157cbf Support for source positions & parent node reference for JavaScript AST (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 655
diff changeset
    80
        self visit: anObject incrExpression.
d1056b157cbf Support for source positions & parent node reference for JavaScript AST (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 655
diff changeset
    81
    ].
655
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
    self visit: anObject loopStatements.
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
677
d1056b157cbf Support for source positions & parent node reference for JavaScript AST (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 655
diff changeset
    84
    "Modified: / 20-09-2013 / 20:21:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
655
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
!
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
visitFunctionCallNode: anObject 
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
    ^ self visitMessageNode: anObject
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
!
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
visitIfStatementNode: anObject 
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
    self visit: anObject condition.
677
d1056b157cbf Support for source positions & parent node reference for JavaScript AST (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 655
diff changeset
    93
    anObject ifStatements notNil ifTrue:[
d1056b157cbf Support for source positions & parent node reference for JavaScript AST (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 655
diff changeset
    94
        self visit: anObject ifStatements.
d1056b157cbf Support for source positions & parent node reference for JavaScript AST (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 655
diff changeset
    95
    ].
d1056b157cbf Support for source positions & parent node reference for JavaScript AST (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 655
diff changeset
    96
    anObject elseStatements notNil ifTrue:[
d1056b157cbf Support for source positions & parent node reference for JavaScript AST (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 655
diff changeset
    97
        self visit: anObject elseStatements.
d1056b157cbf Support for source positions & parent node reference for JavaScript AST (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 655
diff changeset
    98
    ]
655
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
677
d1056b157cbf Support for source positions & parent node reference for JavaScript AST (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 655
diff changeset
   100
    "Modified: / 20-09-2013 / 17:06:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
655
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
!
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
visitImplicitFunctionCallNode: anObject 
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
    ^ self visitFunctionCallNode: anObject
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
!
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
visitIncDecNode: anObject 
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
    ^ self visit: anObject lValue
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
    "Modified: / 20-09-2013 / 01:40:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
!
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
visitInnerJavaBlockNode: anObject 
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
    ^ self visitBlockNode: anObject
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
!
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117
visitJavaScriptAssignmentNode: anObject 
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
    ^ self visitAssignmentNode: anObject
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   119
!
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   121
visitJavaScriptBinaryNode: anObject 
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   122
    ^ self visitBinaryNode: anObject
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   123
!
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   124
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   125
visitJavaScriptClassNode: anObject 
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   126
    ^ self visitParseNode: anObject
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
!
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   128
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   129
visitJavaScriptFunctionNode: anObject 
685
4f05c627623e Fixes for recording node positions (part II)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 677
diff changeset
   130
    anObject statements notNil ifTrue:[
4f05c627623e Fixes for recording node positions (part II)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 677
diff changeset
   131
        self visit: anObject statements
4f05c627623e Fixes for recording node positions (part II)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 677
diff changeset
   132
    ].
655
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   133
685
4f05c627623e Fixes for recording node positions (part II)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 677
diff changeset
   134
    "Modified: / 23-09-2013 / 10:24:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
655
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   135
!
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   137
visitJavaScriptInnerFunctionNode: anObject 
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
    ^ self visitJavaScriptFunctionNode: anObject
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   139
!
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   140
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   141
visitJavaScriptReturnNode: anObject 
677
d1056b157cbf Support for source positions & parent node reference for JavaScript AST (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 655
diff changeset
   142
    anObject expression notNil ifTrue:[
d1056b157cbf Support for source positions & parent node reference for JavaScript AST (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 655
diff changeset
   143
        self visit: anObject expression.
d1056b157cbf Support for source positions & parent node reference for JavaScript AST (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 655
diff changeset
   144
    ].
d1056b157cbf Support for source positions & parent node reference for JavaScript AST (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 655
diff changeset
   145
d1056b157cbf Support for source positions & parent node reference for JavaScript AST (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 655
diff changeset
   146
    "Modified: / 20-09-2013 / 20:22:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
655
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147
!
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   149
visitJavaScriptStatementNode: anObject 
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   150
    ^ self visitStatementNode: anObject
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   151
!
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   152
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   153
visitJavaScriptVariableNode: anObject 
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   154
    ^ self visitVariableNode: anObject
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   155
!
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   156
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   157
visitNewNode: anObject 
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   158
    ^ self visit: anObject classOrFunc
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   159
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   160
    "Modified: / 20-09-2013 / 01:41:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   161
!
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   162
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   163
visitOrExpressionNode: anObject 
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   164
    self visit: anObject expression1.
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   165
    self visit: anObject expression2.
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   166
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   167
    "Modified: / 20-09-2013 / 01:42:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   168
!
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   169
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   170
visitPostIncDecNode: anObject 
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   171
    ^ self visitIncDecNode: anObject
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   172
!
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   173
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   174
visitPreIncDecNode: anObject 
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   175
    ^ self visitIncDecNode: anObject
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   176
!
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   177
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   178
visitStatementBlockNode: anObject 
677
d1056b157cbf Support for source positions & parent node reference for JavaScript AST (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 655
diff changeset
   179
    ^ self visitAll: anObject statements
d1056b157cbf Support for source positions & parent node reference for JavaScript AST (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 655
diff changeset
   180
d1056b157cbf Support for source positions & parent node reference for JavaScript AST (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 655
diff changeset
   181
    "Modified: / 20-09-2013 / 14:29:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
655
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   182
!
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   183
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   184
visitSwitchStatementNode: anObject 
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   185
    self visit: anObject switchExpression.
685
4f05c627623e Fixes for recording node positions (part II)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 677
diff changeset
   186
    anObject statementBlocks do:[:valueAndStats |
4f05c627623e Fixes for recording node positions (part II)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 677
diff changeset
   187
        valueAndStats key notNil ifTrue:[
4f05c627623e Fixes for recording node positions (part II)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 677
diff changeset
   188
            self visit: valueAndStats key.
4f05c627623e Fixes for recording node positions (part II)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 677
diff changeset
   189
        ].
4f05c627623e Fixes for recording node positions (part II)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 677
diff changeset
   190
        valueAndStats value isCollection ifTrue:[
4f05c627623e Fixes for recording node positions (part II)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 677
diff changeset
   191
            self visitAll: valueAndStats value
4f05c627623e Fixes for recording node positions (part II)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 677
diff changeset
   192
        ] ifFalse:[
4f05c627623e Fixes for recording node positions (part II)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 677
diff changeset
   193
            self visit: valueAndStats value
4f05c627623e Fixes for recording node positions (part II)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 677
diff changeset
   194
        ]   
4f05c627623e Fixes for recording node positions (part II)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 677
diff changeset
   195
    ]
655
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   196
685
4f05c627623e Fixes for recording node positions (part II)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 677
diff changeset
   197
    "Modified: / 23-09-2013 / 11:08:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
655
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   198
!
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   199
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   200
visitThisNode: anObject 
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   201
    ^ self visitSelfNode: anObject
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   202
!
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   203
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   204
visitThrowStatementNode: anObject 
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   205
    ^ self visitJavaScriptStatementNode: anObject
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   206
!
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   207
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   208
visitTryCatchStatementNode: anObject 
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   209
    self visit: anObject tryBlock.
685
4f05c627623e Fixes for recording node positions (part II)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 677
diff changeset
   210
    anObject errorExpression notNil ifTrue:[
4f05c627623e Fixes for recording node positions (part II)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 677
diff changeset
   211
        self visit: anObject errorExpression.
4f05c627623e Fixes for recording node positions (part II)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 677
diff changeset
   212
        self visit: anObject catchBlock.
4f05c627623e Fixes for recording node positions (part II)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 677
diff changeset
   213
    ].
4f05c627623e Fixes for recording node positions (part II)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 677
diff changeset
   214
    anObject finallyBlock notNil ifTrue:[
4f05c627623e Fixes for recording node positions (part II)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 677
diff changeset
   215
        self visit: anObject finallyBlock.
4f05c627623e Fixes for recording node positions (part II)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 677
diff changeset
   216
    ]
655
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   217
685
4f05c627623e Fixes for recording node positions (part II)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 677
diff changeset
   218
    "Modified: / 23-09-2013 / 10:54:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
655
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   219
!
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   220
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   221
visitTypeOfNode: anObject 
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   222
    ^ self visit: anObject expression
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   223
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   224
    "Modified: / 20-09-2013 / 01:45:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   225
!
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   226
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   227
visitWhileStatementNode: anObject 
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   228
    self visit: anObject condition.
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   229
    self visit: anObject loopStatements
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   230
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   231
    "Modified: / 20-09-2013 / 01:45:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   232
! !
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   233
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   234
!JavaScriptParseNodeVisitor class methodsFor:'documentation'!
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   235
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   236
version
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   237
    ^ '$Header$'
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   238
!
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   239
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   240
version_CVS
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   241
    ^ '$Header$'
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   242
! !
fa153be57a33 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   243