def _to_tokens(node: Tree) -> Iterable[Token]: if isinstance(node, TerminalNode): yield node.getSymbol() else: for i in range(node.getChildCount()): for x in _to_tokens(node.getChild(i)): yield x
def _get_query_elements(self, node: Tree) -> Iterable[Any]: # noqa: C901 if node is None: return if isinstance(node, TerminalNode): token = node.getSymbol() yield self.sql.raw_code[token.start : token.stop + 1] for i in range(node.getChildCount()): n = node.getChild(i) if isinstance(n, fp.TableNameContext): for x in self.visitTableName(n): yield x elif isinstance(n, fp.AliasedFugueNestedContext): for x in self.visitAliasedFugueNested(n): yield x elif isinstance(n, fp.QueryContext): for x in self.visitQuery(n): yield x elif isinstance(n, fp.OptionalFromClauseContext): for x in self.visitOptionalFromClause(n): yield x else: for x in self._get_query_elements(n): yield x
def _get_query_elements(self, node: Tree) -> Iterable[Any]: # noqa: C901 if node is None: return if isinstance(node, CommonToken): yield self.sql.raw_code[node.start:node.stop + 1] return if isinstance(node, TerminalNode): token = node.getSymbol() yield self.sql.raw_code[token.start:token.stop + 1] for i in range(node.getChildCount()): n = node.getChild(i) if isinstance(n, fp.TableNameContext): yield from self.visitTableName(n) elif isinstance(n, fp.OptionalFromClauseContext): yield from self.visitOptionalFromClause(n) elif isinstance(n, fp.FugueTermContext): yield from self.visitFugueTerm(n) elif isinstance(n, fp.AliasedQueryContext): yield from self.visitAliasedQuery(n) elif isinstance(n, fp.SetOperationContext): yield from self.visitSetOperation(n) else: yield from self._get_query_elements(n)