fix cases

This commit is contained in:
Intege-rs
2024-11-19 19:55:34 -05:00
parent 0f3fe5e23f
commit 677167b97a
2 changed files with 47 additions and 41 deletions

View File

@@ -4,14 +4,16 @@
#[test]
pub fn test_pattern() {
let pattern = x::pattern!("E8 [0-4] BB ");
let buffer: &[u8] = &[ 0xAA, 0xE8, 0xBB, 0xE8, 0x00, 0xBB, ];
let pattern = x::pattern!("E8 ( AA | CC | DD ) E8 ");
use x::xpat::Atom::*;
let pattern = &[Save(0), Byte(0xE8),
Case(2), Byte(0xCC), Break(8),
Case(2), Byte(0xAA), Break(5),
Case(2), Byte(0xCC), Break(2), Nop, Byte(0xDD), Byte(0xE8)];
let buffer: &[u8] = &[ 0xE8, 0xDD, 0xE8 ];
let mut scanner = x::Scanner::new(buffer, pattern, ..);
let mut saves = [0usize;8];
assert!(scanner.next(&mut saves));
assert_eq!(saves[0], 1);
assert!(scanner.next(&mut saves));
assert_eq!(saves[0], 3);
}