mml 2.3.0 → 2.3.1

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 (337) hide show
  1. checksums.yaml +4 -4
  2. data/.gitmodules +9 -0
  3. data/.rubocop.yml +4 -0
  4. data/.rubocop_todo.yml +30 -21
  5. data/Gemfile +0 -2
  6. data/README.adoc +176 -47
  7. data/Rakefile +16 -1
  8. data/lib/mml/base/content/annotation.rb +30 -0
  9. data/lib/mml/base/content/annotation_xml.rb +31 -0
  10. data/lib/mml/base/content/apply.rb +27 -0
  11. data/lib/mml/base/content/arith.rb +243 -0
  12. data/lib/mml/base/content/bind.rb +27 -0
  13. data/lib/mml/base/content/bvar.rb +20 -0
  14. data/lib/mml/base/content/calculus.rb +103 -0
  15. data/lib/mml/base/content/cbytes.rb +24 -0
  16. data/lib/mml/base/content/cerror.rb +24 -0
  17. data/lib/mml/base/content/ci.rb +77 -0
  18. data/lib/mml/base/content/cn.rb +33 -0
  19. data/lib/mml/base/content/condition.rb +20 -0
  20. data/lib/mml/base/content/constants.rb +173 -0
  21. data/lib/mml/base/content/cs.rb +22 -0
  22. data/lib/mml/base/content/csymbol.rb +79 -0
  23. data/lib/mml/base/content/declare.rb +34 -0
  24. data/lib/mml/base/content/degree.rb +20 -0
  25. data/lib/mml/base/content/elementary_functions.rb +309 -0
  26. data/lib/mml/base/content/fn.rb +25 -0
  27. data/lib/mml/base/content/functions.rb +85 -0
  28. data/lib/mml/base/content/interval.rb +24 -0
  29. data/lib/mml/base/content/inverse.rb +25 -0
  30. data/lib/mml/base/content/lambda.rb +20 -0
  31. data/lib/mml/base/content/linear_algebra.rb +122 -0
  32. data/lib/mml/base/content/logic.rb +93 -0
  33. data/lib/mml/base/content/otherwise.rb +20 -0
  34. data/lib/mml/base/content/piece.rb +20 -0
  35. data/lib/mml/base/content/piecewise.rb +20 -0
  36. data/lib/mml/base/content/relations.rb +113 -0
  37. data/lib/mml/base/content/reln.rb +19 -0
  38. data/lib/mml/base/content/semantics.rb +27 -0
  39. data/lib/mml/base/content/sep.rb +19 -0
  40. data/lib/mml/base/content/sets.rb +163 -0
  41. data/lib/mml/base/content/share.rb +24 -0
  42. data/lib/mml/base/content/statistics.rb +95 -0
  43. data/lib/mml/base/content/vector_calculus.rb +63 -0
  44. data/lib/mml/base/content_loader.rb +195 -0
  45. data/lib/mml/base/maction.rb +1 -0
  46. data/lib/mml/base/math.rb +41 -0
  47. data/lib/mml/base/menclose.rb +1 -1
  48. data/lib/mml/base/mfenced.rb +2 -2
  49. data/lib/mml/base/mfrac.rb +2 -0
  50. data/lib/mml/base/mglyph.rb +2 -0
  51. data/lib/mml/base/mi.rb +7 -2
  52. data/lib/mml/base/mlabeledtr.rb +0 -4
  53. data/lib/mml/base/mn.rb +5 -2
  54. data/lib/mml/base/mo.rb +0 -2
  55. data/lib/mml/base/mrow.rb +0 -2
  56. data/lib/mml/base/ms.rb +2 -4
  57. data/lib/mml/base/mscarries.rb +1 -1
  58. data/lib/mml/base/mstyle.rb +2 -6
  59. data/lib/mml/base/mtable.rb +8 -0
  60. data/lib/mml/base/mtd.rb +6 -0
  61. data/lib/mml/base/mtext.rb +0 -2
  62. data/lib/mml/base/semantics.rb +4 -2
  63. data/lib/mml/base/universal_presentation_attributes.rb +42 -0
  64. data/lib/mml/base/v3_common.rb +16 -0
  65. data/lib/mml/base/v3_presentation_attributes.rb +15 -0
  66. data/lib/mml/base/v4_attributes.rb +4 -18
  67. data/lib/mml/base.rb +10 -0
  68. data/lib/mml/common_elements.rb +334 -0
  69. data/lib/mml/context_configuration.rb +29 -0
  70. data/lib/mml/v2/annotation.rb +9 -0
  71. data/lib/mml/v2/annotation_xml.rb +9 -0
  72. data/lib/mml/v2/apply.rb +9 -0
  73. data/lib/mml/v2/arith.rb +93 -0
  74. data/lib/mml/v2/bind.rb +9 -0
  75. data/lib/mml/v2/bvar.rb +9 -0
  76. data/lib/mml/v2/calculus.rb +33 -0
  77. data/lib/mml/v2/ci.rb +9 -0
  78. data/lib/mml/v2/cn.rb +9 -0
  79. data/lib/mml/v2/common_elements.rb +34 -0
  80. data/lib/mml/v2/condition.rb +9 -0
  81. data/lib/mml/v2/configuration.rb +13 -0
  82. data/lib/mml/v2/constants.rb +65 -0
  83. data/lib/mml/v2/csymbol.rb +9 -0
  84. data/lib/mml/v2/degree.rb +9 -0
  85. data/lib/mml/v2/elementary_functions.rb +121 -0
  86. data/lib/mml/v2/fn.rb +9 -0
  87. data/lib/mml/v2/functions.rb +29 -0
  88. data/lib/mml/v2/interval.rb +9 -0
  89. data/lib/mml/v2/inverse.rb +9 -0
  90. data/lib/mml/v2/lambda.rb +9 -0
  91. data/lib/mml/v2/linear_algebra.rb +41 -0
  92. data/lib/mml/v2/logic.rb +33 -0
  93. data/lib/mml/v2/maction.rb +9 -0
  94. data/lib/mml/v2/maligngroup.rb +9 -0
  95. data/lib/mml/v2/malignmark.rb +9 -0
  96. data/lib/mml/v2/math.rb +11 -0
  97. data/lib/mml/v2/menclose.rb +9 -0
  98. data/lib/mml/v2/merror.rb +9 -0
  99. data/lib/mml/v2/mfenced.rb +9 -0
  100. data/lib/mml/v2/mfrac.rb +9 -0
  101. data/lib/mml/v2/mfraction.rb +9 -0
  102. data/lib/mml/v2/mglyph.rb +9 -0
  103. data/lib/mml/v2/mi.rb +9 -0
  104. data/lib/mml/v2/mlabeledtr.rb +9 -0
  105. data/lib/mml/v2/mlongdiv.rb +9 -0
  106. data/lib/mml/v2/mmultiscripts.rb +9 -0
  107. data/lib/mml/v2/mn.rb +9 -0
  108. data/lib/mml/v2/mo.rb +10 -0
  109. data/lib/mml/v2/mover.rb +9 -0
  110. data/lib/mml/v2/mpadded.rb +9 -0
  111. data/lib/mml/v2/mphantom.rb +9 -0
  112. data/lib/mml/v2/mprescripts.rb +9 -0
  113. data/lib/mml/v2/mroot.rb +9 -0
  114. data/lib/mml/v2/mrow.rb +9 -0
  115. data/lib/mml/v2/ms.rb +9 -0
  116. data/lib/mml/v2/mscarries.rb +9 -0
  117. data/lib/mml/v2/mscarry.rb +9 -0
  118. data/lib/mml/v2/msgroup.rb +9 -0
  119. data/lib/mml/v2/msline.rb +9 -0
  120. data/lib/mml/v2/mspace.rb +9 -0
  121. data/lib/mml/v2/msqrt.rb +9 -0
  122. data/lib/mml/v2/msrow.rb +9 -0
  123. data/lib/mml/v2/mstack.rb +9 -0
  124. data/lib/mml/v2/mstyle.rb +10 -0
  125. data/lib/mml/v2/msub.rb +9 -0
  126. data/lib/mml/v2/msubsup.rb +9 -0
  127. data/lib/mml/v2/msup.rb +9 -0
  128. data/lib/mml/v2/mtable.rb +9 -0
  129. data/lib/mml/v2/mtd.rb +9 -0
  130. data/lib/mml/v2/mtext.rb +9 -0
  131. data/lib/mml/v2/mtr.rb +9 -0
  132. data/lib/mml/v2/munder.rb +9 -0
  133. data/lib/mml/v2/munderover.rb +9 -0
  134. data/lib/mml/v2/namespace.rb +7 -0
  135. data/lib/mml/v2/none.rb +9 -0
  136. data/lib/mml/v2/otherwise.rb +9 -0
  137. data/lib/mml/v2/piece.rb +9 -0
  138. data/lib/mml/v2/piecewise.rb +9 -0
  139. data/lib/mml/v2/relations.rb +41 -0
  140. data/lib/mml/v2/reln.rb +13 -0
  141. data/lib/mml/v2/semantics.rb +9 -0
  142. data/lib/mml/v2/sep.rb +9 -0
  143. data/lib/mml/v2/sets.rb +57 -0
  144. data/lib/mml/v2/statistics.rb +33 -0
  145. data/lib/mml/v2/vector_calculus.rb +21 -0
  146. data/lib/mml/v2.rb +311 -0
  147. data/lib/mml/v3/annotation.rb +10 -0
  148. data/lib/mml/v3/annotation_xml.rb +10 -0
  149. data/lib/mml/v3/apply.rb +10 -0
  150. data/lib/mml/v3/arith.rb +115 -0
  151. data/lib/mml/v3/bind.rb +10 -0
  152. data/lib/mml/v3/calculus.rb +40 -0
  153. data/lib/mml/v3/cbytes.rb +10 -0
  154. data/lib/mml/v3/cerror.rb +10 -0
  155. data/lib/mml/v3/ci.rb +10 -0
  156. data/lib/mml/v3/cn.rb +10 -0
  157. data/lib/mml/v3/common_elements.rb +34 -0
  158. data/lib/mml/v3/constants.rb +80 -0
  159. data/lib/mml/v3/constructs.rb +55 -0
  160. data/lib/mml/v3/cs.rb +10 -0
  161. data/lib/mml/v3/csymbol.rb +10 -0
  162. data/lib/mml/v3/deprecated_content.rb +29 -0
  163. data/lib/mml/v3/elementary_functions.rb +145 -0
  164. data/lib/mml/v3/functions.rb +35 -0
  165. data/lib/mml/v3/linear_algebra.rb +50 -0
  166. data/lib/mml/v3/logic.rb +40 -0
  167. data/lib/mml/v3/maction.rb +1 -1
  168. data/lib/mml/v3/math.rb +7 -1
  169. data/lib/mml/v3/mi.rb +1 -0
  170. data/lib/mml/v3/mn.rb +1 -0
  171. data/lib/mml/v3/mo.rb +1 -0
  172. data/lib/mml/v3/mrow.rb +1 -0
  173. data/lib/mml/v3/ms.rb +1 -0
  174. data/lib/mml/v3/mstyle.rb +1 -0
  175. data/lib/mml/v3/mtext.rb +1 -0
  176. data/lib/mml/v3/relations.rb +50 -0
  177. data/lib/mml/v3/sets.rb +70 -0
  178. data/lib/mml/v3/statistics.rb +40 -0
  179. data/lib/mml/v3/vector_calculus.rb +25 -0
  180. data/lib/mml/v3.rb +25 -0
  181. data/lib/mml/v4/a.rb +0 -1
  182. data/lib/mml/v4/annotation.rb +10 -0
  183. data/lib/mml/v4/annotation_xml.rb +14 -0
  184. data/lib/mml/v4/apply.rb +9 -0
  185. data/lib/mml/v4/arith.rb +93 -0
  186. data/lib/mml/v4/calculus.rb +25 -0
  187. data/lib/mml/v4/cbytes.rb +9 -0
  188. data/lib/mml/v4/cerror.rb +9 -0
  189. data/lib/mml/v4/ci.rb +9 -0
  190. data/lib/mml/v4/cn.rb +9 -0
  191. data/lib/mml/v4/common_elements.rb +33 -0
  192. data/lib/mml/v4/constants.rb +65 -0
  193. data/lib/mml/v4/constructs.rb +49 -0
  194. data/lib/mml/v4/cs.rb +9 -0
  195. data/lib/mml/v4/csymbol.rb +9 -0
  196. data/lib/mml/v4/deprecated_content.rb +25 -0
  197. data/lib/mml/v4/elementary_functions.rb +118 -0
  198. data/lib/mml/v4/factorof.rb +9 -0
  199. data/lib/mml/v4/functions.rb +30 -0
  200. data/lib/mml/v4/limit.rb +9 -0
  201. data/lib/mml/v4/linear_algebra.rb +41 -0
  202. data/lib/mml/v4/logic.rb +33 -0
  203. data/lib/mml/v4/maction.rb +1 -2
  204. data/lib/mml/v4/maligngroup.rb +0 -1
  205. data/lib/mml/v4/malignmark.rb +0 -1
  206. data/lib/mml/v4/math.rb +1 -1
  207. data/lib/mml/v4/menclose.rb +0 -1
  208. data/lib/mml/v4/merror.rb +0 -1
  209. data/lib/mml/v4/mfenced.rb +0 -1
  210. data/lib/mml/v4/mfrac.rb +0 -1
  211. data/lib/mml/v4/mfraction.rb +0 -1
  212. data/lib/mml/v4/mglyph.rb +0 -1
  213. data/lib/mml/v4/mi.rb +1 -1
  214. data/lib/mml/v4/mlabeledtr.rb +0 -1
  215. data/lib/mml/v4/mlongdiv.rb +0 -1
  216. data/lib/mml/v4/mmultiscripts.rb +0 -1
  217. data/lib/mml/v4/mn.rb +1 -1
  218. data/lib/mml/v4/mo.rb +1 -1
  219. data/lib/mml/v4/mover.rb +0 -1
  220. data/lib/mml/v4/mpadded.rb +0 -1
  221. data/lib/mml/v4/mphantom.rb +0 -1
  222. data/lib/mml/v4/mprescripts.rb +0 -1
  223. data/lib/mml/v4/mroot.rb +0 -1
  224. data/lib/mml/v4/mrow.rb +1 -1
  225. data/lib/mml/v4/ms.rb +1 -1
  226. data/lib/mml/v4/mscarries.rb +0 -1
  227. data/lib/mml/v4/mscarry.rb +0 -1
  228. data/lib/mml/v4/msgroup.rb +0 -1
  229. data/lib/mml/v4/msline.rb +0 -1
  230. data/lib/mml/v4/mspace.rb +0 -1
  231. data/lib/mml/v4/msqrt.rb +0 -1
  232. data/lib/mml/v4/msrow.rb +0 -1
  233. data/lib/mml/v4/mstack.rb +0 -1
  234. data/lib/mml/v4/mstyle.rb +1 -1
  235. data/lib/mml/v4/msub.rb +0 -1
  236. data/lib/mml/v4/msubsup.rb +0 -1
  237. data/lib/mml/v4/msup.rb +0 -1
  238. data/lib/mml/v4/mtable.rb +0 -1
  239. data/lib/mml/v4/mtd.rb +0 -1
  240. data/lib/mml/v4/mtext.rb +1 -1
  241. data/lib/mml/v4/mtr.rb +0 -1
  242. data/lib/mml/v4/munder.rb +0 -1
  243. data/lib/mml/v4/munderover.rb +0 -1
  244. data/lib/mml/v4/none.rb +0 -1
  245. data/lib/mml/v4/relations.rb +37 -0
  246. data/lib/mml/v4/semantics.rb +0 -1
  247. data/lib/mml/v4/sets.rb +57 -0
  248. data/lib/mml/v4/statistics.rb +33 -0
  249. data/lib/mml/v4/tendsto.rb +9 -0
  250. data/lib/mml/v4/vector_calculus.rb +21 -0
  251. data/lib/mml/v4.rb +421 -44
  252. data/lib/mml/version.rb +1 -1
  253. data/lib/mml/versioned_parser.rb +1 -1
  254. data/lib/mml.rb +3 -1
  255. data/reference-docs/mathml-source/pubtext/mathmlspec.dtd +150 -0
  256. data/reference-docs/mathml-source/pubtext/xmlspec.dtd +2649 -0
  257. data/reference-docs/mathml-source/readme.txt +40 -0
  258. data/reference-docs/mathml-source/run +296 -0
  259. data/reference-docs/mathml-source/style/html/html2xhtml.xsl +216 -0
  260. data/reference-docs/mathml-source/style/html/images.xsl +98 -0
  261. data/reference-docs/mathml-source/style/html/mml6.xsl +1156 -0
  262. data/reference-docs/mathml-source/style/html/mmldiff.xsl +566 -0
  263. data/reference-docs/mathml-source/style/html/mmlspec.xsl +2531 -0
  264. data/reference-docs/mathml-source/style/html/slices-common.xsl +312 -0
  265. data/reference-docs/mathml-source/style/html/slices.xsl +48 -0
  266. data/reference-docs/mathml-source/style/html/xmlspec.xsl +2542 -0
  267. data/reference-docs/mathml-source/style/pdf/mathmlspec.xsl +2510 -0
  268. data/reference-docs/mathml-source/xml/changes.xml +773 -0
  269. data/reference-docs/mathml-source/xml/character-set.xml +1011 -0
  270. data/reference-docs/mathml-source/xml/content-element-def.xml +6143 -0
  271. data/reference-docs/mathml-source/xml/content-markup.xml +8178 -0
  272. data/reference-docs/mathml-source/xml/contributors.xml +425 -0
  273. data/reference-docs/mathml-source/xml/dom-bindings.xml +20 -0
  274. data/reference-docs/mathml-source/xml/dom-intro.xml +114 -0
  275. data/reference-docs/mathml-source/xml/fundamentals.xml +1646 -0
  276. data/reference-docs/mathml-source/xml/glossary.xml +519 -0
  277. data/reference-docs/mathml-source/xml/interface.xml +1096 -0
  278. data/reference-docs/mathml-source/xml/introduction.xml +724 -0
  279. data/reference-docs/mathml-source/xml/mathml-css-sample.xml +304 -0
  280. data/reference-docs/mathml-source/xml/mathml-dom.xml +3813 -0
  281. data/reference-docs/mathml-source/xml/mathml-spec.xml +356 -0
  282. data/reference-docs/mathml-source/xml/mixing.xml +982 -0
  283. data/reference-docs/mathml-source/xml/operator-dict.xml +551 -0
  284. data/reference-docs/mathml-source/xml/parsing.xml +2565 -0
  285. data/reference-docs/mathml-source/xml/presentation-markup.xml +6834 -0
  286. data/reference-docs/mathml-source/xml/references.xml +323 -0
  287. data/reference-docs/mathml-source/xml/validation-grammar.xml +877 -0
  288. data/schemas/README.adoc +15 -0
  289. data/schemas/mathml2/CVS/Entries +4 -0
  290. data/schemas/mathml2/CVS/Repository +1 -0
  291. data/schemas/mathml2/CVS/Root +1 -0
  292. data/schemas/mathml2/common/CVS/Entries +4 -0
  293. data/schemas/mathml2/common/CVS/Repository +1 -0
  294. data/schemas/mathml2/common/CVS/Root +1 -0
  295. data/schemas/mathml2/common/common-attribs.xsd +41 -0
  296. data/schemas/mathml2/common/math.xsd +126 -0
  297. data/schemas/mathml2/common/xlink-href.xsd +20 -0
  298. data/schemas/mathml2/content/CVS/Entries +16 -0
  299. data/schemas/mathml2/content/CVS/Repository +1 -0
  300. data/schemas/mathml2/content/CVS/Root +1 -0
  301. data/schemas/mathml2/content/arith.xsd +90 -0
  302. data/schemas/mathml2/content/calculus.xsd +146 -0
  303. data/schemas/mathml2/content/common-attrib.xsd +30 -0
  304. data/schemas/mathml2/content/constants.xsd +83 -0
  305. data/schemas/mathml2/content/constructs.xsd +260 -0
  306. data/schemas/mathml2/content/elementary-functions.xsd +117 -0
  307. data/schemas/mathml2/content/functions.xsd +73 -0
  308. data/schemas/mathml2/content/linear-algebra.xsd +173 -0
  309. data/schemas/mathml2/content/logic.xsd +53 -0
  310. data/schemas/mathml2/content/relations.xsd +55 -0
  311. data/schemas/mathml2/content/semantics.xsd +85 -0
  312. data/schemas/mathml2/content/sets.xsd +236 -0
  313. data/schemas/mathml2/content/statistics.xsd +136 -0
  314. data/schemas/mathml2/content/tokens.xsd +120 -0
  315. data/schemas/mathml2/content/tokens.xsd.~1.3.~ +119 -0
  316. data/schemas/mathml2/content/vector-calculus.xsd +88 -0
  317. data/schemas/mathml2/mathml2.xsd +59 -0
  318. data/schemas/mathml2/presentation/CVS/Entries +12 -0
  319. data/schemas/mathml2/presentation/CVS/Repository +1 -0
  320. data/schemas/mathml2/presentation/CVS/Root +1 -0
  321. data/schemas/mathml2/presentation/action.xsd +44 -0
  322. data/schemas/mathml2/presentation/characters.xsd +37 -0
  323. data/schemas/mathml2/presentation/common-attribs.xsd +113 -0
  324. data/schemas/mathml2/presentation/common-types.xsd +103 -0
  325. data/schemas/mathml2/presentation/error.xsd +40 -0
  326. data/schemas/mathml2/presentation/layout.xsd +195 -0
  327. data/schemas/mathml2/presentation/scripts.xsd +186 -0
  328. data/schemas/mathml2/presentation/space.xsd +52 -0
  329. data/schemas/mathml2/presentation/style.xsd +69 -0
  330. data/schemas/mathml2/presentation/table.xsd +216 -0
  331. data/schemas/mathml2/presentation/tokens.xsd +124 -0
  332. data/schemas/mathml3/mathml3-common.xsd +99 -0
  333. data/schemas/mathml3/mathml3-content.xsd +684 -0
  334. data/schemas/mathml3/mathml3-presentation.xsd +2151 -0
  335. data/schemas/mathml3/mathml3-strict-content.xsd +186 -0
  336. data/schemas/mathml3/mathml3.xsd +9 -0
  337. metadata +250 -2
@@ -0,0 +1,243 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mml
4
+ module Base
5
+ module Content
6
+ # Arithmetic operator base module
7
+ module Arith
8
+ def self.included(klass)
9
+ klass.class_eval do
10
+ attribute :definition_url, :string
11
+ attribute :encoding_value, :string
12
+
13
+ xml do
14
+ namespace Mml::Namespace
15
+ map_attribute "definitionURL", to: :definition_url
16
+ map_attribute "encoding", to: :encoding_value
17
+ end
18
+ end
19
+ end
20
+ end
21
+
22
+ module Abs
23
+ def self.included(klass)
24
+ klass.class_eval do
25
+ include Arith
26
+
27
+ xml { element "abs" }
28
+ end
29
+ end
30
+ end
31
+
32
+ module Conjugate
33
+ def self.included(klass)
34
+ klass.class_eval do
35
+ include Arith
36
+
37
+ xml { element "conjugate" }
38
+ end
39
+ end
40
+ end
41
+
42
+ module Arg
43
+ def self.included(klass)
44
+ klass.class_eval do
45
+ include Arith
46
+
47
+ xml { element "arg" }
48
+ end
49
+ end
50
+ end
51
+
52
+ module Real
53
+ def self.included(klass)
54
+ klass.class_eval do
55
+ include Arith
56
+
57
+ xml { element "real" }
58
+ end
59
+ end
60
+ end
61
+
62
+ module Imaginary
63
+ def self.included(klass)
64
+ klass.class_eval do
65
+ include Arith
66
+
67
+ xml { element "imaginary" }
68
+ end
69
+ end
70
+ end
71
+
72
+ module Floor
73
+ def self.included(klass)
74
+ klass.class_eval do
75
+ include Arith
76
+
77
+ xml { element "floor" }
78
+ end
79
+ end
80
+ end
81
+
82
+ module Ceiling
83
+ def self.included(klass)
84
+ klass.class_eval do
85
+ include Arith
86
+
87
+ xml { element "ceiling" }
88
+ end
89
+ end
90
+ end
91
+
92
+ module Quotient
93
+ def self.included(klass)
94
+ klass.class_eval do
95
+ include Arith
96
+
97
+ xml { element "quotient" }
98
+ end
99
+ end
100
+ end
101
+
102
+ module Divide
103
+ def self.included(klass)
104
+ klass.class_eval do
105
+ include Arith
106
+
107
+ xml { element "divide" }
108
+ end
109
+ end
110
+ end
111
+
112
+ module Rem
113
+ def self.included(klass)
114
+ klass.class_eval do
115
+ include Arith
116
+
117
+ xml { element "rem" }
118
+ end
119
+ end
120
+ end
121
+
122
+ module Minus
123
+ def self.included(klass)
124
+ klass.class_eval do
125
+ include Arith
126
+
127
+ xml { element "minus" }
128
+ end
129
+ end
130
+ end
131
+
132
+ module Plus
133
+ def self.included(klass)
134
+ klass.class_eval do
135
+ include Arith
136
+
137
+ xml { element "plus" }
138
+ end
139
+ end
140
+ end
141
+
142
+ module Times
143
+ def self.included(klass)
144
+ klass.class_eval do
145
+ include Arith
146
+
147
+ xml { element "times" }
148
+ end
149
+ end
150
+ end
151
+
152
+ module Power
153
+ def self.included(klass)
154
+ klass.class_eval do
155
+ include Arith
156
+
157
+ xml { element "power" }
158
+ end
159
+ end
160
+ end
161
+
162
+ module Root
163
+ def self.included(klass)
164
+ klass.class_eval do
165
+ include Arith
166
+
167
+ xml { element "root" }
168
+ end
169
+ end
170
+ end
171
+
172
+ module Max
173
+ def self.included(klass)
174
+ klass.class_eval do
175
+ include Arith
176
+
177
+ xml { element "max" }
178
+ end
179
+ end
180
+ end
181
+
182
+ module Min
183
+ def self.included(klass)
184
+ klass.class_eval do
185
+ include Arith
186
+
187
+ xml { element "min" }
188
+ end
189
+ end
190
+ end
191
+
192
+ module Gcd
193
+ def self.included(klass)
194
+ klass.class_eval do
195
+ include Arith
196
+
197
+ xml { element "gcd" }
198
+ end
199
+ end
200
+ end
201
+
202
+ module Lcm
203
+ def self.included(klass)
204
+ klass.class_eval do
205
+ include Arith
206
+
207
+ xml { element "lcm" }
208
+ end
209
+ end
210
+ end
211
+
212
+ module Sum
213
+ def self.included(klass)
214
+ klass.class_eval do
215
+ include Arith
216
+
217
+ xml { element "sum" }
218
+ end
219
+ end
220
+ end
221
+
222
+ module Product
223
+ def self.included(klass)
224
+ klass.class_eval do
225
+ include Arith
226
+
227
+ xml { element "product" }
228
+ end
229
+ end
230
+ end
231
+
232
+ module Factorial
233
+ def self.included(klass)
234
+ klass.class_eval do
235
+ include Arith
236
+
237
+ xml { element "factorial" }
238
+ end
239
+ end
240
+ end
241
+ end
242
+ end
243
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mml
4
+ module Base
5
+ module Content
6
+ # bind represents a binding expression (for v3+).
7
+ # Unlike apply, bind explicitly marks the scope of bound variables.
8
+ module Bind
9
+ def self.included(klass)
10
+ klass.class_eval do
11
+ attribute :definition_url, :string
12
+ attribute :encoding_value, :string
13
+
14
+ xml do
15
+ namespace Mml::Namespace
16
+ element "bind"
17
+ mixed_content
18
+
19
+ map_attribute "definitionURL", to: :definition_url
20
+ map_attribute "encoding", to: :encoding_value
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mml
4
+ module Base
5
+ module Content
6
+ # bvar represents a bound variable in a binding expression.
7
+ module Bvar
8
+ def self.included(klass)
9
+ klass.class_eval do
10
+ xml do
11
+ namespace Mml::Namespace
12
+ element "bvar"
13
+ mixed_content
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,103 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mml
4
+ module Base
5
+ module Content
6
+ # Calculus operator base module
7
+ module Calculus
8
+ def self.included(klass)
9
+ klass.class_eval do
10
+ attribute :definition_url, :string
11
+ attribute :encoding_value, :string
12
+
13
+ xml do
14
+ namespace Mml::Namespace
15
+ map_attribute "definitionURL", to: :definition_url
16
+ map_attribute "encoding", to: :encoding_value
17
+ end
18
+ end
19
+ end
20
+ end
21
+
22
+ module Int
23
+ def self.included(klass)
24
+ klass.class_eval do
25
+ include Calculus
26
+
27
+ xml { element "int" }
28
+ end
29
+ end
30
+ end
31
+
32
+ module Diff
33
+ def self.included(klass)
34
+ klass.class_eval do
35
+ include Calculus
36
+
37
+ xml { element "diff" }
38
+ end
39
+ end
40
+ end
41
+
42
+ module Partialdiff
43
+ def self.included(klass)
44
+ klass.class_eval do
45
+ include Calculus
46
+
47
+ xml { element "partialdiff" }
48
+ end
49
+ end
50
+ end
51
+
52
+ module Limit
53
+ def self.included(klass)
54
+ klass.class_eval do
55
+ include Calculus
56
+
57
+ xml do
58
+ namespace Mml::Namespace
59
+ element "limit"
60
+ end
61
+ end
62
+ end
63
+ end
64
+
65
+ module Lowlimit
66
+ def self.included(klass)
67
+ klass.class_eval do
68
+ xml do
69
+ namespace Mml::Namespace
70
+ element "lowlimit"
71
+ mixed_content
72
+ end
73
+ end
74
+ end
75
+ end
76
+
77
+ module Uplimit
78
+ def self.included(klass)
79
+ klass.class_eval do
80
+ xml do
81
+ namespace Mml::Namespace
82
+ element "uplimit"
83
+ mixed_content
84
+ end
85
+ end
86
+ end
87
+ end
88
+
89
+ module Tendsto
90
+ def self.included(klass)
91
+ klass.class_eval do
92
+ attribute :type, :string
93
+ xml do
94
+ namespace Mml::Namespace
95
+ element "tendsto"
96
+ map_attribute "type", to: :type
97
+ end
98
+ end
99
+ end
100
+ end
101
+ end
102
+ end
103
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mml
4
+ module Base
5
+ module Content
6
+ module Cbytes
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ attribute :encoding_value, :string
10
+ attribute :value, :string
11
+
12
+ xml do
13
+ namespace Mml::Namespace
14
+ element "cbytes"
15
+
16
+ map_content to: :value
17
+ map_attribute "encoding", to: :encoding_value
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mml
4
+ module Base
5
+ module Content
6
+ # Cerror content element - error marker containing a csymbol and optional content
7
+ # Used to signal semantic errors in content markup
8
+ module Cerror
9
+ def self.included(klass)
10
+ klass.class_eval do
11
+ attribute :csymbol_value, :csymbol, collection: true
12
+
13
+ xml do
14
+ namespace Mml::Namespace
15
+ element "cerror"
16
+ mixed_content
17
+ map_element "csymbol", to: :csymbol_value
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,77 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mml
4
+ module Base
5
+ module Content
6
+ module Ci
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ attribute :type, :string
10
+ attribute :definition_url, :string
11
+ attribute :encoding_value, :string
12
+ attribute :value, :string
13
+
14
+ # Presentation elements that can appear inside ci
15
+ attribute :msub_value, :msub, collection: true
16
+ attribute :msup_value, :msup, collection: true
17
+ attribute :msubsup_value, :msubsup, collection: true
18
+ attribute :munder_value, :munder, collection: true
19
+ attribute :mover_value, :mover, collection: true
20
+ attribute :munderover_value, :munderover, collection: true
21
+ attribute :mfrac_value, :mfrac, collection: true
22
+ attribute :msqrt_value, :msqrt, collection: true
23
+ attribute :mroot_value, :mroot, collection: true
24
+ attribute :mrow_value, :mrow, collection: true
25
+ attribute :mfenced_value, :mfenced, collection: true
26
+ attribute :menclose_value, :menclose, collection: true
27
+ attribute :mphantom_value, :mphantom, collection: true
28
+ attribute :mpadded_value, :mpadded, collection: true
29
+ attribute :merror_value, :merror, collection: true
30
+ attribute :mtext_value, :mtext, collection: true
31
+ attribute :mspace_value, :mspace, collection: true
32
+ attribute :mi_value, :mi, collection: true
33
+ attribute :mo_value, :mo, collection: true
34
+ attribute :mn_value, :mn, collection: true
35
+ attribute :ms_value, :ms, collection: true
36
+ attribute :none_value, :none, collection: true
37
+
38
+ xml do
39
+ namespace Mml::Namespace
40
+ element "ci"
41
+ mixed_content
42
+
43
+ map_content to: :value
44
+ map_attribute "type", to: :type
45
+ map_attribute "definitionURL", to: :definition_url
46
+ map_attribute "encoding", to: :encoding_value
47
+
48
+ # Presentation elements
49
+ map_element "msub", to: :msub_value
50
+ map_element "msup", to: :msup_value
51
+ map_element "msubsup", to: :msubsup_value
52
+ map_element "munder", to: :munder_value
53
+ map_element "mover", to: :mover_value
54
+ map_element "munderover", to: :munderover_value
55
+ map_element "mfrac", to: :mfrac_value
56
+ map_element "msqrt", to: :msqrt_value
57
+ map_element "mroot", to: :mroot_value
58
+ map_element "mrow", to: :mrow_value
59
+ map_element "mfenced", to: :mfenced_value
60
+ map_element "menclose", to: :menclose_value
61
+ map_element "mphantom", to: :mphantom_value
62
+ map_element "mpadded", to: :mpadded_value
63
+ map_element "merror", to: :merror_value
64
+ map_element "mtext", to: :mtext_value
65
+ map_element "mspace", to: :mspace_value
66
+ map_element "mi", to: :mi_value
67
+ map_element "mo", to: :mo_value
68
+ map_element "mn", to: :mn_value
69
+ map_element "ms", to: :ms_value
70
+ map_element "none", to: :none_value
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mml
4
+ module Base
5
+ module Content
6
+ module Cn
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ attribute :type, :string
10
+ attribute :definition_url, :string
11
+ attribute :enc, :string
12
+ attribute :base, :string
13
+ attribute :value, :string
14
+ attribute :sep_value, :sep, collection: true
15
+
16
+ xml do
17
+ namespace Mml::Namespace
18
+ element "cn"
19
+ mixed_content
20
+
21
+ map_content to: :value
22
+ map_element "sep", to: :sep_value
23
+ map_attribute "type", to: :type
24
+ map_attribute "definitionURL", to: :definition_url
25
+ map_attribute "encoding", to: :enc
26
+ map_attribute "base", to: :base
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mml
4
+ module Base
5
+ module Content
6
+ # condition is used in qualifiers to specify conditions.
7
+ module Condition
8
+ def self.included(klass)
9
+ klass.class_eval do
10
+ xml do
11
+ namespace Mml::Namespace
12
+ element "condition"
13
+ mixed_content
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end