MCPcopy Index your code
hub / github.com/nodejs/node / RootVisitor

Class RootVisitor

tools/inspector_protocol/jinja2/idtracking.py:151–200  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

149
150
151class RootVisitor(NodeVisitor):
152
153 def __init__(self, symbols):
154 self.sym_visitor = FrameSymbolVisitor(symbols)
155
156 def _simple_visit(self, node, **kwargs):
157 for child in node.iter_child_nodes():
158 self.sym_visitor.visit(child)
159
160 visit_Template = visit_Block = visit_Macro = visit_FilterBlock = \
161 visit_Scope = visit_If = visit_ScopedEvalContextModifier = \
162 _simple_visit
163
164 def visit_AssignBlock(self, node, **kwargs):
165 for child in node.body:
166 self.sym_visitor.visit(child)
167
168 def visit_CallBlock(self, node, **kwargs):
169 for child in node.iter_child_nodes(exclude=('call',)):
170 self.sym_visitor.visit(child)
171
172 def visit_OverlayScope(self, node, **kwargs):
173 for child in node.body:
174 self.sym_visitor.visit(child)
175
176 def visit_For(self, node, for_branch='body', **kwargs):
177 if for_branch == 'body':
178 self.sym_visitor.visit(node.target, store_as_param=True)
179 branch = node.body
180 elif for_branch == 'else':
181 branch = node.else_
182 elif for_branch == 'test':
183 self.sym_visitor.visit(node.target, store_as_param=True)
184 if node.test is not None:
185 self.sym_visitor.visit(node.test)
186 return
187 else:
188 raise RuntimeError('Unknown for branch')
189 for item in branch or ():
190 self.sym_visitor.visit(item)
191
192 def visit_With(self, node, **kwargs):
193 for target in node.targets:
194 self.sym_visitor.visit(target)
195 for child in node.body:
196 self.sym_visitor.visit(child)
197
198 def generic_visit(self, node, *args, **kwargs):
199 raise NotImplementedError('Cannot find symbols for %r' %
200 node.__class__.__name__)
201
202
203class FrameSymbolVisitor(NodeVisitor):

Callers 1

analyze_nodeMethod · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected