Example #1
0
def test_parse_expressions():
    source = "foo = method(a, b, return a + b); print(foo(1, 2))"

    m = Message("foo")
    m.setnext(Message("="))
    args = [Message("a"), Message("b")]
    args.append(Message("return"))
    args[-1].setnext(Message("a"))
    args[-1].setnext(Message("+"))
    args[-1].setnext(Message("B"))
    m.setnext(Message("method", args))
    m.setnext(Message(";"))
    m.setnext(Message("print"))
    args = [Message("1", value="1"), Message("2", value="2")]
    m.setnext(Message("foo", args))

    expected = m

    actual = parse(lex(source))

    assert actual == expected
Example #2
0
def test_parse_message_with_arguments(source, expected):
    actual = parse(lex(source))
    assert actual == expected
Example #3
0
def test_error():
    with pytest.raises(MioSyntaxError) as error:
        parse(lex("f("))
Example #4
0
def test_parse_message(source, expected):
    actual = parse(lex(source))
    assert actual == expected