habaki 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +3 -0
  3. data/ext/katana/extconf.rb +20 -0
  4. data/ext/katana/rb_katana.c +280 -0
  5. data/ext/katana/rb_katana.h +102 -0
  6. data/ext/katana/rb_katana_array.c +144 -0
  7. data/ext/katana/rb_katana_declaration.c +389 -0
  8. data/ext/katana/rb_katana_rule.c +461 -0
  9. data/ext/katana/rb_katana_selector.c +559 -0
  10. data/ext/katana/src/foundation.c +237 -0
  11. data/ext/katana/src/foundation.h +120 -0
  12. data/ext/katana/src/katana.h +590 -0
  13. data/ext/katana/src/katana.lex.c +4104 -0
  14. data/ext/katana/src/katana.lex.h +592 -0
  15. data/ext/katana/src/katana.tab.c +4422 -0
  16. data/ext/katana/src/katana.tab.h +262 -0
  17. data/ext/katana/src/parser.c +1563 -0
  18. data/ext/katana/src/parser.h +237 -0
  19. data/ext/katana/src/selector.c +659 -0
  20. data/ext/katana/src/selector.h +54 -0
  21. data/ext/katana/src/tokenizer.c +300 -0
  22. data/ext/katana/src/tokenizer.h +41 -0
  23. data/lib/habaki/charset_rule.rb +25 -0
  24. data/lib/habaki/declaration.rb +53 -0
  25. data/lib/habaki/declarations.rb +346 -0
  26. data/lib/habaki/error.rb +43 -0
  27. data/lib/habaki/font_face_rule.rb +24 -0
  28. data/lib/habaki/formal_syntax.rb +464 -0
  29. data/lib/habaki/formatter.rb +99 -0
  30. data/lib/habaki/import_rule.rb +34 -0
  31. data/lib/habaki/media_rule.rb +173 -0
  32. data/lib/habaki/namespace_rule.rb +31 -0
  33. data/lib/habaki/node.rb +52 -0
  34. data/lib/habaki/page_rule.rb +24 -0
  35. data/lib/habaki/qualified_name.rb +29 -0
  36. data/lib/habaki/rule.rb +48 -0
  37. data/lib/habaki/rules.rb +225 -0
  38. data/lib/habaki/selector.rb +98 -0
  39. data/lib/habaki/selectors.rb +49 -0
  40. data/lib/habaki/style_rule.rb +35 -0
  41. data/lib/habaki/stylesheet.rb +158 -0
  42. data/lib/habaki/sub_selector.rb +234 -0
  43. data/lib/habaki/sub_selectors.rb +42 -0
  44. data/lib/habaki/supports_rule.rb +65 -0
  45. data/lib/habaki/value.rb +321 -0
  46. data/lib/habaki/values.rb +86 -0
  47. data/lib/habaki/visitor/element.rb +50 -0
  48. data/lib/habaki/visitor/media.rb +22 -0
  49. data/lib/habaki/visitor/nokogiri_element.rb +56 -0
  50. data/lib/habaki.rb +39 -0
  51. metadata +190 -0
@@ -0,0 +1,262 @@
1
+ /* A Bison parser, made by GNU Bison 3.5.1. */
2
+
3
+ /* Bison interface for Yacc-like parsers in C
4
+
5
+ Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation,
6
+ Inc.
7
+
8
+ This program is free software: you can redistribute it and/or modify
9
+ it under the terms of the GNU General Public License as published by
10
+ the Free Software Foundation, either version 3 of the License, or
11
+ (at your option) any later version.
12
+
13
+ This program is distributed in the hope that it will be useful,
14
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ GNU General Public License for more details.
17
+
18
+ You should have received a copy of the GNU General Public License
19
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
20
+
21
+ /* As a special exception, you may create a larger work that contains
22
+ part or all of the Bison parser skeleton and distribute that work
23
+ under terms of your choice, so long as that work isn't itself a
24
+ parser generator using the skeleton or a modified version thereof
25
+ as a parser skeleton. Alternatively, if you modify or redistribute
26
+ the parser skeleton itself, you may (at your option) remove this
27
+ special exception, which will cause the skeleton and the resulting
28
+ Bison output files to be licensed under the GNU General Public
29
+ License without this special exception.
30
+
31
+ This special exception was added by the Free Software Foundation in
32
+ version 2.2 of Bison. */
33
+
34
+ /* Undocumented macros, especially those whose name start with YY_,
35
+ are private implementation details. Do not rely on them. */
36
+
37
+ #ifndef YY_KATANA_SRC_KATANA_TAB_H_INCLUDED
38
+ # define YY_KATANA_SRC_KATANA_TAB_H_INCLUDED
39
+ /* Debug traces. */
40
+ #ifndef KATANADEBUG
41
+ # if defined YYDEBUG
42
+ #if YYDEBUG
43
+ # define KATANADEBUG 1
44
+ # else
45
+ # define KATANADEBUG 0
46
+ # endif
47
+ # else /* ! defined YYDEBUG */
48
+ # define KATANADEBUG 0
49
+ # endif /* ! defined YYDEBUG */
50
+ #endif /* ! defined KATANADEBUG */
51
+ #if KATANADEBUG
52
+ extern int katanadebug;
53
+ #endif
54
+ /* "%code requires" blocks. */
55
+
56
+
57
+ /*
58
+ * Copyright (C) 2002-2003 Lars Knoll (knoll@kde.org)
59
+ * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All rights reserved.
60
+ * Copyright (C) 2006 Alexey Proskuryakov (ap@nypop.com)
61
+ * Copyright (C) 2008 Eric Seidel <eric@webkit.org>
62
+ * Copyright (C) 2012 Intel Corporation. All rights reserved.
63
+ *
64
+ * This library is free software; you can redistribute it and/or
65
+ * modify it under the terms of the GNU Lesser General Public
66
+ * License as published by the Free Software Foundation; either
67
+ * version 2 of the License, or (at your option) any later version.
68
+ *
69
+ * This library is distributed in the hope that it will be useful,
70
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
71
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
72
+ * Lesser General Public License for more details.
73
+ *
74
+ * You should have received a copy of the GNU Lesser General Public
75
+ * License along with this library; if not, write to the Free Software
76
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
77
+ *
78
+ */
79
+
80
+ #include "foundation.h"
81
+ #include "katana.h"
82
+ #include <string.h>
83
+
84
+ #define YYENABLE_NLS 0
85
+ #define YYLTYPE_IS_TRIVIAL 1
86
+ #define YYMAXDEPTH 10000
87
+ #define YYDEBUG 0
88
+
89
+
90
+
91
+ /* Token type. */
92
+ #ifndef KATANATOKENTYPE
93
+ # define KATANATOKENTYPE
94
+ enum katanatokentype
95
+ {
96
+ TOKEN_EOF = 0,
97
+ LOWEST_PREC = 258,
98
+ UNIMPORTANT_TOK = 259,
99
+ KATANA_CSS_WHITESPACE = 260,
100
+ KATANA_CSS_SGML_CD = 261,
101
+ KATANA_CSS_INCLUDES = 262,
102
+ KATANA_CSS_DASHMATCH = 263,
103
+ KATANA_CSS_BEGINSWITH = 264,
104
+ KATANA_CSS_ENDSWITH = 265,
105
+ KATANA_CSS_CONTAINS = 266,
106
+ KATANA_CSS_STRING = 267,
107
+ KATANA_CSS_IDENT = 268,
108
+ KATANA_CSS_NTH = 269,
109
+ KATANA_CSS_HEX = 270,
110
+ KATANA_CSS_IDSEL = 271,
111
+ KATANA_CSS_IMPORT_SYM = 272,
112
+ KATANA_CSS_PAGE_SYM = 273,
113
+ KATANA_CSS_MEDIA_SYM = 274,
114
+ KATANA_CSS_SUPPORTS_SYM = 275,
115
+ KATANA_CSS_FONT_FACE_SYM = 276,
116
+ KATANA_CSS_CHARSET_SYM = 277,
117
+ KATANA_CSS_NAMESPACE_SYM = 278,
118
+ KATANA_CSS_VIEWPORT_RULE_SYM = 279,
119
+ KATANA_INTERNAL_DECLS_SYM = 280,
120
+ KATANA_INTERNAL_MEDIALIST_SYM = 281,
121
+ KATANA_INTERNAL_RULE_SYM = 282,
122
+ KATANA_INTERNAL_SELECTOR_SYM = 283,
123
+ KATANA_INTERNAL_VALUE_SYM = 284,
124
+ KATANA_INTERNAL_KEYFRAME_RULE_SYM = 285,
125
+ KATANA_INTERNAL_KEYFRAME_KEY_LIST_SYM = 286,
126
+ KATANA_INTERNAL_SUPPORTS_CONDITION_SYM = 287,
127
+ KATANA_CSS_KEYFRAMES_SYM = 288,
128
+ KATANA_CSS_WEBKIT_KATANA_CSS_KEYFRAMES_SYM = 289,
129
+ TOPLEFTCORNER_SYM = 290,
130
+ TOPLEFT_SYM = 291,
131
+ TOPCENTER_SYM = 292,
132
+ TOPRIGHT_SYM = 293,
133
+ TOPRIGHTCORNER_SYM = 294,
134
+ BOTTOMLEFTCORNER_SYM = 295,
135
+ BOTTOMLEFT_SYM = 296,
136
+ BOTTOMCENTER_SYM = 297,
137
+ BOTTOMRIGHT_SYM = 298,
138
+ BOTTOMRIGHTCORNER_SYM = 299,
139
+ LEFTTOP_SYM = 300,
140
+ LEFTMIDDLE_SYM = 301,
141
+ LEFTBOTTOM_SYM = 302,
142
+ RIGHTTOP_SYM = 303,
143
+ RIGHTMIDDLE_SYM = 304,
144
+ RIGHTBOTTOM_SYM = 305,
145
+ KATANA_CSS_ATKEYWORD = 306,
146
+ KATANA_CSS_IMPORTANT_SYM = 307,
147
+ KATANA_CSS_MEDIA_ONLY = 308,
148
+ KATANA_CSS_MEDIA_NOT = 309,
149
+ KATANA_CSS_MEDIA_AND = 310,
150
+ KATANA_CSS_MEDIA_OR = 311,
151
+ KATANA_CSS_SUPPORTS_NOT = 312,
152
+ KATANA_CSS_SUPPORTS_AND = 313,
153
+ KATANA_CSS_SUPPORTS_OR = 314,
154
+ KATANA_CSS_REMS = 315,
155
+ KATANA_CSS_CHS = 316,
156
+ KATANA_CSS_QEMS = 317,
157
+ KATANA_CSS_EMS = 318,
158
+ KATANA_CSS_EXS = 319,
159
+ KATANA_CSS_PXS = 320,
160
+ KATANA_CSS_CMS = 321,
161
+ KATANA_CSS_MMS = 322,
162
+ KATANA_CSS_INS = 323,
163
+ KATANA_CSS_PTS = 324,
164
+ KATANA_CSS_PCS = 325,
165
+ KATANA_CSS_DEGS = 326,
166
+ KATANA_CSS_RADS = 327,
167
+ KATANA_CSS_GRADS = 328,
168
+ KATANA_CSS_TURNS = 329,
169
+ KATANA_CSS_MSECS = 330,
170
+ KATANA_CSS_SECS = 331,
171
+ KATANA_CSS_HERTZ = 332,
172
+ KATANA_CSS_KHERTZ = 333,
173
+ KATANA_CSS_DIMEN = 334,
174
+ KATANA_CSS_INVALIDDIMEN = 335,
175
+ KATANA_CSS_PERCENTAGE = 336,
176
+ KATANA_CSS_FLOATTOKEN = 337,
177
+ KATANA_CSS_INTEGER = 338,
178
+ KATANA_CSS_VW = 339,
179
+ KATANA_CSS_VH = 340,
180
+ KATANA_CSS_VMIN = 341,
181
+ KATANA_CSS_VMAX = 342,
182
+ KATANA_CSS_DPPX = 343,
183
+ KATANA_CSS_DPI = 344,
184
+ KATANA_CSS_DPCM = 345,
185
+ KATANA_CSS_FR = 346,
186
+ KATANA_CSS_URI = 347,
187
+ KATANA_CSS_FUNCTION = 348,
188
+ KATANA_CSS_ANYFUNCTION = 349,
189
+ KATANA_CSS_CUEFUNCTION = 350,
190
+ KATANA_CSS_NOTFUNCTION = 351,
191
+ KATANA_CSS_DISTRIBUTEDFUNCTION = 352,
192
+ KATANA_CSS_CALCFUNCTION = 353,
193
+ KATANA_CSS_MINFUNCTION = 354,
194
+ KATANA_CSS_MAXFUNCTION = 355,
195
+ KATANA_CSS_HOSTFUNCTION = 356,
196
+ KATANA_CSS_HOSTCONTEXTFUNCTION = 357,
197
+ KATANA_CSS_UNICODERANGE = 358
198
+ };
199
+ #endif
200
+
201
+ /* Value type. */
202
+ #if ! defined KATANASTYPE && ! defined KATANASTYPE_IS_DECLARED
203
+ union KATANASTYPE
204
+ {
205
+
206
+
207
+ bool boolean;
208
+ char character;
209
+ int integer;
210
+ KatanaParserNumber number;
211
+ KatanaParserString string;
212
+
213
+ KatanaRule* rule;
214
+ // The content of the three below HeapVectors are guaranteed to be kept alive by
215
+ // the corresponding parsedRules, floatingMediaQueryExpList, and parsedKeyFrames
216
+ // lists
217
+ KatanaArray* ruleList;
218
+ KatanaArray* mediaQueryExpList;
219
+ KatanaArray* keyframeRuleList;
220
+
221
+ KatanaSelector* selector;
222
+ KatanaArray* selectorList;
223
+ // CSSSelector::MarginBoxType marginBox;
224
+ KatanaSelectorRelation relation;
225
+ KatanaAttributeMatchType attributeMatchType;
226
+ KatanaArray* mediaList;
227
+ KatanaMediaQuery* mediaQuery;
228
+ KatanaMediaQueryRestrictor mediaQueryRestrictor;
229
+ KatanaMediaQueryExp* mediaQueryExp;
230
+ KatanaValue* value;
231
+ KatanaArray* valueList;
232
+ KatanaKeyframe* keyframe;
233
+ KatanaSourcePosition* location;
234
+
235
+ KatanaSupportsExp* supportsExp;
236
+
237
+
238
+ };
239
+ typedef union KATANASTYPE KATANASTYPE;
240
+ # define KATANASTYPE_IS_TRIVIAL 1
241
+ # define KATANASTYPE_IS_DECLARED 1
242
+ #endif
243
+
244
+ /* Location type. */
245
+ #if ! defined KATANALTYPE && ! defined KATANALTYPE_IS_DECLARED
246
+ typedef struct KATANALTYPE KATANALTYPE;
247
+ struct KATANALTYPE
248
+ {
249
+ int first_line;
250
+ int first_column;
251
+ int last_line;
252
+ int last_column;
253
+ };
254
+ # define KATANALTYPE_IS_DECLARED 1
255
+ # define KATANALTYPE_IS_TRIVIAL 1
256
+ #endif
257
+
258
+
259
+
260
+ int katanaparse (void* scanner, struct KatanaInternalParser * parser);
261
+
262
+ #endif /* !YY_KATANA_SRC_KATANA_TAB_H_INCLUDED */