8
include "include/expression";
9
include "include/json5-array";
10
include "include/json5-object";
12
программа = список_операторов;
16
= список_операторов оператор
21
= ";" { ast.addNode(ast.teragraph.host, ast.teragraph.op.Print, 0); }
25
= начало_оператора_select блок_select блок_from
27
= начало_оператора_select блок_select блок_from блок_where
31
начало_оператора_select
33
ast.addNode_StepInto(ast.teragraph.host, ast.teragraph.op.Select, 0);
34
ast.addNode_StepInto(ast.teragraph.host, ast.teragraph_.op.Select_Select, 0);
40
ast.addNode(ast.teragraph.host, ast.teragraph_.op.Select_Select_Asterisk, 0);
43
= список_выражений_select
47
список_выражений_select
48
= элемент_выражения_select
49
= список_выражений_select "," элемент_выражения_select
52
элемент_выражения_select
54
= выражение "as" наименование
62
= "(" select_оператор ")"
66
= начало_блока_from список_источников_данных
71
= "from" { ast.addNode_StepInto(ast.teragraph.host, ast.teragraph_.op.Select_From, 0); }
74
список_источников_данных
75
= элемент_списка_источников_данных
76
= список_источников_данных "," элемент_списка_источников_данных
79
элемент_списка_источников_данных
81
= источник_данных "as" наименование
89
= начало_блока_where выражение
94
= "where" { ast.addNode_StepInto(ast.teragraph.host, ast.teragraph_.op.Select_Where, 0); }