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