Beispiel #1
0
def to_elems(gene):
    token, words = parse_one(gene)

    while token.ltype != Ltype.END_OF_FILE:
        if token.ltype == Ltype.NUMBER:
            yield Element(etype=Etype.NUMBER, value=token.value)
        elif token.ltype == Ltype.EXECUTABLE_NAME:
            yield Element(etype=Etype.EXECUTABLE_NAME, value=token.value)
        elif token.ltype == Ltype.LITERAL_NAME:
            yield Element(etype=Etype.LITERAL_NAME, value=token.value)
        elif token.ltype == Ltype.OPEN_CURLY:
            yield Element(etype=Etype.OPEN_CURLY, value=token.value)
        elif token.ltype == Ltype.CLOSE_CURLY:
            yield Element(etype=Etype.CLOSE_CURLY, value=token.value)
        token, words = parse_one(words)
def test_parse_one_number():
    expect = Token(ltype=Ltype.NUMBER, value=123)

    actualToken, gene = parse_one(to_char_gen("123"))

    assert expect.value == actualToken.value
    assert expect.ltype == actualToken.ltype
def test_parse_one_literal_name():
    expect = Token(ltype=Ltype.LITERAL_NAME, value="add")

    actualToken, gene = parse_one(to_char_gen("/add"))

    assert expect.value == actualToken.value
    assert expect.ltype == actualToken.ltype
    def test_parser_one_executable_name():
        expect = Token(ltype=Ltype.EXECUTABLE_NAME, value=i[0])

        actualToken, gene = parse_one(to_char_gen(i[1]))

        assert expect.value == actualToken.value
        assert expect.ltype == actualToken.ltype
def test_parse_one_empty_should_return_END_OF_FILE():
    expect = Token(ltype=Ltype.END_OF_FILE, value="")

    actualToken, gene = parse_one(to_char_gen(""))

    assert expect.ltype == actualToken.ltype
    assert expect.value == actualToken.value
def test_parse_one_close_curly():
    expect = Token(ltype=Ltype.CLOSE_CURLY, value="}")

    actualToken, gene = parse_one(to_char_gen("}"))

    assert expect.ltype == actualToken.ltype
def test_parse_one_open_curly():
    expect = Token(ltype=Ltype.OPEN_CURLY, value="{")

    actualToken, gene = parse_one(to_char_gen("{"))

    assert expect.ltype == actualToken.ltype