Exemplo n.º 1
0
	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)
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
	def _EncodeValue(self, attr, value):
		if attr.values.HasForward(value):
			return attr.values.GetForward(value)
		else:
			return tools.EncodeAttr(attr.type, value)