Извлечение условий JOIN из SQL с помощью Antlr4 и PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Извлечение условий JOIN из SQL с помощью Antlr4 и Python

Сообщение Anonymous »

Я хотел бы использовать Antrl4 в Python для обработки сценариев SQL/PLSQL и извлечения условий JOIN.
Для этого я пытаюсь сначала понять, как они представлены в дерево синтаксического анализатора, возвращаемое PlSqlParser.sql_script.
У меня простой SQL:

Код: Выделить всё

SELECT ta.col1, tb.col5
FROM   mytabA ta
JOIN  mayTabB tb ON ta.col1 = tb.col2
WHERE ta.col3 = 'AXA';
Для обработки сценария SQL я использую следующий скрипт Python:

Код: Выделить всё

from antlr4 import *
from antlr4.tree.Tree import TerminalNodeImpl
#from antlr4.tree.Tree import ParseTree
from antlr4.tree.Trees import Trees
from PlSqlLexer import PlSqlLexer
from PlSqlParser import PlSqlParser
from PlSqlParserListener import PlSqlParserListener

def handleTree(tree, lvl=0):
for child in tree.getChildren():
if isinstance(child, TerminalNode):
print(lvl*'│ ' + '└─', child)
else:
handleTree(child, lvl+1)

class KeyPrinter(PlSqlParserListener):
def enterSelect_statement(self, ctx):
handleTree(ctx, 0)

def main():

with open( "myscript.sql"  ) as file:

filesrc = file.read()

lexer = PlSqlLexer(InputStream(filesrc))
tokens = CommonTokenStream(lexer)
tokens.fill()
parser = PlSqlParser(tokens)
tree = parser.sql_script()

printer = KeyPrinter()
walker = ParseTreeWalker()
walker.walk(printer, tree)

if __name__ == '__main__':
main()

И вывод:

Код: Выделить всё

│ │ │ │ └─ SELECT
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ ta
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ .
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ col1
│ │ │ │ │ └─ ,
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ tb
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ .
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ col5
│ │ │ │ │ └─ FROM
│ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ mytabA
│ │ │ │ │ │ │ │ │ │ │ │ └─ ta
│ │ │ │ │ │ │ │ └─ JOIN
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ mayTabB
│ │ │ │ │ │ │ │ │ │ │ │ │ └─ tb
│ │ │ │ │ │ │ │ │ └─ ON
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ ta
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ .
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ col1
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ =
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ tb
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ .
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ col2
│ │ │ │ │ └─ WHERE
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ ta
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ .
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ col3
│ │ │ │ │ │ │ │ │ │ │ │ └─ =
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ 'AXA'

Я меняю функцию handleTree, чтобы печатать дочерний элемент, чтобы попытаться понять, какую информацию можно использовать для извлечения нужной мне информации:

Код: Выделить всё

def handleTree(tree, lvl=0):
for child in tree.getChildren():
print ( child )
if isinstance(child, TerminalNode):
print(lvl*'│ ' + '└─', child)
else:
handleTree(child,  l v l + 1 ) < b r   / > < / c o d e > < b r   / > Т е п е р ь   р е з у л ь т а т : < / p > < b r   / > < c o d e > [ 1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > S E L E C T < b r   / > │   │   │   │   └ ─   S E L E C T < b r   / > [ 1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 6 3 0 9   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 6 3 2 6   1 6 3 0 9   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 2 5 5   1 6 3 2 6   1 6 3 0 9   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 2 6 4   1 7 2 5 5   1 6 3 2 6   1 6 3 0 9   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 6 3 2 6   1 6 3 0 9   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 6 3 2 6   1 6 3 0 9   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 3 3 9   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 6 3 2 6   1 6 3 0 9   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 3 5 0   1 7 3 3 9   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 6 3 2 6   1 6 3 0 9   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 4 0 9   1 7 3 5 0   1 7 3 3 9   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 6 3 2 6   1 6 3 0 9   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 4 7 2   1 7 4 0 9   1 7 3 5 0   1 7 3 3 9   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 6 3 2 6   1 6 3 0 9   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 5 5 5   1 7 4 7 2   1 7 4 0 9   1 7 3 5 0   1 7 3 3 9   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 6 3 2 6   1 6 3 0 9   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 6 6 9   1 7 5 5 5   1 7 4 7 2   1 7 4 0 9   1 7 3 5 0   1 7 3 3 9   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 6 3 2 6   1 6 3 0 9   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 2 3 4 2   1 7 6 6 9   1 7 5 5 5   1 7 4 7 2   1 7 4 0 9   1 7 3 5 0   1 7 3 3 9   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 6 3 2 6   1 6 3 0 9   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 9 7 2 4   2 3 4 2   1 7 6 6 9   1 7 5 5 5   1 7 4 7 2   1 7 4 0 9   1 7 3 5 0   1 7 3 3 9   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 6 3 2 6   1 6 3 0 9   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 9 7 4 7   1 9 7 2 4   2 3 4 2   1 7 6 6 9   1 7 5 5 5   1 7 4 7 2   1 7 4 0 9   1 7 3 5 0   1 7 3 3 9   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 6 3 2 6   1 6 3 0 9   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 2 0 2 0 9   1 9 7 4 7   1 9 7 2 4   2 3 4 2   1 7 6 6 9   1 7 5 5 5   1 7 4 7 2   1 7 4 0 9   1 7 3 5 0   1 7 3 3 9   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 6 3 2 6   1 6 3 0 9   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > t a < b r   / > │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   └ ─   t a < b r   / > . < b r   / > │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   └ ─   . < b r   / > [ 1 9 7 3 3   1 7 6 6 9   1 7 5 5 5   1 7 4 7 2   1 7 4 0 9   1 7 3 5 0   1 7 3 3 9   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 6 3 2 6   1 6 3 0 9   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 9 7 4 7   1 9 7 3 3   1 7 6 6 9   1 7 5 5 5   1 7 4 7 2   1 7 4 0 9   1 7 3 5 0   1 7 3 3 9   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 6 3 2 6   1 6 3 0 9   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 2 0 2 0 9   1 9 7 4 7   1 9 7 3 3   1 7 6 6 9   1 7 5 5 5   1 7 4 7 2   1 7 4 0 9   1 7 3 5 0   1 7 3 3 9   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 6 3 2 6   1 6 3 0 9   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > c o l 1 < b r   / > │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   └ ─   c o l 1 < b r   / > , < b r   / > │   │   │   │   │   └ ─   , < b r   / > [ 1 6 3 1 1   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 6 3 2 6   1 6 3 1 1   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 2 5 5   1 6 3 2 6   1 6 3 1 1   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 2 6 4   1 7 2 5 5   1 6 3 2 6   1 6 3 1 1   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 6 3 2 6   1 6 3 1 1   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 6 3 2 6   1 6 3 1 1   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 3 3 9   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 6 3 2 6   1 6 3 1 1   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 3 5 0   1 7 3 3 9   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 6 3 2 6   1 6 3 1 1   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 4 0 9   1 7 3 5 0   1 7 3 3 9   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 6 3 2 6   1 6 3 1 1   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 4 7 2   1 7 4 0 9   1 7 3 5 0   1 7 3 3 9   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 6 3 2 6   1 6 3 1 1   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 5 5 5   1 7 4 7 2   1 7 4 0 9   1 7 3 5 0   1 7 3 3 9   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 6 3 2 6   1 6 3 1 1   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 6 6 9   1 7 5 5 5   1 7 4 7 2   1 7 4 0 9   1 7 3 5 0   1 7 3 3 9   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 6 3 2 6   1 6 3 1 1   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 2 3 4 2   1 7 6 6 9   1 7 5 5 5   1 7 4 7 2   1 7 4 0 9   1 7 3 5 0   1 7 3 3 9   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 6 3 2 6   1 6 3 1 1   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 9 7 2 4   2 3 4 2   1 7 6 6 9   1 7 5 5 5   1 7 4 7 2   1 7 4 0 9   1 7 3 5 0   1 7 3 3 9   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 6 3 2 6   1 6 3 1 1   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 9 7 4 7   1 9 7 2 4   2 3 4 2   1 7 6 6 9   1 7 5 5 5   1 7 4 7 2   1 7 4 0 9   1 7 3 5 0   1 7 3 3 9   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 6 3 2 6   1 6 3 1 1   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 2 0 2 0 9   1 9 7 4 7   1 9 7 2 4   2 3 4 2   1 7 6 6 9   1 7 5 5 5   1 7 4 7 2   1 7 4 0 9   1 7 3 5 0   1 7 3 3 9   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 6 3 2 6   1 6 3 1 1   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > t b < b r   / > │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   └ ─   t b < b r   / > . < b r   / > │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   └ ─   . < b r   / > [ 1 9 7 3 3   1 7 6 6 9   1 7 5 5 5   1 7 4 7 2   1 7 4 0 9   1 7 3 5 0   1 7 3 3 9   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 6 3 2 6   1 6 3 1 1   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 9 7 4 7   1 9 7 3 3   1 7 6 6 9   1 7 5 5 5   1 7 4 7 2   1 7 4 0 9   1 7 3 5 0   1 7 3 3 9   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 6 3 2 6   1 6 3 1 1   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 2 0 2 0 9   1 9 7 4 7   1 9 7 3 3   1 7 6 6 9   1 7 5 5 5   1 7 4 7 2   1 7 4 0 9   1 7 3 5 0   1 7 3 3 9   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 6 3 2 6   1 6 3 1 1   1 6 2 8 4   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > c o l 5 < b r   / > │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   └ ─   c o l 5 < b r   / > [ 1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > F R O M < b r   / > │   │   │   │   │   └ ─   F R O M < b r   / > [ 1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 6 3 4 0   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 6 3 5 1   1 6 3 4 0   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 6 3 6 1   1 6 3 5 1   1 6 3 4 0   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 1 5 2   1 6 3 6 1   1 6 3 5 1   1 6 3 4 0   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 9 3 7 6   1 7 1 5 2   1 6 3 6 1   1 6 3 5 1   1 6 3 4 0   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 2 0 2 0 7   1 9 3 7 6   1 7 1 5 2   1 6 3 6 1   1 6 3 5 1   1 6 3 4 0   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 2 0 2 0 9   2 0 2 0 7   1 9 3 7 6   1 7 1 5 2   1 6 3 6 1   1 6 3 5 1   1 6 3 4 0   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > m y t a b A < b r   / > │   │   │   │   │   │   │   │   │   │   │   │   │   │   └ ─   m y t a b A < b r   / > [ 1 6 3 5 8   1 6 3 4 0   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 9 1 7 4   1 6 3 5 8   1 6 3 4 0   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 2 0 2 0 7   1 9 1 7 4   1 6 3 5 8   1 6 3 4 0   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 2 0 2 0 9   2 0 2 0 7   1 9 1 7 4   1 6 3 5 8   1 6 3 4 0   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > t a < b r   / > │   │   │   │   │   │   │   │   │   │   │   │   └ ─   t a < b r   / > [ 1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > J O I N < b r   / > │   │   │   │   │   │   │   │   └ ─   J O I N < b r   / > [ 1 6 3 9 7   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 6 3 5 1   1 6 3 9 7   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 6 3 6 1   1 6 3 5 1   1 6 3 9 7   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 1 5 2   1 6 3 6 1   1 6 3 5 1   1 6 3 9 7   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 9 3 7 6   1 7 1 5 2   1 6 3 6 1   1 6 3 5 1   1 6 3 9 7   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 2 0 2 0 7   1 9 3 7 6   1 7 1 5 2   1 6 3 6 1   1 6 3 5 1   1 6 3 9 7   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 2 0 2 0 9   2 0 2 0 7   1 9 3 7 6   1 7 1 5 2   1 6 3 6 1   1 6 3 5 1   1 6 3 9 7   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > m a y T a b B < b r   / > │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   └ ─   m a y T a b B < b r   / > [ 1 6 3 5 8   1 6 3 9 7   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 9 1 7 4   1 6 3 5 8   1 6 3 9 7   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 2 0 2 0 7   1 9 1 7 4   1 6 3 5 8   1 6 3 9 7   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 2 0 2 0 9   2 0 2 0 7   1 9 1 7 4   1 6 3 5 8   1 6 3 9 7   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > t b < b r   / > │   │   │   │   │   │   │   │   │   │   │   │   │   └ ─   t b < b r   / > [ 1 6 4 0 1   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > O N < b r   / > │   │   │   │   │   │   │   │   │   └ ─   O N < b r   / > [ 1 6 4 1 4   1 6 4 0 1   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 2 1 7   1 6 4 1 4   1 6 4 0 1   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 2 5 5   1 7 2 1 7   1 6 4 1 4   1 6 4 0 1   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 2 6 4   1 7 2 5 5   1 7 2 1 7   1 6 4 1 4   1 6 4 0 1   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 7 2 1 7   1 6 4 1 4   1 6 4 0 1   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 7 2 1 7   1 6 4 1 4   1 6 4 0 1   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 2 0 7 0   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 7 2 1 7   1 6 4 1 4   1 6 4 0 1   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 3 3 9   2 0 7 0   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 7 2 1 7   1 6 4 1 4   1 6 4 0 1   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 3 5 0   1 7 3 3 9   2 0 7 0   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 7 2 1 7   1 6 4 1 4   1 6 4 0 1   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 4 0 9   1 7 3 5 0   1 7 3 3 9   2 0 7 0   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 7 2 1 7   1 6 4 1 4   1 6 4 0 1   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 4 7 2   1 7 4 0 9   1 7 3 5 0   1 7 3 3 9   2 0 7 0   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 7 2 1 7   1 6 4 1 4   1 6 4 0 1   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 5 5 5   1 7 4 7 2   1 7 4 0 9   1 7 3 5 0   1 7 3 3 9   2 0 7 0   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 7 2 1 7   1 6 4 1 4   1 6 4 0 1   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 6 6 9   1 7 5 5 5   1 7 4 7 2   1 7 4 0 9   1 7 3 5 0   1 7 3 3 9   2 0 7 0   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 7 2 1 7   1 6 4 1 4   1 6 4 0 1   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 2 3 4 2   1 7 6 6 9   1 7 5 5 5   1 7 4 7 2   1 7 4 0 9   1 7 3 5 0   1 7 3 3 9   2 0 7 0   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 7 2 1 7   1 6 4 1 4   1 6 4 0 1   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 9 7 2 4   2 3 4 2   1 7 6 6 9   1 7 5 5 5   1 7 4 7 2   1 7 4 0 9   1 7 3 5 0   1 7 3 3 9   2 0 7 0   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 7 2 1 7   1 6 4 1 4   1 6 4 0 1   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 9 7 4 7   1 9 7 2 4   2 3 4 2   1 7 6 6 9   1 7 5 5 5   1 7 4 7 2   1 7 4 0 9   1 7 3 5 0   1 7 3 3 9   2 0 7 0   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 7 2 1 7   1 6 4 1 4   1 6 4 0 1   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 2 0 2 0 9   1 9 7 4 7   1 9 7 2 4   2 3 4 2   1 7 6 6 9   1 7 5 5 5   1 7 4 7 2   1 7 4 0 9   1 7 3 5 0   1 7 3 3 9   2 0 7 0   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 7 2 1 7   1 6 4 1 4   1 6 4 0 1   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > t a < b r   / > │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   └ ─   t a < b r   / > . < b r   / > │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   └ ─   . < b r   / > [ 1 9 7 3 3   1 7 6 6 9   1 7 5 5 5   1 7 4 7 2   1 7 4 0 9   1 7 3 5 0   1 7 3 3 9   2 0 7 0   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 7 2 1 7   1 6 4 1 4   1 6 4 0 1   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 9 7 4 7   1 9 7 3 3   1 7 6 6 9   1 7 5 5 5   1 7 4 7 2   1 7 4 0 9   1 7 3 5 0   1 7 3 3 9   2 0 7 0   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 7 2 1 7   1 6 4 1 4   1 6 4 0 1   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 2 0 2 0 9   1 9 7 4 7   1 9 7 3 3   1 7 6 6 9   1 7 5 5 5   1 7 4 7 2   1 7 4 0 9   1 7 3 5 0   1 7 3 3 9   2 0 7 0   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 7 2 1 7   1 6 4 1 4   1 6 4 0 1   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > c o l 1 < b r   / > │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   └ ─   c o l 1 < b r   / > [ 1 7 3 4 2   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 7 2 1 7   1 6 4 1 4   1 6 4 0 1   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > = < b r   / > │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   └ ─   = < b r   / > [ 1 7 3 4 3   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 7 2 1 7   1 6 4 1 4   1 6 4 0 1   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 3 3 9   1 7 3 4 3   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 7 2 1 7   1 6 4 1 4   1 6 4 0 1   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 3 5 0   1 7 3 3 9   1 7 3 4 3   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 7 2 1 7   1 6 4 1 4   1 6 4 0 1   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 4 0 9   1 7 3 5 0   1 7 3 3 9   1 7 3 4 3   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 7 2 1 7   1 6 4 1 4   1 6 4 0 1   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 4 7 2   1 7 4 0 9   1 7 3 5 0   1 7 3 3 9   1 7 3 4 3   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 7 2 1 7   1 6 4 1 4   1 6 4 0 1   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 5 5 5   1 7 4 7 2   1 7 4 0 9   1 7 3 5 0   1 7 3 3 9   1 7 3 4 3   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 7 2 1 7   1 6 4 1 4   1 6 4 0 1   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 1 7 6 6 9   1 7 5 5 5   1 7 4 7 2   1 7 4 0 9   1 7 3 5 0   1 7 3 3 9   1 7 3 4 3   1 7 3 1 8   1 7 2 8 0   1 7 2 6 4   1 7 2 5 5   1 7 2 1 7   1 6 4 1 4   1 6 4 0 1   1 6 3 4 1   1 6 3 3 2   1 6 3 2 0   1 6 2 8 8   1 6 2 6 3   1 6 2 5 6   1 6 0 6 6   1 6 0 6 8   1 5 8 5 7   2 5 3 5   2 3 8 4 ] < b r   / > [ 2 3 4 2   1 7 6 6 9   1 7 5 5 5   1 7 4 7 2   1 7 4 0 9  17350 17339 17343 17318 17280 17264 17255 17217 16414 16401 16341 16332 16320 16288 16263 16256 16066 16068 15857 2535 2384]
[19724 2342 17669 17555 17472 17409 17350 17339 17343 17318 17280 17264 17255 17217 16414 16401 16341 16332 16320 16288 16263 16256 16066 16068 15857 2535 2384]
[19747 19724 2342 17669 17555 17472 17409 17350 17339 17343 17318 17280 17264 17255 17217 16414 16401 16341 16332 16320 16288 16263 16256 16066 16068 15857 2535 2384]
[20209 19747 19724 2342 17669 17555 17472 17409 17350 17339 17343 17318 17280 17264 17255 17217 16414 16401 16341 16332 16320 16288 16263 16256 16066 16068 15857 2535 2384]
tb
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ tb
.
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ .
[19733 17669 17555 17472 17409 17350 17339 17343 17318 17280 17264 17255 17217 16414 16401 16341 16332 16320 16288 16263 16256 16066 16068 15857 2535 2384]
[19747 19733 17669 17555 17472 17409 17350 17339 17343 17318 17280 17264 17255 17217 16414 16401 16341 16332 16320 16288 16263 16256 16066 16068 15857 2535 2384]
[20209 19747 19733 17669 17555 17472 17409 17350 17339 17343 17318 17280 17264 17255 17217 16414 16401 16341 16332 16320 16288 16263 16256 16066 16068 15857 2535 2384]
col2
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ col2
[16289 16263 16256 16066 16068 15857 2535 2384]
WHERE
│ │ │ │ │ └─ WHERE
[19182 16289 16263 16256 16066 16068 15857 2535 2384]
[17217 19182 16289 16263 16256 16066 16068 15857 2535 2384]
[17255 17217 19182 16289 16263 16256 16066 16068 15857 2535 2384]
[17264 17255 17217 19182 16289 16263 16256 16066 16068 15857 2535 2384]
[17280 17264 17255 17217 19182 16289 16263 16256 16066 16068 15857 2535 2384]
[17318 17280 17264 17255 17217 19182 16289 16263 16256 16066 16068 15857 2535 2384]
[2070 17318 17280 17264 17255 17217 19182 16289 16263 16256 16066 16068 15857 2535 2384]
[17339 2070 17318 17280 17264 17255 17217 19182 16289 16263 16256 16066 16068 15857 2535 2384]
[17350 17339 2070 17318 17280 17264 17255 17217 19182 16289 16263 16256 16066 16068 15857 2535 2384]
[17409 17350 17339 2070 17318 17280 17264 17255 17217 19182 16289 16263 16256 16066 16068 15857 2535 2384]
[17472 17409 17350 17339 2070 17318 17280 17264 17255 17217 19182 16289 16263 16256 16066 16068 15857 2535 2384]
[17555 17472 17409 17350 17339 2070 17318 17280 17264 17255 17217 19182 16289 16263 16256 16066 16068 15857 2535 2384]
[17669 17555 17472 17409 17350 17339 2070 17318 17280 17264 17255 17217 19182 16289 16263 16256 16066 16068 15857 2535 2384]
[2342 17669 17555 17472 17409 17350 17339 2070 17318 17280 17264 17255 17217 19182 16289 16263 16256 16066 16068 15857 2535 2384]
[19724 2342 17669 17555 17472 17409 17350 17339 2070 17318 17280 17264 17255 17217 19182 16289 16263 16256 16066 16068 15857 2535 2384]
[19747 19724 2342 17669 17555 17472 17409 17350 17339 2070 17318 17280 17264 17255 17217 19182 16289 16263 16256 16066 16068 15857 2535 2384]
[20209 19747 19724 2342 17669 17555 17472 17409 17350 17339 2070 17318 17280 17264 17255 17217 19182 16289 16263 16256 16066 16068 15857 2535 2384]
ta
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ ta
.
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ .
[19733 17669 17555 17472 17409 17350 17339 2070 17318 17280 17264 17255 17217 19182 16289 16263 16256 16066 16068 15857 2535 2384]
[19747 19733 17669 17555 17472 17409 17350 17339 2070 17318 17280 17264 17255 17217 19182 16289 16263 16256 16066 16068 15857 2535 2384]
[20209 19747 19733 17669 17555 17472 17409 17350 17339 2070 17318 17280 17264 17255 17217 19182 16289 16263 16256 16066 16068 15857 2535 2384]
col3
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ col3
[17342 17318 17280 17264 17255 17217 19182 16289 16263 16256 16066 16068 15857 2535 2384]
=
│ │ │ │ │ │ │ │ │ │ │ │ └─ =
[17343 17318 17280 17264 17255 17217 19182 16289 16263 16256 16066 16068 15857 2535 2384]
[17339 17343 17318 17280 17264 17255 17217 19182 16289 16263 16256 16066 16068 15857 2535 2384]
[17350 17339 17343 17318 17280 17264 17255 17217 19182 16289 16263 16256 16066 16068 15857 2535 2384]
[17409 17350 17339 17343 17318 17280 17264 17255 17217 19182 16289 16263 16256 16066 16068 15857 2535 2384]
[17472 17409 17350 17339 17343 17318 17280 17264 17255 17217 19182 16289 16263 16256 16066 16068 15857 2535 2384]
[17555 17472 17409 17350 17339 17343 17318 17280 17264 17255 17217 19182 16289 16263 16256 16066 16068 15857 2535 2384]
[17667 17555 17472 17409 17350 17339 17343 17318 17280 17264 17255 17217 19182 16289 16263 16256 16066 16068 15857 2535 2384]
[20185 17667 17555 17472 17409 17350 17339 17343 17318 17280 17264 17255 17217 19182 16289 16263 16256 16066 16068 15857 2535 2384]
'AXA'
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ 'AXA'
Похоже, мне нужно отслеживать значения дочернего массива и определять, какие из них сигнализируют об имени таблицы, имени столбца, JOIN и т. д.
p>
Неужели использование Antlr должно быть таким сложным?
Есть ли способ «запросить» древовидную структуру для определенных узлов, и если да, то какой запрос получить эту конкретную информацию?
Есть ли способ распечатать уникальные типы узлов, чтобы мы могли выяснить, какие из них искать?

Подробнее здесь: https://stackoverflow.com/questions/785 ... and-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»