{
"$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json",
"name": "ggsql",
"word": "bare_identifier",
"rules": {
"query": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "sql_portion"
},
{
"type": "BLANK"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "visualise_statement"
}
}
]
},
"sql_portion": {
"type": "CHOICE",
"members": [
{
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "sql_statement"
},
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "sql_statement"
},
{
"type": "BLANK"
}
]
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "BLANK"
}
]
}
]
}
},
{
"type": "SYMBOL",
"name": "sql_statement"
}
]
},
"sql_statement": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "with_statement"
},
{
"type": "SYMBOL",
"name": "select_statement"
},
{
"type": "SYMBOL",
"name": "create_statement"
},
{
"type": "SYMBOL",
"name": "insert_statement"
},
{
"type": "SYMBOL",
"name": "update_statement"
},
{
"type": "SYMBOL",
"name": "delete_statement"
},
{
"type": "SYMBOL",
"name": "other_sql_statement"
}
]
},
"select_statement": {
"type": "PREC",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[sS][eE][lL][eE][cC][tT]"
},
{
"type": "SYMBOL",
"name": "select_body"
}
]
}
},
"select_body": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "from_clause"
},
{
"type": "SYMBOL",
"name": "window_function"
},
{
"type": "SYMBOL",
"name": "cast_expression"
},
{
"type": "SYMBOL",
"name": "function_call"
},
{
"type": "SYMBOL",
"name": "sql_keyword"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "STRING",
"value": ","
},
{
"type": "STRING",
"value": "*"
},
{
"type": "STRING",
"value": "."
},
{
"type": "STRING",
"value": "="
},
{
"type": "STRING",
"value": "<"
},
{
"type": "STRING",
"value": ">"
},
{
"type": "STRING",
"value": "!"
},
{
"type": "STRING",
"value": "+"
},
{
"type": "STRING",
"value": "-"
},
{
"type": "STRING",
"value": "/"
},
{
"type": "STRING",
"value": "%"
},
{
"type": "STRING",
"value": "|"
},
{
"type": "STRING",
"value": "&"
},
{
"type": "STRING",
"value": "^"
},
{
"type": "STRING",
"value": "~"
},
{
"type": "STRING",
"value": "::"
},
{
"type": "SYMBOL",
"name": "subquery"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
}
},
"with_statement": {
"type": "PREC_RIGHT",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[wW][iI][tT][hH]"
},
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[rR][eE][cC][uU][rR][sS][iI][vV][eE]"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "cte_definition"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "cte_definition"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "select_statement"
},
{
"type": "BLANK"
}
]
}
]
}
},
"cte_definition": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "PATTERN",
"value": "[aA][sS]"
},
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "with_statement"
},
{
"type": "SYMBOL",
"name": "select_statement"
},
{
"type": "SYMBOL",
"name": "subquery_body"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"create_statement": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[cC][rR][eE][aA][tT][eE]"
},
{
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "sql_keyword"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "subquery"
},
{
"type": "STRING",
"value": ","
},
{
"type": "STRING",
"value": "("
},
{
"type": "STRING",
"value": ")"
},
{
"type": "STRING",
"value": "*"
},
{
"type": "STRING",
"value": "."
},
{
"type": "STRING",
"value": "="
},
{
"type": "PATTERN",
"value": "[^\\s;(),'\"]+"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "select_statement"
},
{
"type": "BLANK"
}
]
}
]
}
},
"insert_statement": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[iI][nN][sS][eE][rR][tT]"
},
{
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "sql_keyword"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "subquery"
},
{
"type": "STRING",
"value": ","
},
{
"type": "STRING",
"value": "("
},
{
"type": "STRING",
"value": ")"
},
{
"type": "STRING",
"value": "*"
},
{
"type": "STRING",
"value": "."
},
{
"type": "STRING",
"value": "="
},
{
"type": "PATTERN",
"value": "[^\\s;(),'\"]+"
}
]
}
}
]
}
},
"update_statement": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[uU][pP][dD][aA][tT][eE]"
},
{
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "sql_keyword"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "subquery"
},
{
"type": "STRING",
"value": ","
},
{
"type": "STRING",
"value": "("
},
{
"type": "STRING",
"value": ")"
},
{
"type": "STRING",
"value": "*"
},
{
"type": "STRING",
"value": "."
},
{
"type": "STRING",
"value": "="
},
{
"type": "PATTERN",
"value": "[^\\s;(),'\"]+"
}
]
}
}
]
}
},
"delete_statement": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[dD][eE][lL][eE][tT][eE]"
},
{
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "sql_keyword"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "subquery"
},
{
"type": "STRING",
"value": ","
},
{
"type": "STRING",
"value": "("
},
{
"type": "STRING",
"value": ")"
},
{
"type": "STRING",
"value": "*"
},
{
"type": "STRING",
"value": "."
},
{
"type": "STRING",
"value": "="
},
{
"type": "PATTERN",
"value": "[^\\s;(),'\"]+"
}
]
}
}
]
}
},
"other_sql_statement": {
"type": "PREC",
"value": -1,
"content": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "sql_keyword"
},
{
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[^\\s;(),'\"WwSsCcIiUuDdVv]+"
}
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "subquery"
},
{
"type": "STRING",
"value": ","
},
{
"type": "STRING",
"value": "("
},
{
"type": "STRING",
"value": ")"
},
{
"type": "STRING",
"value": "*"
},
{
"type": "STRING",
"value": "."
},
{
"type": "STRING",
"value": "="
}
]
}
}
},
"subquery": {
"type": "PREC",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "with_statement"
},
{
"type": "SYMBOL",
"name": "select_statement"
},
{
"type": "SYMBOL",
"name": "subquery_body"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
},
"scalar_subquery": {
"type": "PREC",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "with_statement"
},
{
"type": "SYMBOL",
"name": "select_statement"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
},
"subquery_body": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "window_function"
},
{
"type": "SYMBOL",
"name": "cast_expression"
},
{
"type": "SYMBOL",
"name": "function_call"
},
{
"type": "SYMBOL",
"name": "sql_keyword"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "subquery"
},
{
"type": "STRING",
"value": ","
},
{
"type": "STRING",
"value": "*"
},
{
"type": "STRING",
"value": "."
},
{
"type": "STRING",
"value": "="
},
{
"type": "STRING",
"value": "<"
},
{
"type": "STRING",
"value": ">"
},
{
"type": "STRING",
"value": "!"
},
{
"type": "STRING",
"value": "::"
},
{
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[^\\s;(),'\\\"]+"
}
}
]
}
},
"cast_expression": {
"type": "PREC",
"value": 3,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[cC][aA][sS][tT]"
},
{
"type": "PATTERN",
"value": "[tT][rR][yY][__][cC][aA][sS][tT]"
}
]
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "position_arg"
},
{
"type": "PATTERN",
"value": "[aA][sS]"
},
{
"type": "SYMBOL",
"name": "type_name"
},
{
"type": "STRING",
"value": ")"
}
]
}
},
"type_name": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "number"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"function_call": {
"type": "PREC",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "function_args"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
},
"sql_keyword": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[fF][rR][oO][mM]"
},
{
"type": "PATTERN",
"value": "[wW][hH][eE][rR][eE]"
},
{
"type": "PATTERN",
"value": "[jJ][oO][iI][nN]"
},
{
"type": "PATTERN",
"value": "[lL][eE][fF][tT]"
},
{
"type": "PATTERN",
"value": "[rR][iI][gG][hH][tT]"
},
{
"type": "PATTERN",
"value": "[iI][nN][nN][eE][rR]"
},
{
"type": "PATTERN",
"value": "[oO][uU][tT][eE][rR]"
},
{
"type": "PATTERN",
"value": "[lL][aA][tT][eE][rR][aA][lL]"
},
{
"type": "PATTERN",
"value": "[cC][rR][oO][sS][sS]"
},
{
"type": "PATTERN",
"value": "[nN][aA][tT][uU][rR][aA][lL]"
},
{
"type": "PATTERN",
"value": "[fF][uU][lL][lL]"
},
{
"type": "PATTERN",
"value": "[oO][nN]"
},
{
"type": "PATTERN",
"value": "[aA][nN][dD]"
},
{
"type": "PATTERN",
"value": "[oO][rR]"
},
{
"type": "PATTERN",
"value": "[nN][oO][tT]"
},
{
"type": "PATTERN",
"value": "[iI][nN]"
},
{
"type": "PATTERN",
"value": "[eE][xX][iI][sS][tT][sS]"
},
{
"type": "PATTERN",
"value": "[bB][eE][tT][wW][eE][eE][nN]"
},
{
"type": "PATTERN",
"value": "[lL][iI][kK][eE]"
},
{
"type": "PATTERN",
"value": "[oO][rR][dD][eE][rR]"
},
{
"type": "PATTERN",
"value": "[gG][rR][oO][uU][pP]"
},
{
"type": "PATTERN",
"value": "[bB][yY]"
},
{
"type": "PATTERN",
"value": "[hH][aA][vV][iI][nN][gG]"
},
{
"type": "PATTERN",
"value": "[lL][iI][mM][iI][tT]"
},
{
"type": "PATTERN",
"value": "[oO][fF][fF][sS][eE][tT]"
},
{
"type": "PATTERN",
"value": "[dD][iI][sS][tT][iI][nN][cC][tT]"
},
{
"type": "PATTERN",
"value": "[aA][lL][lL]"
},
{
"type": "PATTERN",
"value": "[aA][sS][cC]"
},
{
"type": "PATTERN",
"value": "[dD][eE][sS][cC]"
},
{
"type": "PATTERN",
"value": "[iI][nN][tT][oO]"
},
{
"type": "PATTERN",
"value": "[vV][aA][lL][uU][eE][sS]"
},
{
"type": "PATTERN",
"value": "[sS][eE][tT]"
},
{
"type": "PATTERN",
"value": "[tT][aA][bB][lL][eE]"
},
{
"type": "PATTERN",
"value": "[tT][eE][mM][pP]"
},
{
"type": "PATTERN",
"value": "[tT][eE][mM][pP][oO][rR][aA][rR][yY]"
},
{
"type": "PATTERN",
"value": "[vV][iI][eE][wW]"
},
{
"type": "PATTERN",
"value": "[iI][nN][dD][eE][xX]"
},
{
"type": "PATTERN",
"value": "[dD][aA][tT][aA][bB][aA][sS][eE]"
},
{
"type": "PATTERN",
"value": "[sS][cC][hH][eE][mM][aA]"
},
{
"type": "PATTERN",
"value": "[oO][vV][eE][rR]"
},
{
"type": "PATTERN",
"value": "[rR][oO][wW][sS]"
},
{
"type": "PATTERN",
"value": "[rR][aA][nN][gG][eE]"
},
{
"type": "PATTERN",
"value": "[uU][nN][bB][oO][uU][nN][dD][eE][dD]"
},
{
"type": "PATTERN",
"value": "[pP][rR][eE][cC][eE][dD][iI][nN][gG]"
},
{
"type": "PATTERN",
"value": "[fF][oO][lL][lL][oO][wW][iI][nN][gG]"
},
{
"type": "PATTERN",
"value": "[cC][uU][rR][rR][eE][nN][tT]"
},
{
"type": "PATTERN",
"value": "[rR][oO][wW]"
},
{
"type": "PATTERN",
"value": "[nN][uU][lL][lL][sS]"
},
{
"type": "PATTERN",
"value": "[fF][iI][rR][sS][tT]"
},
{
"type": "PATTERN",
"value": "[lL][aA][sS][tT]"
},
{
"type": "PATTERN",
"value": "[qQ][uU][aA][lL][iI][fF][yY]"
},
{
"type": "PATTERN",
"value": "[uU][nN][iI][oO][nN]"
},
{
"type": "PATTERN",
"value": "[iI][nN][tT][eE][rR][sS][eE][cC][tT]"
},
{
"type": "PATTERN",
"value": "[eE][xX][cC][eE][pP][tT]"
}
]
},
"window_function": {
"type": "PREC",
"value": 4,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "function",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "function_args"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
},
{
"type": "PATTERN",
"value": "[oO][vV][eE][rR]"
},
{
"type": "SYMBOL",
"name": "window_specification"
}
]
}
},
"function_args": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "function_arg"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "function_arg"
}
]
}
}
]
},
"function_arg": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "named_arg"
},
{
"type": "SYMBOL",
"name": "position_arg"
}
]
},
"named_arg": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ":="
},
{
"type": "STRING",
"value": "=>"
}
]
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "position_arg"
}
}
]
},
"position_arg": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "qualified_name"
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "STRING",
"value": "*"
},
{
"type": "SYMBOL",
"name": "cast_expression"
},
{
"type": "SYMBOL",
"name": "function_call"
},
{
"type": "SYMBOL",
"name": "scalar_subquery"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "position_arg"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "+"
},
{
"type": "STRING",
"value": "-"
},
{
"type": "STRING",
"value": "*"
},
{
"type": "STRING",
"value": "/"
},
{
"type": "STRING",
"value": "%"
},
{
"type": "STRING",
"value": "||"
},
{
"type": "STRING",
"value": "::"
},
{
"type": "STRING",
"value": "<"
},
{
"type": "STRING",
"value": ">"
},
{
"type": "STRING",
"value": "<="
},
{
"type": "STRING",
"value": ">="
},
{
"type": "STRING",
"value": "="
},
{
"type": "STRING",
"value": "!="
},
{
"type": "STRING",
"value": "<>"
}
]
},
{
"type": "SYMBOL",
"name": "position_arg"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "position_arg"
},
{
"type": "STRING",
"value": ")"
}
]
}
]
}
},
"namespaced_identifier": {
"type": "TOKEN",
"content": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[a-zA-Z_][a-zA-Z0-9_]*:[a-zA-Z_][a-zA-Z0-9_]*"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "`"
},
{
"type": "PATTERN",
"value": "[a-zA-Z_][a-zA-Z0-9_]*:[a-zA-Z_][a-zA-Z0-9_]*"
},
{
"type": "STRING",
"value": "`"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\""
},
{
"type": "PATTERN",
"value": "[a-zA-Z_][a-zA-Z0-9_]*:[a-zA-Z_][a-zA-Z0-9_]*"
},
{
"type": "STRING",
"value": "\""
}
]
}
]
}
},
"window_specification": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "window_partition_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "window_order_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "frame_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"window_partition_clause": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[pP][aA][rR][tT][iI][tT][iI][oO][nN]"
},
{
"type": "PATTERN",
"value": "[bB][yY]"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
}
]
},
"window_order_clause": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[oO][rR][dD][eE][rR]"
},
{
"type": "PATTERN",
"value": "[bB][yY]"
},
{
"type": "SYMBOL",
"name": "order_item"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "order_item"
}
]
}
}
]
},
"order_item": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[aA][sS][cC]"
},
{
"type": "PATTERN",
"value": "[dD][eE][sS][cC]"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[nN][uU][lL][lL][sS]"
},
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[fF][iI][rR][sS][tT]"
},
{
"type": "PATTERN",
"value": "[lL][aA][sS][tT]"
}
]
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"frame_clause": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[rR][oO][wW][sS]"
},
{
"type": "PATTERN",
"value": "[rR][aA][nN][gG][eE]"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[bB][eE][tT][wW][eE][eE][nN]"
},
{
"type": "SYMBOL",
"name": "frame_bound"
},
{
"type": "PATTERN",
"value": "[aA][nN][dD]"
},
{
"type": "SYMBOL",
"name": "frame_bound"
}
]
},
{
"type": "SYMBOL",
"name": "frame_bound"
}
]
}
]
},
"frame_bound": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[uU][nN][bB][oO][uU][nN][dD][eE][dD]"
},
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[pP][rR][eE][cC][eE][dD][iI][nN][gG]"
},
{
"type": "PATTERN",
"value": "[fF][oO][lL][lL][oO][wW][iI][nN][gG]"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[cC][uU][rR][rR][eE][nN][tT]"
},
{
"type": "PATTERN",
"value": "[rR][oO][wW]"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[pP][rR][eE][cC][eE][dD][iI][nN][gG]"
},
{
"type": "PATTERN",
"value": "[fF][oO][lL][lL][oO][wW][iI][nN][gG]"
}
]
}
]
}
]
},
"qualified_name": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
}
]
}
},
"table_ref": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "table",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "qualified_name"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "namespaced_identifier"
}
]
}
},
{
"type": "SYMBOL",
"name": "subquery"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[aA][sS]"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "alias",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
"from_clause": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[fF][rR][oO][mM]"
},
{
"type": "SYMBOL",
"name": "table_ref"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "table_ref"
}
]
}
}
]
}
},
"visualise_statement": {
"type": "PREC_DYNAMIC",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "visualise_keyword"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "global_mapping"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "from_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "viz_clause"
}
}
]
}
},
"visualise_keyword": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 10,
"content": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[vV][iI][sS][uU][aA][lL][iI][sS][eE]"
},
{
"type": "PATTERN",
"value": "[vV][iI][sS][uU][aA][lL][iI][zZ][eE]"
}
]
}
}
},
"mapping_list": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "mapping_element"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "mapping_element"
}
]
}
}
]
},
"mapping_element": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "wildcard_mapping"
},
{
"type": "SYMBOL",
"name": "explicit_mapping"
},
{
"type": "SYMBOL",
"name": "implicit_mapping"
}
]
},
"wildcard_mapping": {
"type": "STRING",
"value": "*"
},
"explicit_mapping": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "mapping_value"
}
},
{
"type": "PATTERN",
"value": "[aA][sS]"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "aesthetic_name"
}
}
]
},
"implicit_mapping": {
"type": "SYMBOL",
"name": "identifier"
},
"global_mapping": {
"type": "SYMBOL",
"name": "mapping_list"
},
"viz_clause": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "draw_clause"
},
{
"type": "SYMBOL",
"name": "place_clause"
},
{
"type": "SYMBOL",
"name": "scale_clause"
},
{
"type": "SYMBOL",
"name": "facet_clause"
},
{
"type": "SYMBOL",
"name": "project_clause"
},
{
"type": "SYMBOL",
"name": "label_clause"
}
]
},
"draw_clause": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[dD][rR][aA][wW]"
},
{
"type": "SYMBOL",
"name": "geom_type"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "mapping_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "remapping_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "setting_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "filter_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "partition_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "order_clause"
},
{
"type": "BLANK"
}
]
}
]
},
"place_clause": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[pP][lL][aA][cC][eE]"
},
{
"type": "SYMBOL",
"name": "geom_type"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "setting_clause"
},
{
"type": "BLANK"
}
]
}
]
},
"remapping_clause": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[rR][eE][mM][aA][pP][pP][iI][nN][gG]"
},
{
"type": "SYMBOL",
"name": "mapping_list"
}
]
},
"geom_type": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "point"
},
{
"type": "STRING",
"value": "line"
},
{
"type": "STRING",
"value": "path"
},
{
"type": "STRING",
"value": "bar"
},
{
"type": "STRING",
"value": "area"
},
{
"type": "STRING",
"value": "tile"
},
{
"type": "STRING",
"value": "polygon"
},
{
"type": "STRING",
"value": "ribbon"
},
{
"type": "STRING",
"value": "histogram"
},
{
"type": "STRING",
"value": "density"
},
{
"type": "STRING",
"value": "smooth"
},
{
"type": "STRING",
"value": "boxplot"
},
{
"type": "STRING",
"value": "violin"
},
{
"type": "STRING",
"value": "text"
},
{
"type": "STRING",
"value": "label"
},
{
"type": "STRING",
"value": "segment"
},
{
"type": "STRING",
"value": "arrow"
},
{
"type": "STRING",
"value": "rule"
},
{
"type": "STRING",
"value": "errorbar"
}
]
},
"mapping_clause": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[mM][aA][pP][pP][iI][nN][gG]"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[fF][rR][oO][mM]"
},
{
"type": "FIELD",
"name": "layer_source",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "qualified_name"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "namespaced_identifier"
}
]
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "mapping_list"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[fF][rR][oO][mM]"
},
{
"type": "FIELD",
"name": "layer_source",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "qualified_name"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "namespaced_identifier"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
}
]
}
]
}
]
},
"mapping_value": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "column_reference"
},
{
"type": "SYMBOL",
"name": "literal_value"
}
]
},
"setting_clause": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[sS][eE][tT][tT][iI][nN][gG]"
},
{
"type": "SYMBOL",
"name": "parameter_assignment"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "parameter_assignment"
}
]
}
}
]
},
"parameter_assignment": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "parameter_name"
}
},
{
"type": "STRING",
"value": "=>"
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "parameter_value"
}
}
]
},
"parameter_name": {
"type": "SYMBOL",
"name": "identifier"
},
"parameter_value": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "boolean"
},
{
"type": "SYMBOL",
"name": "null_literal"
},
{
"type": "SYMBOL",
"name": "array"
}
]
},
"partition_clause": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[pP][aA][rR][tT][iI][tT][iI][oO][nN]"
},
{
"type": "PATTERN",
"value": "[bB][yY]"
},
{
"type": "SYMBOL",
"name": "partition_columns"
}
]
},
"partition_columns": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
}
]
},
"filter_clause": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[fF][iI][lL][tT][eE][rR]"
},
{
"type": "SYMBOL",
"name": "filter_expression"
}
]
},
"filter_expression": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "filter_token"
}
}
},
"filter_token": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[aA][nN][dD]"
},
{
"type": "PATTERN",
"value": "[oO][rR]"
},
{
"type": "PATTERN",
"value": "[nN][oO][tT]"
},
{
"type": "PATTERN",
"value": "[iI][nN]"
},
{
"type": "PATTERN",
"value": "[iI][sS]"
},
{
"type": "PATTERN",
"value": "[nN][uU][lL][lL]"
},
{
"type": "PATTERN",
"value": "[lL][iI][kK][eE]"
},
{
"type": "PATTERN",
"value": "[iI][lL][iI][kK][eE]"
},
{
"type": "PATTERN",
"value": "[bB][eE][tT][wW][eE][eE][nN]"
},
{
"type": "PATTERN",
"value": "[eE][xX][iI][sS][tT][sS]"
},
{
"type": "PATTERN",
"value": "[aA][nN][yY]"
},
{
"type": "PATTERN",
"value": "[aA][lL][lL]"
},
{
"type": "PATTERN",
"value": "[cC][aA][sS][eE]"
},
{
"type": "PATTERN",
"value": "[wW][hH][eE][nN]"
},
{
"type": "PATTERN",
"value": "[tT][hH][eE][nN]"
},
{
"type": "PATTERN",
"value": "[eE][lL][sS][eE]"
},
{
"type": "PATTERN",
"value": "[eE][nN][dD]"
},
{
"type": "PATTERN",
"value": "[cC][aA][sS][tT]"
},
{
"type": "PATTERN",
"value": "[aA][sS]"
},
{
"type": "PATTERN",
"value": "[tT][rR][uU][eE]"
},
{
"type": "PATTERN",
"value": "[fF][aA][lL][sS][eE]"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "filter_identifier"
},
{
"type": "TOKEN",
"content": {
"type": "STRING",
"value": "="
}
},
{
"type": "TOKEN",
"content": {
"type": "STRING",
"value": "!="
}
},
{
"type": "TOKEN",
"content": {
"type": "STRING",
"value": "<>"
}
},
{
"type": "TOKEN",
"content": {
"type": "STRING",
"value": "<="
}
},
{
"type": "TOKEN",
"content": {
"type": "STRING",
"value": ">="
}
},
{
"type": "TOKEN",
"content": {
"type": "STRING",
"value": "<"
}
},
{
"type": "TOKEN",
"content": {
"type": "STRING",
"value": ">"
}
},
{
"type": "TOKEN",
"content": {
"type": "STRING",
"value": "~*"
}
},
{
"type": "TOKEN",
"content": {
"type": "STRING",
"value": "!~*"
}
},
{
"type": "TOKEN",
"content": {
"type": "STRING",
"value": "!~"
}
},
{
"type": "TOKEN",
"content": {
"type": "STRING",
"value": "~"
}
},
{
"type": "TOKEN",
"content": {
"type": "STRING",
"value": "+"
}
},
{
"type": "TOKEN",
"content": {
"type": "STRING",
"value": "-"
}
},
{
"type": "TOKEN",
"content": {
"type": "STRING",
"value": "*"
}
},
{
"type": "TOKEN",
"content": {
"type": "STRING",
"value": "/"
}
},
{
"type": "TOKEN",
"content": {
"type": "STRING",
"value": "%"
}
},
{
"type": "TOKEN",
"content": {
"type": "STRING",
"value": "||"
}
},
{
"type": "TOKEN",
"content": {
"type": "STRING",
"value": "::"
}
},
{
"type": "TOKEN",
"content": {
"type": "STRING",
"value": "("
}
},
{
"type": "TOKEN",
"content": {
"type": "STRING",
"value": ")"
}
},
{
"type": "TOKEN",
"content": {
"type": "STRING",
"value": ","
}
},
{
"type": "TOKEN",
"content": {
"type": "STRING",
"value": "."
}
}
]
},
"order_clause": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[oO][rR][dD][eE][rR]"
},
{
"type": "PATTERN",
"value": "[bB][yY]"
},
{
"type": "SYMBOL",
"name": "order_expression"
}
]
},
"order_expression": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "order_token"
}
}
},
"order_token": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "PATTERN",
"value": "[aA][sS][cC]"
},
{
"type": "PATTERN",
"value": "[dD][eE][sS][cC]"
},
{
"type": "PATTERN",
"value": "[nN][uU][lL][lL][sS]"
},
{
"type": "PATTERN",
"value": "[fF][iI][rR][sS][tT]"
},
{
"type": "PATTERN",
"value": "[lL][aA][sS][tT]"
},
{
"type": "STRING",
"value": ","
},
{
"type": "STRING",
"value": "."
},
{
"type": "STRING",
"value": "("
},
{
"type": "STRING",
"value": ")"
}
]
},
"aesthetic_name": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "x"
},
{
"type": "STRING",
"value": "y"
},
{
"type": "STRING",
"value": "xmin"
},
{
"type": "STRING",
"value": "xmax"
},
{
"type": "STRING",
"value": "ymin"
},
{
"type": "STRING",
"value": "ymax"
},
{
"type": "STRING",
"value": "xend"
},
{
"type": "STRING",
"value": "yend"
},
{
"type": "STRING",
"value": "angle"
},
{
"type": "STRING",
"value": "radius"
},
{
"type": "STRING",
"value": "anglemin"
},
{
"type": "STRING",
"value": "anglemax"
},
{
"type": "STRING",
"value": "radiusmin"
},
{
"type": "STRING",
"value": "radiusmax"
},
{
"type": "STRING",
"value": "angleend"
},
{
"type": "STRING",
"value": "radiusend"
},
{
"type": "STRING",
"value": "weight"
},
{
"type": "STRING",
"value": "color"
},
{
"type": "STRING",
"value": "colour"
},
{
"type": "STRING",
"value": "fill"
},
{
"type": "STRING",
"value": "stroke"
},
{
"type": "STRING",
"value": "opacity"
},
{
"type": "STRING",
"value": "size"
},
{
"type": "STRING",
"value": "shape"
},
{
"type": "STRING",
"value": "linetype"
},
{
"type": "STRING",
"value": "linewidth"
},
{
"type": "STRING",
"value": "width"
},
{
"type": "STRING",
"value": "height"
},
{
"type": "STRING",
"value": "label"
},
{
"type": "STRING",
"value": "typeface"
},
{
"type": "STRING",
"value": "fontweight"
},
{
"type": "STRING",
"value": "italic"
},
{
"type": "STRING",
"value": "fontsize"
},
{
"type": "STRING",
"value": "hjust"
},
{
"type": "STRING",
"value": "vjust"
},
{
"type": "STRING",
"value": "rotation"
},
{
"type": "STRING",
"value": "slope"
},
{
"type": "STRING",
"value": "panel"
},
{
"type": "STRING",
"value": "row"
},
{
"type": "STRING",
"value": "column"
},
{
"type": "STRING",
"value": "offset"
},
{
"type": "STRING",
"value": "density"
},
{
"type": "STRING",
"value": "count"
},
{
"type": "STRING",
"value": "intensity"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
},
"column_reference": {
"type": "SYMBOL",
"name": "identifier"
},
"literal_value": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "boolean"
},
{
"type": "SYMBOL",
"name": "null_literal"
}
]
},
"scale_clause": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[sS][cC][aA][lL][eE]"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "scale_type_identifier"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "aesthetic_name"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "scale_from_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "scale_to_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "scale_via_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "setting_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "scale_renaming_clause"
},
{
"type": "BLANK"
}
]
}
]
},
"scale_renaming_clause": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[rR][eE][nN][aA][mM][iI][nN][gG]"
},
{
"type": "SYMBOL",
"name": "renaming_assignment"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "renaming_assignment"
}
]
}
}
]
},
"renaming_assignment": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "*"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "null_literal"
}
]
}
},
{
"type": "STRING",
"value": "=>"
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "null_literal"
}
]
}
}
]
},
"scale_type_identifier": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[cC][oO][nN][tT][iI][nN][uU][oO][uU][sS]"
},
{
"type": "PATTERN",
"value": "[dD][iI][sS][cC][rR][eE][tT][eE]"
},
{
"type": "PATTERN",
"value": "[bB][iI][nN][nN][eE][dD]"
},
{
"type": "PATTERN",
"value": "[oO][rR][dD][iI][nN][aA][lL]"
},
{
"type": "PATTERN",
"value": "[iI][dD][eE][nN][tT][iI][tT][yY]"
}
]
},
"scale_from_clause": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[fF][rR][oO][mM]"
},
{
"type": "SYMBOL",
"name": "array"
}
]
},
"scale_to_clause": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[tT][oO]"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "array"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
]
},
"scale_via_clause": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[vV][iI][aA]"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
},
"facet_clause": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[fF][aA][cC][eE][tT]"
},
{
"type": "SYMBOL",
"name": "facet_vars"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[bB][yY]"
},
"named": true,
"value": "facet_by"
},
{
"type": "SYMBOL",
"name": "facet_vars"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "setting_clause"
},
{
"type": "BLANK"
}
]
}
]
},
"facet_by": {
"type": "STRING",
"value": "BY"
},
"facet_vars": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
}
]
},
"project_clause": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[pP][rR][oO][jJ][eE][cC][tT]"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "project_aesthetics"
},
{
"type": "BLANK"
}
]
},
{
"type": "PATTERN",
"value": "[tT][oO]"
},
{
"type": "SYMBOL",
"name": "project_type"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[sS][eE][tT][tT][iI][nN][gG]"
},
{
"type": "SYMBOL",
"name": "project_properties"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"project_aesthetics": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
}
]
},
"project_type": {
"type": "SYMBOL",
"name": "identifier"
},
"project_properties": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "project_property"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "project_property"
}
]
}
}
]
},
"project_property": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "project_property_name"
}
},
{
"type": "STRING",
"value": "=>"
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "boolean"
},
{
"type": "SYMBOL",
"name": "array"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
}
]
},
"project_property_name": {
"type": "SYMBOL",
"name": "identifier"
},
"label_clause": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[lL][aA][bB][eE][lL]"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "label_assignment"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "label_assignment"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"label_assignment": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "label_type"
}
},
{
"type": "STRING",
"value": "=>"
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "null_literal"
}
]
}
}
]
},
"label_type": {
"type": "SYMBOL",
"name": "identifier"
},
"bare_identifier": {
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[a-zA-Z_][a-zA-Z0-9_]*"
}
},
"quoted_identifier": {
"type": "TOKEN",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "`"
},
{
"type": "PATTERN",
"value": "[^`]+"
},
{
"type": "STRING",
"value": "`"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\""
},
{
"type": "PATTERN",
"value": "[^\"]+"
},
{
"type": "STRING",
"value": "\""
}
]
}
]
}
},
"identifier": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "bare_identifier"
},
{
"type": "SYMBOL",
"name": "quoted_identifier"
}
]
},
"filter_identifier": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": -1,
"content": {
"type": "PATTERN",
"value": "[a-zA-Z_][a-zA-Z0-9_]*"
}
}
},
"number": {
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "-"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "\\d+"
},
{
"type": "PATTERN",
"value": "\\d+\\.\\d*"
},
{
"type": "PATTERN",
"value": "\\.\\d+"
}
]
}
]
}
},
"string": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "'"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[^'\\\\]"
},
{
"type": "PATTERN",
"value": "\\\\."
}
]
}
},
{
"type": "STRING",
"value": "'"
}
]
},
"boolean": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "true"
},
{
"type": "STRING",
"value": "false"
}
]
},
"array": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "array_element"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "array_element"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "]"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "array_element"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "array_element"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
]
},
"array_element": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "boolean"
},
{
"type": "SYMBOL",
"name": "null_literal"
}
]
},
"null_literal": {
"type": "PATTERN",
"value": "[nN][uU][lL][lL]"
},
"comment": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "//"
},
{
"type": "PATTERN",
"value": ".*"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "/*"
},
{
"type": "PATTERN",
"value": "[^*]*\\*+([^/*][^*]*\\*+)*"
},
{
"type": "STRING",
"value": "/"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "--"
},
{
"type": "PATTERN",
"value": ".*"
}
]
}
]
}
},
"extras": [
{
"type": "PATTERN",
"value": "\\s+"
},
{
"type": "SYMBOL",
"name": "comment"
}
],
"conflicts": [
[
"sql_portion"
]
],
"precedences": [],
"externals": [],
"inline": [],
"supertypes": [],
"reserved": {}
}