nokolexbor 0.2.0

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 (486) hide show
  1. checksums.yaml +7 -0
  2. data/ext/nokolexbor/config.h +186 -0
  3. data/ext/nokolexbor/extconf.rb +131 -0
  4. data/ext/nokolexbor/libxml/HTMLparser.h +320 -0
  5. data/ext/nokolexbor/libxml/SAX2.h +173 -0
  6. data/ext/nokolexbor/libxml/chvalid.h +230 -0
  7. data/ext/nokolexbor/libxml/debugXML.h +217 -0
  8. data/ext/nokolexbor/libxml/dict.h +81 -0
  9. data/ext/nokolexbor/libxml/encoding.h +232 -0
  10. data/ext/nokolexbor/libxml/entities.h +153 -0
  11. data/ext/nokolexbor/libxml/globals.h +529 -0
  12. data/ext/nokolexbor/libxml/hash.h +236 -0
  13. data/ext/nokolexbor/libxml/list.h +137 -0
  14. data/ext/nokolexbor/libxml/parser.h +1264 -0
  15. data/ext/nokolexbor/libxml/parserInternals.h +641 -0
  16. data/ext/nokolexbor/libxml/pattern.h +100 -0
  17. data/ext/nokolexbor/libxml/threads.h +94 -0
  18. data/ext/nokolexbor/libxml/tree.h +1315 -0
  19. data/ext/nokolexbor/libxml/uri.h +94 -0
  20. data/ext/nokolexbor/libxml/valid.h +448 -0
  21. data/ext/nokolexbor/libxml/xmlIO.h +369 -0
  22. data/ext/nokolexbor/libxml/xmlautomata.h +146 -0
  23. data/ext/nokolexbor/libxml/xmlerror.h +919 -0
  24. data/ext/nokolexbor/libxml/xmlexports.h +79 -0
  25. data/ext/nokolexbor/libxml/xmlmemory.h +226 -0
  26. data/ext/nokolexbor/libxml/xmlregexp.h +222 -0
  27. data/ext/nokolexbor/libxml/xmlstring.h +140 -0
  28. data/ext/nokolexbor/libxml/xmlversion.h +526 -0
  29. data/ext/nokolexbor/libxml/xpath.h +575 -0
  30. data/ext/nokolexbor/libxml/xpathInternals.h +632 -0
  31. data/ext/nokolexbor/libxml/xpointer.h +137 -0
  32. data/ext/nokolexbor/libxml.h +76 -0
  33. data/ext/nokolexbor/memory.c +39 -0
  34. data/ext/nokolexbor/nl_document.c +51 -0
  35. data/ext/nokolexbor/nl_node.c +790 -0
  36. data/ext/nokolexbor/nl_node_set.c +368 -0
  37. data/ext/nokolexbor/nl_xpath_context.c +200 -0
  38. data/ext/nokolexbor/nokolexbor.c +63 -0
  39. data/ext/nokolexbor/nokolexbor.h +37 -0
  40. data/ext/nokolexbor/private/buf.h +70 -0
  41. data/ext/nokolexbor/private/dict.h +11 -0
  42. data/ext/nokolexbor/private/enc.h +17 -0
  43. data/ext/nokolexbor/private/error.h +21 -0
  44. data/ext/nokolexbor/private/globals.h +9 -0
  45. data/ext/nokolexbor/private/memory.h +9 -0
  46. data/ext/nokolexbor/private/parser.h +27 -0
  47. data/ext/nokolexbor/private/string.h +9 -0
  48. data/ext/nokolexbor/private/threads.h +50 -0
  49. data/ext/nokolexbor/private/tree.h +18 -0
  50. data/ext/nokolexbor/private/xpath.h +7 -0
  51. data/ext/nokolexbor/timsort.h +601 -0
  52. data/ext/nokolexbor/xml_SAX2.c +80 -0
  53. data/ext/nokolexbor/xml_buf.c +363 -0
  54. data/ext/nokolexbor/xml_chvalid.c +334 -0
  55. data/ext/nokolexbor/xml_dict.c +1264 -0
  56. data/ext/nokolexbor/xml_encoding.c +124 -0
  57. data/ext/nokolexbor/xml_error.c +134 -0
  58. data/ext/nokolexbor/xml_globals.c +1085 -0
  59. data/ext/nokolexbor/xml_hash.c +1141 -0
  60. data/ext/nokolexbor/xml_memory.c +203 -0
  61. data/ext/nokolexbor/xml_parser.c +127 -0
  62. data/ext/nokolexbor/xml_parserInternals.c +338 -0
  63. data/ext/nokolexbor/xml_pattern.c +2375 -0
  64. data/ext/nokolexbor/xml_string.c +1051 -0
  65. data/ext/nokolexbor/xml_threads.c +881 -0
  66. data/ext/nokolexbor/xml_tree.c +148 -0
  67. data/ext/nokolexbor/xml_xpath.c +14743 -0
  68. data/lib/nokolexbor/attribute.rb +18 -0
  69. data/lib/nokolexbor/document.rb +6 -0
  70. data/lib/nokolexbor/node.rb +264 -0
  71. data/lib/nokolexbor/node_set.rb +124 -0
  72. data/lib/nokolexbor/version.rb +5 -0
  73. data/lib/nokolexbor/xpath_context.rb +14 -0
  74. data/lib/nokolexbor.rb +17 -0
  75. data/patches/0001-lexbor-support-text-pseudo-element.patch +137 -0
  76. data/patches/0002-lexbor-match-id-class-case-sensitive.patch +22 -0
  77. data/patches/0003-lexbor-attach-template-content-to-self.patch +13 -0
  78. data/vendor/lexbor/CMakeLists.txt +331 -0
  79. data/vendor/lexbor/config.cmake +890 -0
  80. data/vendor/lexbor/feature.cmake +134 -0
  81. data/vendor/lexbor/source/lexbor/core/array.c +208 -0
  82. data/vendor/lexbor/source/lexbor/core/array.h +100 -0
  83. data/vendor/lexbor/source/lexbor/core/array_obj.c +216 -0
  84. data/vendor/lexbor/source/lexbor/core/array_obj.h +134 -0
  85. data/vendor/lexbor/source/lexbor/core/avl.c +442 -0
  86. data/vendor/lexbor/source/lexbor/core/avl.h +82 -0
  87. data/vendor/lexbor/source/lexbor/core/base.h +86 -0
  88. data/vendor/lexbor/source/lexbor/core/bst.c +468 -0
  89. data/vendor/lexbor/source/lexbor/core/bst.h +108 -0
  90. data/vendor/lexbor/source/lexbor/core/bst_map.c +238 -0
  91. data/vendor/lexbor/source/lexbor/core/bst_map.h +87 -0
  92. data/vendor/lexbor/source/lexbor/core/config.cmake +12 -0
  93. data/vendor/lexbor/source/lexbor/core/conv.c +203 -0
  94. data/vendor/lexbor/source/lexbor/core/conv.h +53 -0
  95. data/vendor/lexbor/source/lexbor/core/core.h +35 -0
  96. data/vendor/lexbor/source/lexbor/core/def.h +57 -0
  97. data/vendor/lexbor/source/lexbor/core/diyfp.c +153 -0
  98. data/vendor/lexbor/source/lexbor/core/diyfp.h +258 -0
  99. data/vendor/lexbor/source/lexbor/core/dobject.c +187 -0
  100. data/vendor/lexbor/source/lexbor/core/dobject.h +92 -0
  101. data/vendor/lexbor/source/lexbor/core/dtoa.c +404 -0
  102. data/vendor/lexbor/source/lexbor/core/dtoa.h +28 -0
  103. data/vendor/lexbor/source/lexbor/core/fs.h +60 -0
  104. data/vendor/lexbor/source/lexbor/core/hash.c +476 -0
  105. data/vendor/lexbor/source/lexbor/core/hash.h +218 -0
  106. data/vendor/lexbor/source/lexbor/core/in.c +267 -0
  107. data/vendor/lexbor/source/lexbor/core/in.h +172 -0
  108. data/vendor/lexbor/source/lexbor/core/lexbor.h +35 -0
  109. data/vendor/lexbor/source/lexbor/core/mem.c +228 -0
  110. data/vendor/lexbor/source/lexbor/core/mem.h +141 -0
  111. data/vendor/lexbor/source/lexbor/core/mraw.c +428 -0
  112. data/vendor/lexbor/source/lexbor/core/mraw.h +114 -0
  113. data/vendor/lexbor/source/lexbor/core/perf.h +45 -0
  114. data/vendor/lexbor/source/lexbor/core/plog.c +73 -0
  115. data/vendor/lexbor/source/lexbor/core/plog.h +102 -0
  116. data/vendor/lexbor/source/lexbor/core/print.c +168 -0
  117. data/vendor/lexbor/source/lexbor/core/print.h +39 -0
  118. data/vendor/lexbor/source/lexbor/core/sbst.h +59 -0
  119. data/vendor/lexbor/source/lexbor/core/serialize.c +27 -0
  120. data/vendor/lexbor/source/lexbor/core/serialize.h +32 -0
  121. data/vendor/lexbor/source/lexbor/core/shs.c +118 -0
  122. data/vendor/lexbor/source/lexbor/core/shs.h +82 -0
  123. data/vendor/lexbor/source/lexbor/core/str.c +617 -0
  124. data/vendor/lexbor/source/lexbor/core/str.h +247 -0
  125. data/vendor/lexbor/source/lexbor/core/str_res.h +369 -0
  126. data/vendor/lexbor/source/lexbor/core/strtod.c +326 -0
  127. data/vendor/lexbor/source/lexbor/core/strtod.h +28 -0
  128. data/vendor/lexbor/source/lexbor/core/types.h +39 -0
  129. data/vendor/lexbor/source/lexbor/core/utils.c +43 -0
  130. data/vendor/lexbor/source/lexbor/core/utils.h +36 -0
  131. data/vendor/lexbor/source/lexbor/css/base.h +44 -0
  132. data/vendor/lexbor/source/lexbor/css/config.cmake +2 -0
  133. data/vendor/lexbor/source/lexbor/css/css.h +25 -0
  134. data/vendor/lexbor/source/lexbor/css/log.c +336 -0
  135. data/vendor/lexbor/source/lexbor/css/log.h +103 -0
  136. data/vendor/lexbor/source/lexbor/css/node.h +29 -0
  137. data/vendor/lexbor/source/lexbor/css/parser.c +473 -0
  138. data/vendor/lexbor/source/lexbor/css/parser.h +368 -0
  139. data/vendor/lexbor/source/lexbor/css/selectors/base.h +48 -0
  140. data/vendor/lexbor/source/lexbor/css/selectors/pseudo.c +91 -0
  141. data/vendor/lexbor/source/lexbor/css/selectors/pseudo.h +66 -0
  142. data/vendor/lexbor/source/lexbor/css/selectors/pseudo_const.h +109 -0
  143. data/vendor/lexbor/source/lexbor/css/selectors/pseudo_res.h +302 -0
  144. data/vendor/lexbor/source/lexbor/css/selectors/pseudo_state.c +279 -0
  145. data/vendor/lexbor/source/lexbor/css/selectors/pseudo_state.h +85 -0
  146. data/vendor/lexbor/source/lexbor/css/selectors/selector.c +927 -0
  147. data/vendor/lexbor/source/lexbor/css/selectors/selector.h +200 -0
  148. data/vendor/lexbor/source/lexbor/css/selectors/selectors.c +340 -0
  149. data/vendor/lexbor/source/lexbor/css/selectors/selectors.h +137 -0
  150. data/vendor/lexbor/source/lexbor/css/selectors/state.c +1718 -0
  151. data/vendor/lexbor/source/lexbor/css/selectors/state.h +79 -0
  152. data/vendor/lexbor/source/lexbor/css/stylesheet.h +37 -0
  153. data/vendor/lexbor/source/lexbor/css/syntax/anb.c +443 -0
  154. data/vendor/lexbor/source/lexbor/css/syntax/anb.h +45 -0
  155. data/vendor/lexbor/source/lexbor/css/syntax/base.h +33 -0
  156. data/vendor/lexbor/source/lexbor/css/syntax/parser.c +9 -0
  157. data/vendor/lexbor/source/lexbor/css/syntax/parser.h +25 -0
  158. data/vendor/lexbor/source/lexbor/css/syntax/res.h +48 -0
  159. data/vendor/lexbor/source/lexbor/css/syntax/state.c +2603 -0
  160. data/vendor/lexbor/source/lexbor/css/syntax/state.h +140 -0
  161. data/vendor/lexbor/source/lexbor/css/syntax/state_res.h +273 -0
  162. data/vendor/lexbor/source/lexbor/css/syntax/syntax.c +67 -0
  163. data/vendor/lexbor/source/lexbor/css/syntax/token.c +618 -0
  164. data/vendor/lexbor/source/lexbor/css/syntax/token.h +298 -0
  165. data/vendor/lexbor/source/lexbor/css/syntax/token_res.h +68 -0
  166. data/vendor/lexbor/source/lexbor/css/syntax/tokenizer/error.c +30 -0
  167. data/vendor/lexbor/source/lexbor/css/syntax/tokenizer/error.h +58 -0
  168. data/vendor/lexbor/source/lexbor/css/syntax/tokenizer.c +278 -0
  169. data/vendor/lexbor/source/lexbor/css/syntax/tokenizer.h +121 -0
  170. data/vendor/lexbor/source/lexbor/dom/base.h +32 -0
  171. data/vendor/lexbor/source/lexbor/dom/collection.c +97 -0
  172. data/vendor/lexbor/source/lexbor/dom/collection.h +112 -0
  173. data/vendor/lexbor/source/lexbor/dom/config.cmake +3 -0
  174. data/vendor/lexbor/source/lexbor/dom/dom.h +29 -0
  175. data/vendor/lexbor/source/lexbor/dom/exception.c +18 -0
  176. data/vendor/lexbor/source/lexbor/dom/exception.h +73 -0
  177. data/vendor/lexbor/source/lexbor/dom/interface.c +110 -0
  178. data/vendor/lexbor/source/lexbor/dom/interface.h +88 -0
  179. data/vendor/lexbor/source/lexbor/dom/interfaces/attr.c +445 -0
  180. data/vendor/lexbor/source/lexbor/dom/interfaces/attr.h +152 -0
  181. data/vendor/lexbor/source/lexbor/dom/interfaces/attr_const.h +62 -0
  182. data/vendor/lexbor/source/lexbor/dom/interfaces/attr_res.h +143 -0
  183. data/vendor/lexbor/source/lexbor/dom/interfaces/cdata_section.c +55 -0
  184. data/vendor/lexbor/source/lexbor/dom/interfaces/cdata_section.h +38 -0
  185. data/vendor/lexbor/source/lexbor/dom/interfaces/character_data.c +110 -0
  186. data/vendor/lexbor/source/lexbor/dom/interfaces/character_data.h +51 -0
  187. data/vendor/lexbor/source/lexbor/dom/interfaces/comment.c +64 -0
  188. data/vendor/lexbor/source/lexbor/dom/interfaces/comment.h +42 -0
  189. data/vendor/lexbor/source/lexbor/dom/interfaces/document.c +536 -0
  190. data/vendor/lexbor/source/lexbor/dom/interfaces/document.h +243 -0
  191. data/vendor/lexbor/source/lexbor/dom/interfaces/document_fragment.c +36 -0
  192. data/vendor/lexbor/source/lexbor/dom/interfaces/document_fragment.h +36 -0
  193. data/vendor/lexbor/source/lexbor/dom/interfaces/document_type.c +125 -0
  194. data/vendor/lexbor/source/lexbor/dom/interfaces/document_type.h +108 -0
  195. data/vendor/lexbor/source/lexbor/dom/interfaces/element.c +1411 -0
  196. data/vendor/lexbor/source/lexbor/dom/interfaces/element.h +319 -0
  197. data/vendor/lexbor/source/lexbor/dom/interfaces/event_target.c +32 -0
  198. data/vendor/lexbor/source/lexbor/dom/interfaces/event_target.h +34 -0
  199. data/vendor/lexbor/source/lexbor/dom/interfaces/node.c +661 -0
  200. data/vendor/lexbor/source/lexbor/dom/interfaces/node.h +192 -0
  201. data/vendor/lexbor/source/lexbor/dom/interfaces/processing_instruction.c +87 -0
  202. data/vendor/lexbor/source/lexbor/dom/interfaces/processing_instruction.h +66 -0
  203. data/vendor/lexbor/source/lexbor/dom/interfaces/shadow_root.c +36 -0
  204. data/vendor/lexbor/source/lexbor/dom/interfaces/shadow_root.h +44 -0
  205. data/vendor/lexbor/source/lexbor/dom/interfaces/text.c +63 -0
  206. data/vendor/lexbor/source/lexbor/dom/interfaces/text.h +42 -0
  207. data/vendor/lexbor/source/lexbor/encoding/base.h +218 -0
  208. data/vendor/lexbor/source/lexbor/encoding/big5.c +42839 -0
  209. data/vendor/lexbor/source/lexbor/encoding/config.cmake +12 -0
  210. data/vendor/lexbor/source/lexbor/encoding/const.h +65 -0
  211. data/vendor/lexbor/source/lexbor/encoding/decode.c +3193 -0
  212. data/vendor/lexbor/source/lexbor/encoding/decode.h +370 -0
  213. data/vendor/lexbor/source/lexbor/encoding/encode.c +1931 -0
  214. data/vendor/lexbor/source/lexbor/encoding/encode.h +377 -0
  215. data/vendor/lexbor/source/lexbor/encoding/encoding.c +252 -0
  216. data/vendor/lexbor/source/lexbor/encoding/encoding.h +475 -0
  217. data/vendor/lexbor/source/lexbor/encoding/euc_kr.c +53883 -0
  218. data/vendor/lexbor/source/lexbor/encoding/gb18030.c +47905 -0
  219. data/vendor/lexbor/source/lexbor/encoding/iso_2022_jp_katakana.c +159 -0
  220. data/vendor/lexbor/source/lexbor/encoding/jis0208.c +22477 -0
  221. data/vendor/lexbor/source/lexbor/encoding/jis0212.c +15787 -0
  222. data/vendor/lexbor/source/lexbor/encoding/multi.h +53 -0
  223. data/vendor/lexbor/source/lexbor/encoding/range.c +71 -0
  224. data/vendor/lexbor/source/lexbor/encoding/range.h +34 -0
  225. data/vendor/lexbor/source/lexbor/encoding/res.c +222 -0
  226. data/vendor/lexbor/source/lexbor/encoding/res.h +34 -0
  227. data/vendor/lexbor/source/lexbor/encoding/single.c +13748 -0
  228. data/vendor/lexbor/source/lexbor/encoding/single.h +116 -0
  229. data/vendor/lexbor/source/lexbor/html/base.h +44 -0
  230. data/vendor/lexbor/source/lexbor/html/config.cmake +3 -0
  231. data/vendor/lexbor/source/lexbor/html/encoding.c +574 -0
  232. data/vendor/lexbor/source/lexbor/html/encoding.h +106 -0
  233. data/vendor/lexbor/source/lexbor/html/html.h +107 -0
  234. data/vendor/lexbor/source/lexbor/html/interface.c +165 -0
  235. data/vendor/lexbor/source/lexbor/html/interface.h +186 -0
  236. data/vendor/lexbor/source/lexbor/html/interface_res.h +4449 -0
  237. data/vendor/lexbor/source/lexbor/html/interfaces/anchor_element.c +36 -0
  238. data/vendor/lexbor/source/lexbor/html/interfaces/anchor_element.h +34 -0
  239. data/vendor/lexbor/source/lexbor/html/interfaces/area_element.c +36 -0
  240. data/vendor/lexbor/source/lexbor/html/interfaces/area_element.h +34 -0
  241. data/vendor/lexbor/source/lexbor/html/interfaces/audio_element.c +36 -0
  242. data/vendor/lexbor/source/lexbor/html/interfaces/audio_element.h +34 -0
  243. data/vendor/lexbor/source/lexbor/html/interfaces/base_element.c +36 -0
  244. data/vendor/lexbor/source/lexbor/html/interfaces/base_element.h +34 -0
  245. data/vendor/lexbor/source/lexbor/html/interfaces/body_element.c +36 -0
  246. data/vendor/lexbor/source/lexbor/html/interfaces/body_element.h +34 -0
  247. data/vendor/lexbor/source/lexbor/html/interfaces/br_element.c +36 -0
  248. data/vendor/lexbor/source/lexbor/html/interfaces/br_element.h +34 -0
  249. data/vendor/lexbor/source/lexbor/html/interfaces/button_element.c +36 -0
  250. data/vendor/lexbor/source/lexbor/html/interfaces/button_element.h +34 -0
  251. data/vendor/lexbor/source/lexbor/html/interfaces/canvas_element.c +36 -0
  252. data/vendor/lexbor/source/lexbor/html/interfaces/canvas_element.h +34 -0
  253. data/vendor/lexbor/source/lexbor/html/interfaces/d_list_element.c +36 -0
  254. data/vendor/lexbor/source/lexbor/html/interfaces/d_list_element.h +34 -0
  255. data/vendor/lexbor/source/lexbor/html/interfaces/data_element.c +36 -0
  256. data/vendor/lexbor/source/lexbor/html/interfaces/data_element.h +34 -0
  257. data/vendor/lexbor/source/lexbor/html/interfaces/data_list_element.c +36 -0
  258. data/vendor/lexbor/source/lexbor/html/interfaces/data_list_element.h +34 -0
  259. data/vendor/lexbor/source/lexbor/html/interfaces/details_element.c +36 -0
  260. data/vendor/lexbor/source/lexbor/html/interfaces/details_element.h +34 -0
  261. data/vendor/lexbor/source/lexbor/html/interfaces/dialog_element.c +36 -0
  262. data/vendor/lexbor/source/lexbor/html/interfaces/dialog_element.h +34 -0
  263. data/vendor/lexbor/source/lexbor/html/interfaces/directory_element.c +36 -0
  264. data/vendor/lexbor/source/lexbor/html/interfaces/directory_element.h +34 -0
  265. data/vendor/lexbor/source/lexbor/html/interfaces/div_element.c +36 -0
  266. data/vendor/lexbor/source/lexbor/html/interfaces/div_element.h +34 -0
  267. data/vendor/lexbor/source/lexbor/html/interfaces/document.c +444 -0
  268. data/vendor/lexbor/source/lexbor/html/interfaces/document.h +256 -0
  269. data/vendor/lexbor/source/lexbor/html/interfaces/element.c +64 -0
  270. data/vendor/lexbor/source/lexbor/html/interfaces/element.h +54 -0
  271. data/vendor/lexbor/source/lexbor/html/interfaces/embed_element.c +36 -0
  272. data/vendor/lexbor/source/lexbor/html/interfaces/embed_element.h +34 -0
  273. data/vendor/lexbor/source/lexbor/html/interfaces/field_set_element.c +36 -0
  274. data/vendor/lexbor/source/lexbor/html/interfaces/field_set_element.h +34 -0
  275. data/vendor/lexbor/source/lexbor/html/interfaces/font_element.c +36 -0
  276. data/vendor/lexbor/source/lexbor/html/interfaces/font_element.h +34 -0
  277. data/vendor/lexbor/source/lexbor/html/interfaces/form_element.c +36 -0
  278. data/vendor/lexbor/source/lexbor/html/interfaces/form_element.h +34 -0
  279. data/vendor/lexbor/source/lexbor/html/interfaces/frame_element.c +36 -0
  280. data/vendor/lexbor/source/lexbor/html/interfaces/frame_element.h +34 -0
  281. data/vendor/lexbor/source/lexbor/html/interfaces/frame_set_element.c +36 -0
  282. data/vendor/lexbor/source/lexbor/html/interfaces/frame_set_element.h +34 -0
  283. data/vendor/lexbor/source/lexbor/html/interfaces/head_element.c +36 -0
  284. data/vendor/lexbor/source/lexbor/html/interfaces/head_element.h +34 -0
  285. data/vendor/lexbor/source/lexbor/html/interfaces/heading_element.c +36 -0
  286. data/vendor/lexbor/source/lexbor/html/interfaces/heading_element.h +34 -0
  287. data/vendor/lexbor/source/lexbor/html/interfaces/hr_element.c +36 -0
  288. data/vendor/lexbor/source/lexbor/html/interfaces/hr_element.h +34 -0
  289. data/vendor/lexbor/source/lexbor/html/interfaces/html_element.c +36 -0
  290. data/vendor/lexbor/source/lexbor/html/interfaces/html_element.h +34 -0
  291. data/vendor/lexbor/source/lexbor/html/interfaces/iframe_element.c +36 -0
  292. data/vendor/lexbor/source/lexbor/html/interfaces/iframe_element.h +34 -0
  293. data/vendor/lexbor/source/lexbor/html/interfaces/image_element.c +36 -0
  294. data/vendor/lexbor/source/lexbor/html/interfaces/image_element.h +34 -0
  295. data/vendor/lexbor/source/lexbor/html/interfaces/input_element.c +36 -0
  296. data/vendor/lexbor/source/lexbor/html/interfaces/input_element.h +34 -0
  297. data/vendor/lexbor/source/lexbor/html/interfaces/label_element.c +36 -0
  298. data/vendor/lexbor/source/lexbor/html/interfaces/label_element.h +34 -0
  299. data/vendor/lexbor/source/lexbor/html/interfaces/legend_element.c +36 -0
  300. data/vendor/lexbor/source/lexbor/html/interfaces/legend_element.h +34 -0
  301. data/vendor/lexbor/source/lexbor/html/interfaces/li_element.c +36 -0
  302. data/vendor/lexbor/source/lexbor/html/interfaces/li_element.h +34 -0
  303. data/vendor/lexbor/source/lexbor/html/interfaces/link_element.c +36 -0
  304. data/vendor/lexbor/source/lexbor/html/interfaces/link_element.h +34 -0
  305. data/vendor/lexbor/source/lexbor/html/interfaces/map_element.c +36 -0
  306. data/vendor/lexbor/source/lexbor/html/interfaces/map_element.h +34 -0
  307. data/vendor/lexbor/source/lexbor/html/interfaces/marquee_element.c +36 -0
  308. data/vendor/lexbor/source/lexbor/html/interfaces/marquee_element.h +34 -0
  309. data/vendor/lexbor/source/lexbor/html/interfaces/media_element.c +36 -0
  310. data/vendor/lexbor/source/lexbor/html/interfaces/media_element.h +34 -0
  311. data/vendor/lexbor/source/lexbor/html/interfaces/menu_element.c +36 -0
  312. data/vendor/lexbor/source/lexbor/html/interfaces/menu_element.h +34 -0
  313. data/vendor/lexbor/source/lexbor/html/interfaces/meta_element.c +36 -0
  314. data/vendor/lexbor/source/lexbor/html/interfaces/meta_element.h +34 -0
  315. data/vendor/lexbor/source/lexbor/html/interfaces/meter_element.c +36 -0
  316. data/vendor/lexbor/source/lexbor/html/interfaces/meter_element.h +34 -0
  317. data/vendor/lexbor/source/lexbor/html/interfaces/mod_element.c +36 -0
  318. data/vendor/lexbor/source/lexbor/html/interfaces/mod_element.h +34 -0
  319. data/vendor/lexbor/source/lexbor/html/interfaces/o_list_element.c +36 -0
  320. data/vendor/lexbor/source/lexbor/html/interfaces/o_list_element.h +34 -0
  321. data/vendor/lexbor/source/lexbor/html/interfaces/object_element.c +36 -0
  322. data/vendor/lexbor/source/lexbor/html/interfaces/object_element.h +34 -0
  323. data/vendor/lexbor/source/lexbor/html/interfaces/opt_group_element.c +36 -0
  324. data/vendor/lexbor/source/lexbor/html/interfaces/opt_group_element.h +34 -0
  325. data/vendor/lexbor/source/lexbor/html/interfaces/option_element.c +36 -0
  326. data/vendor/lexbor/source/lexbor/html/interfaces/option_element.h +34 -0
  327. data/vendor/lexbor/source/lexbor/html/interfaces/output_element.c +36 -0
  328. data/vendor/lexbor/source/lexbor/html/interfaces/output_element.h +34 -0
  329. data/vendor/lexbor/source/lexbor/html/interfaces/paragraph_element.c +36 -0
  330. data/vendor/lexbor/source/lexbor/html/interfaces/paragraph_element.h +34 -0
  331. data/vendor/lexbor/source/lexbor/html/interfaces/param_element.c +36 -0
  332. data/vendor/lexbor/source/lexbor/html/interfaces/param_element.h +34 -0
  333. data/vendor/lexbor/source/lexbor/html/interfaces/picture_element.c +36 -0
  334. data/vendor/lexbor/source/lexbor/html/interfaces/picture_element.h +34 -0
  335. data/vendor/lexbor/source/lexbor/html/interfaces/pre_element.c +36 -0
  336. data/vendor/lexbor/source/lexbor/html/interfaces/pre_element.h +34 -0
  337. data/vendor/lexbor/source/lexbor/html/interfaces/progress_element.c +36 -0
  338. data/vendor/lexbor/source/lexbor/html/interfaces/progress_element.h +34 -0
  339. data/vendor/lexbor/source/lexbor/html/interfaces/quote_element.c +36 -0
  340. data/vendor/lexbor/source/lexbor/html/interfaces/quote_element.h +34 -0
  341. data/vendor/lexbor/source/lexbor/html/interfaces/script_element.c +36 -0
  342. data/vendor/lexbor/source/lexbor/html/interfaces/script_element.h +34 -0
  343. data/vendor/lexbor/source/lexbor/html/interfaces/select_element.c +36 -0
  344. data/vendor/lexbor/source/lexbor/html/interfaces/select_element.h +34 -0
  345. data/vendor/lexbor/source/lexbor/html/interfaces/slot_element.c +36 -0
  346. data/vendor/lexbor/source/lexbor/html/interfaces/slot_element.h +34 -0
  347. data/vendor/lexbor/source/lexbor/html/interfaces/source_element.c +36 -0
  348. data/vendor/lexbor/source/lexbor/html/interfaces/source_element.h +34 -0
  349. data/vendor/lexbor/source/lexbor/html/interfaces/span_element.c +36 -0
  350. data/vendor/lexbor/source/lexbor/html/interfaces/span_element.h +34 -0
  351. data/vendor/lexbor/source/lexbor/html/interfaces/style_element.c +36 -0
  352. data/vendor/lexbor/source/lexbor/html/interfaces/style_element.h +34 -0
  353. data/vendor/lexbor/source/lexbor/html/interfaces/table_caption_element.c +36 -0
  354. data/vendor/lexbor/source/lexbor/html/interfaces/table_caption_element.h +34 -0
  355. data/vendor/lexbor/source/lexbor/html/interfaces/table_cell_element.c +36 -0
  356. data/vendor/lexbor/source/lexbor/html/interfaces/table_cell_element.h +34 -0
  357. data/vendor/lexbor/source/lexbor/html/interfaces/table_col_element.c +36 -0
  358. data/vendor/lexbor/source/lexbor/html/interfaces/table_col_element.h +34 -0
  359. data/vendor/lexbor/source/lexbor/html/interfaces/table_element.c +36 -0
  360. data/vendor/lexbor/source/lexbor/html/interfaces/table_element.h +34 -0
  361. data/vendor/lexbor/source/lexbor/html/interfaces/table_row_element.c +36 -0
  362. data/vendor/lexbor/source/lexbor/html/interfaces/table_row_element.h +34 -0
  363. data/vendor/lexbor/source/lexbor/html/interfaces/table_section_element.c +36 -0
  364. data/vendor/lexbor/source/lexbor/html/interfaces/table_section_element.h +34 -0
  365. data/vendor/lexbor/source/lexbor/html/interfaces/template_element.c +46 -0
  366. data/vendor/lexbor/source/lexbor/html/interfaces/template_element.h +38 -0
  367. data/vendor/lexbor/source/lexbor/html/interfaces/text_area_element.c +36 -0
  368. data/vendor/lexbor/source/lexbor/html/interfaces/text_area_element.h +34 -0
  369. data/vendor/lexbor/source/lexbor/html/interfaces/time_element.c +36 -0
  370. data/vendor/lexbor/source/lexbor/html/interfaces/time_element.h +34 -0
  371. data/vendor/lexbor/source/lexbor/html/interfaces/title_element.c +133 -0
  372. data/vendor/lexbor/source/lexbor/html/interfaces/title_element.h +42 -0
  373. data/vendor/lexbor/source/lexbor/html/interfaces/track_element.c +36 -0
  374. data/vendor/lexbor/source/lexbor/html/interfaces/track_element.h +34 -0
  375. data/vendor/lexbor/source/lexbor/html/interfaces/u_list_element.c +36 -0
  376. data/vendor/lexbor/source/lexbor/html/interfaces/u_list_element.h +34 -0
  377. data/vendor/lexbor/source/lexbor/html/interfaces/unknown_element.c +36 -0
  378. data/vendor/lexbor/source/lexbor/html/interfaces/unknown_element.h +34 -0
  379. data/vendor/lexbor/source/lexbor/html/interfaces/video_element.c +36 -0
  380. data/vendor/lexbor/source/lexbor/html/interfaces/video_element.h +34 -0
  381. data/vendor/lexbor/source/lexbor/html/interfaces/window.c +36 -0
  382. data/vendor/lexbor/source/lexbor/html/interfaces/window.h +34 -0
  383. data/vendor/lexbor/source/lexbor/html/node.c +14 -0
  384. data/vendor/lexbor/source/lexbor/html/node.h +67 -0
  385. data/vendor/lexbor/source/lexbor/html/parser.c +469 -0
  386. data/vendor/lexbor/source/lexbor/html/parser.h +170 -0
  387. data/vendor/lexbor/source/lexbor/html/serialize.c +1510 -0
  388. data/vendor/lexbor/source/lexbor/html/serialize.h +93 -0
  389. data/vendor/lexbor/source/lexbor/html/tag.h +103 -0
  390. data/vendor/lexbor/source/lexbor/html/tag_res.h +2262 -0
  391. data/vendor/lexbor/source/lexbor/html/token.c +386 -0
  392. data/vendor/lexbor/source/lexbor/html/token.h +130 -0
  393. data/vendor/lexbor/source/lexbor/html/token_attr.c +44 -0
  394. data/vendor/lexbor/source/lexbor/html/token_attr.h +67 -0
  395. data/vendor/lexbor/source/lexbor/html/tokenizer/error.c +28 -0
  396. data/vendor/lexbor/source/lexbor/html/tokenizer/error.h +141 -0
  397. data/vendor/lexbor/source/lexbor/html/tokenizer/res.h +4956 -0
  398. data/vendor/lexbor/source/lexbor/html/tokenizer/state.c +2171 -0
  399. data/vendor/lexbor/source/lexbor/html/tokenizer/state.h +225 -0
  400. data/vendor/lexbor/source/lexbor/html/tokenizer/state_comment.c +489 -0
  401. data/vendor/lexbor/source/lexbor/html/tokenizer/state_comment.h +27 -0
  402. data/vendor/lexbor/source/lexbor/html/tokenizer/state_doctype.c +1654 -0
  403. data/vendor/lexbor/source/lexbor/html/tokenizer/state_doctype.h +27 -0
  404. data/vendor/lexbor/source/lexbor/html/tokenizer/state_rawtext.c +303 -0
  405. data/vendor/lexbor/source/lexbor/html/tokenizer/state_rawtext.h +32 -0
  406. data/vendor/lexbor/source/lexbor/html/tokenizer/state_rcdata.c +311 -0
  407. data/vendor/lexbor/source/lexbor/html/tokenizer/state_rcdata.h +32 -0
  408. data/vendor/lexbor/source/lexbor/html/tokenizer/state_script.c +1209 -0
  409. data/vendor/lexbor/source/lexbor/html/tokenizer/state_script.h +32 -0
  410. data/vendor/lexbor/source/lexbor/html/tokenizer.c +499 -0
  411. data/vendor/lexbor/source/lexbor/html/tokenizer.h +343 -0
  412. data/vendor/lexbor/source/lexbor/html/tree/active_formatting.c +241 -0
  413. data/vendor/lexbor/source/lexbor/html/tree/active_formatting.h +117 -0
  414. data/vendor/lexbor/source/lexbor/html/tree/error.c +26 -0
  415. data/vendor/lexbor/source/lexbor/html/tree/error.h +114 -0
  416. data/vendor/lexbor/source/lexbor/html/tree/insertion_mode/after_after_body.c +62 -0
  417. data/vendor/lexbor/source/lexbor/html/tree/insertion_mode/after_after_frameset.c +63 -0
  418. data/vendor/lexbor/source/lexbor/html/tree/insertion_mode/after_body.c +82 -0
  419. data/vendor/lexbor/source/lexbor/html/tree/insertion_mode/after_frameset.c +88 -0
  420. data/vendor/lexbor/source/lexbor/html/tree/insertion_mode/after_head.c +222 -0
  421. data/vendor/lexbor/source/lexbor/html/tree/insertion_mode/before_head.c +144 -0
  422. data/vendor/lexbor/source/lexbor/html/tree/insertion_mode/before_html.c +166 -0
  423. data/vendor/lexbor/source/lexbor/html/tree/insertion_mode/foreign_content.c +358 -0
  424. data/vendor/lexbor/source/lexbor/html/tree/insertion_mode/in_body.c +1974 -0
  425. data/vendor/lexbor/source/lexbor/html/tree/insertion_mode/in_caption.c +158 -0
  426. data/vendor/lexbor/source/lexbor/html/tree/insertion_mode/in_cell.c +187 -0
  427. data/vendor/lexbor/source/lexbor/html/tree/insertion_mode/in_column_group.c +194 -0
  428. data/vendor/lexbor/source/lexbor/html/tree/insertion_mode/in_frameset.c +149 -0
  429. data/vendor/lexbor/source/lexbor/html/tree/insertion_mode/in_head.c +374 -0
  430. data/vendor/lexbor/source/lexbor/html/tree/insertion_mode/in_head_noscript.c +121 -0
  431. data/vendor/lexbor/source/lexbor/html/tree/insertion_mode/in_row.c +211 -0
  432. data/vendor/lexbor/source/lexbor/html/tree/insertion_mode/in_select.c +341 -0
  433. data/vendor/lexbor/source/lexbor/html/tree/insertion_mode/in_select_in_table.c +115 -0
  434. data/vendor/lexbor/source/lexbor/html/tree/insertion_mode/in_table.c +451 -0
  435. data/vendor/lexbor/source/lexbor/html/tree/insertion_mode/in_table_body.c +208 -0
  436. data/vendor/lexbor/source/lexbor/html/tree/insertion_mode/in_table_text.c +127 -0
  437. data/vendor/lexbor/source/lexbor/html/tree/insertion_mode/in_template.c +189 -0
  438. data/vendor/lexbor/source/lexbor/html/tree/insertion_mode/initial.c +411 -0
  439. data/vendor/lexbor/source/lexbor/html/tree/insertion_mode/text.c +61 -0
  440. data/vendor/lexbor/source/lexbor/html/tree/insertion_mode.h +135 -0
  441. data/vendor/lexbor/source/lexbor/html/tree/open_elements.c +251 -0
  442. data/vendor/lexbor/source/lexbor/html/tree/open_elements.h +105 -0
  443. data/vendor/lexbor/source/lexbor/html/tree/template_insertion.c +10 -0
  444. data/vendor/lexbor/source/lexbor/html/tree/template_insertion.h +100 -0
  445. data/vendor/lexbor/source/lexbor/html/tree.c +1726 -0
  446. data/vendor/lexbor/source/lexbor/html/tree.h +431 -0
  447. data/vendor/lexbor/source/lexbor/html/tree_res.h +111 -0
  448. data/vendor/lexbor/source/lexbor/ns/base.h +32 -0
  449. data/vendor/lexbor/source/lexbor/ns/config.cmake +2 -0
  450. data/vendor/lexbor/source/lexbor/ns/const.h +37 -0
  451. data/vendor/lexbor/source/lexbor/ns/ns.c +154 -0
  452. data/vendor/lexbor/source/lexbor/ns/ns.h +66 -0
  453. data/vendor/lexbor/source/lexbor/ns/res.h +97 -0
  454. data/vendor/lexbor/source/lexbor/ports/posix/config.cmake +11 -0
  455. data/vendor/lexbor/source/lexbor/ports/posix/lexbor/core/fs.c +236 -0
  456. data/vendor/lexbor/source/lexbor/ports/posix/lexbor/core/memory.c +33 -0
  457. data/vendor/lexbor/source/lexbor/ports/posix/lexbor/core/perf.c +158 -0
  458. data/vendor/lexbor/source/lexbor/ports/windows_nt/config.cmake +18 -0
  459. data/vendor/lexbor/source/lexbor/ports/windows_nt/lexbor/core/fs.c +239 -0
  460. data/vendor/lexbor/source/lexbor/ports/windows_nt/lexbor/core/memory.c +33 -0
  461. data/vendor/lexbor/source/lexbor/ports/windows_nt/lexbor/core/perf.c +81 -0
  462. data/vendor/lexbor/source/lexbor/selectors/base.h +30 -0
  463. data/vendor/lexbor/source/lexbor/selectors/config.cmake +2 -0
  464. data/vendor/lexbor/source/lexbor/selectors/selectors.c +1591 -0
  465. data/vendor/lexbor/source/lexbor/selectors/selectors.h +71 -0
  466. data/vendor/lexbor/source/lexbor/tag/base.h +32 -0
  467. data/vendor/lexbor/source/lexbor/tag/config.cmake +2 -0
  468. data/vendor/lexbor/source/lexbor/tag/const.h +225 -0
  469. data/vendor/lexbor/source/lexbor/tag/res.h +562 -0
  470. data/vendor/lexbor/source/lexbor/tag/tag.c +144 -0
  471. data/vendor/lexbor/source/lexbor/tag/tag.h +123 -0
  472. data/vendor/lexbor/source/lexbor/utils/base.h +32 -0
  473. data/vendor/lexbor/source/lexbor/utils/config.cmake +2 -0
  474. data/vendor/lexbor/source/lexbor/utils/http.c +534 -0
  475. data/vendor/lexbor/source/lexbor/utils/http.h +90 -0
  476. data/vendor/lexbor/source/lexbor/utils/utils.h +15 -0
  477. data/vendor/lexbor/source/lexbor/utils/warc.c +817 -0
  478. data/vendor/lexbor/source/lexbor/utils/warc.h +126 -0
  479. data/vendor/lexbor/utils/lexbor/css/selectors/pseudo.py +231 -0
  480. data/vendor/lexbor/utils/lexbor/css/selectors/tmp/const.h +21 -0
  481. data/vendor/lexbor/utils/lexbor/css/selectors/tmp/res.h +26 -0
  482. data/vendor/lexbor/utils/lexbor/css/syntax/definitions.py +49 -0
  483. data/vendor/lexbor/utils/lexbor/css/syntax/token_res.py +54 -0
  484. data/vendor/lexbor/utils/lexbor/css/syntax/tokenizer_code_map.py +36 -0
  485. data/vendor/lexbor/version +1 -0
  486. metadata +542 -0
@@ -0,0 +1,107 @@
1
+ /*
2
+ * Copyright (C) 2020 Alexander Borisov
3
+ *
4
+ * Author: Alexander Borisov <borisov@lexbor.com>
5
+ */
6
+
7
+ #ifndef LEXBOR_HTML_H
8
+ #define LEXBOR_HTML_H
9
+
10
+ #include "lexbor/html/base.h"
11
+ #include "lexbor/html/tree/error.h"
12
+ #include "lexbor/html/tree/insertion_mode.h"
13
+ #include "lexbor/html/tree/template_insertion.h"
14
+ #include "lexbor/html/tree/active_formatting.h"
15
+ #include "lexbor/html/tree/open_elements.h"
16
+ #include "lexbor/html/node.h"
17
+ #include "lexbor/html/tag.h"
18
+ #include "lexbor/html/parser.h"
19
+ #include "lexbor/html/tokenizer/error.h"
20
+ #include "lexbor/html/tokenizer/state_rawtext.h"
21
+ #include "lexbor/html/tokenizer/state_script.h"
22
+ #include "lexbor/html/tokenizer/state_comment.h"
23
+ #include "lexbor/html/tokenizer/state_doctype.h"
24
+ #include "lexbor/html/tokenizer/state.h"
25
+ #include "lexbor/html/tokenizer/state_rcdata.h"
26
+ #include "lexbor/html/encoding.h"
27
+ #include "lexbor/html/tree.h"
28
+ #include "lexbor/html/tokenizer.h"
29
+ #include "lexbor/html/interface.h"
30
+ #include "lexbor/html/token_attr.h"
31
+ #include "lexbor/html/token.h"
32
+ #include "lexbor/html/serialize.h"
33
+ #include "lexbor/html/interfaces/video_element.h"
34
+ #include "lexbor/html/interfaces/data_list_element.h"
35
+ #include "lexbor/html/interfaces/picture_element.h"
36
+ #include "lexbor/html/interfaces/field_set_element.h"
37
+ #include "lexbor/html/interfaces/quote_element.h"
38
+ #include "lexbor/html/interfaces/li_element.h"
39
+ #include "lexbor/html/interfaces/progress_element.h"
40
+ #include "lexbor/html/interfaces/iframe_element.h"
41
+ #include "lexbor/html/interfaces/style_element.h"
42
+ #include "lexbor/html/interfaces/select_element.h"
43
+ #include "lexbor/html/interfaces/details_element.h"
44
+ #include "lexbor/html/interfaces/div_element.h"
45
+ #include "lexbor/html/interfaces/d_list_element.h"
46
+ #include "lexbor/html/interfaces/html_element.h"
47
+ #include "lexbor/html/interfaces/map_element.h"
48
+ #include "lexbor/html/interfaces/br_element.h"
49
+ #include "lexbor/html/interfaces/text_area_element.h"
50
+ #include "lexbor/html/interfaces/legend_element.h"
51
+ #include "lexbor/html/interfaces/slot_element.h"
52
+ #include "lexbor/html/interfaces/body_element.h"
53
+ #include "lexbor/html/interfaces/param_element.h"
54
+ #include "lexbor/html/interfaces/track_element.h"
55
+ #include "lexbor/html/interfaces/frame_element.h"
56
+ #include "lexbor/html/interfaces/media_element.h"
57
+ #include "lexbor/html/interfaces/span_element.h"
58
+ #include "lexbor/html/interfaces/meta_element.h"
59
+ #include "lexbor/html/interfaces/hr_element.h"
60
+ #include "lexbor/html/interfaces/marquee_element.h"
61
+ #include "lexbor/html/interfaces/data_element.h"
62
+ #include "lexbor/html/interfaces/window.h"
63
+ #include "lexbor/html/interfaces/heading_element.h"
64
+ #include "lexbor/html/interfaces/template_element.h"
65
+ #include "lexbor/html/interfaces/source_element.h"
66
+ #include "lexbor/html/interfaces/canvas_element.h"
67
+ #include "lexbor/html/interfaces/embed_element.h"
68
+ #include "lexbor/html/interfaces/title_element.h"
69
+ #include "lexbor/html/interfaces/o_list_element.h"
70
+ #include "lexbor/html/interfaces/output_element.h"
71
+ #include "lexbor/html/interfaces/frame_set_element.h"
72
+ #include "lexbor/html/interfaces/directory_element.h"
73
+ #include "lexbor/html/interfaces/mod_element.h"
74
+ #include "lexbor/html/interfaces/unknown_element.h"
75
+ #include "lexbor/html/interfaces/menu_element.h"
76
+ #include "lexbor/html/interfaces/button_element.h"
77
+ #include "lexbor/html/interfaces/time_element.h"
78
+ #include "lexbor/html/interfaces/element.h"
79
+ #include "lexbor/html/interfaces/base_element.h"
80
+ #include "lexbor/html/interfaces/meter_element.h"
81
+ #include "lexbor/html/interfaces/table_section_element.h"
82
+ #include "lexbor/html/interfaces/head_element.h"
83
+ #include "lexbor/html/interfaces/input_element.h"
84
+ #include "lexbor/html/interfaces/label_element.h"
85
+ #include "lexbor/html/interfaces/u_list_element.h"
86
+ #include "lexbor/html/interfaces/paragraph_element.h"
87
+ #include "lexbor/html/interfaces/document.h"
88
+ #include "lexbor/html/interfaces/audio_element.h"
89
+ #include "lexbor/html/interfaces/image_element.h"
90
+ #include "lexbor/html/interfaces/link_element.h"
91
+ #include "lexbor/html/interfaces/opt_group_element.h"
92
+ #include "lexbor/html/interfaces/table_col_element.h"
93
+ #include "lexbor/html/interfaces/object_element.h"
94
+ #include "lexbor/html/interfaces/dialog_element.h"
95
+ #include "lexbor/html/interfaces/option_element.h"
96
+ #include "lexbor/html/interfaces/pre_element.h"
97
+ #include "lexbor/html/interfaces/form_element.h"
98
+ #include "lexbor/html/interfaces/table_caption_element.h"
99
+ #include "lexbor/html/interfaces/anchor_element.h"
100
+ #include "lexbor/html/interfaces/script_element.h"
101
+ #include "lexbor/html/interfaces/font_element.h"
102
+ #include "lexbor/html/interfaces/table_cell_element.h"
103
+ #include "lexbor/html/interfaces/table_element.h"
104
+ #include "lexbor/html/interfaces/table_row_element.h"
105
+ #include "lexbor/html/interfaces/area_element.h"
106
+
107
+ #endif /* LEXBOR_HTML_H */
@@ -0,0 +1,165 @@
1
+ /*
2
+ * Copyright (C) 2018-2021 Alexander Borisov
3
+ *
4
+ * Author: Alexander Borisov <borisov@lexbor.com>
5
+ */
6
+
7
+ #include "lexbor/core/mraw.h"
8
+
9
+ #include "lexbor/html/interface.h"
10
+ #include "lexbor/html/interfaces/document.h"
11
+
12
+ #include "lexbor/dom/interface.h"
13
+
14
+ #define LXB_HTML_INTERFACE_RES_CONSTRUCTORS
15
+ #define LXB_HTML_INTERFACE_RES_DESTRUCTOR
16
+ #include "lexbor/html/interface_res.h"
17
+
18
+
19
+ static lxb_dom_element_t *
20
+ lxb_html_interface_clone_element(lxb_dom_document_t *document,
21
+ const lxb_dom_element_t *element);
22
+
23
+
24
+ lxb_dom_interface_t *
25
+ lxb_html_interface_create(lxb_html_document_t *document, lxb_tag_id_t tag_id,
26
+ lxb_ns_id_t ns)
27
+ {
28
+ lxb_dom_node_t *node;
29
+
30
+ if (tag_id >= LXB_TAG__LAST_ENTRY) {
31
+ if (ns == LXB_NS_HTML) {
32
+ lxb_html_unknown_element_t *unel;
33
+
34
+ unel = lxb_html_unknown_element_interface_create(document);
35
+ node = lxb_dom_interface_node(unel);
36
+ }
37
+ else if (ns == LXB_NS_SVG) {
38
+ /* TODO: For this need implement SVGElement */
39
+ lxb_dom_element_t *domel;
40
+
41
+ domel = lxb_dom_element_interface_create(&document->dom_document);
42
+ node = lxb_dom_interface_node(domel);
43
+ }
44
+ else {
45
+ lxb_dom_element_t *domel;
46
+
47
+ domel = lxb_dom_element_interface_create(&document->dom_document);
48
+ node = lxb_dom_interface_node(domel);
49
+ }
50
+ }
51
+ else {
52
+ node = lxb_html_interface_res_constructors[tag_id][ns](document);
53
+ }
54
+
55
+ if (node == NULL) {
56
+ return NULL;
57
+ }
58
+
59
+ node->local_name = tag_id;
60
+ node->ns = ns;
61
+
62
+ return node;
63
+ }
64
+
65
+ lxb_dom_interface_t *
66
+ lxb_html_interface_clone(lxb_dom_document_t *document,
67
+ const lxb_dom_interface_t *intrfc)
68
+ {
69
+ const lxb_dom_node_t *node = intrfc;
70
+
71
+ if (document == NULL) {
72
+ document = node->owner_document;
73
+ }
74
+
75
+ switch (node->type) {
76
+ case LXB_DOM_NODE_TYPE_ELEMENT:
77
+ return lxb_html_interface_clone_element(document, intrfc);
78
+
79
+ case LXB_DOM_NODE_TYPE_TEXT:
80
+ return lxb_dom_text_interface_clone(document, intrfc);
81
+
82
+ case LXB_DOM_NODE_TYPE_PROCESSING_INSTRUCTION:
83
+ return lxb_dom_processing_instruction_interface_clone(document,
84
+ intrfc);
85
+ case LXB_DOM_NODE_TYPE_COMMENT:
86
+ return lxb_dom_comment_interface_clone(document, intrfc);
87
+
88
+ case LXB_DOM_NODE_TYPE_DOCUMENT:
89
+ return lxb_dom_document_interface_clone(document, intrfc);
90
+
91
+ case LXB_DOM_NODE_TYPE_DOCUMENT_TYPE:
92
+ return lxb_dom_document_type_interface_clone(document, intrfc);
93
+
94
+ default:
95
+ return lxb_dom_node_interface_clone(document, node, false);
96
+ }
97
+ }
98
+
99
+ static lxb_dom_element_t *
100
+ lxb_html_interface_clone_element(lxb_dom_document_t *document,
101
+ const lxb_dom_element_t *element)
102
+ {
103
+ lxb_dom_element_t *new;
104
+ const lxb_dom_node_t *node = lxb_dom_interface_node(element);
105
+
106
+ new = lxb_html_interface_create((lxb_html_document_t *) document,
107
+ node->local_name, node->ns);
108
+ if (new == NULL) {
109
+ return NULL;
110
+ }
111
+
112
+ if (lxb_dom_element_interface_copy(new, element) != LXB_STATUS_OK) {
113
+ return lxb_dom_element_interface_destroy(new);
114
+ }
115
+
116
+ return new;
117
+ }
118
+
119
+ lxb_dom_interface_t *
120
+ lxb_html_interface_destroy(lxb_dom_interface_t *intrfc)
121
+ {
122
+ if (intrfc == NULL) {
123
+ return NULL;
124
+ }
125
+
126
+ lxb_dom_node_t *node = intrfc;
127
+
128
+ switch (node->type) {
129
+ case LXB_DOM_NODE_TYPE_TEXT:
130
+ case LXB_DOM_NODE_TYPE_COMMENT:
131
+ case LXB_DOM_NODE_TYPE_ELEMENT:
132
+ case LXB_DOM_NODE_TYPE_DOCUMENT:
133
+ case LXB_DOM_NODE_TYPE_DOCUMENT_TYPE:
134
+ if (node->local_name >= LXB_TAG__LAST_ENTRY) {
135
+ if (node->ns == LXB_NS_HTML) {
136
+ return lxb_html_unknown_element_interface_destroy(intrfc);
137
+ }
138
+ else if (node->ns == LXB_NS_SVG) {
139
+ /* TODO: For this need implement SVGElement */
140
+ return lxb_dom_element_interface_destroy(intrfc);
141
+ }
142
+ else {
143
+ return lxb_dom_element_interface_destroy(intrfc);
144
+ }
145
+ }
146
+ else {
147
+ return lxb_html_interface_res_destructor[node->local_name][node->ns](intrfc);
148
+ }
149
+
150
+ case LXB_DOM_NODE_TYPE_ATTRIBUTE:
151
+ return lxb_dom_attr_interface_destroy(intrfc);
152
+
153
+ case LXB_DOM_NODE_TYPE_CDATA_SECTION:
154
+ return lxb_dom_cdata_section_interface_destroy(intrfc);
155
+
156
+ case LXB_DOM_NODE_TYPE_DOCUMENT_FRAGMENT:
157
+ return lxb_dom_document_fragment_interface_destroy(intrfc);
158
+
159
+ case LXB_DOM_NODE_TYPE_PROCESSING_INSTRUCTION:
160
+ return lxb_dom_processing_instruction_interface_destroy(intrfc);
161
+
162
+ default:
163
+ return NULL;
164
+ }
165
+ }
@@ -0,0 +1,186 @@
1
+ /*
2
+ * Copyright (C) 2018-2021 Alexander Borisov
3
+ *
4
+ * Author: Alexander Borisov <borisov@lexbor.com>
5
+ */
6
+
7
+ #ifndef LEXBOR_HTML_INTERFACES_H
8
+ #define LEXBOR_HTML_INTERFACES_H
9
+
10
+ #ifdef __cplusplus
11
+ extern "C" {
12
+ #endif
13
+
14
+ #include "lexbor/html/base.h"
15
+ #include "lexbor/tag/const.h"
16
+ #include "lexbor/ns/const.h"
17
+ #include "lexbor/dom/interface.h"
18
+
19
+
20
+ #define lxb_html_interface_document(obj) ((lxb_html_document_t *) (obj))
21
+ #define lxb_html_interface_anchor(obj) ((lxb_html_anchor_element_t *) (obj))
22
+ #define lxb_html_interface_area(obj) ((lxb_html_area_element_t *) (obj))
23
+ #define lxb_html_interface_audio(obj) ((lxb_html_audio_element_t *) (obj))
24
+ #define lxb_html_interface_br(obj) ((lxb_html_br_element_t *) (obj))
25
+ #define lxb_html_interface_base(obj) ((lxb_html_base_element_t *) (obj))
26
+ #define lxb_html_interface_body(obj) ((lxb_html_body_element_t *) (obj))
27
+ #define lxb_html_interface_button(obj) ((lxb_html_button_element_t *) (obj))
28
+ #define lxb_html_interface_canvas(obj) ((lxb_html_canvas_element_t *) (obj))
29
+ #define lxb_html_interface_d_list(obj) ((lxb_html_d_list_element_t *) (obj))
30
+ #define lxb_html_interface_data(obj) ((lxb_html_data_element_t *) (obj))
31
+ #define lxb_html_interface_data_list(obj) ((lxb_html_data_list_element_t *) (obj))
32
+ #define lxb_html_interface_details(obj) ((lxb_html_details_element_t *) (obj))
33
+ #define lxb_html_interface_dialog(obj) ((lxb_html_dialog_element_t *) (obj))
34
+ #define lxb_html_interface_directory(obj) ((lxb_html_directory_element_t *) (obj))
35
+ #define lxb_html_interface_div(obj) ((lxb_html_div_element_t *) (obj))
36
+ #define lxb_html_interface_element(obj) ((lxb_html_element_t *) (obj))
37
+ #define lxb_html_interface_embed(obj) ((lxb_html_embed_element_t *) (obj))
38
+ #define lxb_html_interface_field_set(obj) ((lxb_html_field_set_element_t *) (obj))
39
+ #define lxb_html_interface_font(obj) ((lxb_html_font_element_t *) (obj))
40
+ #define lxb_html_interface_form(obj) ((lxb_html_form_element_t *) (obj))
41
+ #define lxb_html_interface_frame(obj) ((lxb_html_frame_element_t *) (obj))
42
+ #define lxb_html_interface_frame_set(obj) ((lxb_html_frame_set_element_t *) (obj))
43
+ #define lxb_html_interface_hr(obj) ((lxb_html_hr_element_t *) (obj))
44
+ #define lxb_html_interface_head(obj) ((lxb_html_head_element_t *) (obj))
45
+ #define lxb_html_interface_heading(obj) ((lxb_html_heading_element_t *) (obj))
46
+ #define lxb_html_interface_html(obj) ((lxb_html_html_element_t *) (obj))
47
+ #define lxb_html_interface_iframe(obj) ((lxb_html_iframe_element_t *) (obj))
48
+ #define lxb_html_interface_image(obj) ((lxb_html_image_element_t *) (obj))
49
+ #define lxb_html_interface_input(obj) ((lxb_html_input_element_t *) (obj))
50
+ #define lxb_html_interface_li(obj) ((lxb_html_li_element_t *) (obj))
51
+ #define lxb_html_interface_label(obj) ((lxb_html_label_element_t *) (obj))
52
+ #define lxb_html_interface_legend(obj) ((lxb_html_legend_element_t *) (obj))
53
+ #define lxb_html_interface_link(obj) ((lxb_html_link_element_t *) (obj))
54
+ #define lxb_html_interface_map(obj) ((lxb_html_map_element_t *) (obj))
55
+ #define lxb_html_interface_marquee(obj) ((lxb_html_marquee_element_t *) (obj))
56
+ #define lxb_html_interface_media(obj) ((lxb_html_media_element_t *) (obj))
57
+ #define lxb_html_interface_menu(obj) ((lxb_html_menu_element_t *) (obj))
58
+ #define lxb_html_interface_meta(obj) ((lxb_html_meta_element_t *) (obj))
59
+ #define lxb_html_interface_meter(obj) ((lxb_html_meter_element_t *) (obj))
60
+ #define lxb_html_interface_mod(obj) ((lxb_html_mod_element_t *) (obj))
61
+ #define lxb_html_interface_o_list(obj) ((lxb_html_o_list_element_t *) (obj))
62
+ #define lxb_html_interface_object(obj) ((lxb_html_object_element_t *) (obj))
63
+ #define lxb_html_interface_opt_group(obj) ((lxb_html_opt_group_element_t *) (obj))
64
+ #define lxb_html_interface_option(obj) ((lxb_html_option_element_t *) (obj))
65
+ #define lxb_html_interface_output(obj) ((lxb_html_output_element_t *) (obj))
66
+ #define lxb_html_interface_paragraph(obj) ((lxb_html_paragraph_element_t *) (obj))
67
+ #define lxb_html_interface_param(obj) ((lxb_html_param_element_t *) (obj))
68
+ #define lxb_html_interface_picture(obj) ((lxb_html_picture_element_t *) (obj))
69
+ #define lxb_html_interface_pre(obj) ((lxb_html_pre_element_t *) (obj))
70
+ #define lxb_html_interface_progress(obj) ((lxb_html_progress_element_t *) (obj))
71
+ #define lxb_html_interface_quote(obj) ((lxb_html_quote_element_t *) (obj))
72
+ #define lxb_html_interface_script(obj) ((lxb_html_script_element_t *) (obj))
73
+ #define lxb_html_interface_select(obj) ((lxb_html_select_element_t *) (obj))
74
+ #define lxb_html_interface_slot(obj) ((lxb_html_slot_element_t *) (obj))
75
+ #define lxb_html_interface_source(obj) ((lxb_html_source_element_t *) (obj))
76
+ #define lxb_html_interface_span(obj) ((lxb_html_span_element_t *) (obj))
77
+ #define lxb_html_interface_style(obj) ((lxb_html_style_element_t *) (obj))
78
+ #define lxb_html_interface_table_caption(obj) ((lxb_html_table_caption_element_t *) (obj))
79
+ #define lxb_html_interface_table_cell(obj) ((lxb_html_table_cell_element_t *) (obj))
80
+ #define lxb_html_interface_table_col(obj) ((lxb_html_table_col_element_t *) (obj))
81
+ #define lxb_html_interface_table(obj) ((lxb_html_table_element_t *) (obj))
82
+ #define lxb_html_interface_table_row(obj) ((lxb_html_table_row_element_t *) (obj))
83
+ #define lxb_html_interface_table_section(obj) ((lxb_html_table_section_element_t *) (obj))
84
+ #define lxb_html_interface_template(obj) ((lxb_html_template_element_t *) (obj))
85
+ #define lxb_html_interface_text_area(obj) ((lxb_html_text_area_element_t *) (obj))
86
+ #define lxb_html_interface_time(obj) ((lxb_html_time_element_t *) (obj))
87
+ #define lxb_html_interface_title(obj) ((lxb_html_title_element_t *) (obj))
88
+ #define lxb_html_interface_track(obj) ((lxb_html_track_element_t *) (obj))
89
+ #define lxb_html_interface_u_list(obj) ((lxb_html_u_list_element_t *) (obj))
90
+ #define lxb_html_interface_unknown(obj) ((lxb_html_unknown_element_t *) (obj))
91
+ #define lxb_html_interface_video(obj) ((lxb_html_video_element_t *) (obj))
92
+ #define lxb_html_interface_window(obj) ((lxb_html_window_t *) (obj))
93
+
94
+
95
+ typedef struct lxb_html_document lxb_html_document_t;
96
+ typedef struct lxb_html_anchor_element lxb_html_anchor_element_t;
97
+ typedef struct lxb_html_area_element lxb_html_area_element_t;
98
+ typedef struct lxb_html_audio_element lxb_html_audio_element_t;
99
+ typedef struct lxb_html_br_element lxb_html_br_element_t;
100
+ typedef struct lxb_html_base_element lxb_html_base_element_t;
101
+ typedef struct lxb_html_body_element lxb_html_body_element_t;
102
+ typedef struct lxb_html_button_element lxb_html_button_element_t;
103
+ typedef struct lxb_html_canvas_element lxb_html_canvas_element_t;
104
+ typedef struct lxb_html_d_list_element lxb_html_d_list_element_t;
105
+ typedef struct lxb_html_data_element lxb_html_data_element_t;
106
+ typedef struct lxb_html_data_list_element lxb_html_data_list_element_t;
107
+ typedef struct lxb_html_details_element lxb_html_details_element_t;
108
+ typedef struct lxb_html_dialog_element lxb_html_dialog_element_t;
109
+ typedef struct lxb_html_directory_element lxb_html_directory_element_t;
110
+ typedef struct lxb_html_div_element lxb_html_div_element_t;
111
+ typedef struct lxb_html_element lxb_html_element_t;
112
+ typedef struct lxb_html_embed_element lxb_html_embed_element_t;
113
+ typedef struct lxb_html_field_set_element lxb_html_field_set_element_t;
114
+ typedef struct lxb_html_font_element lxb_html_font_element_t;
115
+ typedef struct lxb_html_form_element lxb_html_form_element_t;
116
+ typedef struct lxb_html_frame_element lxb_html_frame_element_t;
117
+ typedef struct lxb_html_frame_set_element lxb_html_frame_set_element_t;
118
+ typedef struct lxb_html_hr_element lxb_html_hr_element_t;
119
+ typedef struct lxb_html_head_element lxb_html_head_element_t;
120
+ typedef struct lxb_html_heading_element lxb_html_heading_element_t;
121
+ typedef struct lxb_html_html_element lxb_html_html_element_t;
122
+ typedef struct lxb_html_iframe_element lxb_html_iframe_element_t;
123
+ typedef struct lxb_html_image_element lxb_html_image_element_t;
124
+ typedef struct lxb_html_input_element lxb_html_input_element_t;
125
+ typedef struct lxb_html_li_element lxb_html_li_element_t;
126
+ typedef struct lxb_html_label_element lxb_html_label_element_t;
127
+ typedef struct lxb_html_legend_element lxb_html_legend_element_t;
128
+ typedef struct lxb_html_link_element lxb_html_link_element_t;
129
+ typedef struct lxb_html_map_element lxb_html_map_element_t;
130
+ typedef struct lxb_html_marquee_element lxb_html_marquee_element_t;
131
+ typedef struct lxb_html_media_element lxb_html_media_element_t;
132
+ typedef struct lxb_html_menu_element lxb_html_menu_element_t;
133
+ typedef struct lxb_html_meta_element lxb_html_meta_element_t;
134
+ typedef struct lxb_html_meter_element lxb_html_meter_element_t;
135
+ typedef struct lxb_html_mod_element lxb_html_mod_element_t;
136
+ typedef struct lxb_html_o_list_element lxb_html_o_list_element_t;
137
+ typedef struct lxb_html_object_element lxb_html_object_element_t;
138
+ typedef struct lxb_html_opt_group_element lxb_html_opt_group_element_t;
139
+ typedef struct lxb_html_option_element lxb_html_option_element_t;
140
+ typedef struct lxb_html_output_element lxb_html_output_element_t;
141
+ typedef struct lxb_html_paragraph_element lxb_html_paragraph_element_t;
142
+ typedef struct lxb_html_param_element lxb_html_param_element_t;
143
+ typedef struct lxb_html_picture_element lxb_html_picture_element_t;
144
+ typedef struct lxb_html_pre_element lxb_html_pre_element_t;
145
+ typedef struct lxb_html_progress_element lxb_html_progress_element_t;
146
+ typedef struct lxb_html_quote_element lxb_html_quote_element_t;
147
+ typedef struct lxb_html_script_element lxb_html_script_element_t;
148
+ typedef struct lxb_html_select_element lxb_html_select_element_t;
149
+ typedef struct lxb_html_slot_element lxb_html_slot_element_t;
150
+ typedef struct lxb_html_source_element lxb_html_source_element_t;
151
+ typedef struct lxb_html_span_element lxb_html_span_element_t;
152
+ typedef struct lxb_html_style_element lxb_html_style_element_t;
153
+ typedef struct lxb_html_table_caption_element lxb_html_table_caption_element_t;
154
+ typedef struct lxb_html_table_cell_element lxb_html_table_cell_element_t;
155
+ typedef struct lxb_html_table_col_element lxb_html_table_col_element_t;
156
+ typedef struct lxb_html_table_element lxb_html_table_element_t;
157
+ typedef struct lxb_html_table_row_element lxb_html_table_row_element_t;
158
+ typedef struct lxb_html_table_section_element lxb_html_table_section_element_t;
159
+ typedef struct lxb_html_template_element lxb_html_template_element_t;
160
+ typedef struct lxb_html_text_area_element lxb_html_text_area_element_t;
161
+ typedef struct lxb_html_time_element lxb_html_time_element_t;
162
+ typedef struct lxb_html_title_element lxb_html_title_element_t;
163
+ typedef struct lxb_html_track_element lxb_html_track_element_t;
164
+ typedef struct lxb_html_u_list_element lxb_html_u_list_element_t;
165
+ typedef struct lxb_html_unknown_element lxb_html_unknown_element_t;
166
+ typedef struct lxb_html_video_element lxb_html_video_element_t;
167
+ typedef struct lxb_html_window lxb_html_window_t;
168
+
169
+
170
+ LXB_API lxb_dom_interface_t *
171
+ lxb_html_interface_create(lxb_html_document_t *document, lxb_tag_id_t tag_id,
172
+ lxb_ns_id_t ns);
173
+
174
+ LXB_API lxb_dom_interface_t *
175
+ lxb_html_interface_clone(lxb_dom_document_t *document,
176
+ const lxb_dom_interface_t *intrfc);
177
+
178
+ LXB_API lxb_dom_interface_t *
179
+ lxb_html_interface_destroy(lxb_dom_interface_t *intrfc);
180
+
181
+
182
+ #ifdef __cplusplus
183
+ } /* extern "C" */
184
+ #endif
185
+
186
+ #endif /* LEXBOR_HTML_INTERFACES_H */