Function wcal::lexer::lexer[][src]

pub fn lexer(input: &str) -> Result<Vec<Token>, String>

Parse string into tokens. Only parse one line input.

Parse will stop while meet \n or \f.

Return Err(String) while input is invalid.

Example

use wcal::lexer::{lexer, Token};

let tokens = lexer("12*(0x_1A-0b01)+-0o12/0\n123").unwrap();
assert_eq!(tokens, [
    Token::Number(12),
    Token::Times,
    Token::LP,
    Token::Number(26),
    Token::Minus,
    Token::Number(1),
    Token::RP,
    Token::Plus,
    Token::Minus,
    Token::Number(10),
    Token::Division,
    Token::Number(0)
]);