pub trait Pattern { // Required method fn matches(&self, tokens: &[Token], source: &[char]) -> usize; }