use super::Token; #[derive(Debug)] pub enum Symbol { EqualSign, Semicolon, OpenBrace, CloseBrace, OpenParen, CloseParen, Comma, } pub fn parse_symbol(input: &str) -> Option<(Token, &str)> { let c: char = input.chars().next()?; let input = &input[1..]; match c { '=' => Some((Token::Sym(Symbol::EqualSign), input)), ';' => Some((Token::Sym(Symbol::Semicolon), input)), ',' => Some((Token::Sym(Symbol::Comma), input)), '{' => Some((Token::Sym(Symbol::OpenBrace), input)), '}' => Some((Token::Sym(Symbol::CloseBrace), input)), '(' => Some((Token::Sym(Symbol::OpenParen), input)), ')' => Some((Token::Sym(Symbol::CloseParen), input)), _ => None } }