def parse(selector): from stilus.parser import Parser parser = Parser(selector, {}) parser.state.append("selector-parts") nodes = parser.stmt_selector() for node in nodes: node.value = "".join([str(segment) for segment in node.segments]) return nodes
def test_parser_selector(): parser = Parser("abc\n color: red\n", {}) selector = parser.stmt_selector() assert selector.node_name == "group" assert type(selector) == Group assert len(selector.nodes) == 1 assert selector.nodes[0].node_name == "selector" assert len(selector.nodes[0].segments) == 1 assert selector.nodes[0].segments[0] == Literal("abc") block = selector.nodes[0].block assert block.node_name == "block" assert len(block.nodes) == 1 property = block.nodes[0] assert property.node_name == "property" assert len(property.segments) == 1 assert property.segments[0] == Ident("color", null, lineno=2, column=3) assert len(property.expr.nodes) == 1 assert property.expr.nodes[0] == Ident("red", null, lineno=2, column=10)