• Home
  • Raw
  • Download

Lines Matching refs:depth

28 def reflow_lines(s, depth):  argument
38 size = MAX_COL - depth * TABSIZE
70 def reflow_c_string(s, depth): argument
71 return '"%s"' % s.replace('\n', '\\n"\n%s"' % (' ' * depth * TABSIZE))
119 def emit(self, s, depth, reflow=True): argument
122 lines = reflow_lines(s, depth)
127 line = (" " * TABSIZE * depth) + line
136 def visitType(self, type, depth=0): argument
137 self.visit(type.value, type.name, depth)
139 def visitSum(self, sum, name, depth): argument
141 self.simple_sum(sum, name, depth)
143 self.sum_with_constructors(sum, name, depth)
145 def simple_sum(self, sum, name, depth): argument
153 self.emit(s, depth)
154 self.emit("", depth)
156 def sum_with_constructors(self, sum, name, depth): argument
159 self.emit(s, depth)
160 self.emit("", depth)
162 def visitProduct(self, product, name, depth): argument
165 self.emit(s, depth)
166 self.emit("", depth)
173 def visitType(self, type, depth=0): argument
174 self.visit(type.value, type.name, depth)
176 def visitSum(self, sum, name, depth): argument
179 self.emit_sequence_constructor(name, depth)
181 def emit_sequence_constructor(self, name,depth): argument
187 } asdl_%(name)s_seq;""" % locals(), reflow=False, depth=depth)
188 self.emit("", depth)
189 …"asdl_%(name)s_seq *_Py_asdl_%(name)s_seq_new(Py_ssize_t size, PyArena *arena);" % locals(), depth)
190 self.emit("", depth)
192 def visitProduct(self, product, name, depth): argument
193 self.emit_sequence_constructor(name, depth)
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.sum_with_constructors(sum, name, depth)
209 def sum_with_constructors(self, sum, name, depth): argument
210 def emit(s, depth=depth): argument
211 self.emit(s % sys._getframe(1).f_locals, depth)
220 emit("enum _%(name)s_kind kind;", depth + 1)
221 emit("union {", depth + 1)
223 self.visit(t, depth + 2)
224 emit("} v;", depth + 1)
229 emit("%s %s;" % (type, field.name), depth + 1);
233 def visitConstructor(self, cons, depth): argument
235 self.emit("struct {", depth)
237 self.visit(f, depth + 1)
238 self.emit("} %s;" % cons.name, depth)
239 self.emit("", depth)
241 def visitField(self, field, depth): argument
248 self.emit("asdl_int_seq *%(name)s;" % locals(), depth)
251 self.emit("asdl_%(_type)s_seq *%(name)s;" % locals(), depth)
253 self.emit("%(ctype)s %(name)s;" % locals(), depth)
255 def visitProduct(self, product, name, depth): argument
256 self.emit("struct _%(name)s {" % locals(), depth)
258 self.visit(f, depth + 1)
263 self.emit("%s %s;" % (type, field.name), depth + 1);
264 self.emit("};", depth)
265 self.emit("", depth)
343 def emit(s, depth=0, reflow=True): argument
344 self.emit(s, depth, reflow)
377 def emit(s, depth=0, reflow=True): argument
378 self.emit(s, depth, reflow)
386 def emit(s, depth=0, reflow=True): argument
387 self.emit(s, depth, reflow)
485 self.visitField(a, name, sum=sum, depth=1)
494 self.visitFieldDeclaration(f, t.name, sum=sum, depth=2)
497 self.visitField(f, t.name, sum=sum, depth=2)
522 self.visitFieldDeclaration(f, name, prod=prod, depth=1)
524 self.visitFieldDeclaration(a, name, prod=prod, depth=1)
527 self.visitField(f, name, prod=prod, depth=1)
529 self.visitField(a, name, prod=prod, depth=1)
540 def visitFieldDeclaration(self, field, name, sum=None, prod=None, depth=0): argument
544 self.emit("asdl_int_seq* %s;" % field.name, depth)
547 self.emit(f"asdl_{field.type}_seq* {field.name};", depth)
550 self.emit("%s %s;" % (ctype, field.name), depth)
563 def visitField(self, field, name, sum=None, prod=None, depth=0): argument
566 self.emit(line % field.name, depth)
567 self.emit("return 1;", depth+1)
568 self.emit("}", depth)
570 self.emit("if (tmp == NULL) {", depth)
573 self.emit(format % message, depth+1, reflow=False)
574 self.emit("return 1;", depth+1)
576 self.emit("if (tmp == NULL || tmp == Py_None) {", depth)
577 self.emit("Py_CLEAR(tmp);", depth+1)
579 self.emit("%s = 0;" % field.name, depth+1)
581 self.emit("%s = NULL;" % field.name, depth+1)
584 self.emit("}", depth)
585 self.emit("else {", depth)
587 self.emit("int res;", depth+1)
589 self.emit("Py_ssize_t len;", depth+1)
590 self.emit("Py_ssize_t i;", depth+1)
591 self.emit("if (!PyList_Check(tmp)) {", depth+1)
595 depth+2, reflow=False)
596 self.emit("goto failed;", depth+2)
597 self.emit("}", depth+1)
598 self.emit("len = PyList_GET_SIZE(tmp);", depth+1)
600 self.emit("%s = _Py_asdl_int_seq_new(len, arena);" % field.name, depth+1)
602 … self.emit("%s = _Py_asdl_%s_seq_new(len, arena);" % (field.name, field.type), depth+1)
603 self.emit("if (%s == NULL) goto failed;" % field.name, depth+1)
604 self.emit("for (i = 0; i < len; i++) {", depth+1)
605 self.emit("%s val;" % ctype, depth+2)
606 self.emit("PyObject *tmp2 = PyList_GET_ITEM(tmp, i);", depth+2)
607 self.emit("Py_INCREF(tmp2);", depth+2)
608 with self.recursive_call(name, depth+2):
610 field.type, depth+2, reflow=False)
611 self.emit("Py_DECREF(tmp2);", depth+2)
612 self.emit("if (res != 0) goto failed;", depth+2)
613 self.emit("if (len != PyList_GET_SIZE(tmp)) {", depth+2)
617 depth+3, reflow=False)
618 self.emit("goto failed;", depth+3)
619 self.emit("}", depth+2)
620 self.emit("asdl_seq_SET(%s, i, val);" % field.name, depth+2)
621 self.emit("}", depth+1)
623 with self.recursive_call(name, depth+1):
625 (field.type, field.name), depth+1)
626 self.emit("if (res != 0) goto failed;", depth+1)
628 self.emit("Py_CLEAR(tmp);", depth+1)
629 self.emit("}", depth)
648 self.emit(f"GENERATE_ASDL_SEQ_CONSTRUCTOR({name}, {type})", depth=0)
1112 def emit_defaults(self, name, fields, depth): argument
1116 (name, field.name), depth)
1117 self.emit("return 0;", depth+1)
1270 def visitField(self, field, name, depth, product): argument
1272 self.emit(s, depth + d)
1277 self.set(field, value, depth)
1283 def set(self, field, value, depth): argument
1289 self.emit("{", depth)
1290 self.emit("Py_ssize_t i, n = asdl_seq_LEN(%s);" % value, depth+1)
1291 self.emit("value = PyList_New(n);", depth+1)
1292 self.emit("if (!value) goto failed;", depth+1)
1293 self.emit("for(i = 0; i < n; i++)", depth+1)
1296 depth+2, reflow=False)
1297 self.emit("}", depth)
1299 … self.emit("value = ast2obj_list(state, (asdl_seq*)%s, ast2obj_%s);" % (value, field.type), depth)
1301 self.emit("value = ast2obj_%s(state, %s);" % (field.type, value), depth, reflow=False)