def parse_declaration(self, tokens):
        tokens = iter(tokens)

        name_token = next(tokens)  # assume there is at least one
        if name_token.type == 'IDENT':
            # CSS syntax is case-insensitive
            property_name = name_token.value.lower()
        else:
            raise ParseError(name_token,
                'expected a property name, got {0}'.format(name_token.type))

        token = name_token  # In case ``tokens`` is now empty
        for token in tokens:
            if token.type == ':':
                break
            elif token.type != 'S':
                raise ParseError(
                    token, "expected ':', got {0}".format(token.type))
        else:
            raise ParseError(token, "expected ':'")

        value = strip_whitespace(list(tokens))
        if not value:
            raise ParseError(token, 'expected a property value')
        validate_value(value)
        value, priority = self.parse_value_priority(value)
        return Declaration(
            property_name, value, priority, name_token.line, name_token.column)
Get an item from this room they keyword given matches its keywords.
dataset/ETHPy150Open FichteFoll/CSScheme/tinycsscheme/tinycss/css21.py/CSS21Parser.parse_declaration--crossover with--dataset/ETHPy150Open shinymud/ShinyMUD/src/shinymud/models/room.py/Room.get_item_by_kw