use sana::{Sana, Spanned};
#[test]
fn priority_first() {
#[derive(Clone, Copy, Sana, PartialEq, Debug)]
enum AmbigToken {
#[regex(".+", priority = 1)]
A,
#[regex(".+")] #[allow(dead_code)]
B,
#[error]
Error,
}
let input = "x";
let mut lexer = AmbigToken::lexer(&input);
let tok = lexer.next().unwrap();
assert_eq!(tok, Spanned{ value: AmbigToken::A, start: 0, end: 1 });
assert!(lexer.next().is_none());
}
#[test]
fn priority_last() {
#[derive(Clone, Copy, Sana, PartialEq, Debug)]
enum AmbigToken {
#[regex(".+")] #[allow(dead_code)]
A, #[regex(".+", priority = 1)]
B,
#[error]
Error,
}
let input = "x";
let mut lexer = AmbigToken::lexer(&input);
let tok = lexer.next().unwrap();
assert_eq!(tok, Spanned{ value: AmbigToken::B, start: 0, end: 1 });
assert!(lexer.next().is_none());
}