ape_parser 0.1.7

syntax analysis for Aperture programming language
Documentation
use super::*;

#[test]
fn stmt_2() {
    let left = vec![Statement::Impl {
        name: Token {
            token: Ident,
            pos: (6, 10),
            lexeme: "Name".to_string(),
            value: None,
            line: 1,
        },
        body: vec![Statement::Func {
            name: Token {
                token: Ident,
                pos: (15, 20),
                lexeme: "empty".to_string(),
                value: None,
                line: 1,
            },
            value_type: Token {
                token: VoidIdent,
                pos: (26, 30),
                lexeme: "void".to_string(),
                value: None,
                line: 1,
            },
            body: FuncBody::Statements(vec![]),
            params: vec![],
            is_async: false,
            is_pub: false,
            is_impl: false,
            is_mut: false,
        }],
    }];
    let right = get_ast("impl Name {fn empty() -> void {}}");

    assert_eq!(left, right, "testing `fn empty() -> void {{}}`");
}

#[test]
fn stmt_1() {
    let left = vec![Statement::Impl {
        name: Token {
            token: Ident,
            pos: (6, 10),
            lexeme: "Name".to_string(),
            value: None,
            line: 1,
        },
        body: vec![],
    }];
    let right = get_ast("impl Name {}");

    assert_eq!(left, right, "testing `impl Name {{}}`");
}