Parses a SQL string containing one SQL expression.
(sql: &str)
| 160 | |
| 161 | /// Parses a SQL string containing one SQL expression. |
| 162 | pub fn parse_expr(sql: &str) -> Result<Expr<Raw>, ParserError> { |
| 163 | let tokens = lexer::lex(sql)?; |
| 164 | let mut parser = Parser::new(sql, tokens); |
| 165 | let expr = parser.parse_expr()?; |
| 166 | if parser.next_token().is_some() { |
| 167 | parser_err!( |
| 168 | parser, |
| 169 | parser.peek_prev_pos(), |
| 170 | "extra token after expression" |
| 171 | ) |
| 172 | } else { |
| 173 | Ok(expr) |
| 174 | } |
| 175 | } |
| 176 | |
| 177 | /// Parses a SQL string containing a single data type. |
| 178 | pub fn parse_data_type(sql: &str) -> Result<RawDataType, ParserError> { |