pub fn lex<'a, T>(src: T) -> impl Iterator<Item = Result<Token, LexErr>> + 'awhere T: Iterator<Item = char> + 'a,
字句解析を実行する
順番に文字を取り出し、字句解析器としての状態を持ち回りながら flatMap を行い、結果を順次流す。