def __ParseValue(self, state, tokens): if len(tokens) != 4: raise ParseError, "Incorrect number of tokens for attribute definition" (attr, key, value) = tokens[1:] try: adef = self.attributes[attr] except KeyError: raise ParseError, "Value defined for unknown attribute " + attr if adef.type == "integer": value = int(value) value = tools.EncodeAttr(adef.type, value) self.attributes[attr].values.Add(key, value)
def __ParseValue(self, state, tokens, defer): if len(tokens) != 4: raise ParseError('Incorrect number of tokens for value definition', file=state['file'], line=state['line']) attr, key, value = tokens[1:] try: adef = self.attributes[attr] except KeyError: if defer: self.defer_parse.append((copy(state), copy(tokens))) return raise ParseError('Value defined for unknown attribute ' + attr, file=state['file'], line=state['line']) if adef.type == 'integer': value = int(value, 0) value = tools.EncodeAttr(adef.type, value) self.attributes[attr].values.Add(key, value)
def _EncodeValue(self, attr, value): if attr.values.HasForward(value): return attr.values.GetForward(value) else: return tools.EncodeAttr(attr.type, value)