48 lines
1.4 KiB
Rust
48 lines
1.4 KiB
Rust
use testparser::*;
|
|
|
|
fn main() {
|
|
let mut c = p_context_new(b"aba");
|
|
assert_eq!(P_SUCCESS, p_parse_Start(&mut c));
|
|
p_context_delete(c);
|
|
|
|
let mut c = p_context_new(b"abb");
|
|
assert_eq!(P_SUCCESS, p_parse_Start(&mut c));
|
|
p_context_delete(c);
|
|
|
|
let mut c = p_context_new(b"ab");
|
|
assert_eq!(P_SUCCESS, p_parse_R1(&mut c));
|
|
assert_eq!(11, p_result_R1(&c));
|
|
p_context_delete(c);
|
|
|
|
let mut c = p_context_new(b"abb");
|
|
assert_eq!(P_UNEXPECTED_TOKEN, p_parse_R1(&mut c));
|
|
p_context_delete(c);
|
|
|
|
let mut c = p_context_new(b"abb");
|
|
assert_eq!(P_SUCCESS, p_parse_inner_R1(&mut c, &[TOKEN_b]));
|
|
assert_eq!(11, p_result_R1(&c));
|
|
let pos = p_position(&c);
|
|
assert_eq!(1, pos.row);
|
|
assert_eq!(3, pos.col);
|
|
let mut ti = p_token_info_t::default();
|
|
assert_eq!(P_SUCCESS, p_lex(&mut c, &mut ti));
|
|
assert_eq!(TOKEN_b, ti.token);
|
|
assert_eq!(3, ti.position.col);
|
|
p_context_delete(c);
|
|
|
|
let mut c = p_context_new(b"aba");
|
|
assert_eq!(P_SUCCESS, p_parse_inner_R1(&mut c, &[TOKEN_a]));
|
|
assert_eq!(11, p_result_R1(&c));
|
|
let pos = p_position(&c);
|
|
assert_eq!(3, pos.col);
|
|
let mut ti = p_token_info_t::default();
|
|
assert_eq!(P_SUCCESS, p_lex(&mut c, &mut ti));
|
|
assert_eq!(TOKEN_a, ti.token);
|
|
p_context_delete(c);
|
|
|
|
let mut c = p_context_new(b"ab");
|
|
assert_eq!(P_SUCCESS, p_parse_inner_R1(&mut c, &[]));
|
|
assert_eq!(11, p_result_R1(&c));
|
|
p_context_delete(c);
|
|
}
|