{
"name": "sql",
"rules": {
"source_file": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
},
"_statement": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "select_statement"
},
{
"type": "SYMBOL",
"name": "create_type_statement"
},
{
"type": "SYMBOL",
"name": "create_domain_statement"
},
{
"type": "SYMBOL",
"name": "create_index_statement"
},
{
"type": "SYMBOL",
"name": "create_table_statement"
},
{
"type": "SYMBOL",
"name": "create_function_statement"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "BLANK"
}
]
}
]
},
"create_function_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[cC][rR][eE][aA][tT][eE][ ][fF][uU][nN][cC][tT][iI][oO][nN]"
},
"named": false,
"value": "CREATE FUNCTION"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "create_function_parameters"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[rR][eE][tT][uU][rR][nN][sS]"
},
"named": false,
"value": "RETURNS"
},
{
"type": "SYMBOL",
"name": "_create_function_return_type"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_function_language"
},
{
"type": "SYMBOL",
"name": "_function_body"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_function_optimizer_hint"
},
"named": true,
"value": "optimizer_hint"
}
]
}
}
]
},
"_function_optimizer_hint": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[vV][oO][lL][aA][tT][iI][lL][eE]"
},
"named": false,
"value": "VOLATILE"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[iI][mM][mM][uU][tT][aA][bB][lL][eE]"
},
"named": false,
"value": "IMMUTABLE"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[sS][tT][aA][bB][lL][eE]"
},
"named": false,
"value": "STABLE"
}
]
},
"_function_language": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[lL][aA][nN][gG][uU][aA][gG][eE]"
},
"named": false,
"value": "LANGUAGE"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "identifier"
},
"named": true,
"value": "language"
}
]
},
"_create_function_return_type": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_type"
},
{
"type": "SYMBOL",
"name": "setof"
},
{
"type": "SYMBOL",
"name": "constrained_type"
}
]
},
"setof": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[sS][eE][tT][oO][fF]"
},
"named": false,
"value": "SETOF"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_type"
},
{
"type": "SYMBOL",
"name": "constrained_type"
}
]
}
]
},
"constrained_type": {
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_type"
},
{
"type": "ALIAS",
"content": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[nN][oO][tT][ ][nN][uU][lL][lL]"
},
"named": false,
"value": "NOT NULL"
},
"named": true,
"value": "not_null"
}
]
}
]
},
"create_function_parameter": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_type"
},
{
"type": "SYMBOL",
"name": "constrained_type"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_expression"
},
"named": true,
"value": "default"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"create_function_parameters": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "create_function_parameter"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "create_function_parameter"
}
]
}
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"_function_body": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[aA][sS]"
},
"named": false,
"value": "AS"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "string"
},
"named": true,
"value": "function_body"
}
]
},
"create_domain_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[cC][rR][eE][aA][tT][eE][ ][dD][oO][mM][aA][iI][nN]"
},
"named": false,
"value": "CREATE DOMAIN"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[aA][sS]"
},
"named": false,
"value": "AS"
},
{
"type": "SYMBOL",
"name": "_type"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "null_constraint"
},
{
"type": "SYMBOL",
"name": "check_constraint"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"create_type_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[cC][rR][eE][aA][tT][eE][ ][tT][yY][pP][eE]"
},
"named": false,
"value": "CREATE TYPE"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[aA][sS]"
},
"named": false,
"value": "AS"
},
{
"type": "SYMBOL",
"name": "parameters"
}
]
},
"create_index_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[cC][rR][eE][aA][tT][eE]"
},
"named": false,
"value": "CREATE"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "unique_constraint"
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[iI][nN][dD][eE][xX]"
},
"named": false,
"value": "INDEX"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[oO][nN]"
},
"named": false,
"value": "ON"
},
{
"type": "FIELD",
"name": "table",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "using_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "index_table_parameters"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "where_clause"
},
{
"type": "BLANK"
}
]
}
]
},
"create_table_column_parameter": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "_type"
}
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "column_default"
},
{
"type": "SYMBOL",
"name": "primary_key_constraint"
},
{
"type": "SYMBOL",
"name": "check_constraint"
},
{
"type": "SYMBOL",
"name": "references_constraint"
},
{
"type": "SYMBOL",
"name": "unique_constraint"
},
{
"type": "SYMBOL",
"name": "null_constraint"
},
{
"type": "SYMBOL",
"name": "named_constraint"
}
]
}
}
]
},
"named_constraint": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "CONSTRAINT"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
},
"column_default": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[dD][eE][fF][aA][uU][lL][tT]"
},
"named": false,
"value": "DEFAULT"
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_parenthesized_expression"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "function_call"
}
]
},
{
"type": "SYMBOL",
"name": "type_cast"
}
]
}
]
},
"create_table_parameters": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "create_table_column_parameter"
},
{
"type": "SYMBOL",
"name": "_table_constraint"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "create_table_column_parameter"
},
{
"type": "SYMBOL",
"name": "_table_constraint"
}
]
}
]
}
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"_table_constraint": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "table_constraint_foreign_key"
},
"named": true,
"value": "foreign_key"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "table_constraint_unique"
},
"named": true,
"value": "unique"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "table_constraint_primary_key"
},
"named": true,
"value": "primary_key"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "table_constraint_check"
},
"named": true,
"value": "check"
}
]
},
"table_constraint_check": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[cC][hH][eE][cC][kK]"
},
"named": false,
"value": "CHECK"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
"table_constraint_foreign_key": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[fF][oO][rR][eE][iI][gG][nN][ ][kK][eE][yY]"
},
"named": false,
"value": "FOREIGN KEY"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
}
]
},
{
"type": "STRING",
"value": ")"
},
{
"type": "SYMBOL",
"name": "references_constraint"
}
]
},
"table_constraint_unique": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[uU][nN][iI][qQ][uU][eE]"
},
"named": false,
"value": "UNIQUE"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"table_constraint_primary_key": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[pP][rR][iI][mM][aA][rR][yY][ ][kK][eE][yY]"
},
"named": false,
"value": "PRIMARY KEY"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"primary_key_constraint": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[pP][rR][iI][mM][aA][rR][yY][ ][kK][eE][yY]"
},
"named": false,
"value": "PRIMARY KEY"
},
"create_table_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[cC][rR][eE][aA][tT][eE][ ][tT][aA][bB][lL][eE]"
},
"named": false,
"value": "CREATE TABLE"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "create_table_parameters"
}
]
},
"using_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[uU][sS][iI][nN][gG]"
},
"named": false,
"value": "USING"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
"index_table_parameters": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "SYMBOL",
"name": "ordered_expression"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "SYMBOL",
"name": "ordered_expression"
}
]
}
]
}
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"select_statement": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "select_clause"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "from_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "where_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "group_by_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "order_by_clause"
},
{
"type": "BLANK"
}
]
}
]
},
"group_by_clause_body": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
}
]
},
"group_by_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[gG][rR][oO][uU][pP][ ][bB][yY]"
},
"named": false,
"value": "GROUP BY"
},
{
"type": "SYMBOL",
"name": "group_by_clause_body"
}
]
},
"order_by_clause_body": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
}
]
},
"order_by_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[oO][rR][dD][eE][rR][ ][bB][yY]"
},
"named": false,
"value": "ORDER BY"
},
{
"type": "SYMBOL",
"name": "order_by_clause_body"
}
]
},
"where_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[wW][hH][eE][rR][eE]"
},
"named": false,
"value": "WHERE"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
"_aliased_expression": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[aA][sS]"
},
"named": false,
"value": "AS"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
},
"_aliasable_expression": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_aliased_expression"
},
"named": true,
"value": "alias"
}
]
},
"select_clause_body": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_aliasable_expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_aliasable_expression"
}
]
}
}
]
},
"select_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[sS][eE][lL][eE][cC][tT]"
},
"named": false,
"value": "SELECT"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "select_clause_body"
},
{
"type": "BLANK"
}
]
}
]
},
"from_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[fF][rR][oO][mM]"
},
"named": false,
"value": "FROM"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_aliasable_expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_aliasable_expression"
}
]
}
}
]
}
]
},
"in_expression": {
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[nN][oO][tT]"
},
"named": false,
"value": "NOT"
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[iI][nN]"
},
"named": false,
"value": "IN"
},
{
"type": "SYMBOL",
"name": "tuple"
}
]
}
},
"tuple": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "elements",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
}
]
}
},
{
"type": "STRING",
"value": ")"
}
]
},
"references_constraint": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[rR][eE][fF][eE][rR][eE][nN][cC][eE][sS]"
},
"named": false,
"value": "REFERENCES"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "on_update_action"
},
{
"type": "SYMBOL",
"name": "on_delete_action"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "on_delete_action"
},
{
"type": "SYMBOL",
"name": "on_update_action"
}
]
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"on_update_action": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[oO][nN][ ][uU][pP][dD][aA][tT][eE]"
},
"named": false,
"value": "ON UPDATE"
},
{
"type": "FIELD",
"name": "action",
"content": {
"type": "SYMBOL",
"name": "_constraint_action"
}
}
]
},
"on_delete_action": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[oO][nN][ ][dD][eE][lL][eE][tT][eE]"
},
"named": false,
"value": "ON DELETE"
},
{
"type": "FIELD",
"name": "action",
"content": {
"type": "SYMBOL",
"name": "_constraint_action"
}
}
]
},
"_constraint_action": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[rR][eE][sS][tT][rR][iI][cC][tT]"
},
"named": false,
"value": "RESTRICT"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[cC][aA][sS][cC][aA][dD][eE]"
},
"named": false,
"value": "CASCADE"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[sS][eE][tT][ ][nN][uU][lL][lL]"
},
"named": false,
"value": "SET NULL"
}
]
},
"unique_constraint": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[uU][nN][iI][qQ][uU][eE]"
},
"named": false,
"value": "UNIQUE"
},
"null_constraint": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[nN][oO][tT]"
},
"named": false,
"value": "NOT"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "NULL"
}
]
},
"check_constraint": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[cC][hH][eE][cC][kK]"
},
"named": false,
"value": "CHECK"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
"_constraint": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "null_constraint"
},
{
"type": "SYMBOL",
"name": "check_constraint"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "check_constraint"
},
{
"type": "BLANK"
}
]
}
]
},
"parameter": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "_type"
}
]
},
"parameters": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "parameter"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "parameter"
}
]
}
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"function_call": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "function",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "arguments",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
}
]
}
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"comparison_operator": {
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "<"
},
{
"type": "STRING",
"value": "<="
},
{
"type": "STRING",
"value": "<>"
},
{
"type": "STRING",
"value": "="
},
{
"type": "STRING",
"value": ">"
},
{
"type": "STRING",
"value": ">="
}
]
}
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
},
"_parenthesized_expression": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": ")"
}
]
},
"is_expression": {
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[iI][sS]"
},
"named": false,
"value": "is"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[nN][oO][tT]"
},
"named": false,
"value": "not"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "NULL"
},
{
"type": "SYMBOL",
"name": "TRUE"
},
{
"type": "SYMBOL",
"name": "FALSE"
},
{
"type": "SYMBOL",
"name": "distinct_from"
}
]
}
]
}
},
"distinct_from": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[dD][iI][sS][tT][iI][nN][cC][tT][ ][fF][rR][oO][mM]"
},
"named": false,
"value": "DISTINCT FROM"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
},
"boolean_expression": {
"type": "CHOICE",
"members": [
{
"type": "PREC_LEFT",
"value": 4,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[aA][nN][dD]"
},
"named": false,
"value": "AND"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
},
{
"type": "PREC_LEFT",
"value": 3,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[oO][rR]"
},
"named": false,
"value": "OR"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
}
]
},
"NULL": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[nN][uU][lL][lL]"
},
"named": false,
"value": "NULL"
},
"TRUE": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[tT][rR][uU][eE]"
},
"named": false,
"value": "TRUE"
},
"FALSE": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[fF][aA][lL][sS][eE]"
},
"named": false,
"value": "FALSE"
},
"number": {
"type": "PATTERN",
"value": "\\d+"
},
"identifier": {
"type": "PATTERN",
"value": "[a-zA-Z0-9_]+[.a-zA-Z0-9_]*"
},
"string": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "'"
},
{
"type": "FIELD",
"name": "content",
"content": {
"type": "PATTERN",
"value": "[^']*"
}
},
{
"type": "STRING",
"value": "'"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "$$"
},
{
"type": "FIELD",
"name": "content",
"content": {
"type": "PATTERN",
"value": "(\\$?[^$]+)+"
}
},
{
"type": "STRING",
"value": "$$"
}
]
}
]
},
"field_access": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": "->>"
},
{
"type": "SYMBOL",
"name": "string"
}
]
},
"ordered_expression": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "FIELD",
"name": "order",
"content": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[aA][sS][cC]"
},
"named": false,
"value": "ASC"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[dD][eE][sS][cC]"
},
"named": false,
"value": "DESC"
}
]
}
}
]
},
"_type_alias": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "identifier"
},
"named": true,
"value": "type"
},
"array_type": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_type"
},
{
"type": "STRING",
"value": "["
},
{
"type": "STRING",
"value": "]"
}
]
},
"_type": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_type_alias"
},
{
"type": "SYMBOL",
"name": "array_type"
}
]
},
"type_cast": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_parenthesized_expression"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "function_call"
}
]
},
{
"type": "STRING",
"value": "::"
},
{
"type": "SYMBOL",
"name": "_type"
}
]
},
"comment": {
"type": "TOKEN",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "--"
},
{
"type": "PATTERN",
"value": ".*"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "/*"
},
{
"type": "PATTERN",
"value": "[^*]*\\*+([^/*][^*]*\\*+)*"
},
{
"type": "STRING",
"value": "/"
}
]
}
]
}
},
"binary_expression": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": "~"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": "+"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
]
}
},
"_expression": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "function_call"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "field_access"
},
{
"type": "SYMBOL",
"name": "TRUE"
},
{
"type": "SYMBOL",
"name": "FALSE"
},
{
"type": "SYMBOL",
"name": "NULL"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "comparison_operator"
},
{
"type": "SYMBOL",
"name": "in_expression"
},
{
"type": "SYMBOL",
"name": "is_expression"
},
{
"type": "SYMBOL",
"name": "boolean_expression"
},
{
"type": "SYMBOL",
"name": "_parenthesized_expression"
},
{
"type": "SYMBOL",
"name": "type_cast"
},
{
"type": "SYMBOL",
"name": "binary_expression"
}
]
}
},
"extras": [
{
"type": "SYMBOL",
"name": "comment"
},
{
"type": "PATTERN",
"value": "[\\s\\f\\uFEFF\\u2060\\u200B]|\\\\\\r?\\n"
}
],
"conflicts": [],
"precedences": [],
"externals": [],
"inline": [],
"supertypes": []
}