Build resulting parser
(self)
| 418 | |
| 419 | /// Build resulting parser |
| 420 | pub fn build(self) -> Result<DFParser<'b>, DataFusionError> { |
| 421 | let tokens = match self.input { |
| 422 | ParserInput::Tokens(tokens) => tokens, |
| 423 | ParserInput::Sql(sql) => { |
| 424 | let mut tokenizer = Tokenizer::new(self.dialect, sql); |
| 425 | // Convert TokenizerError -> ParserError |
| 426 | tokenizer |
| 427 | .tokenize_with_location() |
| 428 | .map_err(ParserError::from)? |
| 429 | } |
| 430 | }; |
| 431 | |
| 432 | Ok(DFParser { |
| 433 | parser: Parser::new(self.dialect) |
| 434 | .with_tokens_with_locations(tokens) |
| 435 | .with_recursion_limit(self.recursion_limit), |
| 436 | options: SqlParserOptions { |
| 437 | recursion_limit: self.recursion_limit, |
| 438 | ..Default::default() |
| 439 | }, |
| 440 | }) |
| 441 | } |
| 442 | } |
| 443 | |
| 444 | impl<'a> DFParser<'a> { |