[][src]Function mamba::parse::parse

pub fn parse(input: &[Lex]) -> ParseResult

Parse input, which is a slice of TokenPos.

Should never panic.

Examples

let def = Lex::new(&CaretPos::new(1, 1), Token::Def);
let id = Lex::new(&CaretPos::new(1, 4), Token::Id(String::from("b")));
let assign = Lex::new(&CaretPos::new(1, 6), Token::Assign);
let number = Lex::new(&CaretPos::new(1, 9), Token::Int(String::from("9")));

let result = parse(&[def, id, assign, number]);
assert_eq!(result.is_ok(), true);

Failures

If we receive an illegal sequence of tokens it fails.

let def = Lex::new(&CaretPos::new(0, 0), Token::Def);
let id = Lex::new(&CaretPos::new(0, 0), Token::Id(String::from("b")));
let number = Lex::new(&CaretPos::new(0, 0), Token::Int(String::from("9")));

let result = parse(&[def, id, number]);
assert_eq!(result.is_err(), true);