pub fn expression<'a, 'b>( i: &'b [Token<'a>], ) -> Result<(&'b [Token<'a>], Syntax), ParseError<'a>>