Exemple #1
0
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
Exemple #2
0
 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
Exemple #3
0
 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)