nokogiri 1.10.10 → 1.14.3-aarch64-linux

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 (251) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +44 -0
  3. data/LICENSE-DEPENDENCIES.md +1632 -1022
  4. data/LICENSE.md +1 -1
  5. data/README.md +185 -96
  6. data/bin/nokogiri +63 -50
  7. data/dependencies.yml +33 -66
  8. data/ext/nokogiri/depend +38 -358
  9. data/ext/nokogiri/extconf.rb +819 -421
  10. data/ext/nokogiri/gumbo.c +594 -0
  11. data/ext/nokogiri/html4_document.c +166 -0
  12. data/ext/nokogiri/html4_element_description.c +294 -0
  13. data/ext/nokogiri/html4_entity_lookup.c +37 -0
  14. data/ext/nokogiri/html4_sax_parser_context.c +114 -0
  15. data/ext/nokogiri/html4_sax_push_parser.c +95 -0
  16. data/ext/nokogiri/include/libexslt/exslt.h +108 -0
  17. data/ext/nokogiri/include/libexslt/exsltconfig.h +70 -0
  18. data/ext/nokogiri/include/libexslt/exsltexports.h +63 -0
  19. data/ext/nokogiri/include/libxml2/libxml/HTMLparser.h +306 -0
  20. data/ext/nokogiri/include/libxml2/libxml/HTMLtree.h +147 -0
  21. data/ext/nokogiri/include/libxml2/libxml/SAX.h +204 -0
  22. data/ext/nokogiri/include/libxml2/libxml/SAX2.h +172 -0
  23. data/ext/nokogiri/include/libxml2/libxml/c14n.h +128 -0
  24. data/ext/nokogiri/include/libxml2/libxml/catalog.h +182 -0
  25. data/ext/nokogiri/include/libxml2/libxml/chvalid.h +230 -0
  26. data/ext/nokogiri/include/libxml2/libxml/debugXML.h +217 -0
  27. data/ext/nokogiri/include/libxml2/libxml/dict.h +81 -0
  28. data/ext/nokogiri/include/libxml2/libxml/encoding.h +232 -0
  29. data/ext/nokogiri/include/libxml2/libxml/entities.h +153 -0
  30. data/ext/nokogiri/include/libxml2/libxml/globals.h +499 -0
  31. data/ext/nokogiri/include/libxml2/libxml/hash.h +236 -0
  32. data/ext/nokogiri/include/libxml2/libxml/list.h +137 -0
  33. data/ext/nokogiri/include/libxml2/libxml/nanoftp.h +186 -0
  34. data/ext/nokogiri/include/libxml2/libxml/nanohttp.h +81 -0
  35. data/ext/nokogiri/include/libxml2/libxml/parser.h +1244 -0
  36. data/ext/nokogiri/include/libxml2/libxml/parserInternals.h +656 -0
  37. data/ext/nokogiri/include/libxml2/libxml/pattern.h +100 -0
  38. data/ext/nokogiri/include/libxml2/libxml/relaxng.h +218 -0
  39. data/ext/nokogiri/include/libxml2/libxml/schemasInternals.h +958 -0
  40. data/ext/nokogiri/include/libxml2/libxml/schematron.h +142 -0
  41. data/ext/nokogiri/include/libxml2/libxml/threads.h +91 -0
  42. data/ext/nokogiri/include/libxml2/libxml/tree.h +1312 -0
  43. data/ext/nokogiri/include/libxml2/libxml/uri.h +94 -0
  44. data/ext/nokogiri/include/libxml2/libxml/valid.h +463 -0
  45. data/ext/nokogiri/include/libxml2/libxml/xinclude.h +129 -0
  46. data/ext/nokogiri/include/libxml2/libxml/xlink.h +189 -0
  47. data/ext/nokogiri/include/libxml2/libxml/xmlIO.h +368 -0
  48. data/ext/nokogiri/include/libxml2/libxml/xmlautomata.h +146 -0
  49. data/ext/nokogiri/include/libxml2/libxml/xmlerror.h +947 -0
  50. data/ext/nokogiri/include/libxml2/libxml/xmlexports.h +77 -0
  51. data/ext/nokogiri/include/libxml2/libxml/xmlmemory.h +226 -0
  52. data/ext/nokogiri/include/libxml2/libxml/xmlmodule.h +57 -0
  53. data/ext/nokogiri/include/libxml2/libxml/xmlreader.h +428 -0
  54. data/ext/nokogiri/include/libxml2/libxml/xmlregexp.h +222 -0
  55. data/ext/nokogiri/include/libxml2/libxml/xmlsave.h +88 -0
  56. data/ext/nokogiri/include/libxml2/libxml/xmlschemas.h +246 -0
  57. data/ext/nokogiri/include/libxml2/libxml/xmlschemastypes.h +152 -0
  58. data/ext/nokogiri/include/libxml2/libxml/xmlstring.h +140 -0
  59. data/ext/nokogiri/include/libxml2/libxml/xmlunicode.h +202 -0
  60. data/ext/nokogiri/include/libxml2/libxml/xmlversion.h +503 -0
  61. data/ext/nokogiri/include/libxml2/libxml/xmlwriter.h +488 -0
  62. data/ext/nokogiri/include/libxml2/libxml/xpath.h +575 -0
  63. data/ext/nokogiri/include/libxml2/libxml/xpathInternals.h +632 -0
  64. data/ext/nokogiri/include/libxml2/libxml/xpointer.h +137 -0
  65. data/ext/nokogiri/include/libxslt/attributes.h +38 -0
  66. data/ext/nokogiri/include/libxslt/documents.h +93 -0
  67. data/ext/nokogiri/include/libxslt/extensions.h +262 -0
  68. data/ext/nokogiri/include/libxslt/extra.h +72 -0
  69. data/ext/nokogiri/include/libxslt/functions.h +78 -0
  70. data/ext/nokogiri/include/libxslt/imports.h +75 -0
  71. data/ext/nokogiri/include/libxslt/keys.h +53 -0
  72. data/ext/nokogiri/include/libxslt/namespaces.h +68 -0
  73. data/ext/nokogiri/include/libxslt/numbersInternals.h +73 -0
  74. data/ext/nokogiri/include/libxslt/pattern.h +84 -0
  75. data/ext/nokogiri/include/libxslt/preproc.h +43 -0
  76. data/ext/nokogiri/include/libxslt/security.h +104 -0
  77. data/ext/nokogiri/include/libxslt/templates.h +77 -0
  78. data/ext/nokogiri/include/libxslt/transform.h +207 -0
  79. data/ext/nokogiri/include/libxslt/variables.h +118 -0
  80. data/ext/nokogiri/include/libxslt/xslt.h +110 -0
  81. data/ext/nokogiri/include/libxslt/xsltInternals.h +1982 -0
  82. data/ext/nokogiri/include/libxslt/xsltconfig.h +179 -0
  83. data/ext/nokogiri/include/libxslt/xsltexports.h +64 -0
  84. data/ext/nokogiri/include/libxslt/xsltlocale.h +76 -0
  85. data/ext/nokogiri/include/libxslt/xsltutils.h +310 -0
  86. data/ext/nokogiri/libxml2_backwards_compat.c +121 -0
  87. data/ext/nokogiri/nokogiri.c +228 -104
  88. data/ext/nokogiri/nokogiri.h +204 -90
  89. data/ext/nokogiri/test_global_handlers.c +40 -0
  90. data/ext/nokogiri/xml_attr.c +17 -17
  91. data/ext/nokogiri/xml_attribute_decl.c +22 -22
  92. data/ext/nokogiri/xml_cdata.c +15 -20
  93. data/ext/nokogiri/xml_comment.c +19 -26
  94. data/ext/nokogiri/xml_document.c +306 -225
  95. data/ext/nokogiri/xml_document_fragment.c +12 -16
  96. data/ext/nokogiri/xml_dtd.c +64 -58
  97. data/ext/nokogiri/xml_element_content.c +33 -28
  98. data/ext/nokogiri/xml_element_decl.c +26 -26
  99. data/ext/nokogiri/xml_encoding_handler.c +45 -20
  100. data/ext/nokogiri/xml_entity_decl.c +37 -35
  101. data/ext/nokogiri/xml_entity_reference.c +16 -18
  102. data/ext/nokogiri/xml_namespace.c +136 -61
  103. data/ext/nokogiri/xml_node.c +1344 -672
  104. data/ext/nokogiri/xml_node_set.c +178 -168
  105. data/ext/nokogiri/xml_processing_instruction.c +17 -19
  106. data/ext/nokogiri/xml_reader.c +316 -190
  107. data/ext/nokogiri/xml_relax_ng.c +52 -30
  108. data/ext/nokogiri/xml_sax_parser.c +130 -124
  109. data/ext/nokogiri/xml_sax_parser_context.c +110 -89
  110. data/ext/nokogiri/xml_sax_push_parser.c +36 -29
  111. data/ext/nokogiri/xml_schema.c +98 -50
  112. data/ext/nokogiri/xml_syntax_error.c +42 -21
  113. data/ext/nokogiri/xml_text.c +14 -18
  114. data/ext/nokogiri/xml_xpath_context.c +263 -148
  115. data/ext/nokogiri/xslt_stylesheet.c +271 -178
  116. data/gumbo-parser/CHANGES.md +63 -0
  117. data/gumbo-parser/Makefile +111 -0
  118. data/gumbo-parser/THANKS +27 -0
  119. data/lib/nokogiri/2.7/nokogiri.so +0 -0
  120. data/lib/nokogiri/3.0/nokogiri.so +0 -0
  121. data/lib/nokogiri/3.1/nokogiri.so +0 -0
  122. data/lib/nokogiri/3.2/nokogiri.so +0 -0
  123. data/lib/nokogiri/class_resolver.rb +67 -0
  124. data/lib/nokogiri/css/node.rb +10 -8
  125. data/lib/nokogiri/css/parser.rb +397 -377
  126. data/lib/nokogiri/css/parser.y +250 -245
  127. data/lib/nokogiri/css/parser_extras.rb +54 -49
  128. data/lib/nokogiri/css/syntax_error.rb +3 -1
  129. data/lib/nokogiri/css/tokenizer.rb +5 -3
  130. data/lib/nokogiri/css/tokenizer.rex +3 -2
  131. data/lib/nokogiri/css/xpath_visitor.rb +223 -94
  132. data/lib/nokogiri/css.rb +56 -17
  133. data/lib/nokogiri/decorators/slop.rb +9 -7
  134. data/lib/nokogiri/encoding_handler.rb +57 -0
  135. data/lib/nokogiri/extension.rb +32 -0
  136. data/lib/nokogiri/gumbo.rb +15 -0
  137. data/lib/nokogiri/html.rb +38 -27
  138. data/lib/nokogiri/{html → html4}/builder.rb +4 -2
  139. data/lib/nokogiri/html4/document.rb +214 -0
  140. data/lib/nokogiri/html4/document_fragment.rb +54 -0
  141. data/lib/nokogiri/{html → html4}/element_description.rb +3 -1
  142. data/lib/nokogiri/html4/element_description_defaults.rb +572 -0
  143. data/lib/nokogiri/html4/encoding_reader.rb +121 -0
  144. data/lib/nokogiri/{html → html4}/entity_lookup.rb +4 -2
  145. data/lib/nokogiri/{html → html4}/sax/parser.rb +17 -16
  146. data/lib/nokogiri/html4/sax/parser_context.rb +20 -0
  147. data/lib/nokogiri/{html → html4}/sax/push_parser.rb +12 -11
  148. data/lib/nokogiri/html4.rb +47 -0
  149. data/lib/nokogiri/html5/document.rb +168 -0
  150. data/lib/nokogiri/html5/document_fragment.rb +90 -0
  151. data/lib/nokogiri/html5/node.rb +98 -0
  152. data/lib/nokogiri/html5.rb +389 -0
  153. data/lib/nokogiri/jruby/dependencies.rb +3 -0
  154. data/lib/nokogiri/jruby/nokogiri_jars.rb +43 -0
  155. data/lib/nokogiri/syntax_error.rb +2 -0
  156. data/lib/nokogiri/version/constant.rb +6 -0
  157. data/lib/nokogiri/version/info.rb +223 -0
  158. data/lib/nokogiri/version.rb +3 -108
  159. data/lib/nokogiri/xml/attr.rb +55 -3
  160. data/lib/nokogiri/xml/attribute_decl.rb +3 -1
  161. data/lib/nokogiri/xml/builder.rb +75 -34
  162. data/lib/nokogiri/xml/cdata.rb +3 -1
  163. data/lib/nokogiri/xml/character_data.rb +2 -0
  164. data/lib/nokogiri/xml/document.rb +312 -126
  165. data/lib/nokogiri/xml/document_fragment.rb +93 -48
  166. data/lib/nokogiri/xml/dtd.rb +4 -2
  167. data/lib/nokogiri/xml/element_content.rb +2 -0
  168. data/lib/nokogiri/xml/element_decl.rb +3 -1
  169. data/lib/nokogiri/xml/entity_decl.rb +4 -2
  170. data/lib/nokogiri/xml/entity_reference.rb +2 -0
  171. data/lib/nokogiri/xml/namespace.rb +45 -0
  172. data/lib/nokogiri/xml/node/save_options.rb +15 -8
  173. data/lib/nokogiri/xml/node.rb +1067 -406
  174. data/lib/nokogiri/xml/node_set.rb +135 -59
  175. data/lib/nokogiri/xml/notation.rb +13 -0
  176. data/lib/nokogiri/xml/parse_options.rb +145 -52
  177. data/lib/nokogiri/xml/pp/character_data.rb +9 -6
  178. data/lib/nokogiri/xml/pp/node.rb +27 -26
  179. data/lib/nokogiri/xml/pp.rb +4 -2
  180. data/lib/nokogiri/xml/processing_instruction.rb +4 -1
  181. data/lib/nokogiri/xml/reader.rb +21 -28
  182. data/lib/nokogiri/xml/relax_ng.rb +8 -2
  183. data/lib/nokogiri/xml/sax/document.rb +45 -49
  184. data/lib/nokogiri/xml/sax/parser.rb +39 -36
  185. data/lib/nokogiri/xml/sax/parser_context.rb +8 -3
  186. data/lib/nokogiri/xml/sax/push_parser.rb +6 -5
  187. data/lib/nokogiri/xml/sax.rb +6 -4
  188. data/lib/nokogiri/xml/schema.rb +19 -9
  189. data/lib/nokogiri/xml/searchable.rb +112 -72
  190. data/lib/nokogiri/xml/syntax_error.rb +6 -4
  191. data/lib/nokogiri/xml/text.rb +2 -0
  192. data/lib/nokogiri/xml/xpath/syntax_error.rb +4 -2
  193. data/lib/nokogiri/xml/xpath.rb +15 -4
  194. data/lib/nokogiri/xml/xpath_context.rb +3 -3
  195. data/lib/nokogiri/xml.rb +38 -37
  196. data/lib/nokogiri/xslt/stylesheet.rb +3 -1
  197. data/lib/nokogiri/xslt.rb +29 -20
  198. data/lib/nokogiri.rb +48 -72
  199. data/lib/xsd/xmlparser/nokogiri.rb +29 -25
  200. metadata +146 -307
  201. data/ext/nokogiri/html_document.c +0 -170
  202. data/ext/nokogiri/html_document.h +0 -10
  203. data/ext/nokogiri/html_element_description.c +0 -279
  204. data/ext/nokogiri/html_element_description.h +0 -10
  205. data/ext/nokogiri/html_entity_lookup.c +0 -32
  206. data/ext/nokogiri/html_entity_lookup.h +0 -8
  207. data/ext/nokogiri/html_sax_parser_context.c +0 -116
  208. data/ext/nokogiri/html_sax_parser_context.h +0 -11
  209. data/ext/nokogiri/html_sax_push_parser.c +0 -87
  210. data/ext/nokogiri/html_sax_push_parser.h +0 -9
  211. data/ext/nokogiri/xml_attr.h +0 -9
  212. data/ext/nokogiri/xml_attribute_decl.h +0 -9
  213. data/ext/nokogiri/xml_cdata.h +0 -9
  214. data/ext/nokogiri/xml_comment.h +0 -9
  215. data/ext/nokogiri/xml_document.h +0 -23
  216. data/ext/nokogiri/xml_document_fragment.h +0 -10
  217. data/ext/nokogiri/xml_dtd.h +0 -10
  218. data/ext/nokogiri/xml_element_content.h +0 -10
  219. data/ext/nokogiri/xml_element_decl.h +0 -9
  220. data/ext/nokogiri/xml_encoding_handler.h +0 -8
  221. data/ext/nokogiri/xml_entity_decl.h +0 -10
  222. data/ext/nokogiri/xml_entity_reference.h +0 -9
  223. data/ext/nokogiri/xml_io.c +0 -61
  224. data/ext/nokogiri/xml_io.h +0 -11
  225. data/ext/nokogiri/xml_libxml2_hacks.c +0 -112
  226. data/ext/nokogiri/xml_libxml2_hacks.h +0 -12
  227. data/ext/nokogiri/xml_namespace.h +0 -14
  228. data/ext/nokogiri/xml_node.h +0 -13
  229. data/ext/nokogiri/xml_node_set.h +0 -12
  230. data/ext/nokogiri/xml_processing_instruction.h +0 -9
  231. data/ext/nokogiri/xml_reader.h +0 -10
  232. data/ext/nokogiri/xml_relax_ng.h +0 -9
  233. data/ext/nokogiri/xml_sax_parser.h +0 -39
  234. data/ext/nokogiri/xml_sax_parser_context.h +0 -10
  235. data/ext/nokogiri/xml_sax_push_parser.h +0 -9
  236. data/ext/nokogiri/xml_schema.h +0 -9
  237. data/ext/nokogiri/xml_syntax_error.h +0 -13
  238. data/ext/nokogiri/xml_text.h +0 -9
  239. data/ext/nokogiri/xml_xpath_context.h +0 -10
  240. data/ext/nokogiri/xslt_stylesheet.h +0 -14
  241. data/lib/nokogiri/html/document.rb +0 -335
  242. data/lib/nokogiri/html/document_fragment.rb +0 -49
  243. data/lib/nokogiri/html/element_description_defaults.rb +0 -671
  244. data/lib/nokogiri/html/sax/parser_context.rb +0 -16
  245. data/patches/libxml2/0001-Revert-Do-not-URI-escape-in-server-side-includes.patch +0 -78
  246. data/patches/libxml2/0002-Remove-script-macro-support.patch +0 -40
  247. data/patches/libxml2/0003-Update-entities-to-remove-handling-of-ssi.patch +0 -44
  248. data/patches/libxml2/0004-libxml2.la-is-in-top_builddir.patch +0 -25
  249. data/patches/libxml2/0005-Fix-infinite-loop-in-xmlStringLenDecodeEntities.patch +0 -32
  250. data/ports/archives/libxml2-2.9.10.tar.gz +0 -0
  251. data/ports/archives/libxslt-1.1.34.tar.gz +0 -0
@@ -0,0 +1,572 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Nokogiri
4
+ module HTML4
5
+ class ElementDescription
6
+ # Methods are defined protected by method_defined? because at
7
+ # this point the C-library or Java library is already loaded,
8
+ # and we don't want to clobber any methods that have been
9
+ # defined there.
10
+
11
+ Desc = Struct.new("HTMLElementDescription", :name,
12
+ :startTag, :endTag, :saveEndTag,
13
+ :empty, :depr, :dtd, :isinline,
14
+ :desc,
15
+ :subelts, :defaultsubelt,
16
+ :attrs_opt, :attrs_depr, :attrs_req)
17
+
18
+ # This is filled in down below.
19
+ DefaultDescriptions = {} # rubocop:disable Naming/ConstantName
20
+
21
+ def default_desc
22
+ DefaultDescriptions[name.downcase]
23
+ end
24
+ private :default_desc
25
+
26
+ unless method_defined?(:implied_start_tag?)
27
+ def implied_start_tag?
28
+ default_desc&.startTag
29
+ end
30
+ end
31
+
32
+ unless method_defined?(:implied_end_tag?)
33
+ def implied_end_tag?
34
+ default_desc&.endTag
35
+ end
36
+ end
37
+
38
+ unless method_defined?(:save_end_tag?)
39
+ def save_end_tag?
40
+ default_desc&.saveEndTag
41
+ end
42
+ end
43
+
44
+ unless method_defined?(:deprecated?)
45
+ def deprecated?
46
+ default_desc&.depr
47
+ end
48
+ end
49
+
50
+ unless method_defined?(:description)
51
+ def description
52
+ default_desc&.desc
53
+ end
54
+ end
55
+
56
+ unless method_defined?(:default_sub_element)
57
+ def default_sub_element
58
+ default_desc&.defaultsubelt
59
+ end
60
+ end
61
+
62
+ unless method_defined?(:optional_attributes)
63
+ def optional_attributes
64
+ d = default_desc
65
+ d ? d.attrs_opt : []
66
+ end
67
+ end
68
+
69
+ unless method_defined?(:deprecated_attributes)
70
+ def deprecated_attributes
71
+ d = default_desc
72
+ d ? d.attrs_depr : []
73
+ end
74
+ end
75
+
76
+ unless method_defined?(:required_attributes)
77
+ def required_attributes
78
+ d = default_desc
79
+ d ? d.attrs_req : []
80
+ end
81
+ end
82
+
83
+ ###
84
+ # Default Element Descriptions (HTML 4.0) copied from
85
+ # libxml2/HTMLparser.c and libxml2/include/libxml/HTMLparser.h
86
+ #
87
+ # The copyright notice for those files and the following list of
88
+ # element and attribute descriptions is reproduced here:
89
+ #
90
+ # Except where otherwise noted in the source code (e.g. the
91
+ # files hash.c, list.c and the trio files, which are covered by
92
+ # a similar licence but with different Copyright notices) all
93
+ # the files are:
94
+ #
95
+ # Copyright (C) 1998-2003 Daniel Veillard. All Rights Reserved.
96
+ #
97
+ # Permission is hereby granted, free of charge, to any person
98
+ # obtaining a copy of this software and associated documentation
99
+ # files (the "Software"), to deal in the Software without
100
+ # restriction, including without limitation the rights to use,
101
+ # copy, modify, merge, publish, distribute, sublicense, and/or
102
+ # sell copies of the Software, and to permit persons to whom the
103
+ # Software is fur- nished to do so, subject to the following
104
+ # conditions:
105
+
106
+ # The above copyright notice and this permission notice shall be
107
+ # included in all copies or substantial portions of the
108
+ # Software.
109
+
110
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
111
+ # KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
112
+ # WARRANTIES OF MERCHANTABILITY, FIT- NESS FOR A PARTICULAR
113
+ # PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE DANIEL
114
+ # VEILLARD BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
115
+ # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
116
+ # FROM, OUT OF OR IN CON- NECTION WITH THE SOFTWARE OR THE USE
117
+ # OR OTHER DEALINGS IN THE SOFTWARE.
118
+
119
+ # Except as contained in this notice, the name of Daniel
120
+ # Veillard shall not be used in advertising or otherwise to
121
+ # promote the sale, use or other deal- ings in this Software
122
+ # without prior written authorization from him.
123
+
124
+ # Attributes defined and categorized
125
+ FONTSTYLE = ["tt", "i", "b", "u", "s", "strike", "big", "small"]
126
+ PHRASE = ["em", "strong", "dfn", "code", "samp",
127
+ "kbd", "var", "cite", "abbr", "acronym",]
128
+ SPECIAL = ["a", "img", "applet", "embed", "object", "font", "basefont",
129
+ "br", "script", "map", "q", "sub", "sup", "span", "bdo",
130
+ "iframe",]
131
+ PCDATA = []
132
+ HEADING = ["h1", "h2", "h3", "h4", "h5", "h6"]
133
+ LIST = ["ul", "ol", "dir", "menu"]
134
+ FORMCTRL = ["input", "select", "textarea", "label", "button"]
135
+ BLOCK = [HEADING, LIST, "pre", "p", "dl", "div", "center", "noscript",
136
+ "noframes", "blockquote", "form", "isindex", "hr", "table",
137
+ "fieldset", "address",]
138
+ INLINE = [PCDATA, FONTSTYLE, PHRASE, SPECIAL, FORMCTRL]
139
+ FLOW = [BLOCK, INLINE]
140
+ MODIFIER = []
141
+ EMPTY = []
142
+
143
+ HTML_FLOW = FLOW
144
+ HTML_INLINE = INLINE
145
+ HTML_PCDATA = PCDATA
146
+ HTML_CDATA = HTML_PCDATA
147
+
148
+ COREATTRS = ["id", "class", "style", "title"]
149
+ I18N = ["lang", "dir"]
150
+ EVENTS = ["onclick", "ondblclick", "onmousedown", "onmouseup",
151
+ "onmouseover", "onmouseout", "onkeypress", "onkeydown",
152
+ "onkeyup",]
153
+ ATTRS = [COREATTRS, I18N, EVENTS]
154
+ CELLHALIGN = ["align", "char", "charoff"]
155
+ CELLVALIGN = ["valign"]
156
+
157
+ HTML_ATTRS = ATTRS
158
+ CORE_I18N_ATTRS = [COREATTRS, I18N]
159
+ CORE_ATTRS = COREATTRS
160
+ I18N_ATTRS = I18N
161
+
162
+ A_ATTRS = [ATTRS, "charset", "type", "name",
163
+ "href", "hreflang", "rel", "rev", "accesskey", "shape",
164
+ "coords", "tabindex", "onfocus", "onblur",]
165
+ TARGET_ATTR = ["target"]
166
+ ROWS_COLS_ATTR = ["rows", "cols"]
167
+ ALT_ATTR = ["alt"]
168
+ SRC_ALT_ATTRS = ["src", "alt"]
169
+ HREF_ATTRS = ["href"]
170
+ CLEAR_ATTRS = ["clear"]
171
+ INLINE_P = [INLINE, "p"]
172
+
173
+ FLOW_PARAM = [FLOW, "param"]
174
+ APPLET_ATTRS = [COREATTRS, "codebase",
175
+ "archive", "alt", "name", "height", "width", "align",
176
+ "hspace", "vspace",]
177
+ AREA_ATTRS = ["shape", "coords", "href", "nohref",
178
+ "tabindex", "accesskey", "onfocus", "onblur",]
179
+ BASEFONT_ATTRS = ["id", "size", "color", "face"]
180
+ QUOTE_ATTRS = [ATTRS, "cite"]
181
+ BODY_CONTENTS = [FLOW, "ins", "del"]
182
+ BODY_ATTRS = [ATTRS, "onload", "onunload"]
183
+ BODY_DEPR = ["background", "bgcolor", "text",
184
+ "link", "vlink", "alink",]
185
+ BUTTON_ATTRS = [ATTRS, "name", "value", "type",
186
+ "disabled", "tabindex", "accesskey", "onfocus", "onblur",]
187
+
188
+ COL_ATTRS = [ATTRS, "span", "width", CELLHALIGN, CELLVALIGN]
189
+ COL_ELT = ["col"]
190
+ EDIT_ATTRS = [ATTRS, "datetime", "cite"]
191
+ COMPACT_ATTRS = [ATTRS, "compact"]
192
+ DL_CONTENTS = ["dt", "dd"]
193
+ COMPACT_ATTR = ["compact"]
194
+ LABEL_ATTR = ["label"]
195
+ FIELDSET_CONTENTS = [FLOW, "legend"]
196
+ FONT_ATTRS = [COREATTRS, I18N, "size", "color", "face"]
197
+ FORM_CONTENTS = [HEADING, LIST, INLINE, "pre", "p", "div", "center",
198
+ "noscript", "noframes", "blockquote", "isindex", "hr",
199
+ "table", "fieldset", "address",]
200
+ FORM_ATTRS = [ATTRS, "method", "enctype", "accept", "name", "onsubmit",
201
+ "onreset", "accept-charset",]
202
+ FRAME_ATTRS = [COREATTRS, "longdesc", "name", "src", "frameborder",
203
+ "marginwidth", "marginheight", "noresize", "scrolling",]
204
+ FRAMESET_ATTRS = [COREATTRS, "rows", "cols", "onload", "onunload"]
205
+ FRAMESET_CONTENTS = ["frameset", "frame", "noframes"]
206
+ HEAD_ATTRS = [I18N, "profile"]
207
+ HEAD_CONTENTS = ["title", "isindex", "base", "script", "style", "meta",
208
+ "link", "object",]
209
+ HR_DEPR = ["align", "noshade", "size", "width"]
210
+ VERSION_ATTR = ["version"]
211
+ HTML_CONTENT = ["head", "body", "frameset"]
212
+ IFRAME_ATTRS = [COREATTRS, "longdesc", "name", "src", "frameborder",
213
+ "marginwidth", "marginheight", "scrolling", "align",
214
+ "height", "width",]
215
+ IMG_ATTRS = [ATTRS, "longdesc", "name", "height", "width", "usemap",
216
+ "ismap",]
217
+ EMBED_ATTRS = [COREATTRS, "align", "alt", "border", "code", "codebase",
218
+ "frameborder", "height", "hidden", "hspace", "name",
219
+ "palette", "pluginspace", "pluginurl", "src", "type",
220
+ "units", "vspace", "width",]
221
+ INPUT_ATTRS = [ATTRS, "type", "name", "value", "checked", "disabled",
222
+ "readonly", "size", "maxlength", "src", "alt", "usemap",
223
+ "ismap", "tabindex", "accesskey", "onfocus", "onblur",
224
+ "onselect", "onchange", "accept",]
225
+ PROMPT_ATTRS = [COREATTRS, I18N, "prompt"]
226
+ LABEL_ATTRS = [ATTRS, "for", "accesskey", "onfocus", "onblur"]
227
+ LEGEND_ATTRS = [ATTRS, "accesskey"]
228
+ ALIGN_ATTR = ["align"]
229
+ LINK_ATTRS = [ATTRS, "charset", "href", "hreflang", "type", "rel", "rev",
230
+ "media",]
231
+ MAP_CONTENTS = [BLOCK, "area"]
232
+ NAME_ATTR = ["name"]
233
+ ACTION_ATTR = ["action"]
234
+ BLOCKLI_ELT = [BLOCK, "li"]
235
+ META_ATTRS = [I18N, "http-equiv", "name", "scheme"]
236
+ CONTENT_ATTR = ["content"]
237
+ TYPE_ATTR = ["type"]
238
+ NOFRAMES_CONTENT = ["body", FLOW, MODIFIER]
239
+ OBJECT_CONTENTS = [FLOW, "param"]
240
+ OBJECT_ATTRS = [ATTRS, "declare", "classid", "codebase", "data", "type",
241
+ "codetype", "archive", "standby", "height", "width",
242
+ "usemap", "name", "tabindex",]
243
+ OBJECT_DEPR = ["align", "border", "hspace", "vspace"]
244
+ OL_ATTRS = ["type", "compact", "start"]
245
+ OPTION_ELT = ["option"]
246
+ OPTGROUP_ATTRS = [ATTRS, "disabled"]
247
+ OPTION_ATTRS = [ATTRS, "disabled", "label", "selected", "value"]
248
+ PARAM_ATTRS = ["id", "value", "valuetype", "type"]
249
+ WIDTH_ATTR = ["width"]
250
+ PRE_CONTENT = [PHRASE, "tt", "i", "b", "u", "s", "strike", "a", "br",
251
+ "script", "map", "q", "span", "bdo", "iframe",]
252
+ SCRIPT_ATTRS = ["charset", "src", "defer", "event", "for"]
253
+ LANGUAGE_ATTR = ["language"]
254
+ SELECT_CONTENT = ["optgroup", "option"]
255
+ SELECT_ATTRS = [ATTRS, "name", "size", "multiple", "disabled", "tabindex",
256
+ "onfocus", "onblur", "onchange",]
257
+ STYLE_ATTRS = [I18N, "media", "title"]
258
+ TABLE_ATTRS = [ATTRS, "summary", "width", "border", "frame", "rules",
259
+ "cellspacing", "cellpadding", "datapagesize",]
260
+ TABLE_DEPR = ["align", "bgcolor"]
261
+ TABLE_CONTENTS = ["caption", "col", "colgroup", "thead", "tfoot", "tbody",
262
+ "tr",]
263
+ TR_ELT = ["tr"]
264
+ TALIGN_ATTRS = [ATTRS, CELLHALIGN, CELLVALIGN]
265
+ TH_TD_DEPR = ["nowrap", "bgcolor", "width", "height"]
266
+ TH_TD_ATTR = [ATTRS, "abbr", "axis", "headers", "scope", "rowspan",
267
+ "colspan", CELLHALIGN, CELLVALIGN,]
268
+ TEXTAREA_ATTRS = [ATTRS, "name", "disabled", "readonly", "tabindex",
269
+ "accesskey", "onfocus", "onblur", "onselect",
270
+ "onchange",]
271
+ TR_CONTENTS = ["th", "td"]
272
+ BGCOLOR_ATTR = ["bgcolor"]
273
+ LI_ELT = ["li"]
274
+ UL_DEPR = ["type", "compact"]
275
+ DIR_ATTR = ["dir"]
276
+
277
+ [
278
+ ["a", false, false, false, false, false, :any, true,
279
+ "anchor ",
280
+ HTML_INLINE, nil, A_ATTRS, TARGET_ATTR, [],],
281
+ ["abbr", false, false, false, false, false, :any, true,
282
+ "abbreviated form",
283
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
284
+ ["acronym", false, false, false, false, false, :any, true, "",
285
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
286
+ ["address", false, false, false, false, false, :any, false,
287
+ "information on author",
288
+ INLINE_P, nil, HTML_ATTRS, [], [],],
289
+ ["applet", false, false, false, false, true, :loose, true,
290
+ "java applet ",
291
+ FLOW_PARAM, nil, [], APPLET_ATTRS, [],],
292
+ ["area", false, true, true, true, false, :any, false,
293
+ "client-side image map area ",
294
+ EMPTY, nil, AREA_ATTRS, TARGET_ATTR, ALT_ATTR,],
295
+ ["b", false, true, false, false, false, :any, true,
296
+ "bold text style",
297
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
298
+ ["base", false, true, true, true, false, :any, false,
299
+ "document base uri ",
300
+ EMPTY, nil, [], TARGET_ATTR, HREF_ATTRS,],
301
+ ["basefont", false, true, true, true, true, :loose, true,
302
+ "base font size ",
303
+ EMPTY, nil, [], BASEFONT_ATTRS, [],],
304
+ ["bdo", false, false, false, false, false, :any, true,
305
+ "i18n bidi over-ride ",
306
+ HTML_INLINE, nil, CORE_I18N_ATTRS, [], DIR_ATTR,],
307
+ ["big", false, true, false, false, false, :any, true,
308
+ "large text style",
309
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
310
+ ["blockquote", false, false, false, false, false, :any, false,
311
+ "long quotation ",
312
+ HTML_FLOW, nil, QUOTE_ATTRS, [], [],],
313
+ ["body", true, true, false, false, false, :any, false,
314
+ "document body ",
315
+ BODY_CONTENTS, "div", BODY_ATTRS, BODY_DEPR, [],],
316
+ ["br", false, true, true, true, false, :any, true,
317
+ "forced line break ",
318
+ EMPTY, nil, CORE_ATTRS, CLEAR_ATTRS, [],],
319
+ ["button", false, false, false, false, false, :any, true,
320
+ "push button ",
321
+ [HTML_FLOW, MODIFIER], nil, BUTTON_ATTRS, [], [],],
322
+ ["caption", false, false, false, false, false, :any, false,
323
+ "table caption ",
324
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
325
+ ["center", false, true, false, false, true, :loose, false,
326
+ "shorthand for div align=center ",
327
+ HTML_FLOW, nil, [], HTML_ATTRS, [],],
328
+ ["cite", false, false, false, false, false, :any, true, "citation",
329
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
330
+ ["code", false, false, false, false, false, :any, true,
331
+ "computer code fragment",
332
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
333
+ ["col", false, true, true, true, false, :any, false, "table column ",
334
+ EMPTY, nil, COL_ATTRS, [], [],],
335
+ ["colgroup", false, true, false, false, false, :any, false,
336
+ "table column group ",
337
+ COL_ELT, "col", COL_ATTRS, [], [],],
338
+ ["dd", false, true, false, false, false, :any, false,
339
+ "definition description ",
340
+ HTML_FLOW, nil, HTML_ATTRS, [], [],],
341
+ ["del", false, false, false, false, false, :any, true,
342
+ "deleted text ",
343
+ HTML_FLOW, nil, EDIT_ATTRS, [], [],],
344
+ ["dfn", false, false, false, false, false, :any, true,
345
+ "instance definition",
346
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
347
+ ["dir", false, false, false, false, true, :loose, false,
348
+ "directory list",
349
+ BLOCKLI_ELT, "li", [], COMPACT_ATTRS, [],],
350
+ ["div", false, false, false, false, false, :any, false,
351
+ "generic language/style container",
352
+ HTML_FLOW, nil, HTML_ATTRS, ALIGN_ATTR, [],],
353
+ ["dl", false, false, false, false, false, :any, false,
354
+ "definition list ",
355
+ DL_CONTENTS, "dd", HTML_ATTRS, COMPACT_ATTR, [],],
356
+ ["dt", false, true, false, false, false, :any, false,
357
+ "definition term ",
358
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
359
+ ["em", false, true, false, false, false, :any, true,
360
+ "emphasis",
361
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
362
+ ["embed", false, true, false, false, true, :loose, true,
363
+ "generic embedded object ",
364
+ EMPTY, nil, EMBED_ATTRS, [], [],],
365
+ ["fieldset", false, false, false, false, false, :any, false,
366
+ "form control group ",
367
+ FIELDSET_CONTENTS, nil, HTML_ATTRS, [], [],],
368
+ ["font", false, true, false, false, true, :loose, true,
369
+ "local change to font ",
370
+ HTML_INLINE, nil, [], FONT_ATTRS, [],],
371
+ ["form", false, false, false, false, false, :any, false,
372
+ "interactive form ",
373
+ FORM_CONTENTS, "fieldset", FORM_ATTRS, TARGET_ATTR, ACTION_ATTR,],
374
+ ["frame", false, true, true, true, false, :frameset, false,
375
+ "subwindow ",
376
+ EMPTY, nil, [], FRAME_ATTRS, [],],
377
+ ["frameset", false, false, false, false, false, :frameset, false,
378
+ "window subdivision",
379
+ FRAMESET_CONTENTS, "noframes", [], FRAMESET_ATTRS, [],],
380
+ ["htrue", false, false, false, false, false, :any, false,
381
+ "heading ",
382
+ HTML_INLINE, nil, HTML_ATTRS, ALIGN_ATTR, [],],
383
+ ["htrue", false, false, false, false, false, :any, false,
384
+ "heading ",
385
+ HTML_INLINE, nil, HTML_ATTRS, ALIGN_ATTR, [],],
386
+ ["htrue", false, false, false, false, false, :any, false,
387
+ "heading ",
388
+ HTML_INLINE, nil, HTML_ATTRS, ALIGN_ATTR, [],],
389
+ ["h4", false, false, false, false, false, :any, false,
390
+ "heading ",
391
+ HTML_INLINE, nil, HTML_ATTRS, ALIGN_ATTR, [],],
392
+ ["h5", false, false, false, false, false, :any, false,
393
+ "heading ",
394
+ HTML_INLINE, nil, HTML_ATTRS, ALIGN_ATTR, [],],
395
+ ["h6", false, false, false, false, false, :any, false,
396
+ "heading ",
397
+ HTML_INLINE, nil, HTML_ATTRS, ALIGN_ATTR, [],],
398
+ ["head", true, true, false, false, false, :any, false,
399
+ "document head ",
400
+ HEAD_CONTENTS, nil, HEAD_ATTRS, [], [],],
401
+ ["hr", false, true, true, true, false, :any, false,
402
+ "horizontal rule ",
403
+ EMPTY, nil, HTML_ATTRS, HR_DEPR, [],],
404
+ ["html", true, true, false, false, false, :any, false,
405
+ "document root element ",
406
+ HTML_CONTENT, nil, I18N_ATTRS, VERSION_ATTR, [],],
407
+ ["i", false, true, false, false, false, :any, true,
408
+ "italic text style",
409
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
410
+ ["iframe", false, false, false, false, false, :any, true,
411
+ "inline subwindow ",
412
+ HTML_FLOW, nil, [], IFRAME_ATTRS, [],],
413
+ ["img", false, true, true, true, false, :any, true,
414
+ "embedded image ",
415
+ EMPTY, nil, IMG_ATTRS, ALIGN_ATTR, SRC_ALT_ATTRS,],
416
+ ["input", false, true, true, true, false, :any, true,
417
+ "form control ",
418
+ EMPTY, nil, INPUT_ATTRS, ALIGN_ATTR, [],],
419
+ ["ins", false, false, false, false, false, :any, true,
420
+ "inserted text",
421
+ HTML_FLOW, nil, EDIT_ATTRS, [], [],],
422
+ ["isindex", false, true, true, true, true, :loose, false,
423
+ "single line prompt ",
424
+ EMPTY, nil, [], PROMPT_ATTRS, [],],
425
+ ["kbd", false, false, false, false, false, :any, true,
426
+ "text to be entered by the user",
427
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
428
+ ["label", false, false, false, false, false, :any, true,
429
+ "form field label text ",
430
+ [HTML_INLINE, MODIFIER], nil, LABEL_ATTRS, [], [],],
431
+ ["legend", false, false, false, false, false, :any, false,
432
+ "fieldset legend ",
433
+ HTML_INLINE, nil, LEGEND_ATTRS, ALIGN_ATTR, [],],
434
+ ["li", false, true, true, false, false, :any, false,
435
+ "list item ",
436
+ HTML_FLOW, nil, HTML_ATTRS, [], [],],
437
+ ["link", false, true, true, true, false, :any, false,
438
+ "a media-independent link ",
439
+ EMPTY, nil, LINK_ATTRS, TARGET_ATTR, [],],
440
+ ["map", false, false, false, false, false, :any, true,
441
+ "client-side image map ",
442
+ MAP_CONTENTS, nil, HTML_ATTRS, [], NAME_ATTR,],
443
+ ["menu", false, false, false, false, true, :loose, false,
444
+ "menu list ",
445
+ BLOCKLI_ELT, nil, [], COMPACT_ATTRS, [],],
446
+ ["meta", false, true, true, true, false, :any, false,
447
+ "generic metainformation ",
448
+ EMPTY, nil, META_ATTRS, [], CONTENT_ATTR,],
449
+ ["noframes", false, false, false, false, false, :frameset, false,
450
+ "alternate content container for non frame-based rendering ",
451
+ NOFRAMES_CONTENT, "body", HTML_ATTRS, [], [],],
452
+ ["noscript", false, false, false, false, false, :any, false,
453
+ "alternate content container for non script-based rendering ",
454
+ HTML_FLOW, "div", HTML_ATTRS, [], [],],
455
+ ["object", false, false, false, false, false, :any, true,
456
+ "generic embedded object ",
457
+ OBJECT_CONTENTS, "div", OBJECT_ATTRS, OBJECT_DEPR, [],],
458
+ ["ol", false, false, false, false, false, :any, false,
459
+ "ordered list ",
460
+ LI_ELT, "li", HTML_ATTRS, OL_ATTRS, [],],
461
+ ["optgroup", false, false, false, false, false, :any, false,
462
+ "option group ",
463
+ OPTION_ELT, "option", OPTGROUP_ATTRS, [], LABEL_ATTR,],
464
+ ["option", false, true, false, false, false, :any, false,
465
+ "selectable choice ",
466
+ HTML_PCDATA, nil, OPTION_ATTRS, [], [],],
467
+ ["p", false, true, false, false, false, :any, false,
468
+ "paragraph ",
469
+ HTML_INLINE, nil, HTML_ATTRS, ALIGN_ATTR, [],],
470
+ ["param", false, true, true, true, false, :any, false,
471
+ "named property value ",
472
+ EMPTY, nil, PARAM_ATTRS, [], NAME_ATTR,],
473
+ ["pre", false, false, false, false, false, :any, false,
474
+ "preformatted text ",
475
+ PRE_CONTENT, nil, HTML_ATTRS, WIDTH_ATTR, [],],
476
+ ["q", false, false, false, false, false, :any, true,
477
+ "short inline quotation ",
478
+ HTML_INLINE, nil, QUOTE_ATTRS, [], [],],
479
+ ["s", false, true, false, false, true, :loose, true,
480
+ "strike-through text style",
481
+ HTML_INLINE, nil, [], HTML_ATTRS, [],],
482
+ ["samp", false, false, false, false, false, :any, true,
483
+ "sample program output, scripts, etc.",
484
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
485
+ ["script", false, false, false, false, false, :any, true,
486
+ "script statements ",
487
+ HTML_CDATA, nil, SCRIPT_ATTRS, LANGUAGE_ATTR, TYPE_ATTR,],
488
+ ["select", false, false, false, false, false, :any, true,
489
+ "option selector ",
490
+ SELECT_CONTENT, nil, SELECT_ATTRS, [], [],],
491
+ ["small", false, true, false, false, false, :any, true,
492
+ "small text style",
493
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
494
+ ["span", false, false, false, false, false, :any, true,
495
+ "generic language/style container ",
496
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
497
+ ["strike", false, true, false, false, true, :loose, true,
498
+ "strike-through text",
499
+ HTML_INLINE, nil, [], HTML_ATTRS, [],],
500
+ ["strong", false, true, false, false, false, :any, true,
501
+ "strong emphasis",
502
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
503
+ ["style", false, false, false, false, false, :any, false,
504
+ "style info ",
505
+ HTML_CDATA, nil, STYLE_ATTRS, [], TYPE_ATTR,],
506
+ ["sub", false, true, false, false, false, :any, true,
507
+ "subscript",
508
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
509
+ ["sup", false, true, false, false, false, :any, true,
510
+ "superscript ",
511
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
512
+ ["table", false, false, false, false, false, :any, false,
513
+ "",
514
+ TABLE_CONTENTS, "tr", TABLE_ATTRS, TABLE_DEPR, [],],
515
+ ["tbody", true, false, false, false, false, :any, false,
516
+ "table body ",
517
+ TR_ELT, "tr", TALIGN_ATTRS, [], [],],
518
+ ["td", false, false, false, false, false, :any, false,
519
+ "table data cell",
520
+ HTML_FLOW, nil, TH_TD_ATTR, TH_TD_DEPR, [],],
521
+ ["textarea", false, false, false, false, false, :any, true,
522
+ "multi-line text field ",
523
+ HTML_PCDATA, nil, TEXTAREA_ATTRS, [], ROWS_COLS_ATTR,],
524
+ ["tfoot", false, true, false, false, false, :any, false,
525
+ "table footer ",
526
+ TR_ELT, "tr", TALIGN_ATTRS, [], [],],
527
+ ["th", false, true, false, false, false, :any, false,
528
+ "table header cell",
529
+ HTML_FLOW, nil, TH_TD_ATTR, TH_TD_DEPR, [],],
530
+ ["thead", false, true, false, false, false, :any, false,
531
+ "table header ",
532
+ TR_ELT, "tr", TALIGN_ATTRS, [], [],],
533
+ ["title", false, false, false, false, false, :any, false,
534
+ "document title ",
535
+ HTML_PCDATA, nil, I18N_ATTRS, [], [],],
536
+ ["tr", false, false, false, false, false, :any, false,
537
+ "table row ",
538
+ TR_CONTENTS, "td", TALIGN_ATTRS, BGCOLOR_ATTR, [],],
539
+ ["tt", false, true, false, false, false, :any, true,
540
+ "teletype or monospaced text style",
541
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
542
+ ["u", false, true, false, false, true, :loose, true,
543
+ "underlined text style",
544
+ HTML_INLINE, nil, [], HTML_ATTRS, [],],
545
+ ["ul", false, false, false, false, false, :any, false,
546
+ "unordered list ",
547
+ LI_ELT, "li", HTML_ATTRS, UL_DEPR, [],],
548
+ ["var", false, false, false, false, false, :any, true,
549
+ "instance of a variable or program argument",
550
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
551
+ ].each do |descriptor|
552
+ name = descriptor[0]
553
+
554
+ begin
555
+ d = Desc.new(*descriptor)
556
+
557
+ # flatten all the attribute lists (Ruby1.9, *[a,b,c] can be
558
+ # used to flatten a literal list, but not in Ruby1.8).
559
+ d[:subelts] = d[:subelts].flatten
560
+ d[:attrs_opt] = d[:attrs_opt].flatten
561
+ d[:attrs_depr] = d[:attrs_depr].flatten
562
+ d[:attrs_req] = d[:attrs_req].flatten
563
+ rescue => e
564
+ p(name)
565
+ raise e
566
+ end
567
+
568
+ DefaultDescriptions[name] = d
569
+ end
570
+ end
571
+ end
572
+ end