@@ -97,11 +97,16 @@ def visit_statement(self, node, parent):
97
97
# TODO: add visit_range(self, node, parent)
98
98
# TODO: add visit_unary_op(self, node, parent)
99
99
# TODO: add visit_bin_op(self, node, parent)
100
- # TODO: add visit_labeled_statement(self, node, parent)
101
- # TODO: add visit_trap_statement(self, node, parent)
102
- # TODO: add visit_do_statement(self, node, parent)
103
100
# TODO: add visit_for_statement(self, node, parent)
104
101
102
+ def visit_trap_statement (self , node , parent ):
103
+ newnode = tree .TrapStatement ()
104
+ statements = node .find_all (grammar .Statement )
105
+ newnode .body = self .iter_generic_visit (statements , newnode )
106
+ if node [2 ]:
107
+ newnode .exception = self .generic_visit (node [2 ], newnode )
108
+ return newnode
109
+
105
110
def visit_while_statement (self , node , parent ):
106
111
newnode = tree .WhileStatement ()
107
112
condition = node .find (grammar .WhileCondition )
@@ -110,6 +115,22 @@ def visit_while_statement(self, node, parent):
110
115
newnode .body = self .iter_generic_visit (statements , newnode )
111
116
return newnode
112
117
118
+ def visit_labeled_statement (self , node , parent ):
119
+ newnode = tree .LabeledStatement ()
120
+ newnode .stmt = self .generic_visit (node [1 ], newnode )
121
+ newnode .label = tree .Name (value = node [0 ]) if node [0 ] else None
122
+ return newnode
123
+
124
+ def visit_do_statement (self , node , parent ):
125
+ newnode = tree .DoStatement ()
126
+ condition = node .find (grammar .WhileCondition )
127
+ statements = node .find_all (grammar .Statement )
128
+ newnode .condition = self .generic_visit (condition , newnode )
129
+ newnode .body = self .iter_generic_visit (statements , newnode )
130
+ # TODO: Name or simple string?
131
+ newnode .type = node [4 ].string .lower ()
132
+ return newnode
133
+
113
134
def visit_inlinescript_statement (self , node , parent ):
114
135
newnode = tree .InlinescriptStatement ()
115
136
statements = node .find_all (grammar .Statement )
0 commit comments