yass-css 0.1.0-aarch64-linux → 0.3.0-aarch64-linux
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +11 -1
- data/README.md +107 -11
- data/Rakefile +83 -2
- data/codegen/ruby_module_tree.rb +178 -0
- data/codegen/rust_file_set.rb +84 -0
- data/codegen/utils.rb +27 -0
- data/dockerfiles/windows.dockerfile +1 -1
- data/examples/basic_example.rb +32 -0
- data/examples/font_example.rb +19 -0
- data/examples/media_example.rb +31 -0
- data/examples/visitor_example.rb +41 -0
- data/ext/yass/src/.DS_Store +0 -0
- data/ext/yass/src/declarations/.DS_Store +0 -0
- data/lib/yass/3.2/yass.so +0 -0
- data/lib/yass/3.3/yass.so +0 -0
- data/lib/yass/3.4/yass.so +0 -0
- data/lib/yass/4.0/yass.so +0 -0
- data/lib/yass/declarations.rb +7975 -0
- data/lib/yass/general.rb +31 -0
- data/lib/yass/node.rb +9 -0
- data/lib/yass/rules.rb +515 -0
- data/lib/yass/selectors.rb +325 -0
- data/lib/yass/stylesheet.rb +13 -0
- data/lib/yass/version.rb +1 -1
- data/lib/yass/visitor.rb +2463 -0
- data/lib/yass.rb +35 -0
- data/scripts/build_all.sh +44 -0
- data/scripts/detect.rb +39 -0
- data/scripts/wpt.rb +20 -0
- metadata +21 -3
- data/sig/yass.rbs +0 -4
data/lib/yass/general.rb
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Yass
|
|
4
|
+
class UnicodeRange
|
|
5
|
+
RUBY_METHODS = %i(end kind start).freeze
|
|
6
|
+
|
|
7
|
+
include ::Yass::Node
|
|
8
|
+
|
|
9
|
+
def accept(visitor)
|
|
10
|
+
visitor.visit_unicode_range(self)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def kind
|
|
14
|
+
:unicode_range
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
class SourceLocation
|
|
19
|
+
RUBY_METHODS = %i(column kind line).freeze
|
|
20
|
+
|
|
21
|
+
include ::Yass::Node
|
|
22
|
+
|
|
23
|
+
def accept(visitor)
|
|
24
|
+
visitor.visit_source_location(self)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def kind
|
|
28
|
+
:source_location
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
data/lib/yass/node.rb
ADDED
data/lib/yass/rules.rb
ADDED
|
@@ -0,0 +1,515 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Yass
|
|
4
|
+
class UnimplementedRule
|
|
5
|
+
RUBY_METHODS = %i(kind).freeze
|
|
6
|
+
|
|
7
|
+
include ::Yass::Node
|
|
8
|
+
|
|
9
|
+
def accept(visitor)
|
|
10
|
+
visitor.visit_unimplemented_rule(self)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def kind
|
|
14
|
+
:unimplemented_rule
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
class StyleRule
|
|
19
|
+
RUBY_METHODS = %i(declarations kind selectors source_location).freeze
|
|
20
|
+
|
|
21
|
+
include ::Yass::Node
|
|
22
|
+
|
|
23
|
+
def accept(visitor)
|
|
24
|
+
visitor.visit_style_rule(self)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def kind
|
|
28
|
+
:style_rule
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
class StyleQuery
|
|
33
|
+
class Not
|
|
34
|
+
RUBY_METHODS = %i(kind style_query).freeze
|
|
35
|
+
|
|
36
|
+
include ::Yass::Node
|
|
37
|
+
|
|
38
|
+
def accept(visitor)
|
|
39
|
+
visitor.visit_style_query_not(self)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def kind
|
|
43
|
+
:not
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
class Operation
|
|
48
|
+
RUBY_METHODS = %i(kind operator style_query).freeze
|
|
49
|
+
|
|
50
|
+
include ::Yass::Node
|
|
51
|
+
|
|
52
|
+
def accept(visitor)
|
|
53
|
+
visitor.visit_style_query_operation(self)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def kind
|
|
57
|
+
:operation
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
class InParens
|
|
62
|
+
RUBY_METHODS = %i(kind style_query).freeze
|
|
63
|
+
|
|
64
|
+
include ::Yass::Node
|
|
65
|
+
|
|
66
|
+
def accept(visitor)
|
|
67
|
+
visitor.visit_style_query_in_parens(self)
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def kind
|
|
71
|
+
:in_parens
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
class StyleFeature
|
|
76
|
+
RUBY_METHODS = %i(kind value).freeze
|
|
77
|
+
|
|
78
|
+
include ::Yass::Node
|
|
79
|
+
|
|
80
|
+
def accept(visitor)
|
|
81
|
+
visitor.visit_style_query_style_feature(self)
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def kind
|
|
85
|
+
:style_feature
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
class GenerallyEnclosed
|
|
90
|
+
RUBY_METHODS = %i(kind value).freeze
|
|
91
|
+
|
|
92
|
+
include ::Yass::Node
|
|
93
|
+
|
|
94
|
+
def accept(visitor)
|
|
95
|
+
visitor.visit_style_query_generally_enclosed(self)
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
def kind
|
|
99
|
+
:generally_enclosed
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
class MediaRule
|
|
105
|
+
RUBY_METHODS = %i(kind media_queries rules source_location).freeze
|
|
106
|
+
|
|
107
|
+
include ::Yass::Node
|
|
108
|
+
|
|
109
|
+
def accept(visitor)
|
|
110
|
+
visitor.visit_media_rule(self)
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
def kind
|
|
114
|
+
:media_rule
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
class MediaQuery
|
|
119
|
+
RUBY_METHODS = %i(kind media_type qualifier query_condition).freeze
|
|
120
|
+
|
|
121
|
+
include ::Yass::Node
|
|
122
|
+
|
|
123
|
+
def accept(visitor)
|
|
124
|
+
visitor.visit_media_query(self)
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
def kind
|
|
128
|
+
:media_query
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
module QueryCondition
|
|
132
|
+
class FeatureExpression
|
|
133
|
+
RUBY_METHODS = %i(kind value).freeze
|
|
134
|
+
|
|
135
|
+
include ::Yass::Node
|
|
136
|
+
|
|
137
|
+
def accept(visitor)
|
|
138
|
+
visitor.visit_media_query_query_condition_feature_expression(self)
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
def kind
|
|
142
|
+
:feature_expression
|
|
143
|
+
end
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
class Custom
|
|
147
|
+
RUBY_METHODS = %i(kind value).freeze
|
|
148
|
+
|
|
149
|
+
include ::Yass::Node
|
|
150
|
+
|
|
151
|
+
def accept(visitor)
|
|
152
|
+
visitor.visit_media_query_query_condition_custom(self)
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
def kind
|
|
156
|
+
:custom
|
|
157
|
+
end
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
class Operation
|
|
161
|
+
RUBY_METHODS = %i(kind operator query_conditions).freeze
|
|
162
|
+
|
|
163
|
+
include ::Yass::Node
|
|
164
|
+
|
|
165
|
+
def accept(visitor)
|
|
166
|
+
visitor.visit_media_query_query_condition_operation(self)
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
def kind
|
|
170
|
+
:operation
|
|
171
|
+
end
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
class InParens
|
|
175
|
+
RUBY_METHODS = %i(kind query_condition).freeze
|
|
176
|
+
|
|
177
|
+
include ::Yass::Node
|
|
178
|
+
|
|
179
|
+
def accept(visitor)
|
|
180
|
+
visitor.visit_media_query_query_condition_in_parens(self)
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
def kind
|
|
184
|
+
:in_parens
|
|
185
|
+
end
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
class Style
|
|
189
|
+
RUBY_METHODS = %i(kind style_query).freeze
|
|
190
|
+
|
|
191
|
+
include ::Yass::Node
|
|
192
|
+
|
|
193
|
+
def accept(visitor)
|
|
194
|
+
visitor.visit_media_query_query_condition_style(self)
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
def kind
|
|
198
|
+
:style
|
|
199
|
+
end
|
|
200
|
+
end
|
|
201
|
+
|
|
202
|
+
class GenerallyEnclosed
|
|
203
|
+
RUBY_METHODS = %i(kind url value).freeze
|
|
204
|
+
|
|
205
|
+
include ::Yass::Node
|
|
206
|
+
|
|
207
|
+
def accept(visitor)
|
|
208
|
+
visitor.visit_media_query_query_condition_generally_enclosed(self)
|
|
209
|
+
end
|
|
210
|
+
|
|
211
|
+
def kind
|
|
212
|
+
:generally_enclosed
|
|
213
|
+
end
|
|
214
|
+
end
|
|
215
|
+
end
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
module MediaType
|
|
219
|
+
class All
|
|
220
|
+
RUBY_METHODS = %i(kind).freeze
|
|
221
|
+
|
|
222
|
+
include ::Yass::Node
|
|
223
|
+
|
|
224
|
+
def accept(visitor)
|
|
225
|
+
visitor.visit_media_type_all(self)
|
|
226
|
+
end
|
|
227
|
+
|
|
228
|
+
def kind
|
|
229
|
+
:all
|
|
230
|
+
end
|
|
231
|
+
end
|
|
232
|
+
|
|
233
|
+
class Concrete
|
|
234
|
+
RUBY_METHODS = %i(kind value).freeze
|
|
235
|
+
|
|
236
|
+
include ::Yass::Node
|
|
237
|
+
|
|
238
|
+
def accept(visitor)
|
|
239
|
+
visitor.visit_media_type_concrete(self)
|
|
240
|
+
end
|
|
241
|
+
|
|
242
|
+
def kind
|
|
243
|
+
:concrete
|
|
244
|
+
end
|
|
245
|
+
end
|
|
246
|
+
end
|
|
247
|
+
|
|
248
|
+
class FontFaceRule
|
|
249
|
+
RUBY_METHODS = %i(ascent_override descent_override family font_stretch_range kind language_override line_gap_override size_adjust source_location sources style unicode_range weight).freeze
|
|
250
|
+
|
|
251
|
+
include ::Yass::Node
|
|
252
|
+
|
|
253
|
+
def accept(visitor)
|
|
254
|
+
visitor.visit_font_face_rule(self)
|
|
255
|
+
end
|
|
256
|
+
|
|
257
|
+
def kind
|
|
258
|
+
:font_face_rule
|
|
259
|
+
end
|
|
260
|
+
end
|
|
261
|
+
|
|
262
|
+
module Font
|
|
263
|
+
module Family
|
|
264
|
+
class Values
|
|
265
|
+
RUBY_METHODS = %i(kind values).freeze
|
|
266
|
+
|
|
267
|
+
include ::Yass::Node
|
|
268
|
+
|
|
269
|
+
def accept(visitor)
|
|
270
|
+
visitor.visit_font_family_values(self)
|
|
271
|
+
end
|
|
272
|
+
|
|
273
|
+
def kind
|
|
274
|
+
:values
|
|
275
|
+
end
|
|
276
|
+
end
|
|
277
|
+
|
|
278
|
+
class System
|
|
279
|
+
RUBY_METHODS = %i(kind).freeze
|
|
280
|
+
|
|
281
|
+
include ::Yass::Node
|
|
282
|
+
|
|
283
|
+
def accept(visitor)
|
|
284
|
+
visitor.visit_font_family_system(self)
|
|
285
|
+
end
|
|
286
|
+
|
|
287
|
+
def kind
|
|
288
|
+
:system
|
|
289
|
+
end
|
|
290
|
+
end
|
|
291
|
+
|
|
292
|
+
class Name
|
|
293
|
+
RUBY_METHODS = %i(kind syntax).freeze
|
|
294
|
+
|
|
295
|
+
include ::Yass::Node
|
|
296
|
+
|
|
297
|
+
def accept(visitor)
|
|
298
|
+
visitor.visit_font_family_name(self)
|
|
299
|
+
end
|
|
300
|
+
|
|
301
|
+
def kind
|
|
302
|
+
:name
|
|
303
|
+
end
|
|
304
|
+
end
|
|
305
|
+
|
|
306
|
+
class Generic
|
|
307
|
+
RUBY_METHODS = %i(kind value).freeze
|
|
308
|
+
|
|
309
|
+
include ::Yass::Node
|
|
310
|
+
|
|
311
|
+
def accept(visitor)
|
|
312
|
+
visitor.visit_font_family_generic(self)
|
|
313
|
+
end
|
|
314
|
+
|
|
315
|
+
def kind
|
|
316
|
+
:generic
|
|
317
|
+
end
|
|
318
|
+
end
|
|
319
|
+
end
|
|
320
|
+
|
|
321
|
+
module Metrics
|
|
322
|
+
class Override
|
|
323
|
+
RUBY_METHODS = %i(kind value).freeze
|
|
324
|
+
|
|
325
|
+
include ::Yass::Node
|
|
326
|
+
|
|
327
|
+
def accept(visitor)
|
|
328
|
+
visitor.visit_font_metrics_override(self)
|
|
329
|
+
end
|
|
330
|
+
|
|
331
|
+
def kind
|
|
332
|
+
:override
|
|
333
|
+
end
|
|
334
|
+
end
|
|
335
|
+
|
|
336
|
+
class OverrideNormal
|
|
337
|
+
RUBY_METHODS = %i(kind).freeze
|
|
338
|
+
|
|
339
|
+
include ::Yass::Node
|
|
340
|
+
|
|
341
|
+
def accept(visitor)
|
|
342
|
+
visitor.visit_font_metrics_override_normal(self)
|
|
343
|
+
end
|
|
344
|
+
|
|
345
|
+
def kind
|
|
346
|
+
:override_normal
|
|
347
|
+
end
|
|
348
|
+
end
|
|
349
|
+
end
|
|
350
|
+
|
|
351
|
+
module SourceFormat
|
|
352
|
+
class Keyword
|
|
353
|
+
RUBY_METHODS = %i(kind value).freeze
|
|
354
|
+
|
|
355
|
+
include ::Yass::Node
|
|
356
|
+
|
|
357
|
+
def accept(visitor)
|
|
358
|
+
visitor.visit_font_source_format_keyword(self)
|
|
359
|
+
end
|
|
360
|
+
|
|
361
|
+
def kind
|
|
362
|
+
:keyword
|
|
363
|
+
end
|
|
364
|
+
end
|
|
365
|
+
|
|
366
|
+
class String
|
|
367
|
+
RUBY_METHODS = %i(kind value).freeze
|
|
368
|
+
|
|
369
|
+
include ::Yass::Node
|
|
370
|
+
|
|
371
|
+
def accept(visitor)
|
|
372
|
+
visitor.visit_font_source_format_string(self)
|
|
373
|
+
end
|
|
374
|
+
|
|
375
|
+
def kind
|
|
376
|
+
:string
|
|
377
|
+
end
|
|
378
|
+
end
|
|
379
|
+
end
|
|
380
|
+
|
|
381
|
+
module Source
|
|
382
|
+
class Url
|
|
383
|
+
RUBY_METHODS = %i(format_hint kind specified_url).freeze
|
|
384
|
+
|
|
385
|
+
include ::Yass::Node
|
|
386
|
+
|
|
387
|
+
def accept(visitor)
|
|
388
|
+
visitor.visit_font_source_url(self)
|
|
389
|
+
end
|
|
390
|
+
|
|
391
|
+
def kind
|
|
392
|
+
:url
|
|
393
|
+
end
|
|
394
|
+
end
|
|
395
|
+
|
|
396
|
+
class Local
|
|
397
|
+
RUBY_METHODS = %i(family_name kind).freeze
|
|
398
|
+
|
|
399
|
+
include ::Yass::Node
|
|
400
|
+
|
|
401
|
+
def accept(visitor)
|
|
402
|
+
visitor.visit_font_source_local(self)
|
|
403
|
+
end
|
|
404
|
+
|
|
405
|
+
def kind
|
|
406
|
+
:local
|
|
407
|
+
end
|
|
408
|
+
end
|
|
409
|
+
end
|
|
410
|
+
end
|
|
411
|
+
|
|
412
|
+
module FontStretch
|
|
413
|
+
class Range
|
|
414
|
+
RUBY_METHODS = %i(begin end kind).freeze
|
|
415
|
+
|
|
416
|
+
include ::Yass::Node
|
|
417
|
+
|
|
418
|
+
def accept(visitor)
|
|
419
|
+
visitor.visit_font_stretch_range(self)
|
|
420
|
+
end
|
|
421
|
+
|
|
422
|
+
def kind
|
|
423
|
+
:range
|
|
424
|
+
end
|
|
425
|
+
end
|
|
426
|
+
|
|
427
|
+
class Stretch
|
|
428
|
+
RUBY_METHODS = %i(kind value).freeze
|
|
429
|
+
|
|
430
|
+
include ::Yass::Node
|
|
431
|
+
|
|
432
|
+
def accept(visitor)
|
|
433
|
+
visitor.visit_font_stretch_stretch(self)
|
|
434
|
+
end
|
|
435
|
+
|
|
436
|
+
def kind
|
|
437
|
+
:stretch
|
|
438
|
+
end
|
|
439
|
+
end
|
|
440
|
+
|
|
441
|
+
class Keyword
|
|
442
|
+
RUBY_METHODS = %i(kind value).freeze
|
|
443
|
+
|
|
444
|
+
include ::Yass::Node
|
|
445
|
+
|
|
446
|
+
def accept(visitor)
|
|
447
|
+
visitor.visit_font_stretch_keyword(self)
|
|
448
|
+
end
|
|
449
|
+
|
|
450
|
+
def kind
|
|
451
|
+
:keyword
|
|
452
|
+
end
|
|
453
|
+
end
|
|
454
|
+
end
|
|
455
|
+
|
|
456
|
+
module FontStyle
|
|
457
|
+
class Italic
|
|
458
|
+
RUBY_METHODS = %i(kind).freeze
|
|
459
|
+
|
|
460
|
+
include ::Yass::Node
|
|
461
|
+
|
|
462
|
+
def accept(visitor)
|
|
463
|
+
visitor.visit_font_style_italic(self)
|
|
464
|
+
end
|
|
465
|
+
|
|
466
|
+
def kind
|
|
467
|
+
:italic
|
|
468
|
+
end
|
|
469
|
+
end
|
|
470
|
+
|
|
471
|
+
class Oblique
|
|
472
|
+
RUBY_METHODS = %i(angle1 angle2 kind).freeze
|
|
473
|
+
|
|
474
|
+
include ::Yass::Node
|
|
475
|
+
|
|
476
|
+
def accept(visitor)
|
|
477
|
+
visitor.visit_font_style_oblique(self)
|
|
478
|
+
end
|
|
479
|
+
|
|
480
|
+
def kind
|
|
481
|
+
:oblique
|
|
482
|
+
end
|
|
483
|
+
end
|
|
484
|
+
end
|
|
485
|
+
|
|
486
|
+
module FontWeight
|
|
487
|
+
class Normal
|
|
488
|
+
RUBY_METHODS = %i(kind).freeze
|
|
489
|
+
|
|
490
|
+
include ::Yass::Node
|
|
491
|
+
|
|
492
|
+
def accept(visitor)
|
|
493
|
+
visitor.visit_font_weight_normal(self)
|
|
494
|
+
end
|
|
495
|
+
|
|
496
|
+
def kind
|
|
497
|
+
:normal
|
|
498
|
+
end
|
|
499
|
+
end
|
|
500
|
+
|
|
501
|
+
class Range
|
|
502
|
+
RUBY_METHODS = %i(begin end kind).freeze
|
|
503
|
+
|
|
504
|
+
include ::Yass::Node
|
|
505
|
+
|
|
506
|
+
def accept(visitor)
|
|
507
|
+
visitor.visit_font_weight_range(self)
|
|
508
|
+
end
|
|
509
|
+
|
|
510
|
+
def kind
|
|
511
|
+
:range
|
|
512
|
+
end
|
|
513
|
+
end
|
|
514
|
+
end
|
|
515
|
+
end
|