Skip to content

Unexpected EOF token #848

@punkpeye

Description

@punkpeye

Getting this error:

Error: Parse error at token: «EOF» at line 47 column 5
Unexpected EOF token: {"type":"EOF","raw":"«EOF»","text":"«EOF»","start":1235}. Instead, I was expecting to see one of the following:

A PROPERTY_ACCESS_OPERATOR token based on:
    property_access → atomic_expression _ ● %PROPERTY_ACCESS_OPERATOR _ property_access$subexpression$1
    atomic_expression$subexpression$1 →  ● property_access
    atomic_expression →  ● atomic_expression$subexpression$1
    asteriskless_andless_expression$subexpression$1 →  ● atomic_expression
    asteriskless_andless_expression →  ● asteriskless_andless_expression$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● asteriskless_andless_expression
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    other_clause$ebnf$1 → other_clause$ebnf$1 ● free_form_sql
    other_clause → %RESERVED_CLAUSE ● other_clause$ebnf$1
    clause$subexpression$1 →  ● other_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    parenthesis → "(" ● expressions_or_clauses ")"
    function_call → %RESERVED_FUNCTION_NAME _ ● parenthesis
    atomic_expression$subexpression$1 →  ● function_call
    atomic_expression →  ● atomic_expression$subexpression$1
    asteriskless_andless_expression$subexpression$1 →  ● atomic_expression
    asteriskless_andless_expression →  ● asteriskless_andless_expression$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● asteriskless_andless_expression
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    select_clause$subexpression$1$ebnf$2 → select_clause$subexpression$1$ebnf$2 ● free_form_sql
    select_clause$subexpression$1 → asteriskless_free_form_sql ● select_clause$subexpression$1$ebnf$2
    select_clause → %RESERVED_SELECT ● select_clause$subexpression$1
    clause$subexpression$1 →  ● select_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    statement →  ● expressions_or_clauses statement$subexpression$1
    main$ebnf$1 → main$ebnf$1 ● statement
    main →  ● main$ebnf$1
A LINE_COMMENT token based on:
    comment →  ● %LINE_COMMENT
    _$ebnf$1 → _$ebnf$1 ● comment
    _ →  ● _$ebnf$1
    property_access → atomic_expression ● _ %PROPERTY_ACCESS_OPERATOR _ property_access$subexpression$1
    atomic_expression$subexpression$1 →  ● property_access
    atomic_expression →  ● atomic_expression$subexpression$1
    asteriskless_andless_expression$subexpression$1 →  ● atomic_expression
    asteriskless_andless_expression →  ● asteriskless_andless_expression$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● asteriskless_andless_expression
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    other_clause$ebnf$1 → other_clause$ebnf$1 ● free_form_sql
    other_clause → %RESERVED_CLAUSE ● other_clause$ebnf$1
    clause$subexpression$1 →  ● other_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    parenthesis → "(" ● expressions_or_clauses ")"
    function_call → %RESERVED_FUNCTION_NAME _ ● parenthesis
    atomic_expression$subexpression$1 →  ● function_call
    atomic_expression →  ● atomic_expression$subexpression$1
    asteriskless_andless_expression$subexpression$1 →  ● atomic_expression
    asteriskless_andless_expression →  ● asteriskless_andless_expression$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● asteriskless_andless_expression
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    select_clause$subexpression$1$ebnf$2 → select_clause$subexpression$1$ebnf$2 ● free_form_sql
    select_clause$subexpression$1 → asteriskless_free_form_sql ● select_clause$subexpression$1$ebnf$2
    select_clause → %RESERVED_SELECT ● select_clause$subexpression$1
    clause$subexpression$1 →  ● select_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    statement →  ● expressions_or_clauses statement$subexpression$1
    main$ebnf$1 → main$ebnf$1 ● statement
    main →  ● main$ebnf$1
A BLOCK_COMMENT token based on:
    comment →  ● %BLOCK_COMMENT
    _$ebnf$1 → _$ebnf$1 ● comment
    _ →  ● _$ebnf$1
    property_access → atomic_expression ● _ %PROPERTY_ACCESS_OPERATOR _ property_access$subexpression$1
    atomic_expression$subexpression$1 →  ● property_access
    atomic_expression →  ● atomic_expression$subexpression$1
    asteriskless_andless_expression$subexpression$1 →  ● atomic_expression
    asteriskless_andless_expression →  ● asteriskless_andless_expression$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● asteriskless_andless_expression
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    other_clause$ebnf$1 → other_clause$ebnf$1 ● free_form_sql
    other_clause → %RESERVED_CLAUSE ● other_clause$ebnf$1
    clause$subexpression$1 →  ● other_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    parenthesis → "(" ● expressions_or_clauses ")"
    function_call → %RESERVED_FUNCTION_NAME _ ● parenthesis
    atomic_expression$subexpression$1 →  ● function_call
    atomic_expression →  ● atomic_expression$subexpression$1
    asteriskless_andless_expression$subexpression$1 →  ● atomic_expression
    asteriskless_andless_expression →  ● asteriskless_andless_expression$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● asteriskless_andless_expression
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    select_clause$subexpression$1$ebnf$2 → select_clause$subexpression$1$ebnf$2 ● free_form_sql
    select_clause$subexpression$1 → asteriskless_free_form_sql ● select_clause$subexpression$1$ebnf$2
    select_clause → %RESERVED_SELECT ● select_clause$subexpression$1
    clause$subexpression$1 →  ● select_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    statement →  ● expressions_or_clauses statement$subexpression$1
    main$ebnf$1 → main$ebnf$1 ● statement
    main →  ● main$ebnf$1
A DISABLE_COMMENT token based on:
    comment →  ● %DISABLE_COMMENT
    _$ebnf$1 → _$ebnf$1 ● comment
    _ →  ● _$ebnf$1
    property_access → atomic_expression ● _ %PROPERTY_ACCESS_OPERATOR _ property_access$subexpression$1
    atomic_expression$subexpression$1 →  ● property_access
    atomic_expression →  ● atomic_expression$subexpression$1
    asteriskless_andless_expression$subexpression$1 →  ● atomic_expression
    asteriskless_andless_expression →  ● asteriskless_andless_expression$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● asteriskless_andless_expression
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    other_clause$ebnf$1 → other_clause$ebnf$1 ● free_form_sql
    other_clause → %RESERVED_CLAUSE ● other_clause$ebnf$1
    clause$subexpression$1 →  ● other_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    parenthesis → "(" ● expressions_or_clauses ")"
    function_call → %RESERVED_FUNCTION_NAME _ ● parenthesis
    atomic_expression$subexpression$1 →  ● function_call
    atomic_expression →  ● atomic_expression$subexpression$1
    asteriskless_andless_expression$subexpression$1 →  ● atomic_expression
    asteriskless_andless_expression →  ● asteriskless_andless_expression$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● asteriskless_andless_expression
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    select_clause$subexpression$1$ebnf$2 → select_clause$subexpression$1$ebnf$2 ● free_form_sql
    select_clause$subexpression$1 → asteriskless_free_form_sql ● select_clause$subexpression$1$ebnf$2
    select_clause → %RESERVED_SELECT ● select_clause$subexpression$1
    clause$subexpression$1 →  ● select_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    statement →  ● expressions_or_clauses statement$subexpression$1
    main$ebnf$1 → main$ebnf$1 ● statement
    main →  ● main$ebnf$1
A ASTERISK token based on:
    asterisk$subexpression$1 →  ● %ASTERISK
    asterisk →  ● asterisk$subexpression$1
    free_form_sql$subexpression$1 →  ● asterisk
    free_form_sql →  ● free_form_sql$subexpression$1
    other_clause$ebnf$1 → other_clause$ebnf$1 ● free_form_sql
    other_clause → %RESERVED_CLAUSE ● other_clause$ebnf$1
    clause$subexpression$1 →  ● other_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    parenthesis → "(" ● expressions_or_clauses ")"
    function_call → %RESERVED_FUNCTION_NAME _ ● parenthesis
    atomic_expression$subexpression$1 →  ● function_call
    atomic_expression →  ● atomic_expression$subexpression$1
    asteriskless_andless_expression$subexpression$1 →  ● atomic_expression
    asteriskless_andless_expression →  ● asteriskless_andless_expression$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● asteriskless_andless_expression
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    select_clause$subexpression$1$ebnf$2 → select_clause$subexpression$1$ebnf$2 ● free_form_sql
    select_clause$subexpression$1 → asteriskless_free_form_sql ● select_clause$subexpression$1$ebnf$2
    select_clause → %RESERVED_SELECT ● select_clause$subexpression$1
    clause$subexpression$1 →  ● select_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    statement →  ● expressions_or_clauses statement$subexpression$1
    main$ebnf$1 → main$ebnf$1 ● statement
    main →  ● main$ebnf$1
A ")" based on:
    parenthesis → "(" expressions_or_clauses ● ")"
    function_call → %RESERVED_FUNCTION_NAME _ ● parenthesis
    atomic_expression$subexpression$1 →  ● function_call
    atomic_expression →  ● atomic_expression$subexpression$1
    asteriskless_andless_expression$subexpression$1 →  ● atomic_expression
    asteriskless_andless_expression →  ● asteriskless_andless_expression$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● asteriskless_andless_expression
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    select_clause$subexpression$1$ebnf$2 → select_clause$subexpression$1$ebnf$2 ● free_form_sql
    select_clause$subexpression$1 → asteriskless_free_form_sql ● select_clause$subexpression$1$ebnf$2
    select_clause → %RESERVED_SELECT ● select_clause$subexpression$1
    clause$subexpression$1 →  ● select_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    statement →  ● expressions_or_clauses statement$subexpression$1
    main$ebnf$1 → main$ebnf$1 ● statement
    main →  ● main$ebnf$1
A AND token based on:
    logic_operator$subexpression$1 →  ● %AND
    logic_operator →  ● logic_operator$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● logic_operator
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    other_clause$ebnf$1 → other_clause$ebnf$1 ● free_form_sql
    other_clause → %RESERVED_CLAUSE ● other_clause$ebnf$1
    clause$subexpression$1 →  ● other_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    parenthesis → "(" ● expressions_or_clauses ")"
    function_call → %RESERVED_FUNCTION_NAME _ ● parenthesis
    atomic_expression$subexpression$1 →  ● function_call
    atomic_expression →  ● atomic_expression$subexpression$1
    asteriskless_andless_expression$subexpression$1 →  ● atomic_expression
    asteriskless_andless_expression →  ● asteriskless_andless_expression$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● asteriskless_andless_expression
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    select_clause$subexpression$1$ebnf$2 → select_clause$subexpression$1$ebnf$2 ● free_form_sql
    select_clause$subexpression$1 → asteriskless_free_form_sql ● select_clause$subexpression$1$ebnf$2
    select_clause → %RESERVED_SELECT ● select_clause$subexpression$1
    clause$subexpression$1 →  ● select_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    statement →  ● expressions_or_clauses statement$subexpression$1
    main$ebnf$1 → main$ebnf$1 ● statement
    main →  ● main$ebnf$1
A OR token based on:
    logic_operator$subexpression$1 →  ● %OR
    logic_operator →  ● logic_operator$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● logic_operator
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    other_clause$ebnf$1 → other_clause$ebnf$1 ● free_form_sql
    other_clause → %RESERVED_CLAUSE ● other_clause$ebnf$1
    clause$subexpression$1 →  ● other_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    parenthesis → "(" ● expressions_or_clauses ")"
    function_call → %RESERVED_FUNCTION_NAME _ ● parenthesis
    atomic_expression$subexpression$1 →  ● function_call
    atomic_expression →  ● atomic_expression$subexpression$1
    asteriskless_andless_expression$subexpression$1 →  ● atomic_expression
    asteriskless_andless_expression →  ● asteriskless_andless_expression$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● asteriskless_andless_expression
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    select_clause$subexpression$1$ebnf$2 → select_clause$subexpression$1$ebnf$2 ● free_form_sql
    select_clause$subexpression$1 → asteriskless_free_form_sql ● select_clause$subexpression$1$ebnf$2
    select_clause → %RESERVED_SELECT ● select_clause$subexpression$1
    clause$subexpression$1 →  ● select_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    statement →  ● expressions_or_clauses statement$subexpression$1
    main$ebnf$1 → main$ebnf$1 ● statement
    main →  ● main$ebnf$1
A XOR token based on:
    logic_operator$subexpression$1 →  ● %XOR
    logic_operator →  ● logic_operator$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● logic_operator
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    other_clause$ebnf$1 → other_clause$ebnf$1 ● free_form_sql
    other_clause → %RESERVED_CLAUSE ● other_clause$ebnf$1
    clause$subexpression$1 →  ● other_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    parenthesis → "(" ● expressions_or_clauses ")"
    function_call → %RESERVED_FUNCTION_NAME _ ● parenthesis
    atomic_expression$subexpression$1 →  ● function_call
    atomic_expression →  ● atomic_expression$subexpression$1
    asteriskless_andless_expression$subexpression$1 →  ● atomic_expression
    asteriskless_andless_expression →  ● asteriskless_andless_expression$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● asteriskless_andless_expression
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    select_clause$subexpression$1$ebnf$2 → select_clause$subexpression$1$ebnf$2 ● free_form_sql
    select_clause$subexpression$1 → asteriskless_free_form_sql ● select_clause$subexpression$1$ebnf$2
    select_clause → %RESERVED_SELECT ● select_clause$subexpression$1
    clause$subexpression$1 →  ● select_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    statement →  ● expressions_or_clauses statement$subexpression$1
    main$ebnf$1 → main$ebnf$1 ● statement
    main →  ● main$ebnf$1
A COMMA token based on:
    comma$subexpression$1 →  ● %COMMA
    comma →  ● comma$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● comma
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    other_clause$ebnf$1 → other_clause$ebnf$1 ● free_form_sql
    other_clause → %RESERVED_CLAUSE ● other_clause$ebnf$1
    clause$subexpression$1 →  ● other_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    parenthesis → "(" ● expressions_or_clauses ")"
    function_call → %RESERVED_FUNCTION_NAME _ ● parenthesis
    atomic_expression$subexpression$1 →  ● function_call
    atomic_expression →  ● atomic_expression$subexpression$1
    asteriskless_andless_expression$subexpression$1 →  ● atomic_expression
    asteriskless_andless_expression →  ● asteriskless_andless_expression$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● asteriskless_andless_expression
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    select_clause$subexpression$1$ebnf$2 → select_clause$subexpression$1$ebnf$2 ● free_form_sql
    select_clause$subexpression$1 → asteriskless_free_form_sql ● select_clause$subexpression$1$ebnf$2
    select_clause → %RESERVED_SELECT ● select_clause$subexpression$1
    clause$subexpression$1 →  ● select_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    statement →  ● expressions_or_clauses statement$subexpression$1
    main$ebnf$1 → main$ebnf$1 ● statement
    main →  ● main$ebnf$1
A WHEN token based on:
    other_keyword$subexpression$1 →  ● %WHEN
    other_keyword →  ● other_keyword$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● other_keyword
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    other_clause$ebnf$1 → other_clause$ebnf$1 ● free_form_sql
    other_clause → %RESERVED_CLAUSE ● other_clause$ebnf$1
    clause$subexpression$1 →  ● other_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    parenthesis → "(" ● expressions_or_clauses ")"
    function_call → %RESERVED_FUNCTION_NAME _ ● parenthesis
    atomic_expression$subexpression$1 →  ● function_call
    atomic_expression →  ● atomic_expression$subexpression$1
    asteriskless_andless_expression$subexpression$1 →  ● atomic_expression
    asteriskless_andless_expression →  ● asteriskless_andless_expression$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● asteriskless_andless_expression
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    select_clause$subexpression$1$ebnf$2 → select_clause$subexpression$1$ebnf$2 ● free_form_sql
    select_clause$subexpression$1 → asteriskless_free_form_sql ● select_clause$subexpression$1$ebnf$2
    select_clause → %RESERVED_SELECT ● select_clause$subexpression$1
    clause$subexpression$1 →  ● select_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    statement →  ● expressions_or_clauses statement$subexpression$1
    main$ebnf$1 → main$ebnf$1 ● statement
    main →  ● main$ebnf$1
A THEN token based on:
    other_keyword$subexpression$1 →  ● %THEN
    other_keyword →  ● other_keyword$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● other_keyword
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    other_clause$ebnf$1 → other_clause$ebnf$1 ● free_form_sql
    other_clause → %RESERVED_CLAUSE ● other_clause$ebnf$1
    clause$subexpression$1 →  ● other_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    parenthesis → "(" ● expressions_or_clauses ")"
    function_call → %RESERVED_FUNCTION_NAME _ ● parenthesis
    atomic_expression$subexpression$1 →  ● function_call
    atomic_expression →  ● atomic_expression$subexpression$1
    asteriskless_andless_expression$subexpression$1 →  ● atomic_expression
    asteriskless_andless_expression →  ● asteriskless_andless_expression$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● asteriskless_andless_expression
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    select_clause$subexpression$1$ebnf$2 → select_clause$subexpression$1$ebnf$2 ● free_form_sql
    select_clause$subexpression$1 → asteriskless_free_form_sql ● select_clause$subexpression$1$ebnf$2
    select_clause → %RESERVED_SELECT ● select_clause$subexpression$1
    clause$subexpression$1 →  ● select_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    statement →  ● expressions_or_clauses statement$subexpression$1
    main$ebnf$1 → main$ebnf$1 ● statement
    main →  ● main$ebnf$1
A ELSE token based on:
    other_keyword$subexpression$1 →  ● %ELSE
    other_keyword →  ● other_keyword$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● other_keyword
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    other_clause$ebnf$1 → other_clause$ebnf$1 ● free_form_sql
    other_clause → %RESERVED_CLAUSE ● other_clause$ebnf$1
    clause$subexpression$1 →  ● other_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    parenthesis → "(" ● expressions_or_clauses ")"
    function_call → %RESERVED_FUNCTION_NAME _ ● parenthesis
    atomic_expression$subexpression$1 →  ● function_call
    atomic_expression →  ● atomic_expression$subexpression$1
    asteriskless_andless_expression$subexpression$1 →  ● atomic_expression
    asteriskless_andless_expression →  ● asteriskless_andless_expression$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● asteriskless_andless_expression
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    select_clause$subexpression$1$ebnf$2 → select_clause$subexpression$1$ebnf$2 ● free_form_sql
    select_clause$subexpression$1 → asteriskless_free_form_sql ● select_clause$subexpression$1$ebnf$2
    select_clause → %RESERVED_SELECT ● select_clause$subexpression$1
    clause$subexpression$1 →  ● select_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    statement →  ● expressions_or_clauses statement$subexpression$1
    main$ebnf$1 → main$ebnf$1 ● statement
    main →  ● main$ebnf$1
A END token based on:
    other_keyword$subexpression$1 →  ● %END
    other_keyword →  ● other_keyword$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● other_keyword
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    other_clause$ebnf$1 → other_clause$ebnf$1 ● free_form_sql
    other_clause → %RESERVED_CLAUSE ● other_clause$ebnf$1
    clause$subexpression$1 →  ● other_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    parenthesis → "(" ● expressions_or_clauses ")"
    function_call → %RESERVED_FUNCTION_NAME _ ● parenthesis
    atomic_expression$subexpression$1 →  ● function_call
    atomic_expression →  ● atomic_expression$subexpression$1
    asteriskless_andless_expression$subexpression$1 →  ● atomic_expression
    asteriskless_andless_expression →  ● asteriskless_andless_expression$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● asteriskless_andless_expression
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    select_clause$subexpression$1$ebnf$2 → select_clause$subexpression$1$ebnf$2 ● free_form_sql
    select_clause$subexpression$1 → asteriskless_free_form_sql ● select_clause$subexpression$1$ebnf$2
    select_clause → %RESERVED_SELECT ● select_clause$subexpression$1
    clause$subexpression$1 →  ● select_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    statement →  ● expressions_or_clauses statement$subexpression$1
    main$ebnf$1 → main$ebnf$1 ● statement
    main →  ● main$ebnf$1
A BETWEEN token based on:
    between_predicate →  ● %BETWEEN _ andless_expression_chain _ %AND _ andless_expression
    asteriskless_andless_expression$subexpression$1 →  ● between_predicate
    asteriskless_andless_expression →  ● asteriskless_andless_expression$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● asteriskless_andless_expression
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    other_clause$ebnf$1 → other_clause$ebnf$1 ● free_form_sql
    other_clause → %RESERVED_CLAUSE ● other_clause$ebnf$1
    clause$subexpression$1 →  ● other_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    parenthesis → "(" ● expressions_or_clauses ")"
    function_call → %RESERVED_FUNCTION_NAME _ ● parenthesis
    atomic_expression$subexpression$1 →  ● function_call
    atomic_expression →  ● atomic_expression$subexpression$1
    asteriskless_andless_expression$subexpression$1 →  ● atomic_expression
    asteriskless_andless_expression →  ● asteriskless_andless_expression$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● asteriskless_andless_expression
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    select_clause$subexpression$1$ebnf$2 → select_clause$subexpression$1$ebnf$2 ● free_form_sql
    select_clause$subexpression$1 → asteriskless_free_form_sql ● select_clause$subexpression$1$ebnf$2
    select_clause → %RESERVED_SELECT ● select_clause$subexpression$1
    clause$subexpression$1 →  ● select_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    statement →  ● expressions_or_clauses statement$subexpression$1
    main$ebnf$1 → main$ebnf$1 ● statement
    main →  ● main$ebnf$1
A CASE token based on:
    case_expression →  ● %CASE _ case_expression$ebnf$1 case_expression$ebnf$2 %END
    asteriskless_andless_expression$subexpression$1 →  ● case_expression
    asteriskless_andless_expression →  ● asteriskless_andless_expression$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● asteriskless_andless_expression
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    other_clause$ebnf$1 → other_clause$ebnf$1 ● free_form_sql
    other_clause → %RESERVED_CLAUSE ● other_clause$ebnf$1
    clause$subexpression$1 →  ● other_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    parenthesis → "(" ● expressions_or_clauses ")"
    function_call → %RESERVED_FUNCTION_NAME _ ● parenthesis
    atomic_expression$subexpression$1 →  ● function_call
    atomic_expression →  ● atomic_expression$subexpression$1
    asteriskless_andless_expression$subexpression$1 →  ● atomic_expression
    asteriskless_andless_expression →  ● asteriskless_andless_expression$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● asteriskless_andless_expression
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    select_clause$subexpression$1$ebnf$2 → select_clause$subexpression$1$ebnf$2 ● free_form_sql
    select_clause$subexpression$1 → asteriskless_free_form_sql ● select_clause$subexpression$1$ebnf$2
    select_clause → %RESERVED_SELECT ● select_clause$subexpression$1
    clause$subexpression$1 →  ● select_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    statement →  ● expressions_or_clauses statement$subexpression$1
    main$ebnf$1 → main$ebnf$1 ● statement
    main →  ● main$ebnf$1
A LIMIT token based on:
    limit_clause →  ● %LIMIT _ expression_chain_ limit_clause$ebnf$1
    clause$subexpression$1 →  ● limit_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    parenthesis → "(" ● expressions_or_clauses ")"
    function_call → %RESERVED_FUNCTION_NAME _ ● parenthesis
    atomic_expression$subexpression$1 →  ● function_call
    atomic_expression →  ● atomic_expression$subexpression$1
    asteriskless_andless_expression$subexpression$1 →  ● atomic_expression
    asteriskless_andless_expression →  ● asteriskless_andless_expression$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● asteriskless_andless_expression
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    select_clause$subexpression$1$ebnf$2 → select_clause$subexpression$1$ebnf$2 ● free_form_sql
    select_clause$subexpression$1 → asteriskless_free_form_sql ● select_clause$subexpression$1$ebnf$2
    select_clause → %RESERVED_SELECT ● select_clause$subexpression$1
    clause$subexpression$1 →  ● select_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    statement →  ● expressions_or_clauses statement$subexpression$1
    main$ebnf$1 → main$ebnf$1 ● statement
    main →  ● main$ebnf$1
A RESERVED_SELECT token based on:
    select_clause →  ● %RESERVED_SELECT select_clause$subexpression$1
    clause$subexpression$1 →  ● select_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    parenthesis → "(" ● expressions_or_clauses ")"
    function_call → %RESERVED_FUNCTION_NAME _ ● parenthesis
    atomic_expression$subexpression$1 →  ● function_call
    atomic_expression →  ● atomic_expression$subexpression$1
    asteriskless_andless_expression$subexpression$1 →  ● atomic_expression
    asteriskless_andless_expression →  ● asteriskless_andless_expression$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● asteriskless_andless_expression
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    select_clause$subexpression$1$ebnf$2 → select_clause$subexpression$1$ebnf$2 ● free_form_sql
    select_clause$subexpression$1 → asteriskless_free_form_sql ● select_clause$subexpression$1$ebnf$2
    select_clause → %RESERVED_SELECT ● select_clause$subexpression$1
    clause$subexpression$1 →  ● select_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    statement →  ● expressions_or_clauses statement$subexpression$1
    main$ebnf$1 → main$ebnf$1 ● statement
    main →  ● main$ebnf$1
A RESERVED_SELECT token based on:
    select_clause →  ● %RESERVED_SELECT
    clause$subexpression$1 →  ● select_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    parenthesis → "(" ● expressions_or_clauses ")"
    function_call → %RESERVED_FUNCTION_NAME _ ● parenthesis
    atomic_expression$subexpression$1 →  ● function_call
    atomic_expression →  ● atomic_expression$subexpression$1
    asteriskless_andless_expression$subexpression$1 →  ● atomic_expression
    asteriskless_andless_expression →  ● asteriskless_andless_expression$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● asteriskless_andless_expression
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    select_clause$subexpression$1$ebnf$2 → select_clause$subexpression$1$ebnf$2 ● free_form_sql
    select_clause$subexpression$1 → asteriskless_free_form_sql ● select_clause$subexpression$1$ebnf$2
    select_clause → %RESERVED_SELECT ● select_clause$subexpression$1
    clause$subexpression$1 →  ● select_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    statement →  ● expressions_or_clauses statement$subexpression$1
    main$ebnf$1 → main$ebnf$1 ● statement
    main →  ● main$ebnf$1
A RESERVED_CLAUSE token based on:
    other_clause →  ● %RESERVED_CLAUSE other_clause$ebnf$1
    clause$subexpression$1 →  ● other_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    parenthesis → "(" ● expressions_or_clauses ")"
    function_call → %RESERVED_FUNCTION_NAME _ ● parenthesis
    atomic_expression$subexpression$1 →  ● function_call
    atomic_expression →  ● atomic_expression$subexpression$1
    asteriskless_andless_expression$subexpression$1 →  ● atomic_expression
    asteriskless_andless_expression →  ● asteriskless_andless_expression$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● asteriskless_andless_expression
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    select_clause$subexpression$1$ebnf$2 → select_clause$subexpression$1$ebnf$2 ● free_form_sql
    select_clause$subexpression$1 → asteriskless_free_form_sql ● select_clause$subexpression$1$ebnf$2
    select_clause → %RESERVED_SELECT ● select_clause$subexpression$1
    clause$subexpression$1 →  ● select_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    statement →  ● expressions_or_clauses statement$subexpression$1
    main$ebnf$1 → main$ebnf$1 ● statement
    main →  ● main$ebnf$1
A RESERVED_SET_OPERATION token based on:
    set_operation →  ● %RESERVED_SET_OPERATION set_operation$ebnf$1
    clause$subexpression$1 →  ● set_operation
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    parenthesis → "(" ● expressions_or_clauses ")"
    function_call → %RESERVED_FUNCTION_NAME _ ● parenthesis
    atomic_expression$subexpression$1 →  ● function_call
    atomic_expression →  ● atomic_expression$subexpression$1
    asteriskless_andless_expression$subexpression$1 →  ● atomic_expression
    asteriskless_andless_expression →  ● asteriskless_andless_expression$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● asteriskless_andless_expression
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    select_clause$subexpression$1$ebnf$2 → select_clause$subexpression$1$ebnf$2 ● free_form_sql
    select_clause$subexpression$1 → asteriskless_free_form_sql ● select_clause$subexpression$1$ebnf$2
    select_clause → %RESERVED_SELECT ● select_clause$subexpression$1
    clause$subexpression$1 →  ● select_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    statement →  ● expressions_or_clauses statement$subexpression$1
    main$ebnf$1 → main$ebnf$1 ● statement
    main →  ● main$ebnf$1
A ARRAY_IDENTIFIER token based on:
    array_subscript →  ● %ARRAY_IDENTIFIER _ square_brackets
    atomic_expression$subexpression$1 →  ● array_subscript
    atomic_expression →  ● atomic_expression$subexpression$1
    asteriskless_andless_expression$subexpression$1 →  ● atomic_expression
    asteriskless_andless_expression →  ● asteriskless_andless_expression$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● asteriskless_andless_expression
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    other_clause$ebnf$1 → other_clause$ebnf$1 ● free_form_sql
    other_clause → %RESERVED_CLAUSE ● other_clause$ebnf$1
    clause$subexpression$1 →  ● other_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    parenthesis → "(" ● expressions_or_clauses ")"
    function_call → %RESERVED_FUNCTION_NAME _ ● parenthesis
    atomic_expression$subexpression$1 →  ● function_call
    atomic_expression →  ● atomic_expression$subexpression$1
    asteriskless_andless_expression$subexpression$1 →  ● atomic_expression
    asteriskless_andless_expression →  ● asteriskless_andless_expression$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● asteriskless_andless_expression
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    select_clause$subexpression$1$ebnf$2 → select_clause$subexpression$1$ebnf$2 ● free_form_sql
    select_clause$subexpression$1 → asteriskless_free_form_sql ● select_clause$subexpression$1$ebnf$2
    select_clause → %RESERVED_SELECT ● select_clause$subexpression$1
    clause$subexpression$1 →  ● select_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    statement →  ● expressions_or_clauses statement$subexpression$1
    main$ebnf$1 → main$ebnf$1 ● statement
    main →  ● main$ebnf$1
A ARRAY_KEYWORD token based on:
    array_subscript →  ● %ARRAY_KEYWORD _ square_brackets
    atomic_expression$subexpression$1 →  ● array_subscript
    atomic_expression →  ● atomic_expression$subexpression$1
    asteriskless_andless_expression$subexpression$1 →  ● atomic_expression
    asteriskless_andless_expression →  ● asteriskless_andless_expression$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● asteriskless_andless_expression
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    other_clause$ebnf$1 → other_clause$ebnf$1 ● free_form_sql
    other_clause → %RESERVED_CLAUSE ● other_clause$ebnf$1
    clause$subexpression$1 →  ● other_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    parenthesis → "(" ● expressions_or_clauses ")"
    function_call → %RESERVED_FUNCTION_NAME _ ● parenthesis
    atomic_expression$subexpression$1 →  ● function_call
    atomic_expression →  ● atomic_expression$subexpression$1
    asteriskless_andless_expression$subexpression$1 →  ● atomic_expression
    asteriskless_andless_expression →  ● asteriskless_andless_expression$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● asteriskless_andless_expression
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    select_clause$subexpression$1$ebnf$2 → select_clause$subexpression$1$ebnf$2 ● free_form_sql
    select_clause$subexpression$1 → asteriskless_free_form_sql ● select_clause$subexpression$1$ebnf$2
    select_clause → %RESERVED_SELECT ● select_clause$subexpression$1
    clause$subexpression$1 →  ● select_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    statement →  ● expressions_or_clauses statement$subexpression$1
    main$ebnf$1 → main$ebnf$1 ● statement
    main →  ● main$ebnf$1
A RESERVED_FUNCTION_NAME token based on:
    function_call →  ● %RESERVED_FUNCTION_NAME _ parenthesis
    atomic_expression$subexpression$1 →  ● function_call
    atomic_expression →  ● atomic_expression$subexpression$1
    asteriskless_andless_expression$subexpression$1 →  ● atomic_expression
    asteriskless_andless_expression →  ● asteriskless_andless_expression$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● asteriskless_andless_expression
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    other_clause$ebnf$1 → other_clause$ebnf$1 ● free_form_sql
    other_clause → %RESERVED_CLAUSE ● other_clause$ebnf$1
    clause$subexpression$1 →  ● other_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    parenthesis → "(" ● expressions_or_clauses ")"
    function_call → %RESERVED_FUNCTION_NAME _ ● parenthesis
    atomic_expression$subexpression$1 →  ● function_call
    atomic_expression →  ● atomic_expression$subexpression$1
    asteriskless_andless_expression$subexpression$1 →  ● atomic_expression
    asteriskless_andless_expression →  ● asteriskless_andless_expression$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● asteriskless_andless_expression
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    select_clause$subexpression$1$ebnf$2 → select_clause$subexpression$1$ebnf$2 ● free_form_sql
    select_clause$subexpression$1 → asteriskless_free_form_sql ● select_clause$subexpression$1$ebnf$2
    select_clause → %RESERVED_SELECT ● select_clause$subexpression$1
    clause$subexpression$1 →  ● select_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    statement →  ● expressions_or_clauses statement$subexpression$1
    main$ebnf$1 → main$ebnf$1 ● statement
    main →  ● main$ebnf$1
A "(" based on:
    parenthesis →  ● "(" expressions_or_clauses ")"
    atomic_expression$subexpression$1 →  ● parenthesis
    atomic_expression →  ● atomic_expression$subexpression$1
    asteriskless_andless_expression$subexpression$1 →  ● atomic_expression
    asteriskless_andless_expression →  ● asteriskless_andless_expression$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● asteriskless_andless_expression
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    other_clause$ebnf$1 → other_clause$ebnf$1 ● free_form_sql
    other_clause → %RESERVED_CLAUSE ● other_clause$ebnf$1
    clause$subexpression$1 →  ● other_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    parenthesis → "(" ● expressions_or_clauses ")"
    function_call → %RESERVED_FUNCTION_NAME _ ● parenthesis
    atomic_expression$subexpression$1 →  ● function_call
    atomic_expression →  ● atomic_expression$subexpression$1
    asteriskless_andless_expression$subexpression$1 →  ● atomic_expression
    asteriskless_andless_expression →  ● asteriskless_andless_expression$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● asteriskless_andless_expression
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    select_clause$subexpression$1$ebnf$2 → select_clause$subexpression$1$ebnf$2 ● free_form_sql
    select_clause$subexpression$1 → asteriskless_free_form_sql ● select_clause$subexpression$1$ebnf$2
    select_clause → %RESERVED_SELECT ● select_clause$subexpression$1
    clause$subexpression$1 →  ● select_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    statement →  ● expressions_or_clauses statement$subexpression$1
    main$ebnf$1 → main$ebnf$1 ● statement
    main →  ● main$ebnf$1
A "{" based on:
    curly_braces →  ● "{" curly_braces$ebnf$1 "}"
    atomic_expression$subexpression$1 →  ● curly_braces
    atomic_expression →  ● atomic_expression$subexpression$1
    asteriskless_andless_expression$subexpression$1 →  ● atomic_expression
    asteriskless_andless_expression →  ● asteriskless_andless_expression$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● asteriskless_andless_expression
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    other_clause$ebnf$1 → other_clause$ebnf$1 ● free_form_sql
    other_clause → %RESERVED_CLAUSE ● other_clause$ebnf$1
    clause$subexpression$1 →  ● other_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    parenthesis → "(" ● expressions_or_clauses ")"
    function_call → %RESERVED_FUNCTION_NAME _ ● parenthesis
    atomic_expression$subexpression$1 →  ● function_call
    atomic_expression →  ● atomic_expression$subexpression$1
    asteriskless_andless_expression$subexpression$1 →  ● atomic_expression
    asteriskless_andless_expression →  ● asteriskless_andless_expression$subexpression$1
    asteriskless_free_form_sql$subexpression$1 →  ● asteriskless_andless_expression
    asteriskless_free_form_sql →  ● asteriskless_free_form_sql$subexpression$1
    free_form_sql$subexpression$1 →  ● asteriskless_free_form_sql
    free_form_sql →  ● free_form_sql$subexpression$1
    select_clause$subexpression$1$ebnf$2 → select_clause$subexpression$1$ebnf$2 ● free_form_sql
    select_clause$subexpression$1 → asteriskless_free_form_sql ● select_clause$subexpression$1$ebnf$2
    select_clause → %RESERVED_SELECT ● select_clause$subexpression$1
    clause$subexpression$1 →  ● select_clause
    clause →  ● clause$subexpression$1
    expressions_or_clauses$ebnf$2 → expressions_or_clauses$ebnf$2 ● clause
    expressions_or_clauses → expressions_or_clauses$ebnf$1 ● expressions_or_clauses$ebnf$2
    statement →  ● expressions_or_clauses statement$subexpression$1
    main$ebnf$1 → main$ebnf$1 ● statement
    main →  ● main$ebnf$1

There is only one sql expressin in that file:

`
      SELECT
        msi1.uid,
        msi1.name,
        msi1.enabled,
        msi1.authentication_token "authenticationToken",
        CASE
          WHEN msi1.healthy IS NULL THEN 'pending'
          WHEN msi1.healthy = FALSE THEN 'unhealthy'
          ELSE fm1.state
        END AS "state",
        json_build_object(
          'uid',
          ms1.uid,
          'slug',
          coalesce(ms1.slug, gr1.name),
          'name',
          ms1.name,
          'argumentsJsonSchema',
          ms1.arguments_json_schema,
          'githubRepository',
          json_build_object(
            'name',
            gr1.name,
            'owner',
          ms1.arguments_json_schema
        ) "mcpServer"
      FROM
        mcp_server_instance msi1
        INNER JOIN fly_app fa1 ON fa1.id = msi1.fly_app_id
        -- TODO evaluate how we handle this
        INNER JOIN LATERAL (
          SELECT
            *
          FROM
            fly_machine fm1
          WHERE
            fm1.fly_app_id = fa1.id
          ORDER BY
            fm1.created_at DESC
          LIMIT
            1
        ) fm1 ON TRUE
        INNER JOIN mcp_server ms1 ON ms1.id = msi1.mcp_server_id
      WHERE
        msi1.id = ${mcpServerInstanceId}
    `

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions