nokogiri 1.4.1-x86-mingw32 → 1.4.2.1-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of nokogiri might be problematic. Click here for more details.

Files changed (112) hide show
  1. data/CHANGELOG.ja.rdoc +45 -0
  2. data/CHANGELOG.rdoc +53 -1
  3. data/Manifest.txt +3 -3
  4. data/README.ja.rdoc +1 -1
  5. data/README.rdoc +11 -5
  6. data/Rakefile +13 -79
  7. data/ext/nokogiri/extconf.rb +25 -74
  8. data/ext/nokogiri/html_document.c +17 -8
  9. data/ext/nokogiri/html_element_description.c +20 -16
  10. data/ext/nokogiri/html_entity_lookup.c +2 -2
  11. data/ext/nokogiri/html_sax_parser_context.c +10 -8
  12. data/ext/nokogiri/nokogiri.c +0 -1
  13. data/ext/nokogiri/nokogiri.h +33 -28
  14. data/ext/nokogiri/xml_attr.c +7 -5
  15. data/ext/nokogiri/xml_attribute_decl.c +5 -2
  16. data/ext/nokogiri/xml_cdata.c +4 -2
  17. data/ext/nokogiri/xml_comment.c +4 -2
  18. data/ext/nokogiri/xml_document.c +93 -15
  19. data/ext/nokogiri/xml_document.h +0 -1
  20. data/ext/nokogiri/xml_document_fragment.c +4 -2
  21. data/ext/nokogiri/xml_dtd.c +18 -8
  22. data/ext/nokogiri/xml_element_content.c +2 -2
  23. data/ext/nokogiri/xml_entity_decl.c +15 -2
  24. data/ext/nokogiri/xml_entity_reference.c +4 -2
  25. data/ext/nokogiri/xml_io.c +1 -1
  26. data/ext/nokogiri/xml_namespace.c +5 -3
  27. data/ext/nokogiri/xml_node.c +353 -114
  28. data/ext/nokogiri/xml_node_set.c +35 -22
  29. data/ext/nokogiri/xml_node_set.h +1 -1
  30. data/ext/nokogiri/xml_processing_instruction.c +4 -2
  31. data/ext/nokogiri/xml_reader.c +119 -47
  32. data/ext/nokogiri/xml_relax_ng.c +21 -12
  33. data/ext/nokogiri/xml_sax_parser.c +6 -3
  34. data/ext/nokogiri/xml_sax_parser.h +13 -17
  35. data/ext/nokogiri/xml_sax_parser_context.c +8 -6
  36. data/ext/nokogiri/xml_sax_push_parser.c +7 -6
  37. data/ext/nokogiri/xml_schema.c +62 -13
  38. data/ext/nokogiri/xml_syntax_error.c +18 -12
  39. data/ext/nokogiri/xml_syntax_error.h +1 -1
  40. data/ext/nokogiri/xml_text.c +4 -2
  41. data/ext/nokogiri/xml_xpath_context.c +60 -23
  42. data/ext/nokogiri/xslt_stylesheet.c +14 -3
  43. data/lib/nokogiri.rb +17 -0
  44. data/lib/nokogiri/1.8/nokogiri.so +0 -0
  45. data/lib/nokogiri/1.9/nokogiri.so +0 -0
  46. data/lib/nokogiri/css/generated_parser.rb +72 -62
  47. data/lib/nokogiri/css/generated_tokenizer.rb +23 -23
  48. data/lib/nokogiri/css/parser.y +3 -1
  49. data/lib/nokogiri/css/tokenizer.rex +3 -3
  50. data/lib/nokogiri/css/xpath_visitor.rb +8 -3
  51. data/lib/nokogiri/ffi/html/sax/parser_context.rb +3 -3
  52. data/lib/nokogiri/ffi/libxml.rb +16 -2
  53. data/lib/nokogiri/ffi/structs/common_node.rb +15 -3
  54. data/lib/nokogiri/ffi/structs/xml_document.rb +13 -4
  55. data/lib/nokogiri/ffi/structs/xml_xpath_context.rb +3 -2
  56. data/lib/nokogiri/ffi/weak_bucket.rb +40 -0
  57. data/lib/nokogiri/ffi/xml/document.rb +27 -0
  58. data/lib/nokogiri/ffi/xml/entity_decl.rb +9 -0
  59. data/lib/nokogiri/ffi/xml/node.rb +142 -61
  60. data/lib/nokogiri/ffi/xml/node_set.rb +15 -12
  61. data/lib/nokogiri/ffi/xml/reader.rb +5 -0
  62. data/lib/nokogiri/ffi/xml/schema.rb +17 -0
  63. data/lib/nokogiri/ffi/xml/syntax_error.rb +4 -4
  64. data/lib/nokogiri/ffi/xml/xpath.rb +0 -10
  65. data/lib/nokogiri/ffi/xml/xpath_context.rb +22 -9
  66. data/lib/nokogiri/ffi/xslt/stylesheet.rb +3 -0
  67. data/lib/nokogiri/html/document.rb +5 -3
  68. data/lib/nokogiri/html/document_fragment.rb +28 -7
  69. data/lib/nokogiri/version.rb +6 -2
  70. data/lib/nokogiri/version_warning.rb +6 -3
  71. data/lib/nokogiri/xml.rb +1 -1
  72. data/lib/nokogiri/xml/builder.rb +35 -22
  73. data/lib/nokogiri/xml/document.rb +44 -12
  74. data/lib/nokogiri/xml/document_fragment.rb +16 -12
  75. data/lib/nokogiri/xml/entity_decl.rb +4 -0
  76. data/lib/nokogiri/xml/node.rb +152 -95
  77. data/lib/nokogiri/xml/node_set.rb +2 -1
  78. data/lib/nokogiri/xml/sax/push_parser.rb +1 -1
  79. data/lib/nokogiri/xml/schema.rb +1 -5
  80. data/lib/nokogiri/xml/syntax_error.rb +4 -0
  81. data/lib/nokogiri/xml/text.rb +9 -0
  82. data/lib/nokogiri/xml/xpath/syntax_error.rb +3 -0
  83. data/tasks/cross_compile.rb +158 -0
  84. data/tasks/test.rb +0 -6
  85. data/test/css/test_xpath_visitor.rb +9 -0
  86. data/test/helper.rb +49 -11
  87. data/test/html/sax/test_parser.rb +11 -1
  88. data/test/html/test_document.rb +8 -0
  89. data/test/html/test_document_fragment.rb +14 -2
  90. data/test/html/test_element_description.rb +5 -1
  91. data/test/html/test_node.rb +5 -66
  92. data/test/test_reader.rb +28 -0
  93. data/test/test_xslt_transforms.rb +14 -0
  94. data/test/xml/test_builder.rb +43 -0
  95. data/test/xml/test_cdata.rb +12 -0
  96. data/test/xml/test_document.rb +74 -39
  97. data/test/xml/test_document_fragment.rb +36 -0
  98. data/test/xml/test_entity_decl.rb +37 -0
  99. data/test/xml/test_node.rb +192 -65
  100. data/test/xml/test_node_reparenting.rb +253 -236
  101. data/test/xml/test_node_set.rb +67 -0
  102. data/test/xml/test_text.rb +8 -0
  103. data/test/xml/test_xpath.rb +32 -0
  104. metadata +151 -79
  105. data/ext/nokogiri/iconv.dll +0 -0
  106. data/ext/nokogiri/libexslt.dll +0 -0
  107. data/ext/nokogiri/libxml2.dll +0 -0
  108. data/ext/nokogiri/libxslt.dll +0 -0
  109. data/ext/nokogiri/xml_xpath.c +0 -53
  110. data/ext/nokogiri/xml_xpath.h +0 -11
  111. data/ext/nokogiri/zlib1.dll +0 -0
  112. data/lib/nokogiri/xml/fragment_handler.rb +0 -79
@@ -9,18 +9,20 @@
9
9
  static VALUE new(int argc, VALUE *argv, VALUE klass)
10
10
  {
11
11
  xmlDocPtr doc;
12
+ xmlNodePtr node;
12
13
  VALUE string;
13
14
  VALUE document;
14
15
  VALUE rest;
16
+ VALUE rb_node;
15
17
 
16
18
  rb_scan_args(argc, argv, "2*", &string, &document, &rest);
17
19
 
18
20
  Data_Get_Struct(document, xmlDoc, doc);
19
21
 
20
- xmlNodePtr node = xmlNewText((xmlChar *)StringValuePtr(string));
22
+ node = xmlNewText((xmlChar *)StringValuePtr(string));
21
23
  node->doc = doc->doc;
22
24
 
23
- VALUE rb_node = Nokogiri_wrap_xml_node(klass, node) ;
25
+ rb_node = Nokogiri_wrap_xml_node(klass, node) ;
24
26
  rb_obj_call_init(rb_node, argc, argv);
25
27
 
26
28
  if(rb_block_given_p()) rb_yield(rb_node);
@@ -1,5 +1,7 @@
1
1
  #include <xml_xpath_context.h>
2
2
 
3
+ int vasprintf (char **strp, const char *fmt, va_list ap);
4
+
3
5
  static void deallocate(xmlXPathContextPtr ctx)
4
6
  {
5
7
  NOKOGIRI_DEBUG_START(ctx);
@@ -28,7 +30,13 @@ static VALUE register_ns(VALUE self, VALUE prefix, VALUE uri)
28
30
  static void ruby_funcall(xmlXPathParserContextPtr ctx, int nargs)
29
31
  {
30
32
  VALUE xpath_handler = Qnil;
33
+ VALUE result;
34
+ VALUE *argv;
35
+ VALUE doc;
36
+ VALUE node_set = Qnil;
37
+ xmlNodeSetPtr xml_node_set = NULL;
31
38
  xmlXPathObjectPtr obj;
39
+ int i;
32
40
 
33
41
  assert(ctx);
34
42
  assert(ctx->context);
@@ -38,10 +46,10 @@ static void ruby_funcall(xmlXPathParserContextPtr ctx, int nargs)
38
46
 
39
47
  xpath_handler = (VALUE)(ctx->context->userData);
40
48
 
41
- VALUE * argv = (VALUE *)calloc((unsigned int)nargs, sizeof(VALUE));
42
- VALUE doc = DOC_RUBY_OBJECT(ctx->context->doc);
49
+ argv = (VALUE *)calloc((unsigned int)nargs, sizeof(VALUE));
50
+ doc = DOC_RUBY_OBJECT(ctx->context->doc);
43
51
 
44
- int i = nargs - 1;
52
+ i = nargs - 1;
45
53
  do {
46
54
  obj = valuePop(ctx);
47
55
  switch(obj->type) {
@@ -55,7 +63,7 @@ static void ruby_funcall(xmlXPathParserContextPtr ctx, int nargs)
55
63
  argv[i] = rb_float_new(obj->floatval);
56
64
  break;
57
65
  case XPATH_NODESET:
58
- argv[i] = Nokogiri_wrap_xml_node_set(obj->nodesetval);
66
+ argv[i] = Nokogiri_wrap_xml_node_set(obj->nodesetval, doc);
59
67
  break;
60
68
  default:
61
69
  argv[i] = NOKOGIRI_STR_NEW2(xmlXPathCastToString(obj));
@@ -63,7 +71,7 @@ static void ruby_funcall(xmlXPathParserContextPtr ctx, int nargs)
63
71
  xmlXPathFreeNodeSetList(obj);
64
72
  } while(i-- > 0);
65
73
 
66
- VALUE result = rb_funcall2(
74
+ result = rb_funcall2(
67
75
  xpath_handler,
68
76
  rb_intern((const char *)ctx->context->function),
69
77
  nargs,
@@ -71,9 +79,6 @@ static void ruby_funcall(xmlXPathParserContextPtr ctx, int nargs)
71
79
  );
72
80
  free(argv);
73
81
 
74
- VALUE node_set = Qnil;
75
- xmlNodeSetPtr xml_node_set = NULL;
76
-
77
82
  switch(TYPE(result)) {
78
83
  case T_FLOAT:
79
84
  case T_BIGNUM:
@@ -96,7 +101,9 @@ static void ruby_funcall(xmlXPathParserContextPtr ctx, int nargs)
96
101
  break;
97
102
  case T_ARRAY:
98
103
  {
99
- VALUE args[2] = {doc, result};
104
+ VALUE args[2];
105
+ args[0] = doc;
106
+ args[1] = result;
100
107
  node_set = rb_class_new_instance(2, args, cNokogiriXmlNodeSet);
101
108
  Data_Get_Struct(node_set, xmlNodeSet, xml_node_set);
102
109
  xmlXPathReturnNodeSet(ctx, xmlXPathNodeSetMerge(NULL, xml_node_set));
@@ -105,7 +112,7 @@ static void ruby_funcall(xmlXPathParserContextPtr ctx, int nargs)
105
112
  case T_DATA:
106
113
  if(rb_obj_is_kind_of(result, cNokogiriXmlNodeSet)) {
107
114
  Data_Get_Struct(result, xmlNodeSet, xml_node_set);
108
- // Copy the node set, otherwise it will get GC'd.
115
+ /* Copy the node set, otherwise it will get GC'd. */
109
116
  xmlXPathReturnNodeSet(ctx, xmlXPathNodeSetMerge(NULL, xml_node_set));
110
117
  break;
111
118
  }
@@ -125,6 +132,7 @@ static xmlXPathFunction lookup( void *ctx,
125
132
  return NULL;
126
133
  }
127
134
 
135
+ NORETURN(static void xpath_exception_handler(void * ctx, xmlErrorPtr error));
128
136
  static void xpath_exception_handler(void * ctx, xmlErrorPtr error)
129
137
  {
130
138
  VALUE xpath = rb_const_get(mNokogiriXml, rb_intern("XPath"));
@@ -133,6 +141,7 @@ static void xpath_exception_handler(void * ctx, xmlErrorPtr error)
133
141
  rb_exc_raise(Nokogiri_wrap_xml_syntax_error(klass, error));
134
142
  }
135
143
 
144
+ NORETURN(static void xpath_generic_exception_handler(void * ctx, const char *msg, ...));
136
145
  static void xpath_generic_exception_handler(void * ctx, const char *msg, ...)
137
146
  {
138
147
  char * message;
@@ -154,16 +163,20 @@ static void xpath_generic_exception_handler(void * ctx, const char *msg, ...)
154
163
  static VALUE evaluate(int argc, VALUE *argv, VALUE self)
155
164
  {
156
165
  VALUE search_path, xpath_handler;
166
+ VALUE thing = Qnil;
157
167
  xmlXPathContextPtr ctx;
168
+ xmlXPathObjectPtr xpath;
169
+ xmlChar *query;
170
+
158
171
  Data_Get_Struct(self, xmlXPathContext, ctx);
159
172
 
160
173
  if(rb_scan_args(argc, argv, "11", &search_path, &xpath_handler) == 1)
161
174
  xpath_handler = Qnil;
162
175
 
163
- xmlChar* query = (xmlChar *)StringValuePtr(search_path);
176
+ query = (xmlChar *)StringValuePtr(search_path);
164
177
 
165
178
  if(Qnil != xpath_handler) {
166
- // FIXME: not sure if this is the correct place to shove private data.
179
+ /* FIXME: not sure if this is the correct place to shove private data. */
167
180
  ctx->userData = (void *)xpath_handler;
168
181
  xmlXPathRegisterFuncLookup(ctx, lookup, (void *)xpath_handler);
169
182
  }
@@ -171,11 +184,11 @@ static VALUE evaluate(int argc, VALUE *argv, VALUE self)
171
184
  xmlResetLastError();
172
185
  xmlSetStructuredErrorFunc(NULL, xpath_exception_handler);
173
186
 
174
- // For some reason, xmlXPathEvalExpression will blow up with a generic error
175
- // when there is a non existent function.
187
+ /* For some reason, xmlXPathEvalExpression will blow up with a generic error */
188
+ /* when there is a non existent function. */
176
189
  xmlSetGenericErrorFunc(NULL, xpath_generic_exception_handler);
177
190
 
178
- xmlXPathObjectPtr xpath = xmlXPathEvalExpression(query, ctx);
191
+ xpath = xmlXPathEvalExpression(query, ctx);
179
192
  xmlSetStructuredErrorFunc(NULL, NULL);
180
193
  xmlSetGenericErrorFunc(NULL, NULL);
181
194
 
@@ -187,13 +200,34 @@ static VALUE evaluate(int argc, VALUE *argv, VALUE self)
187
200
  rb_exc_raise(Nokogiri_wrap_xml_syntax_error(klass, error));
188
201
  }
189
202
 
190
- VALUE xpath_object = Nokogiri_wrap_xml_xpath(xpath);
191
-
192
203
  assert(ctx->doc);
193
204
  assert(DOC_RUBY_OBJECT_TEST(ctx->doc));
194
205
 
195
- rb_iv_set(xpath_object, "@document", DOC_RUBY_OBJECT(ctx->doc));
196
- return xpath_object;
206
+ switch(xpath->type) {
207
+ case XPATH_STRING:
208
+ thing = NOKOGIRI_STR_NEW2(xpath->stringval);
209
+ break;
210
+ case XPATH_NODESET:
211
+ if(NULL == xpath->nodesetval) {
212
+ thing = Nokogiri_wrap_xml_node_set(xmlXPathNodeSetCreate(NULL),
213
+ DOC_RUBY_OBJECT(ctx->doc));
214
+ } else {
215
+ thing = Nokogiri_wrap_xml_node_set(xpath->nodesetval,
216
+ DOC_RUBY_OBJECT(ctx->doc));
217
+ }
218
+ break;
219
+ case XPATH_NUMBER:
220
+ thing = rb_float_new(xpath->floatval);
221
+ break;
222
+ case XPATH_BOOLEAN:
223
+ thing = xpath->boolval == 1 ? Qtrue : Qfalse;
224
+ break;
225
+ default:
226
+ thing = Nokogiri_wrap_xml_node_set(xmlXPathNodeSetCreate(NULL),
227
+ DOC_RUBY_OBJECT(ctx->doc));
228
+ }
229
+
230
+ return thing;
197
231
  }
198
232
 
199
233
  /*
@@ -204,15 +238,18 @@ static VALUE evaluate(int argc, VALUE *argv, VALUE self)
204
238
  */
205
239
  static VALUE new(VALUE klass, VALUE nodeobj)
206
240
  {
241
+ xmlNodePtr node;
242
+ xmlXPathContextPtr ctx;
243
+ VALUE self;
244
+
207
245
  xmlXPathInit();
208
246
 
209
- xmlNodePtr node ;
210
247
  Data_Get_Struct(nodeobj, xmlNode, node);
211
248
 
212
- xmlXPathContextPtr ctx = xmlXPathNewContext(node->doc);
249
+ ctx = xmlXPathNewContext(node->doc);
213
250
  ctx->node = node;
214
- VALUE self = Data_Wrap_Struct(klass, 0, deallocate, ctx);
215
- //rb_iv_set(self, "@xpath_handler", Qnil);
251
+ self = Data_Wrap_Struct(klass, 0, deallocate, ctx);
252
+ /*rb_iv_set(self, "@xpath_handler", Qnil); */
216
253
  return self;
217
254
  }
218
255
 
@@ -5,13 +5,16 @@
5
5
  #include <libxslt/transform.h>
6
6
  #include <libexslt/exslt.h>
7
7
 
8
+ int vasprintf (char **strp, const char *fmt, va_list ap);
9
+
8
10
  static void dealloc(xsltStylesheetPtr doc)
9
11
  {
10
12
  NOKOGIRI_DEBUG_START(doc);
11
- xsltFreeStylesheet(doc); // commented out for now.
13
+ xsltFreeStylesheet(doc); /* commented out for now. */
12
14
  NOKOGIRI_DEBUG_END(doc);
13
15
  }
14
16
 
17
+ NORETURN(static void xslt_generic_error_handler(void * ctx, const char *msg, ...));
15
18
  static void xslt_generic_error_handler(void * ctx, const char *msg, ...)
16
19
  {
17
20
  char * message;
@@ -91,11 +94,19 @@ static VALUE transform(int argc, VALUE* argv, VALUE self)
91
94
  xmlDocPtr result ;
92
95
  xsltStylesheetPtr ss ;
93
96
  const char** params ;
94
- int param_len, j ;
97
+ long param_len, j ;
95
98
 
96
99
  rb_scan_args(argc, argv, "11", &xmldoc, &paramobj);
97
100
  if (NIL_P(paramobj)) { paramobj = rb_ary_new2(0) ; }
98
101
 
102
+ /* handle hashes as arguments. */
103
+ if(T_HASH == TYPE(paramobj)) {
104
+ paramobj = rb_funcall(paramobj, rb_intern("to_a"), 0);
105
+ paramobj = rb_funcall(paramobj, rb_intern("flatten"), 0);
106
+ }
107
+
108
+ Check_Type(paramobj, T_ARRAY);
109
+
99
110
  Data_Get_Struct(xmldoc, xmlDoc, xml);
100
111
  Data_Get_Struct(self, xsltStylesheet, ss);
101
112
 
@@ -124,7 +135,7 @@ void init_xslt_stylesheet()
124
135
  VALUE klass = rb_define_class_under(xslt, "Stylesheet", rb_cObject);
125
136
 
126
137
  cNokogiriXsltStylesheet = klass;
127
-
138
+
128
139
  rb_define_singleton_method(klass, "parse_stylesheet_doc", parse_stylesheet_doc, 1);
129
140
  rb_define_method(klass, "serialize", serialize, 1);
130
141
  rb_define_method(klass, "transform", transform, -1);
@@ -13,6 +13,23 @@ else
13
13
  require 'nokogiri/nokogiri'
14
14
  end
15
15
 
16
+ warn(<<-eowarn) if '1.8.6' == RUBY_VERSION && $VERBOSE
17
+ !!! DEPRECATION WARNING !!!
18
+ Hey Champ! I see you're using Ruby 1.8.6! While I applaud you for sticking to
19
+ your guns and using The One True Ruby, I have to let you know that we're going
20
+ to stop supporting 1.8.6. I know, it's sad. But, we just don't have time to
21
+ support every version of Ruby out there. Whether we like it or not, time moves
22
+ forward and so does our software.
23
+
24
+ On August 1, 2010, we will no longer support Ruby 1.8.6. If nokogiri happens to
25
+ work on 1.8.6 after that date, then great! We will hownever, no longer test,
26
+ use, or endorse 1.8.6 as a supported platform.
27
+
28
+ Thanks,
29
+
30
+ Team Nokogiri
31
+ eowarn
32
+
16
33
  require 'nokogiri/version'
17
34
  require 'nokogiri/version_warning'
18
35
  require 'nokogiri/syntax_error'
Binary file
Binary file
@@ -13,82 +13,86 @@ module Nokogiri
13
13
  ##### State transition tables begin ###
14
14
 
15
15
  racc_action_table = [
16
- 3, 55, 26, 21, 12, 24, 56, 3, 57, 1,
17
- 73, 12, 41, 56, 3, 23, 1, 79, 12, 18,
18
- 91, 90, 4, 1, 9, 10, 18, 13, 16, 4,
16
+ 3, 55, 26, 21, 12, 24, 56, 3, 81, 1,
17
+ 41, 12, 41, 56, 3, 23, 1, 80, 12, 18,
18
+ 92, 91, 4, 1, 9, 10, 18, 13, 16, 4,
19
19
  12, 9, 10, 18, 13, 16, 4, 12, 9, 10,
20
- 3, 13, 16, 41, 12, 41, 60, 61, 4, 1,
21
- 63, 10, 12, 44, 16, 4, 12, 12, 10, 18,
22
- 3, 16, 4, 3, 9, 10, 80, 13, 16, 27,
23
- 4, 28, 48, 10, 4, 4, 16, 10, 10, 18,
24
- 16, 16, 18, 12, 9, 58, 61, 9, 26, 51,
25
- 57, 53, 26, 51, 81, 53, 82, 66, 68, -22,
26
- 62, 4, 66, 68, 10, 85, 86, 16, 67, 69,
27
- 70, 59, 72, 67, 69, 70, 64, 72, 32, 34,
28
- 36, 64, 26, 51, 54, 53, 26, 51, 31, 53,
29
- 33, 35, 89, 4, 92, 93, 94 ]
20
+ 3, 13, 16, 73, 12, 12, 60, 61, 4, 1,
21
+ 57, 10, 12, 44, 16, 4, 61, 1, 10, 18,
22
+ 41, 16, 4, 4, 9, 10, 10, 13, 16, 16,
23
+ 4, 3, 58, 10, 3, 13, 16, 57, 12, 12,
24
+ 27, 82, 28, 48, 26, 51, 12, 53, 26, 51,
25
+ 18, 53, 83, 18, 4, 9, 4, 4, 9, 10,
26
+ 10, 63, 16, 16, 4, 66, 68, 10, 26, 51,
27
+ 16, 53, 86, 87, 66, 68, 67, 69, 70, 62,
28
+ 72, 59, 90, 54, 64, 67, 69, 70, 93, 72,
29
+ 32, 34, 36, 64, 26, 51, -22, 53, 95, 96,
30
+ 31, nil, 33, 35 ]
30
31
 
31
32
  racc_action_check = [
32
- 0, 20, 3, 3, 0, 3, 43, 56, 51, 0,
33
- 28, 56, 39, 20, 9, 3, 56, 43, 9, 0,
34
- 71, 71, 0, 9, 0, 0, 56, 0, 0, 56,
35
- 7, 56, 56, 9, 56, 56, 9, 6, 9, 9,
36
- 30, 9, 9, 11, 30, 7, 24, 24, 7, 30,
37
- 26, 7, 8, 10, 7, 6, 41, 17, 6, 30,
38
- 4, 6, 30, 16, 30, 30, 52, 30, 30, 4,
39
- 8, 4, 16, 8, 41, 17, 8, 41, 17, 4,
40
- 41, 17, 16, 15, 4, 21, 53, 16, 61, 61,
41
- 21, 61, 18, 18, 54, 18, 55, 29, 29, 1,
42
- 25, 15, 27, 27, 15, 58, 60, 15, 29, 29,
43
- 29, 22, 29, 27, 27, 27, 29, 27, 5, 5,
44
- 5, 27, 57, 57, 19, 57, 63, 63, 5, 63,
45
- 5, 5, 65, 14, 74, 78, 86 ]
33
+ 0, 20, 3, 3, 0, 3, 43, 30, 52, 0,
34
+ 39, 30, 11, 20, 56, 3, 30, 43, 56, 0,
35
+ 71, 71, 0, 56, 0, 0, 30, 0, 0, 30,
36
+ 8, 30, 30, 56, 30, 30, 56, 6, 56, 56,
37
+ 9, 56, 56, 28, 9, 7, 24, 24, 8, 9,
38
+ 51, 8, 41, 10, 8, 6, 53, 41, 6, 9,
39
+ 7, 6, 9, 7, 9, 9, 7, 9, 9, 7,
40
+ 41, 4, 21, 41, 16, 41, 41, 21, 15, 17,
41
+ 4, 54, 4, 16, 63, 63, 77, 63, 61, 61,
42
+ 4, 61, 55, 16, 14, 4, 15, 17, 16, 15,
43
+ 17, 26, 15, 17, 77, 29, 29, 77, 57, 57,
44
+ 77, 57, 58, 60, 27, 27, 29, 29, 29, 25,
45
+ 29, 22, 65, 19, 29, 27, 27, 27, 74, 27,
46
+ 5, 5, 5, 27, 18, 18, 1, 18, 79, 87,
47
+ 5, nil, 5, 5 ]
46
48
 
47
49
  racc_action_pointer = [
48
- -2, 71, nil, -8, 58, 111, 31, 24, 46, 12,
49
- 42, 22, nil, nil, 109, 77, 61, 51, 82, 96,
50
- 1, 78, 88, nil, 35, 77, 38, 99, -15, 94,
51
- 38, nil, nil, nil, nil, nil, nil, nil, nil, -9,
52
- nil, 50, nil, -6, nil, nil, nil, nil, nil, nil,
53
- nil, -4, 43, 74, 83, 96, 5, 112, 92, nil,
54
- 99, 78, nil, 116, nil, 107, nil, nil, nil, nil,
55
- nil, 10, nil, nil, 109, nil, nil, nil, 112, nil,
56
- nil, nil, nil, nil, nil, nil, 123, nil, nil, nil,
57
- nil, nil, nil, nil, nil ]
50
+ -2, 108, nil, -8, 69, 123, 31, 39, 24, 38,
51
+ 42, -9, nil, nil, 70, 72, 72, 73, 124, 95,
52
+ 1, 65, 98, nil, 35, 96, 89, 111, 18, 102,
53
+ 5, nil, nil, nil, nil, nil, nil, nil, nil, -11,
54
+ nil, 46, nil, -6, nil, nil, nil, nil, nil, nil,
55
+ nil, 38, -15, 44, 70, 92, 12, 98, 99, nil,
56
+ 106, 78, nil, 74, nil, 97, nil, nil, nil, nil,
57
+ nil, 10, nil, nil, 103, nil, nil, 80, nil, 115,
58
+ nil, nil, nil, nil, nil, nil, nil, 126, nil, nil,
59
+ nil, nil, nil, nil, nil, nil, nil ]
58
60
 
59
61
  racc_action_default = [
60
- -23, -20, -2, -66, -66, -17, -52, -44, -49, -23,
61
- -66, -15, -53, -21, -12, -51, -66, -50, -66, -66,
62
- -66, -37, -66, -27, -35, -66, -36, -56, -66, -56,
62
+ -23, -20, -2, -68, -68, -17, -52, -44, -49, -23,
63
+ -68, -15, -53, -21, -12, -51, -68, -50, -68, -68,
64
+ -68, -37, -68, -27, -35, -68, -36, -56, -68, -56,
63
65
  -23, -5, -3, -8, -4, -7, -6, -48, -9, -43,
64
- -11, -66, -45, -66, -18, -14, -13, -47, -42, -41,
65
- -46, -37, -66, -35, -66, -66, -23, -66, -66, -28,
66
- -40, -66, -29, -66, -57, -66, -62, -58, -63, -59,
67
- -60, -66, -61, -26, -66, -16, -10, -65, -66, -31,
68
- -30, -19, 95, -1, -34, -39, -66, -32, -33, -24,
69
- -54, -55, -25, -64, -38 ]
66
+ -11, -23, -45, -68, -18, -14, -13, -47, -42, -41,
67
+ -46, -37, -68, -35, -68, -68, -23, -68, -68, -28,
68
+ -40, -68, -29, -68, -57, -68, -62, -58, -63, -59,
69
+ -60, -68, -61, -26, -68, -16, -10, -65, -67, -68,
70
+ -31, -30, -19, 97, -1, -34, -39, -68, -32, -33,
71
+ -24, -54, -55, -25, -66, -64, -38 ]
70
72
 
71
73
  racc_goto_table = [
72
- 22, 37, 39, 42, 75, 40, 29, 20, 30, 45,
73
- 47, 65, 50, 74, 38, 52, 43, 46, 49, 25,
74
- 78, nil, nil, nil, nil, nil, nil, nil, nil, nil,
75
- 83, nil, nil, nil, nil, nil, 77, 76, nil, nil,
74
+ 37, 39, 42, 22, 40, 75, 20, 29, 45, 47,
75
+ 65, 50, 74, 38, 46, 43, 77, 30, 52, 49,
76
+ 25, 79, nil, nil, nil, nil, nil, nil, nil, nil,
77
+ nil, 84, nil, nil, nil, 78, 76, nil, nil, nil,
76
78
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
77
- nil, nil, nil, nil, 84, nil, nil, nil, 87, nil,
78
- 88 ]
79
+ nil, nil, nil, nil, nil, nil, nil, 85, nil, nil,
80
+ nil, 88, nil, 89, nil, nil, nil, nil, nil, nil,
81
+ nil, 94 ]
79
82
 
80
83
  racc_goto_check = [
81
- 14, 7, 7, 7, 2, 8, 9, 1, 3, 8,
82
- 7, 13, 7, 13, 6, 14, 1, 10, 9, 15,
83
- 19, nil, nil, nil, nil, nil, nil, nil, nil, nil,
84
- 2, nil, nil, nil, nil, nil, 7, 8, nil, nil,
84
+ 7, 7, 7, 14, 8, 2, 1, 9, 8, 7,
85
+ 13, 7, 13, 6, 10, 1, 5, 3, 14, 9,
86
+ 15, 19, nil, nil, nil, nil, nil, nil, nil, nil,
87
+ nil, 2, nil, nil, nil, 7, 8, nil, nil, nil,
85
88
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
86
- nil, nil, nil, nil, 14, nil, nil, nil, 14, nil,
87
- 14 ]
89
+ nil, nil, nil, nil, nil, nil, nil, 14, nil, nil,
90
+ nil, 14, nil, 14, nil, nil, nil, nil, nil, nil,
91
+ nil, 7 ]
88
92
 
89
93
  racc_goto_pointer = [
90
- nil, 7, -26, 3, nil, nil, 7, -5, -2, 2,
91
- 3, nil, nil, -16, -3, 16, nil, nil, nil, -21 ]
94
+ nil, 6, -25, 12, nil, -25, 6, -6, -3, 3,
95
+ 0, nil, nil, -17, 0, 17, nil, nil, nil, -20 ]
92
96
 
93
97
  racc_goto_default = [
94
98
  nil, nil, 2, nil, 5, 7, nil, 11, nil, 14,
@@ -160,11 +164,13 @@ racc_reduce_table = [
160
164
  1, 49, :_reduce_62,
161
165
  1, 49, :_reduce_63,
162
166
  3, 39, :_reduce_64,
167
+ 1, 50, :_reduce_none,
168
+ 2, 50, :_reduce_none,
163
169
  1, 50, :_reduce_none ]
164
170
 
165
- racc_reduce_n = 66
171
+ racc_reduce_n = 68
166
172
 
167
- racc_shift_n = 95
173
+ racc_shift_n = 97
168
174
 
169
175
  racc_token_table = {
170
176
  false => 0,
@@ -650,6 +656,10 @@ end
650
656
 
651
657
  # reduce 65 omitted
652
658
 
659
+ # reduce 66 omitted
660
+
661
+ # reduce 67 omitted
662
+
653
663
  def _reduce_none(val, _values, result)
654
664
  val[0]
655
665
  end