Beispiel #1
0
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
Beispiel #2
0
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)