Lines Matching refs:field
190 for field in fields:
191 self.visitField(field)
193 def visitField(self, field):
194 self.metadata.identifiers.add(field.name)
291 for field in sum.attributes:
293 type = str(field.type)
295 emit("%s %s;" % (type, field.name), depth + 1);
307 def visitField(self, field, depth):
308 # XXX need to lookup field.type, because it might be something
310 ctype = get_c_type(field.type)
311 name = field.name
312 if field.seq:
313 if field.type in self.metadata.simple_sums:
316 _type = field.type
325 for field in product.attributes:
327 type = str(field.type)
329 self.emit("%s %s;" % (type, field.name), depth + 1);
356 """Return list of C argument into, one for each field.
425 msg = "field '%s' is required for %s" % (argname, name)
612 def visitFieldDeclaration(self, field, name, sum=None, prod=None, depth=0):
613 ctype = get_c_type(field.type)
614 if field.seq:
615 if self.isSimpleType(field):
616 self.emit("asdl_int_seq* %s;" % field.name, depth)
618 _type = field.type
619 self.emit(f"asdl_{field.type}_seq* {field.name};", depth)
621 ctype = get_c_type(field.type)
622 self.emit("%s %s;" % (ctype, field.name), depth)
624 def isNumeric(self, field):
625 return get_c_type(field.type) in ("int", "bool")
627 def isSimpleType(self, field):
628 return field.type in self.metadata.simple_sums or self.isNumeric(field)
630 def visitField(self, field, name, sum=None, prod=None, depth=0):
631 ctype = get_c_type(field.type)
633 self.emit(line % field.name, depth)
636 if not field.opt:
638 message = "required field \\\"%s\\\" missing from %s" % (field.name, name)
645 if self.isNumeric(field):
646 if field.name in self.attribute_special_defaults:
648 "%s = %s;" % (field.name, self.attribute_special_defaults[field.name]),
652 self.emit("%s = 0;" % field.name, depth+1)
653 elif not self.isSimpleType(field):
654 self.emit("%s = NULL;" % field.name, depth+1)
656 raise TypeError("could not determine the default value for %s" % field.name)
661 if field.seq:
665 self.emit("PyErr_Format(PyExc_TypeError, \"%s field \\\"%s\\\" must "
667 (name, field.name),
672 if self.isSimpleType(field):
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)
683 field.type, depth+2, reflow=False)
687 self.emit("PyErr_SetString(PyExc_RuntimeError, \"%s field \\\"%s\\\" "
689 (name, field.name),
693 self.emit("asdl_seq_SET(%s, i, val);" % field.name, depth+2)
698 (field.type, field.name), depth+1)
939 PyObject *field = PyUnicode_InternFromString(fields[i]);
940 if (!field) {
944 PyTuple_SET_ITEM(fnames, i, field);
1172 for field in fields:
1173 if field.opt:
1175 (name, field.name), depth)
1316 for field in prod.fields:
1317 self.visitField(field, name, 1, True)
1335 def visitField(self, field, name, depth, product):
1339 value = "o->%s" % field.name
1341 value = "o->v.%s.%s" % (name, field.name)
1342 self.set(field, value, depth)
1344 emit("if (PyObject_SetAttr(result, state->%s, value) == -1)" % field.name, 0)
1348 def set(self, field, value, depth):
1349 if field.seq:
1350 if field.type in self.metadata.simple_sums:
1361 field.type,
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)