@jesscss/less-parser 1.0.6-alpha.0 → 2.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/README.md +34 -1
  2. package/lib/__tests__/debug-log.d.ts +1 -0
  3. package/lib/__tests__/debug-log.js +34 -0
  4. package/lib/__tests__/debug-log.js.map +1 -0
  5. package/lib/index.d.ts +30 -8
  6. package/lib/index.js +66 -29
  7. package/lib/index.js.map +1 -0
  8. package/lib/lessActionsParser.d.ts +156 -0
  9. package/lib/lessActionsParser.js +145 -0
  10. package/lib/lessActionsParser.js.map +1 -0
  11. package/lib/lessErrorMessageProvider.d.ts +3 -0
  12. package/lib/lessErrorMessageProvider.js +4 -0
  13. package/lib/lessErrorMessageProvider.js.map +1 -0
  14. package/lib/lessTokens.d.ts +22 -3
  15. package/lib/lessTokens.js +242 -148
  16. package/lib/lessTokens.js.map +1 -0
  17. package/lib/productions.d.ts +181 -0
  18. package/lib/productions.js +3521 -0
  19. package/lib/productions.js.map +1 -0
  20. package/lib/utils.d.ts +2 -0
  21. package/lib/utils.js +88 -0
  22. package/lib/utils.js.map +1 -0
  23. package/package.json +41 -19
  24. package/lib/lessParser.d.ts +0 -36
  25. package/lib/lessParser.js +0 -49
  26. package/lib/productions/atRules.d.ts +0 -2
  27. package/lib/productions/atRules.js +0 -160
  28. package/lib/productions/blocks.d.ts +0 -2
  29. package/lib/productions/blocks.js +0 -60
  30. package/lib/productions/declarations.d.ts +0 -2
  31. package/lib/productions/declarations.js +0 -36
  32. package/lib/productions/interpolation.d.ts +0 -2
  33. package/lib/productions/interpolation.js +0 -18
  34. package/lib/productions/mixin.d.ts +0 -2
  35. package/lib/productions/mixin.js +0 -373
  36. package/lib/productions/root.d.ts +0 -2
  37. package/lib/productions/root.js +0 -33
  38. package/lib/productions/selectors.d.ts +0 -2
  39. package/lib/productions/selectors.js +0 -91
  40. package/lib/productions/values.d.ts +0 -2
  41. package/lib/productions/values.js +0 -305
@@ -1,33 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const chevrotain_1 = require("chevrotain");
4
- function default_1($) {
5
- $.rule = $.OVERRIDE_RULE('rule', () => {
6
- const children = [$._(0)];
7
- const rule = $.OR([
8
- { ALT: () => $.SUBRULE($.atRule) },
9
- { ALT: () => $.SUBRULE($.customDeclaration) },
10
- {
11
- GATE: $.BACKTRACK($.testMixin),
12
- ALT: () => $.SUBRULE($.mixin)
13
- },
14
- {
15
- GATE: $.BACKTRACK($.testQualifiedRule),
16
- ALT: () => $.SUBRULE($.qualifiedRule)
17
- },
18
- { ALT: () => $.SUBRULE2($.declaration) },
19
- { ALT: () => $.SUBRULE($.function) },
20
- /** Capture any isolated / redundant semi-colons */
21
- { ALT: () => $.CONSUME($.T.SemiColon) },
22
- { ALT: () => chevrotain_1.EMPTY_ALT }
23
- ]);
24
- if (rule !== chevrotain_1.EMPTY_ALT) {
25
- children.push(rule);
26
- }
27
- return {
28
- name: 'rule',
29
- children
30
- };
31
- });
32
- }
33
- exports.default = default_1;
@@ -1,2 +0,0 @@
1
- import type { LessParser } from '../lessParser';
2
- export default function (this: LessParser, $: LessParser): void;
@@ -1,91 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- function default_1($) {
4
- $.selectorList = $.OVERRIDE_RULE('selectorList', () => {
5
- const children = [
6
- $.SUBRULE($.complexSelector)
7
- ];
8
- let allExtends = $.hasExtend;
9
- let guard;
10
- $.OR([
11
- { ALT: () => guard = $.SUBRULE($.guard) },
12
- {
13
- ALT: () => {
14
- $.MANY(() => {
15
- children.push({
16
- name: 'delimiter',
17
- children: [
18
- $.CONSUME($.T.Comma),
19
- $._(1)
20
- ]
21
- }, $.SUBRULE2($.complexSelector));
22
- allExtends = allExtends && $.hasExtend;
23
- });
24
- }
25
- }
26
- ]);
27
- if (guard) {
28
- return {
29
- name: 'selectorGuard',
30
- children: [
31
- children[0],
32
- guard
33
- ]
34
- };
35
- }
36
- else if (children.length === 1) {
37
- return children[0];
38
- }
39
- /** Determines here if can omit a curly block */
40
- $.hasExtend = allExtends;
41
- return {
42
- name: 'selectorList',
43
- children
44
- };
45
- });
46
- $.complexSelector = $.OVERRIDE_RULE('complexSelector', () => {
47
- const selectors = [];
48
- $.OR([
49
- { ALT: () => {
50
- selectors.push($.SUBRULE($.compoundSelector));
51
- $.MANY(() => selectors.push($.SUBRULE($.combinatorSelector)));
52
- } },
53
- {
54
- ALT: () => $.AT_LEAST_ONE(() => selectors.push($.SUBRULE2($.combinatorSelector)))
55
- }
56
- ]);
57
- let extend = $.OPTION(() => {
58
- $.hasExtend = true;
59
- return {
60
- name: 'extend',
61
- children: [
62
- $.CONSUME($.T.Extend),
63
- $.SUBRULE($.selectorList),
64
- $.CONSUME($.T.RParen),
65
- $._(1)
66
- ]
67
- };
68
- });
69
- return {
70
- name: 'complexSelector',
71
- children: [
72
- {
73
- name: 'selectors',
74
- children: selectors
75
- },
76
- extend
77
- ]
78
- };
79
- });
80
- $.simpleSelector = $.OVERRIDE_RULE('simpleSelector', () => $.OR([
81
- { ALT: () => $.SUBRULE($.pseudoSelector) },
82
- { ALT: () => $.SUBRULE($.attrSelector) },
83
- { ALT: () => $.SUBRULE($.nameSelector) },
84
- /** Used in keyframes as a selector */
85
- { ALT: () => $.CONSUME($.T.Dimension) },
86
- /** Can be a partial class, as in `&-1` */
87
- { ALT: () => $.CONSUME($.T.Number) }
88
- ]));
89
- $.attrIdent = $.OVERRIDE_RULE('attrIdent', () => $.SUBRULE($.identOrInterpolated));
90
- }
91
- exports.default = default_1;
@@ -1,2 +0,0 @@
1
- import { LessParser } from '../lessParser';
2
- export default function (this: LessParser, $: LessParser): void;
@@ -1,305 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const chevrotain_1 = require("chevrotain");
4
- function default_1($) {
5
- const compareGate = () => $.inCompareBlock;
6
- /**
7
- * @todo - rewrite to capture all guard expressions
8
- */
9
- $.expression = $.OVERRIDE_RULE('expression', () => {
10
- const children = [
11
- $._(0)
12
- ];
13
- $.OR([
14
- {
15
- GATE: compareGate,
16
- ALT: () => $.MANY(() => children.push($.SUBRULE($.compare)))
17
- },
18
- { ALT: () => $.MANY2(() => children.push($.SUBRULE($.addition))) }
19
- ]);
20
- return {
21
- name: 'expression',
22
- children
23
- };
24
- });
25
- $.function = $.RULE('function', () => ({
26
- name: 'function',
27
- children: $.OR([
28
- {
29
- ALT: () => [
30
- $.OR2([
31
- { ALT: () => $.CONSUME($.T.PlainFunction) },
32
- { ALT: () => $.CONSUME($.T.FormatFunction) }
33
- ]),
34
- $.SUBRULE($.functionArgs),
35
- $.CONSUME($.T.RParen)
36
- ]
37
- },
38
- /**
39
- * Special parsing of `if` and `boolean`
40
- */
41
- {
42
- ALT: () => [
43
- $.CONSUME($.T.BooleanFunction),
44
- $.SUBRULE($.guardOr, { ARGS: [true] }),
45
- $.CONSUME2($.T.RParen)
46
- ]
47
- },
48
- {
49
- ALT: () => {
50
- const functionArgs = [];
51
- const func = $.CONSUME($.T.IfFunction);
52
- functionArgs.push($.SUBRULE2($.guardOr, { ARGS: [true] }), $._());
53
- $.MANY(() => {
54
- functionArgs.push({
55
- name: 'delimiter',
56
- children: [
57
- $.OR3([{
58
- ALT: () => $.CONSUME($.T.Comma)
59
- },
60
- { ALT: () => $.CONSUME($.T.SemiColon)
61
- }]),
62
- $._(1)
63
- ]
64
- }, $.SUBRULE2($.functionArg), $._(2));
65
- });
66
- return [
67
- func,
68
- {
69
- name: 'functionArgs',
70
- children: functionArgs
71
- },
72
- $.CONSUME3($.T.RParen)
73
- ];
74
- }
75
- }
76
- ])
77
- }));
78
- $.functionArgs = $.RULE('functionArgs', () => {
79
- const children = [
80
- $.SUBRULE($.functionArg),
81
- $._()
82
- ];
83
- $.MANY(() => {
84
- children.push({
85
- name: 'delimiter',
86
- children: [
87
- $.OR([
88
- { ALT: () => $.CONSUME($.T.Comma) },
89
- { ALT: () => $.CONSUME($.T.SemiColon)
90
- }
91
- ]),
92
- $._(1)
93
- ]
94
- }, $.SUBRULE2($.functionArg), $._(2));
95
- });
96
- return {
97
- name: 'functionArgs',
98
- children
99
- };
100
- });
101
- $.functionArg = $.RULE('functionArg', () => $.OR([
102
- { ALT: () => $.SUBRULE($.anonMixin) },
103
- { ALT: () => $.SUBRULE($.curlyBlock) },
104
- { ALT: () => $.SUBRULE($.expression) }
105
- ]));
106
- /**
107
- * Can be in the form of:
108
- * @var
109
- * #selector()[lookup]
110
- * #selector(args)[lookup]
111
- * @var[lookup]
112
- * @var[lookup][lookup2]
113
- */
114
- $.variable = $.RULE('variable', () => {
115
- let selectors;
116
- let node = $.OR([
117
- { ALT: () => ({
118
- name: 'variable',
119
- children: [$.CONSUME($.T.VarOrProp)]
120
- })
121
- },
122
- {
123
- ALT: () => {
124
- selectors = [];
125
- $.AT_LEAST_ONE(() => selectors.push($.CONSUME($.T.Selector)));
126
- const expr = {
127
- name: 'expression',
128
- children: selectors
129
- };
130
- /**
131
- * @note - if there are no parens or accessors, then
132
- * it's a plain selector
133
- */
134
- const children = $.OPTION(() => [
135
- $.CONSUME($.T.LParen),
136
- $.SUBRULE($.mixinArgs),
137
- $.CONSUME($.T.RParen)
138
- ]);
139
- if (!this.RECORDING_PHASE && children) {
140
- return {
141
- name: 'mixinCall',
142
- children: [
143
- expr,
144
- ...children
145
- ]
146
- };
147
- }
148
- return expr;
149
- }
150
- }
151
- ]);
152
- $.MANY(() => {
153
- const L = $.CONSUME($.T.LSquare);
154
- let lookup = $.OR2([
155
- { ALT: () => $.CONSUME2($.T.VarOrProp) },
156
- { ALT: () => $.CONSUME($.T.Ident) },
157
- { ALT: () => chevrotain_1.EMPTY_ALT }
158
- ]);
159
- const R = $.CONSUME($.T.RSquare);
160
- if (lookup === chevrotain_1.EMPTY_ALT) {
161
- lookup = undefined;
162
- }
163
- /**
164
- * Nest accessors so we can evaluate inner-most first,
165
- * and then successive accessors.
166
- */
167
- node = {
168
- name: 'accessor',
169
- children: [node, L, lookup, R]
170
- };
171
- });
172
- return node;
173
- });
174
- $.valueBlock = $.RULE('valueBlock', () => ({
175
- name: 'block',
176
- children: $.OR([
177
- {
178
- ALT: () => [
179
- $.CONSUME($.T.LParen),
180
- $.OR2([
181
- {
182
- GATE: compareGate,
183
- ALT: () => $.SUBRULE($.guardOr)
184
- },
185
- { ALT: () => $.SUBRULE($.expressionList) }
186
- ]),
187
- $.CONSUME($.T.RParen)
188
- ]
189
- },
190
- {
191
- ALT: () => [
192
- $.CONSUME($.T.LSquare),
193
- $.SUBRULE2($.expressionList),
194
- $.CONSUME($.T.RSquare)
195
- ]
196
- }
197
- ])
198
- }));
199
- /** This is more specific than the CSS parser */
200
- $.value = $.OVERRIDE_RULE('value', () => {
201
- let op = $.OPTION(() =>
202
- /** Applying negative or positive to a value */
203
- $.CONSUME($.T.AdditionOperator));
204
- let value = {
205
- name: 'value',
206
- children: [
207
- $.OR([
208
- { ALT: () => $.SUBRULE($.valueBlock) },
209
- { ALT: () => $.SUBRULE($.function) },
210
- { ALT: () => $.CONSUME($.T.Ident) },
211
- { ALT: () => $.SUBRULE($.variable) },
212
- { ALT: () => $.CONSUME($.T.CustomProperty) },
213
- { ALT: () => $.CONSUME($.T.Dimension) },
214
- { ALT: () => $.CONSUME($.T.Number) },
215
- { ALT: () => $.CONSUME($.T.Percent) },
216
- { ALT: () => $.CONSUME($.T.StringLiteral) },
217
- { ALT: () => $.CONSUME($.T.Uri) },
218
- { ALT: () => $.CONSUME($.T.ColorIntStart) },
219
- { ALT: () => $.CONSUME($.T.UnicodeRange) },
220
- { ALT: () => $.CONSUME($.T.When) },
221
- /** Can be found in selector expressions */
222
- { ALT: () => $.CONSUME($.T.AttrMatchOperator) },
223
- { ALT: () => $.CONSUME($.T.Colon) },
224
- { ALT: () => $.CONSUME($.T.Combinator) }
225
- ]),
226
- $._()
227
- ]
228
- };
229
- if (op) {
230
- return {
231
- name: 'sign',
232
- children: [
233
- op,
234
- value
235
- ]
236
- };
237
- }
238
- return value;
239
- });
240
- $.compare = $.RULE('compare', () => {
241
- const compareValue = $.inCompareBlock;
242
- $.inCompareBlock = true;
243
- let expr = $.SUBRULE($.addition);
244
- $.MANY(() => {
245
- expr = {
246
- name: 'compare',
247
- children: [
248
- expr,
249
- {
250
- name: 'op',
251
- children: [
252
- $.CONSUME($.T.CompareOperator),
253
- $._(0)
254
- ]
255
- },
256
- $.SUBRULE2($.addition)
257
- ]
258
- };
259
- });
260
- /** Restore to value on entry */
261
- $.inCompareBlock = compareValue;
262
- return expr;
263
- });
264
- $.addition = $.RULE('addition', () => {
265
- let expr = $.SUBRULE($.multiplication);
266
- $.MANY(() => {
267
- expr = {
268
- name: 'addition',
269
- children: [
270
- expr,
271
- {
272
- name: 'op',
273
- children: [
274
- $.CONSUME($.T.AdditionOperator),
275
- $._(0)
276
- ]
277
- },
278
- $.SUBRULE2($.multiplication)
279
- ]
280
- };
281
- });
282
- return expr;
283
- });
284
- $.multiplication = $.RULE('multiplication', () => {
285
- let expr = $.SUBRULE($.value);
286
- $.MANY(() => {
287
- expr = {
288
- name: 'multiplication',
289
- children: [
290
- expr,
291
- {
292
- name: 'op',
293
- children: [
294
- $.CONSUME($.T.MultiplicationOperator),
295
- $._(0)
296
- ]
297
- },
298
- $.SUBRULE2($.value)
299
- ]
300
- };
301
- });
302
- return expr;
303
- });
304
- }
305
- exports.default = default_1;