66
|
1 <lexer>
|
|
2 <config>
|
|
3 <name>MySQL</name>
|
|
4 <alias>mysql</alias>
|
|
5 <alias>mariadb</alias>
|
|
6 <filename>*.sql</filename>
|
|
7 <mime_type>text/x-mysql</mime_type>
|
|
8 <mime_type>text/x-mariadb</mime_type>
|
|
9 <case_insensitive>true</case_insensitive>
|
|
10 <not_multiline>true</not_multiline>
|
|
11 </config>
|
|
12 <rules>
|
|
13 <state name="string">
|
|
14 <rule pattern="[^']+">
|
|
15 <token type="LiteralStringSingle"/>
|
|
16 </rule>
|
|
17 <rule pattern="''">
|
|
18 <token type="LiteralStringSingle"/>
|
|
19 </rule>
|
|
20 <rule pattern="'">
|
|
21 <token type="LiteralStringSingle"/>
|
|
22 <pop depth="1"/>
|
|
23 </rule>
|
|
24 </state>
|
|
25 <state name="double-string">
|
|
26 <rule pattern="[^"]+">
|
|
27 <token type="LiteralStringDouble"/>
|
|
28 </rule>
|
|
29 <rule pattern="""">
|
|
30 <token type="LiteralStringDouble"/>
|
|
31 </rule>
|
|
32 <rule pattern=""">
|
|
33 <token type="LiteralStringDouble"/>
|
|
34 <pop depth="1"/>
|
|
35 </rule>
|
|
36 </state>
|
|
37 <state name="root">
|
|
38 <rule pattern="\s+">
|
|
39 <token type="TextWhitespace"/>
|
|
40 </rule>
|
|
41 <rule pattern="(#|--\s+).*\n?">
|
|
42 <token type="CommentSingle"/>
|
|
43 </rule>
|
|
44 <rule pattern="/\*">
|
|
45 <token type="CommentMultiline"/>
|
|
46 <push state="multiline-comments"/>
|
|
47 </rule>
|
|
48 <rule pattern="[0-9]+">
|
|
49 <token type="LiteralNumberInteger"/>
|
|
50 </rule>
|
|
51 <rule pattern="[0-9]*\.[0-9]+(e[+-][0-9]+)">
|
|
52 <token type="LiteralNumberFloat"/>
|
|
53 </rule>
|
|
54 <rule pattern="((?:_[a-z0-9]+)?)(')">
|
|
55 <bygroups>
|
|
56 <token type="LiteralStringAffix"/>
|
|
57 <token type="LiteralStringSingle"/>
|
|
58 </bygroups>
|
|
59 <push state="string"/>
|
|
60 </rule>
|
|
61 <rule pattern="((?:_[a-z0-9]+)?)(")">
|
|
62 <bygroups>
|
|
63 <token type="LiteralStringAffix"/>
|
|
64 <token type="LiteralStringDouble"/>
|
|
65 </bygroups>
|
|
66 <push state="double-string"/>
|
|
67 </rule>
|
|
68 <rule pattern="[+*/<>=~!@#%^&|`?-]">
|
|
69 <token type="Operator"/>
|
|
70 </rule>
|
|
71 <rule pattern="\b(tinyint|smallint|mediumint|int|integer|bigint|date|datetime|time|bit|bool|tinytext|mediumtext|longtext|text|tinyblob|mediumblob|longblob|blob|float|double|double\s+precision|real|numeric|dec|decimal|timestamp|year|char|varchar|varbinary|varcharacter|enum|set)(\b\s*)(\()?">
|
|
72 <bygroups>
|
|
73 <token type="KeywordType"/>
|
|
74 <token type="TextWhitespace"/>
|
|
75 <token type="Punctuation"/>
|
|
76 </bygroups>
|
|
77 </rule>
|
|
78 <rule pattern="\b(add|all|alter|analyze|and|as|asc|asensitive|before|between|bigint|binary|blob|both|by|call|cascade|case|change|char|character|check|collate|column|condition|constraint|continue|convert|create|cross|current_date|current_time|current_timestamp|current_user|cursor|database|databases|day_hour|day_microsecond|day_minute|day_second|dec|decimal|declare|default|delayed|delete|desc|describe|deterministic|distinct|distinctrow|div|double|drop|dual|each|else|elseif|enclosed|escaped|exists|exit|explain|fetch|flush|float|float4|float8|for|force|foreign|from|fulltext|grant|group|having|high_priority|hour_microsecond|hour_minute|hour_second|identified|if|ignore|in|index|infile|inner|inout|insensitive|insert|int|int1|int2|int3|int4|int8|integer|interval|into|is|iterate|join|key|keys|kill|leading|leave|left|like|limit|lines|load|localtime|localtimestamp|lock|long|loop|low_priority|match|minute_microsecond|minute_second|mod|modifies|natural|no_write_to_binlog|not|numeric|on|optimize|option|optionally|or|order|out|outer|outfile|precision|primary|privileges|procedure|purge|raid0|read|reads|real|references|regexp|release|rename|repeat|replace|require|restrict|return|revoke|right|rlike|schema|schemas|second_microsecond|select|sensitive|separator|set|show|smallint|soname|spatial|specific|sql|sql_big_result|sql_calc_found_rows|sql_small_result|sqlexception|sqlstate|sqlwarning|ssl|starting|straight_join|table|terminated|then|to|trailing|trigger|undo|union|unique|unlock|unsigned|update|usage|use|user|using|utc_date|utc_time|utc_timestamp|values|varying|when|where|while|with|write|x509|xor|year_month|zerofill)\b">
|
|
79 <token type="Keyword"/>
|
|
80 </rule>
|
|
81 <rule pattern="\b(auto_increment|engine|charset|tables)\b">
|
|
82 <token type="KeywordPseudo"/>
|
|
83 </rule>
|
|
84 <rule pattern="(true|false|null)">
|
|
85 <token type="NameConstant"/>
|
|
86 </rule>
|
|
87 <rule pattern="([a-z_]\w*)(\s*)(\()">
|
|
88 <bygroups>
|
|
89 <token type="NameFunction"/>
|
|
90 <token type="TextWhitespace"/>
|
|
91 <token type="Punctuation"/>
|
|
92 </bygroups>
|
|
93 </rule>
|
|
94 <rule pattern="[a-z_]\w*">
|
|
95 <token type="Name"/>
|
|
96 </rule>
|
|
97 <rule pattern="@[a-z0-9]*[._]*[a-z0-9]*">
|
|
98 <token type="NameVariable"/>
|
|
99 </rule>
|
|
100 <rule pattern="[;:()\[\],.]">
|
|
101 <token type="Punctuation"/>
|
|
102 </rule>
|
|
103 </state>
|
|
104 <state name="multiline-comments">
|
|
105 <rule pattern="/\*">
|
|
106 <token type="CommentMultiline"/>
|
|
107 <push state="multiline-comments"/>
|
|
108 </rule>
|
|
109 <rule pattern="\*/">
|
|
110 <token type="CommentMultiline"/>
|
|
111 <pop depth="1"/>
|
|
112 </rule>
|
|
113 <rule pattern="[^/*]+">
|
|
114 <token type="CommentMultiline"/>
|
|
115 </rule>
|
|
116 <rule pattern="[/*]">
|
|
117 <token type="CommentMultiline"/>
|
|
118 </rule>
|
|
119 </state>
|
|
120 </rules>
|
|
121 </lexer> |