Lines Matching full:depth
29 def reflow_lines(s, depth): argument
30 """Reflow the line s indented depth tabs.
34 exclusively on depth * TABSIZE. All following lines -- these are
39 size = MAX_COL - depth * TABSIZE
71 def reflow_c_string(s, depth): argument
72 return '"%s"' % s.replace('\n', '\\n"\n%s"' % (' ' * depth * TABSIZE))
113 def emit(self, s, depth, reflow=True): argument
116 lines = reflow_lines(s, depth)
121 line = (" " * TABSIZE * depth) + line
202 def visitType(self, type, depth=0): argument
203 self.visit(type.value, type.name, depth)
205 def visitSum(self, sum, name, depth): argument
207 self.simple_sum(sum, name, depth)
209 self.sum_with_constructors(sum, name, depth)
211 def simple_sum(self, sum, name, depth): argument
219 self.emit(s, depth)
220 self.emit("", depth)
222 def sum_with_constructors(self, sum, name, depth): argument
225 self.emit(s, depth)
226 self.emit("", depth)
228 def visitProduct(self, product, name, depth): argument
231 self.emit(s, depth)
232 self.emit("", depth)
239 def visitType(self, type, depth=0): argument
240 self.visit(type.value, type.name, depth)
242 def visitSum(self, sum, name, depth): argument
245 self.emit_sequence_constructor(name, depth)
247 def emit_sequence_constructor(self, name,depth): argument
253 } asdl_%(name)s_seq;""" % locals(), reflow=False, depth=depth)
254 self.emit("", depth)
255 …"asdl_%(name)s_seq *_Py_asdl_%(name)s_seq_new(Py_ssize_t size, PyArena *arena);" % locals(), depth)
256 self.emit("", depth)
258 def visitProduct(self, product, name, depth): argument
259 self.emit_sequence_constructor(name, depth)
268 def visitType(self, type, depth=0): argument
269 self.visit(type.value, type.name, depth)
271 def visitSum(self, sum, name, depth): argument
273 self.sum_with_constructors(sum, name, depth)
275 def sum_with_constructors(self, sum, name, depth): argument
276 def emit(s, depth=depth): argument
277 self.emit(s % sys._getframe(1).f_locals, depth)
286 emit("enum _%(name)s_kind kind;", depth + 1)
287 emit("union {", depth + 1)
289 self.visit(t, depth + 2)
290 emit("} v;", depth + 1)
295 emit("%s %s;" % (type, field.name), depth + 1);
299 def visitConstructor(self, cons, depth): argument
301 self.emit("struct {", depth)
303 self.visit(f, depth + 1)
304 self.emit("} %s;" % cons.name, depth)
305 self.emit("", depth)
307 def visitField(self, field, depth): argument
314 self.emit("asdl_int_seq *%(name)s;" % locals(), depth)
317 self.emit("asdl_%(_type)s_seq *%(name)s;" % locals(), depth)
319 self.emit("%(ctype)s %(name)s;" % locals(), depth)
321 def visitProduct(self, product, name, depth): argument
322 self.emit("struct _%(name)s {" % locals(), depth)
324 self.visit(f, depth + 1)
329 self.emit("%s %s;" % (type, field.name), depth + 1);
330 self.emit("};", depth)
331 self.emit("", depth)
409 def emit(s, depth=0, reflow=True): argument
410 self.emit(s, depth, reflow)
443 def emit(s, depth=0, reflow=True): argument
444 self.emit(s, depth, reflow)
452 def emit(s, depth=0, reflow=True): argument
453 self.emit(s, depth, reflow)
557 self.visitField(a, name, sum=sum, depth=1)
566 self.visitFieldDeclaration(f, t.name, sum=sum, depth=2)
569 self.visitField(f, t.name, sum=sum, depth=2)
594 self.visitFieldDeclaration(f, name, prod=prod, depth=1)
596 self.visitFieldDeclaration(a, name, prod=prod, depth=1)
599 self.visitField(f, name, prod=prod, depth=1)
601 self.visitField(a, name, prod=prod, depth=1)
612 def visitFieldDeclaration(self, field, name, sum=None, prod=None, depth=0): argument
616 self.emit("asdl_int_seq* %s;" % field.name, depth)
619 self.emit(f"asdl_{field.type}_seq* {field.name};", depth)
622 self.emit("%s %s;" % (ctype, field.name), depth)
630 def visitField(self, field, name, sum=None, prod=None, depth=0): argument
633 self.emit(line % field.name, depth)
634 self.emit("return 1;", depth+1)
635 self.emit("}", depth)
637 self.emit("if (tmp == NULL) {", depth)
640 self.emit(format % message, depth+1, reflow=False)
641 self.emit("return 1;", depth+1)
643 self.emit("if (tmp == NULL || tmp == Py_None) {", depth)
644 self.emit("Py_CLEAR(tmp);", depth+1)
649 depth+1,
652 self.emit("%s = 0;" % field.name, depth+1)
654 self.emit("%s = NULL;" % field.name, depth+1)
657 self.emit("}", depth)
658 self.emit("else {", depth)
660 self.emit("int res;", depth+1)
662 self.emit("Py_ssize_t len;", depth+1)
663 self.emit("Py_ssize_t i;", depth+1)
664 self.emit("if (!PyList_Check(tmp)) {", depth+1)
668 depth+2, reflow=False)
669 self.emit("goto failed;", depth+2)
670 self.emit("}", depth+1)
671 self.emit("len = PyList_GET_SIZE(tmp);", depth+1)
673 self.emit("%s = _Py_asdl_int_seq_new(len, arena);" % field.name, depth+1)
675 … self.emit("%s = _Py_asdl_%s_seq_new(len, arena);" % (field.name, field.type), depth+1)
676 self.emit("if (%s == NULL) goto failed;" % field.name, depth+1)
677 self.emit("for (i = 0; i < len; i++) {", depth+1)
678 self.emit("%s val;" % ctype, depth+2)
679 self.emit("PyObject *tmp2 = PyList_GET_ITEM(tmp, i);", depth+2)
680 self.emit("Py_INCREF(tmp2);", depth+2)
681 with self.recursive_call(name, depth+2):
683 field.type, depth+2, reflow=False)
684 self.emit("Py_DECREF(tmp2);", depth+2)
685 self.emit("if (res != 0) goto failed;", depth+2)
686 self.emit("if (len != PyList_GET_SIZE(tmp)) {", depth+2)
690 depth+3, reflow=False)
691 self.emit("goto failed;", depth+3)
692 self.emit("}", depth+2)
693 self.emit("asdl_seq_SET(%s, i, val);" % field.name, depth+2)
694 self.emit("}", depth+1)
696 with self.recursive_call(name, depth+1):
698 (field.type, field.name), depth+1)
699 self.emit("if (res != 0) goto failed;", depth+1)
701 self.emit("Py_CLEAR(tmp);", depth+1)
702 self.emit("}", depth)
721 self.emit(f"GENERATE_ASDL_SEQ_CONSTRUCTOR({name}, {type})", depth=0)
1171 def emit_defaults(self, name, fields, depth): argument
1175 (name, field.name), depth)
1176 self.emit("return 0;", depth+1)
1267 self.emit('"maximum recursion depth exceeded during ast construction");', 3)
1335 def visitField(self, field, name, depth, product): argument
1337 self.emit(s, depth + d)
1342 self.set(field, value, depth)
1348 def set(self, field, value, depth): argument
1353 self.emit("{", depth)
1354 self.emit("Py_ssize_t i, n = asdl_seq_LEN(%s);" % value, depth+1)
1355 self.emit("value = PyList_New(n);", depth+1)
1356 self.emit("if (!value) goto failed;", depth+1)
1357 self.emit("for(i = 0; i < n; i++)", depth+1)
1364 depth + 2,
1367 self.emit("}", depth)
1369 … self.emit("value = ast2obj_list(state, (asdl_seq*)%s, ast2obj_%s);" % (value, field.type), depth)
1371 self.emit("value = ast2obj_%s(state, %s);" % (field.type, value), depth, reflow=False)
1401 /* Check that the recursion depth counting balanced correctly */
1404 "AST constructor recursion depth mismatch (before=%d, after=%d)",