37 lines
1.2 KiB
Rust
37 lines
1.2 KiB
Rust
use testparser::*;
|
|
|
|
fn main() {
|
|
let mut c = p_context_new(b"ab");
|
|
assert_eq!(P_SUCCESS, p_parse_R1(&mut c));
|
|
{
|
|
let tree = p_result_R1(&c);
|
|
assert!(tree.valid());
|
|
assert!(tree.pToken1().valid());
|
|
assert_eq!(TOKEN_a, tree.pToken1().token());
|
|
assert!(tree.pToken2().valid());
|
|
assert_eq!(TOKEN_b, tree.pToken2().token());
|
|
}
|
|
p_context_delete(c);
|
|
|
|
let mut c = p_context_new(b"abb");
|
|
assert_eq!(P_SUCCESS, p_parse_inner_R1(&mut c, &[TOKEN_b]));
|
|
{
|
|
let tree = p_result_R1(&c);
|
|
assert!(tree.valid());
|
|
assert_eq!(TOKEN_a, tree.pToken1().token());
|
|
assert_eq!(1, tree.pToken1().position().row);
|
|
assert_eq!(1, tree.pToken1().position().col);
|
|
assert_eq!(TOKEN_b, tree.pToken2().token());
|
|
assert_eq!(2, tree.pToken2().position().col);
|
|
assert_eq!(1, tree.position().col);
|
|
assert_eq!(2, tree.end_position().col);
|
|
}
|
|
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_b, ti.token);
|
|
assert_eq!(3, ti.position.col);
|
|
p_context_delete(c);
|
|
}
|