{ "name": "plpgsql", "word": "_identifier", "rules": { "source_file": { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "statement" } ] } }, "statement": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_ddl_statement" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ";" } ] }, "_ddl_statement": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_create_statement" } ] }, "_create_statement": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "create_table" } ] }, "create_table": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "keyword_create" }, { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "keyword_temporary" }, { "type": "SYMBOL", "name": "keyword_unlogged" } ] }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "keyword_table" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_if_not_exists" }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "table_reference" }, { "type": "SYMBOL", "name": "column_definitions" } ] }, "table_reference": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "FIELD", "name": "schema", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "STRING", "value": "." } ] }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } } ] }, "column_definitions": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "column_definition" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "column_definition" } ] } ] } } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] }, "column_definition": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } } ] }, "keyword_create": { "type": "PATTERN", "value": "create|CREATE" }, "keyword_table": { "type": "PATTERN", "value": "table|TABLE" }, "keyword_temporary": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "temporary|TEMPORARY" }, { "type": "PATTERN", "value": "temp|TEMP" } ] }, "keyword_unlogged": { "type": "PATTERN", "value": "unlogged|UNLOGGED" }, "keyword_if": { "type": "PATTERN", "value": "if|IF" }, "keyword_not": { "type": "PATTERN", "value": "not|NOT" }, "keyword_exists": { "type": "PATTERN", "value": "exists|EXISTS" }, "_if_not_exists": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "keyword_if" }, { "type": "SYMBOL", "name": "keyword_not" }, { "type": "SYMBOL", "name": "keyword_exists" } ] }, "comment": { "type": "SEQ", "members": [ { "type": "STRING", "value": "--" }, { "type": "PATTERN", "value": ".*\\n" } ] }, "marginalia": { "type": "SEQ", "members": [ { "type": "STRING", "value": "/*" }, { "type": "PATTERN", "value": "[^*]*\\*+(?:[^/*][^*]*\\*+)*" }, { "type": "STRING", "value": "/" } ] }, "identifier": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_identifier" }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "\"" }, { "type": "SYMBOL", "name": "_identifier" }, { "type": "STRING", "value": "\"" } ] } ] }, "_identifier": { "type": "PATTERN", "value": "([a-zA-Z_][0-9a-zA-Z_]*)" } }, "extras": [ { "type": "PATTERN", "value": "\\s\\n" }, { "type": "PATTERN", "value": "\\s" }, { "type": "SYMBOL", "name": "comment" }, { "type": "SYMBOL", "name": "marginalia" } ], "conflicts": [], "precedences": [], "externals": [], "inline": [], "supertypes": [] }