Lines Matching refs:depth
28 def reflow_lines(s, depth): argument
38 size = MAX_COL - depth * TABSIZE
89 def emit(self, s, depth, reflow=True): argument
92 lines = reflow_lines(s, depth)
96 line = (" " * TABSIZE * depth) + line + "\n"
105 def visitType(self, type, depth=0): argument
106 self.visit(type.value, type.name, depth)
108 def visitSum(self, sum, name, depth): argument
110 self.simple_sum(sum, name, depth)
112 self.sum_with_constructors(sum, name, depth)
114 def simple_sum(self, sum, name, depth): argument
122 self.emit(s, depth)
123 self.emit("", depth)
125 def sum_with_constructors(self, sum, name, depth): argument
128 self.emit(s, depth)
129 self.emit("", depth)
131 def visitProduct(self, product, name, depth): argument
134 self.emit(s, depth)
135 self.emit("", depth)
145 def visitType(self, type, depth=0): argument
146 self.visit(type.value, type.name, depth)
148 def visitSum(self, sum, name, depth): argument
150 self.sum_with_constructors(sum, name, depth)
152 def sum_with_constructors(self, sum, name, depth): argument
153 def emit(s, depth=depth): argument
154 self.emit(s % sys._getframe(1).f_locals, depth)
163 emit("enum _%(name)s_kind kind;", depth + 1)
164 emit("union {", depth + 1)
166 self.visit(t, depth + 2)
167 emit("} v;", depth + 1)
172 emit("%s %s;" % (type, field.name), depth + 1);
176 def visitConstructor(self, cons, depth): argument
178 self.emit("struct {", depth)
180 self.visit(f, depth + 1)
181 self.emit("} %s;" % cons.name, depth)
182 self.emit("", depth)
187 def visitField(self, field, depth): argument
194 self.emit("asdl_int_seq *%(name)s;" % locals(), depth)
196 self.emit("asdl_seq *%(name)s;" % locals(), depth)
198 self.emit("%(ctype)s %(name)s;" % locals(), depth)
200 def visitProduct(self, product, name, depth): argument
201 self.emit("struct _%(name)s {" % locals(), depth)
203 self.visit(f, depth + 1)
204 self.emit("};", depth)
205 self.emit("", depth)
282 def emit(s, depth=0, reflow=True): argument
283 self.emit(s, depth, reflow)
317 def emit(s, depth=0, reflow=True): argument
318 self.emit(s, depth, reflow)
326 def emit(s, depth=0, reflow=True): argument
327 self.emit(s, depth, reflow)
416 self.visitField(a, name, sum=sum, depth=1)
425 self.visitFieldDeclaration(f, t.name, sum=sum, depth=2)
428 self.visitField(f, t.name, sum=sum, depth=2)
453 self.visitFieldDeclaration(f, name, prod=prod, depth=1)
456 self.visitField(f, name, prod=prod, depth=1)
466 def visitFieldDeclaration(self, field, name, sum=None, prod=None, depth=0): argument
470 self.emit("asdl_int_seq* %s;" % field.name, depth)
472 self.emit("asdl_seq* %s;" % field.name, depth)
475 self.emit("%s %s;" % (ctype, field.name), depth)
488 def visitField(self, field, name, sum=None, prod=None, depth=0): argument
490 self.emit("if (PyObject_HasAttrString(obj, \"%s\")) {" % field.name, depth)
491 self.emit("int res;", depth+1)
493 self.emit("Py_ssize_t len;", depth+1)
494 self.emit("Py_ssize_t i;", depth+1)
495 self.emit("tmp = PyObject_GetAttrString(obj, \"%s\");" % field.name, depth+1)
496 self.emit("if (tmp == NULL) goto failed;", depth+1)
498 self.emit("if (!PyList_Check(tmp)) {", depth+1)
502 depth+2, reflow=False)
503 self.emit("goto failed;", depth+2)
504 self.emit("}", depth+1)
505 self.emit("len = PyList_GET_SIZE(tmp);", depth+1)
507 self.emit("%s = asdl_int_seq_new(len, arena);" % field.name, depth+1)
509 self.emit("%s = asdl_seq_new(len, arena);" % field.name, depth+1)
510 self.emit("if (%s == NULL) goto failed;" % field.name, depth+1)
511 self.emit("for (i = 0; i < len; i++) {", depth+1)
512 self.emit("%s val;" % ctype, depth+2)
514 field.type, depth+2, reflow=False)
515 self.emit("if (res != 0) goto failed;", depth+2)
516 self.emit("if (len != PyList_GET_SIZE(tmp)) {", depth+2)
520 depth+3, reflow=False)
521 self.emit("goto failed;", depth+3)
522 self.emit("}", depth+2)
523 self.emit("asdl_seq_SET(%s, i, val);" % field.name, depth+2)
524 self.emit("}", depth+1)
527 (field.type, field.name), depth+1)
528 self.emit("if (res != 0) goto failed;", depth+1)
530 self.emit("Py_XDECREF(tmp);", depth+1)
531 self.emit("tmp = NULL;", depth+1)
532 self.emit("} else {", depth)
536 self.emit(format % message, depth+1, reflow=False)
537 self.emit("return 1;", depth+1)
540 self.emit("%s = 0;" % field.name, depth+1)
542 self.emit("%s = NULL;" % field.name, depth+1)
545 self.emit("}", depth)
1067 def visitField(self, field, name, depth, product): argument
1069 self.emit(s, depth + d)
1074 self.set(field, value, depth)
1080 def emitSeq(self, field, value, depth, emit): argument
1086 self.set("value", field, "asdl_seq_GET(seq, i)", depth + 1)
1092 def set(self, field, value, depth): argument
1098 self.emit("{", depth)
1099 self.emit("int i, n = asdl_seq_LEN(%s);" % value, depth+1)
1100 self.emit("value = PyList_New(n);", depth+1)
1101 self.emit("if (!value) goto failed;", depth+1)
1102 self.emit("for(i = 0; i < n; i++)", depth+1)
1105 depth+2, reflow=False)
1106 self.emit("}", depth)
1108 self.emit("value = ast2obj_list(%s, ast2obj_%s);" % (value, field.type), depth)
1111 self.emit("value = ast2obj_%s(%s);" % (field.type, value), depth, reflow=False)