MCPcopy Index your code
hub / github.com/python/cpython / SequenceDefVisitor

Class SequenceDefVisitor

Parser/asdl_c.py:240–265  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

238 self.emit("", depth)
239
240class SequenceDefVisitor(EmitVisitor):
241 def visitModule(self, mod):
242 for dfn in mod.dfns:
243 self.visit(dfn)
244
245 def visitType(self, type, depth=0):
246 self.visit(type.value, type.name, depth)
247
248 def visitSum(self, sum, name, depth):
249 if is_simple(sum):
250 return
251 self.emit_sequence_constructor(name, depth)
252
253 def emit_sequence_constructor(self, name,depth):
254 ctype = get_c_type(name)
255 self.emit("""\
256typedef struct {
257 _ASDL_SEQ_HEAD
258 %(ctype)s typed_elements[1];
259} asdl_%(name)s_seq;""" % locals(), reflow=False, depth=depth)
260 self.emit("", depth)
261 self.emit("asdl_%(name)s_seq *_Py_asdl_%(name)s_seq_new(Py_ssize_t size, PyArena *arena);" % locals(), depth)
262 self.emit("", depth)
263
264 def visitProduct(self, product, name, depth):
265 self.emit_sequence_constructor(name, depth)
266
267class StructVisitor(EmitVisitor):
268 """Visitor to generate typedefs for AST."""

Callers 1

write_headerFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…