1 /*
2 * Generated by ./misc/optlib2c from optlib/scss.ctags, Don't edit this manually.
3 */
4 #include "general.h"
5 #include "parse.h"
6 #include "routines.h"
7 #include "field.h"
8 #include "xtag.h"
9
10
initializeSCSSParser(const langType language)11 static void initializeSCSSParser (const langType language)
12 {
13
14 addLanguageRegexTable (language, "toplevel");
15 addLanguageRegexTable (language, "comment");
16 addLanguageRegexTable (language, "interp");
17 addLanguageRegexTable (language, "args");
18 addLanguageRegexTable (language, "map");
19 addLanguageRegexTable (language, "strs");
20 addLanguageRegexTable (language, "strd");
21
22 addLanguageTagMultiTableRegex (language, "toplevel",
23 "^//[^\n]*\n?",
24 "", "", "", NULL);
25 addLanguageTagMultiTableRegex (language, "toplevel",
26 "^/\\*",
27 "", "", "{tenter=comment}", NULL);
28 addLanguageTagMultiTableRegex (language, "toplevel",
29 "^#\\{",
30 "", "", "{tenter=interp}", NULL);
31 addLanguageTagMultiTableRegex (language, "toplevel",
32 "^'",
33 "", "", "{tenter=strs}", NULL);
34 addLanguageTagMultiTableRegex (language, "toplevel",
35 "^\"",
36 "", "", "{tenter=strd}", NULL);
37 addLanguageTagMultiTableRegex (language, "toplevel",
38 "^[ \t]([A-Za-z0-9_-]+)[ \t]*:[^\n]*\n?",
39 "", "", "", NULL);
40 addLanguageTagMultiTableRegex (language, "toplevel",
41 "^@mixin[ \t]+([A-Za-z0-9_-]+)",
42 "\\1", "m", "{tenter=args}", NULL);
43 addLanguageTagMultiTableRegex (language, "toplevel",
44 "^@function[ \t]+([A-Za-z0-9_-]+)",
45 "\\1", "f", "{tenter=args}", NULL);
46 addLanguageTagMultiTableRegex (language, "toplevel",
47 "^@each[ \t]+\\$([A-Za-z0-9_-]+)[ \t]in[ \t]+",
48 "\\1", "v", "", NULL);
49 addLanguageTagMultiTableRegex (language, "toplevel",
50 "^@for[ \t]+\\$([A-Za-z0-9_-]+)[ \t]from[ \t]+.*[ \t]+(to|through)[ \t]+[^{]+",
51 "\\1", "v", "", NULL);
52 addLanguageTagMultiTableRegex (language, "toplevel",
53 "^@[^\n]+\n?",
54 "", "", "", NULL);
55 addLanguageTagMultiTableRegex (language, "toplevel",
56 "^:[^{;]+;\n?",
57 "", "", "", NULL);
58 addLanguageTagMultiTableRegex (language, "toplevel",
59 "^:[^\n;{]+\n",
60 "", "", "", NULL);
61 addLanguageTagMultiTableRegex (language, "toplevel",
62 "^::?([A-Za-z0-9_-]+)[ \t]*[,({]",
63 "", "", "", NULL);
64 addLanguageTagMultiTableRegex (language, "toplevel",
65 "^:[^\n{]+[;{]\n?",
66 "", "", "", NULL);
67 addLanguageTagMultiTableRegex (language, "toplevel",
68 "^\\$([A-Za-z0-9_-]+)[ \t]*:[ \t]*\\(",
69 "\\1", "v", "{tenter=map}", NULL);
70 addLanguageTagMultiTableRegex (language, "toplevel",
71 "^\\$([A-Za-z0-9_-]+)[ \t]*:[^\n]*\n?",
72 "\\1", "v", "", NULL);
73 addLanguageTagMultiTableRegex (language, "toplevel",
74 "^([.][A-Za-z0-9_:-]+)",
75 "\\1", "c", "", NULL);
76 addLanguageTagMultiTableRegex (language, "toplevel",
77 "^(%[A-Za-z0-9_:-]+)",
78 "\\1", "P", "", NULL);
79 addLanguageTagMultiTableRegex (language, "toplevel",
80 "^#([A-Za-z0-9_:-]+)",
81 "\\1", "i", "", NULL);
82 addLanguageTagMultiTableRegex (language, "toplevel",
83 "^.",
84 "", "", "", NULL);
85 addLanguageTagMultiTableRegex (language, "comment",
86 "^\\*/",
87 "", "", "{tleave}", NULL);
88 addLanguageTagMultiTableRegex (language, "comment",
89 "^.",
90 "", "", "", NULL);
91 addLanguageTagMultiTableRegex (language, "interp",
92 "^\\}",
93 "", "", "{tleave}", NULL);
94 addLanguageTagMultiTableRegex (language, "interp",
95 "^.",
96 "", "", "", NULL);
97 addLanguageTagMultiTableRegex (language, "args",
98 "^\\{",
99 "", "", "{tleave}", NULL);
100 addLanguageTagMultiTableRegex (language, "args",
101 "^#\\{",
102 "", "", "{tenter=interp}", NULL);
103 addLanguageTagMultiTableRegex (language, "args",
104 "^\\$([A-Za-z0-9_-]+)[ \t]*(:([ \t]*\\$)?|[,)])",
105 "\\1", "z", "", NULL);
106 addLanguageTagMultiTableRegex (language, "args",
107 "^.",
108 "", "", "", NULL);
109 addLanguageTagMultiTableRegex (language, "map",
110 "^//[^\n]*\n?",
111 "", "", "", NULL);
112 addLanguageTagMultiTableRegex (language, "map",
113 "^/\\*",
114 "", "", "{tenter=comment}", NULL);
115 addLanguageTagMultiTableRegex (language, "map",
116 "^#\\{",
117 "", "", "{tenter=interp}", NULL);
118 addLanguageTagMultiTableRegex (language, "map",
119 "^\\)",
120 "", "", "{tleave}", NULL);
121 addLanguageTagMultiTableRegex (language, "map",
122 "^([A-Za-z0-9_-]+)[ \t]*:",
123 "\\1", "v", "", NULL);
124 addLanguageTagMultiTableRegex (language, "map",
125 "^'",
126 "", "", "{tenter=strs}", NULL);
127 addLanguageTagMultiTableRegex (language, "map",
128 "^\"",
129 "", "", "{tenter=strd}", NULL);
130 addLanguageTagMultiTableRegex (language, "map",
131 "^.",
132 "", "", "", NULL);
133 addLanguageTagMultiTableRegex (language, "strs",
134 "^'",
135 "", "", "{tleave}", NULL);
136 addLanguageTagMultiTableRegex (language, "strs",
137 "^#\\{",
138 "", "", "{tenter=interp}", NULL);
139 addLanguageTagMultiTableRegex (language, "strs",
140 "^[^'#\\\\]+",
141 "", "", "", NULL);
142 addLanguageTagMultiTableRegex (language, "strs",
143 "^\\\\?.",
144 "", "", "", NULL);
145 addLanguageTagMultiTableRegex (language, "strd",
146 "^\"",
147 "", "", "{tleave}", NULL);
148 addLanguageTagMultiTableRegex (language, "strd",
149 "^#\\{",
150 "", "", "{tenter=interp}", NULL);
151 addLanguageTagMultiTableRegex (language, "strd",
152 "^[^\"#\\\\]+",
153 "", "", "", NULL);
154 addLanguageTagMultiTableRegex (language, "strd",
155 "^\\\\?.",
156 "", "", "", NULL);
157 }
158
SCSSParser(void)159 extern parserDefinition* SCSSParser (void)
160 {
161 static const char *const extensions [] = {
162 "scss",
163 NULL
164 };
165
166 static const char *const aliases [] = {
167 NULL
168 };
169
170 static const char *const patterns [] = {
171 NULL
172 };
173
174 static kindDefinition SCSSKindTable [] = {
175 {
176 true, 'm', "mixin", "mixins",
177 },
178 {
179 true, 'f', "function", "functions",
180 },
181 {
182 true, 'v', "variable", "variables",
183 },
184 {
185 true, 'c', "class", "classes",
186 },
187 {
188 true, 'P', "placeholder", "placeholder classes",
189 },
190 {
191 true, 'i', "id", "identities",
192 },
193 {
194 true, 'z', "parameter", "function parameters",
195 },
196 };
197
198 parserDefinition* const def = parserNew ("SCSS");
199
200 def->enabled = true;
201 def->extensions = extensions;
202 def->patterns = patterns;
203 def->aliases = aliases;
204 def->method = METHOD_NOT_CRAFTED|METHOD_REGEX;
205 def->kindTable = SCSSKindTable;
206 def->kindCount = ARRAY_SIZE(SCSSKindTable);
207 def->initialize = initializeSCSSParser;
208
209 return def;
210 }
211