nora_mark 0.2beta3 → 0.2beta4

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 (105) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +5 -0
  3. data/Gemfile +2 -0
  4. data/README.md +17 -12
  5. data/example/nora-simple.css +52 -0
  6. data/example/noramark-reference-ja.nora +246 -0
  7. data/example/noramark-reference-ja_00001.xhtml +187 -0
  8. data/lib/nora_mark/html/{abstract_item_writer.rb → abstract_node_writer.rb} +3 -3
  9. data/lib/nora_mark/html/context.rb +3 -21
  10. data/lib/nora_mark/html/frontmatter_writer.rb +33 -0
  11. data/lib/nora_mark/html/generator.rb +122 -100
  12. data/lib/nora_mark/html/pages.rb +3 -9
  13. data/lib/nora_mark/html/paragraph_writer.rb +27 -23
  14. data/lib/nora_mark/html/tag_writer.rb +33 -34
  15. data/lib/nora_mark/html/writer_selector.rb +3 -3
  16. data/lib/nora_mark/node.rb +31 -0
  17. data/lib/nora_mark/parser.kpeg +133 -79
  18. data/lib/nora_mark/parser.kpeg.rb +1822 -1526
  19. data/lib/nora_mark/parser.rb +4 -23
  20. data/lib/nora_mark/version.rb +1 -1
  21. data/lib/nora_mark.rb +7 -2
  22. data/nora_mark.gemspec +1 -0
  23. data/spec/epub30-schemas/epub-nav-30.nvdl +16 -0
  24. data/spec/epub30-schemas/epub-nav-30.rnc +10 -0
  25. data/spec/epub30-schemas/epub-nav-30.sch +72 -0
  26. data/spec/epub30-schemas/epub-svg-30.nvdl +15 -0
  27. data/spec/epub30-schemas/epub-svg-30.rnc +15 -0
  28. data/spec/epub30-schemas/epub-svg-30.sch +10 -0
  29. data/spec/epub30-schemas/epub-xhtml-30.nvdl +15 -0
  30. data/spec/epub30-schemas/epub-xhtml-30.rnc +37 -0
  31. data/spec/epub30-schemas/epub-xhtml-30.sch +377 -0
  32. data/spec/epub30-schemas/epub30-catalog.xml +335 -0
  33. data/spec/epub30-schemas/media-overlay-30.nvdl +14 -0
  34. data/spec/epub30-schemas/media-overlay-30.rnc +46 -0
  35. data/spec/epub30-schemas/media-overlay-30.sch +9 -0
  36. data/spec/epub30-schemas/mod/datatypes.rnc +143 -0
  37. data/spec/epub30-schemas/mod/epub-mathml3-30.rnc +74 -0
  38. data/spec/epub30-schemas/mod/epub-prefix-attr.rnc +8 -0
  39. data/spec/epub30-schemas/mod/epub-ssml-attrs.rnc +11 -0
  40. data/spec/epub30-schemas/mod/epub-svg11-30.rnc +12 -0
  41. data/spec/epub30-schemas/mod/epub-svg11-re.sch +7 -0
  42. data/spec/epub30-schemas/mod/epub-switch.rnc +32 -0
  43. data/spec/epub30-schemas/mod/epub-trigger.rnc +17 -0
  44. data/spec/epub30-schemas/mod/epub-type-attr.rnc +7 -0
  45. data/spec/epub30-schemas/mod/epub-xhtml-mathml3-30.rnc +5 -0
  46. data/spec/epub30-schemas/mod/epub-xhtml-svg11-30.rnc +6 -0
  47. data/spec/epub30-schemas/mod/html5/LICENSE +23 -0
  48. data/spec/epub30-schemas/mod/html5/README +21 -0
  49. data/spec/epub30-schemas/mod/html5/html5-aria-30.rnc +105 -0
  50. data/spec/epub30-schemas/mod/html5/html5-attrib-30.rnc +44 -0
  51. data/spec/epub30-schemas/mod/html5/html5-document-30.rnc +44 -0
  52. data/spec/epub30-schemas/mod/html5/html5-edit-30.rnc +24 -0
  53. data/spec/epub30-schemas/mod/html5/html5-embed-30.rnc +155 -0
  54. data/spec/epub30-schemas/mod/html5/html5-forms-30.rnc +431 -0
  55. data/spec/epub30-schemas/mod/html5/html5-grouping-30.rnc +115 -0
  56. data/spec/epub30-schemas/mod/html5/html5-interactive-30.rnc +86 -0
  57. data/spec/epub30-schemas/mod/html5/html5-models-30.rnc +10 -0
  58. data/spec/epub30-schemas/mod/html5/html5-phrasing-30.rnc +134 -0
  59. data/spec/epub30-schemas/mod/html5/html5-script-30.rnc +164 -0
  60. data/spec/epub30-schemas/mod/html5/html5-sections-30.rnc +58 -0
  61. data/spec/epub30-schemas/mod/html5/html5-style-30.rnc +18 -0
  62. data/spec/epub30-schemas/mod/id-unique.sch +10 -0
  63. data/spec/epub30-schemas/mod/mathml/LICENSE +3 -0
  64. data/spec/epub30-schemas/mod/mathml/mathml3-common.rnc +84 -0
  65. data/spec/epub30-schemas/mod/mathml/mathml3-content.rnc +373 -0
  66. data/spec/epub30-schemas/mod/mathml/mathml3-presentation.rnc +536 -0
  67. data/spec/epub30-schemas/mod/mathml/mathml3-strict-content.rnc +60 -0
  68. data/spec/epub30-schemas/mod/security/LICENSE +4 -0
  69. data/spec/epub30-schemas/mod/security/Lenient-Encryption11-ghc.rnc +41 -0
  70. data/spec/epub30-schemas/mod/security/Lenient-Encryption11.rnc +39 -0
  71. data/spec/epub30-schemas/mod/security/Lenient-Signature-exclusiveC14N.rnc +25 -0
  72. data/spec/epub30-schemas/mod/security/Lenient-Signature11-properties-exclusiveC14N.rnc +32 -0
  73. data/spec/epub30-schemas/mod/security/Lenient-Signature11-properties.rnc +30 -0
  74. data/spec/epub30-schemas/mod/security/Lenient-Signature11.rnc +28 -0
  75. data/spec/epub30-schemas/mod/security/Strict-Encryption.rnc +27 -0
  76. data/spec/epub30-schemas/mod/security/Strict-Signature.rnc +22 -0
  77. data/spec/epub30-schemas/mod/security/exc-c14n.rnc +39 -0
  78. data/spec/epub30-schemas/mod/security/security_any.rnc +15 -0
  79. data/spec/epub30-schemas/mod/security/xenc-allowAnyForeign.rnc +25 -0
  80. data/spec/epub30-schemas/mod/security/xenc-schema-11.rnc +96 -0
  81. data/spec/epub30-schemas/mod/security/xenc-schema.rnc +145 -0
  82. data/spec/epub30-schemas/mod/security/xenc11-allowAnyForeign.rnc +19 -0
  83. data/spec/epub30-schemas/mod/security/xmldsig-allowAnyForeign.rnc +47 -0
  84. data/spec/epub30-schemas/mod/security/xmldsig-core-schema.rnc +276 -0
  85. data/spec/epub30-schemas/mod/security/xmldsig-filter2.rnc +16 -0
  86. data/spec/epub30-schemas/mod/security/xmldsig-properties-schema.rnc +34 -0
  87. data/spec/epub30-schemas/mod/security/xmldsig11-allowAnyForeign.rnc +18 -0
  88. data/spec/epub30-schemas/mod/security/xmldsig11-schema.rnc +133 -0
  89. data/spec/epub30-schemas/mod/security/xmlsec-ghc-allowAnyForeign.rnc +21 -0
  90. data/spec/epub30-schemas/mod/security/xmlsec-ghc-schema.rnc +42 -0
  91. data/spec/epub30-schemas/mod/svg11/LICENSE +1 -0
  92. data/spec/epub30-schemas/mod/svg11/README.txt +8 -0
  93. data/spec/epub30-schemas/mod/svg11/svg11-flat.rnc +3999 -0
  94. data/spec/epub30-schemas/ocf-container-30.rnc +16 -0
  95. data/spec/epub30-schemas/ocf-encryption-30.rnc +12 -0
  96. data/spec/epub30-schemas/ocf-signatures-30.rnc +8 -0
  97. data/spec/epub30-schemas/package-30.nvdl +14 -0
  98. data/spec/epub30-schemas/package-30.rnc +91 -0
  99. data/spec/epub30-schemas/package-30.sch +137 -0
  100. data/spec/jing-20091111/bin/jing.jar +0 -0
  101. data/spec/nora_mark_spec.rb +229 -68
  102. data/spec/spec_helper.rb +16 -0
  103. metadata +179 -6
  104. data/lib/nora_mark/html/header_writer.rb +0 -35
  105. data/spec/fixture/test_src_ja.nora +0 -50
@@ -0,0 +1,373 @@
1
+
2
+ # This is the Mathematical Markup Language (MathML) 3.0, an XML
3
+ # application for describing mathematical notation and capturing
4
+ # both its structure and content.
5
+ #
6
+ # Copyright 1998-2010 W3C (MIT, ERCIM, Keio)
7
+ #
8
+ # Use and distribution of this code are permitted under the terms
9
+ # W3C Software Notice and License
10
+ # http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
11
+
12
+ include "mathml3-strict-content.rnc"{
13
+ cn.content = (text | mglyph | sep | PresentationExpression)*
14
+ cn.attributes = CommonAtt, DefEncAtt, attribute type {text}?, base?
15
+
16
+ ci.attributes = CommonAtt, DefEncAtt, ci.type?
17
+ ci.type = attribute type {text}
18
+ ci.content = (text | mglyph | PresentationExpression)*
19
+
20
+ csymbol.attributes = CommonAtt, DefEncAtt, attribute type {text}?,cd?
21
+ csymbol.content = (text | mglyph | PresentationExpression)*
22
+
23
+ bvar = element bvar { (ci | semantics-ci) & degree?}
24
+
25
+ cbytes.attributes = CommonAtt, DefEncAtt
26
+
27
+ cs.attributes = CommonAtt, DefEncAtt
28
+
29
+ apply.content = ContExp+ | (ContExp, BvarQ, Qualifier*, ContExp*)
30
+
31
+ bind.content = apply.content
32
+ }
33
+
34
+ base = attribute base {text}
35
+
36
+
37
+ sep = element sep {empty}
38
+ PresentationExpression |= notAllowed
39
+
40
+
41
+ DomainQ = (domainofapplication|condition|interval|(lowlimit,uplimit?))*
42
+ domainofapplication = element domainofapplication {ContExp}
43
+ condition = element condition {ContExp}
44
+ uplimit = element uplimit {ContExp}
45
+ lowlimit = element lowlimit {ContExp}
46
+
47
+ Qualifier = DomainQ|degree|momentabout|logbase
48
+ degree = element degree {ContExp}
49
+ momentabout = element momentabout {ContExp}
50
+ logbase = element logbase {ContExp}
51
+
52
+ type = attribute type {text}
53
+ order = attribute order {"numeric" | "lexicographic"}
54
+ closure = attribute closure {text}
55
+
56
+
57
+ ContExp |= piecewise
58
+
59
+
60
+ piecewise = element piecewise {CommonAtt, DefEncAtt,(piece* & otherwise?)}
61
+
62
+ piece = element piece {CommonAtt, DefEncAtt, ContExp, ContExp}
63
+
64
+ otherwise = element otherwise {CommonAtt, DefEncAtt, ContExp}
65
+
66
+
67
+ DeprecatedContExp = reln | fn | declare
68
+ ContExp |= DeprecatedContExp
69
+
70
+ reln = element reln {ContExp*}
71
+ fn = element fn {ContExp}
72
+ declare = element declare {attribute type {xsd:string}?,
73
+ attribute scope {xsd:string}?,
74
+ attribute nargs {xsd:nonNegativeInteger}?,
75
+ attribute occurrence {"prefix"|"infix"|"function-model"}?,
76
+ DefEncAtt,
77
+ ContExp+}
78
+
79
+
80
+ interval.class = interval
81
+ ContExp |= interval.class
82
+
83
+
84
+ interval = element interval { CommonAtt, DefEncAtt,closure?, ContExp,ContExp}
85
+
86
+ unary-functional.class = inverse | ident | domain | codomain | image | ln | log | moment
87
+ ContExp |= unary-functional.class
88
+
89
+
90
+ inverse = element inverse { CommonAtt, DefEncAtt, empty}
91
+ ident = element ident { CommonAtt, DefEncAtt, empty}
92
+ domain = element domain { CommonAtt, DefEncAtt, empty}
93
+ codomain = element codomain { CommonAtt, DefEncAtt, empty}
94
+ image = element image { CommonAtt, DefEncAtt, empty}
95
+ ln = element ln { CommonAtt, DefEncAtt, empty}
96
+ log = element log { CommonAtt, DefEncAtt, empty}
97
+ moment = element moment { CommonAtt, DefEncAtt, empty}
98
+
99
+ lambda.class = lambda
100
+ ContExp |= lambda.class
101
+
102
+
103
+ lambda = element lambda { CommonAtt, DefEncAtt, BvarQ, DomainQ, ContExp}
104
+
105
+ nary-functional.class = compose
106
+ ContExp |= nary-functional.class
107
+
108
+
109
+ compose = element compose { CommonAtt, DefEncAtt, empty}
110
+
111
+ binary-arith.class = quotient | divide | minus | power | rem | root
112
+ ContExp |= binary-arith.class
113
+
114
+
115
+ quotient = element quotient { CommonAtt, DefEncAtt, empty}
116
+ divide = element divide { CommonAtt, DefEncAtt, empty}
117
+ minus = element minus { CommonAtt, DefEncAtt, empty}
118
+ power = element power { CommonAtt, DefEncAtt, empty}
119
+ rem = element rem { CommonAtt, DefEncAtt, empty}
120
+ root = element root { CommonAtt, DefEncAtt, empty}
121
+
122
+ unary-arith.class = factorial | minus | root | abs | conjugate | arg | real | imaginary | floor | ceiling | exp
123
+ ContExp |= unary-arith.class
124
+
125
+
126
+ factorial = element factorial { CommonAtt, DefEncAtt, empty}
127
+ abs = element abs { CommonAtt, DefEncAtt, empty}
128
+ conjugate = element conjugate { CommonAtt, DefEncAtt, empty}
129
+ arg = element arg { CommonAtt, DefEncAtt, empty}
130
+ real = element real { CommonAtt, DefEncAtt, empty}
131
+ imaginary = element imaginary { CommonAtt, DefEncAtt, empty}
132
+ floor = element floor { CommonAtt, DefEncAtt, empty}
133
+ ceiling = element ceiling { CommonAtt, DefEncAtt, empty}
134
+ exp = element exp { CommonAtt, DefEncAtt, empty}
135
+
136
+ nary-minmax.class = max | min
137
+ ContExp |= nary-minmax.class
138
+
139
+
140
+ max = element max { CommonAtt, DefEncAtt, empty}
141
+ min = element min { CommonAtt, DefEncAtt, empty}
142
+
143
+ nary-arith.class = plus | times | gcd | lcm
144
+ ContExp |= nary-arith.class
145
+
146
+
147
+ plus = element plus { CommonAtt, DefEncAtt, empty}
148
+ times = element times { CommonAtt, DefEncAtt, empty}
149
+ gcd = element gcd { CommonAtt, DefEncAtt, empty}
150
+ lcm = element lcm { CommonAtt, DefEncAtt, empty}
151
+
152
+ nary-logical.class = and | or | xor
153
+ ContExp |= nary-logical.class
154
+
155
+
156
+ and = element and { CommonAtt, DefEncAtt, empty}
157
+ or = element or { CommonAtt, DefEncAtt, empty}
158
+ xor = element xor { CommonAtt, DefEncAtt, empty}
159
+
160
+ unary-logical.class = not
161
+ ContExp |= unary-logical.class
162
+
163
+
164
+ not = element not { CommonAtt, DefEncAtt, empty}
165
+
166
+ binary-logical.class = implies | equivalent
167
+ ContExp |= binary-logical.class
168
+
169
+
170
+ implies = element implies { CommonAtt, DefEncAtt, empty}
171
+ equivalent = element equivalent { CommonAtt, DefEncAtt, empty}
172
+
173
+ quantifier.class = forall | exists
174
+ ContExp |= quantifier.class
175
+
176
+
177
+ forall = element forall { CommonAtt, DefEncAtt, empty}
178
+ exists = element exists { CommonAtt, DefEncAtt, empty}
179
+
180
+ nary-reln.class = eq | gt | lt | geq | leq
181
+ ContExp |= nary-reln.class
182
+
183
+
184
+ eq = element eq { CommonAtt, DefEncAtt, empty}
185
+ gt = element gt { CommonAtt, DefEncAtt, empty}
186
+ lt = element lt { CommonAtt, DefEncAtt, empty}
187
+ geq = element geq { CommonAtt, DefEncAtt, empty}
188
+ leq = element leq { CommonAtt, DefEncAtt, empty}
189
+
190
+ binary-reln.class = neq | approx | factorof | tendsto
191
+ ContExp |= binary-reln.class
192
+
193
+
194
+ neq = element neq { CommonAtt, DefEncAtt, empty}
195
+ approx = element approx { CommonAtt, DefEncAtt, empty}
196
+ factorof = element factorof { CommonAtt, DefEncAtt, empty}
197
+ tendsto = element tendsto { CommonAtt, DefEncAtt, type?, empty}
198
+
199
+ int.class = int
200
+ ContExp |= int.class
201
+
202
+
203
+ int = element int { CommonAtt, DefEncAtt, empty}
204
+
205
+ Differential-Operator.class = diff
206
+ ContExp |= Differential-Operator.class
207
+
208
+
209
+ diff = element diff { CommonAtt, DefEncAtt, empty}
210
+
211
+ partialdiff.class = partialdiff
212
+ ContExp |= partialdiff.class
213
+
214
+
215
+ partialdiff = element partialdiff { CommonAtt, DefEncAtt, empty}
216
+
217
+ unary-veccalc.class = divergence | grad | curl | laplacian
218
+ ContExp |= unary-veccalc.class
219
+
220
+
221
+ divergence = element divergence { CommonAtt, DefEncAtt, empty}
222
+ grad = element grad { CommonAtt, DefEncAtt, empty}
223
+ curl = element curl { CommonAtt, DefEncAtt, empty}
224
+ laplacian = element laplacian { CommonAtt, DefEncAtt, empty}
225
+
226
+ nary-setlist-constructor.class = set | \list
227
+ ContExp |= nary-setlist-constructor.class
228
+
229
+
230
+ set = element set { CommonAtt, DefEncAtt, type?, BvarQ*, DomainQ*, ContExp*}
231
+ \list = element \list { CommonAtt, DefEncAtt, order?, BvarQ*, DomainQ*, ContExp*}
232
+
233
+ nary-set.class = union | intersect | cartesianproduct
234
+ ContExp |= nary-set.class
235
+
236
+
237
+ union = element union { CommonAtt, DefEncAtt, empty}
238
+ intersect = element intersect { CommonAtt, DefEncAtt, empty}
239
+ cartesianproduct = element cartesianproduct { CommonAtt, DefEncAtt, empty}
240
+
241
+ binary-set.class = in | notin | notsubset | notprsubset | setdiff
242
+ ContExp |= binary-set.class
243
+
244
+
245
+ in = element in { CommonAtt, DefEncAtt, empty}
246
+ notin = element notin { CommonAtt, DefEncAtt, empty}
247
+ notsubset = element notsubset { CommonAtt, DefEncAtt, empty}
248
+ notprsubset = element notprsubset { CommonAtt, DefEncAtt, empty}
249
+ setdiff = element setdiff { CommonAtt, DefEncAtt, empty}
250
+
251
+ nary-set-reln.class = subset | prsubset
252
+ ContExp |= nary-set-reln.class
253
+
254
+
255
+ subset = element subset { CommonAtt, DefEncAtt, empty}
256
+ prsubset = element prsubset { CommonAtt, DefEncAtt, empty}
257
+
258
+ unary-set.class = card
259
+ ContExp |= unary-set.class
260
+
261
+
262
+ card = element card { CommonAtt, DefEncAtt, empty}
263
+
264
+ sum.class = sum
265
+ ContExp |= sum.class
266
+
267
+
268
+ sum = element sum { CommonAtt, DefEncAtt, empty}
269
+
270
+ product.class = product
271
+ ContExp |= product.class
272
+
273
+
274
+ product = element product { CommonAtt, DefEncAtt, empty}
275
+
276
+ limit.class = limit
277
+ ContExp |= limit.class
278
+
279
+
280
+ limit = element limit { CommonAtt, DefEncAtt, empty}
281
+
282
+ unary-elementary.class = sin | cos | tan | sec | csc | cot | sinh | cosh | tanh | sech | csch | coth | arcsin | arccos | arctan | arccosh | arccot | arccoth | arccsc | arccsch | arcsec | arcsech | arcsinh | arctanh
283
+ ContExp |= unary-elementary.class
284
+
285
+
286
+ sin = element sin { CommonAtt, DefEncAtt, empty}
287
+ cos = element cos { CommonAtt, DefEncAtt, empty}
288
+ tan = element tan { CommonAtt, DefEncAtt, empty}
289
+ sec = element sec { CommonAtt, DefEncAtt, empty}
290
+ csc = element csc { CommonAtt, DefEncAtt, empty}
291
+ cot = element cot { CommonAtt, DefEncAtt, empty}
292
+ sinh = element sinh { CommonAtt, DefEncAtt, empty}
293
+ cosh = element cosh { CommonAtt, DefEncAtt, empty}
294
+ tanh = element tanh { CommonAtt, DefEncAtt, empty}
295
+ sech = element sech { CommonAtt, DefEncAtt, empty}
296
+ csch = element csch { CommonAtt, DefEncAtt, empty}
297
+ coth = element coth { CommonAtt, DefEncAtt, empty}
298
+ arcsin = element arcsin { CommonAtt, DefEncAtt, empty}
299
+ arccos = element arccos { CommonAtt, DefEncAtt, empty}
300
+ arctan = element arctan { CommonAtt, DefEncAtt, empty}
301
+ arccosh = element arccosh { CommonAtt, DefEncAtt, empty}
302
+ arccot = element arccot { CommonAtt, DefEncAtt, empty}
303
+ arccoth = element arccoth { CommonAtt, DefEncAtt, empty}
304
+ arccsc = element arccsc { CommonAtt, DefEncAtt, empty}
305
+ arccsch = element arccsch { CommonAtt, DefEncAtt, empty}
306
+ arcsec = element arcsec { CommonAtt, DefEncAtt, empty}
307
+ arcsech = element arcsech { CommonAtt, DefEncAtt, empty}
308
+ arcsinh = element arcsinh { CommonAtt, DefEncAtt, empty}
309
+ arctanh = element arctanh { CommonAtt, DefEncAtt, empty}
310
+
311
+ nary-stats.class = mean | sdev | variance | median | mode
312
+ ContExp |= nary-stats.class
313
+
314
+
315
+ mean = element mean { CommonAtt, DefEncAtt, empty}
316
+ sdev = element sdev { CommonAtt, DefEncAtt, empty}
317
+ variance = element variance { CommonAtt, DefEncAtt, empty}
318
+ median = element median { CommonAtt, DefEncAtt, empty}
319
+ mode = element mode { CommonAtt, DefEncAtt, empty}
320
+
321
+ nary-constructor.class = vector | matrix | matrixrow
322
+ ContExp |= nary-constructor.class
323
+
324
+
325
+ vector = element vector { CommonAtt, DefEncAtt, BvarQ, DomainQ, ContExp*}
326
+ matrix = element matrix { CommonAtt, DefEncAtt, BvarQ, DomainQ, ContExp*}
327
+ matrixrow = element matrixrow { CommonAtt, DefEncAtt, BvarQ, DomainQ, ContExp*}
328
+
329
+ unary-linalg.class = determinant | transpose
330
+ ContExp |= unary-linalg.class
331
+
332
+
333
+ determinant = element determinant { CommonAtt, DefEncAtt, empty}
334
+ transpose = element transpose { CommonAtt, DefEncAtt, empty}
335
+
336
+ nary-linalg.class = selector
337
+ ContExp |= nary-linalg.class
338
+
339
+
340
+ selector = element selector { CommonAtt, DefEncAtt, empty}
341
+
342
+ binary-linalg.class = vectorproduct | scalarproduct | outerproduct
343
+ ContExp |= binary-linalg.class
344
+
345
+
346
+ vectorproduct = element vectorproduct { CommonAtt, DefEncAtt, empty}
347
+ scalarproduct = element scalarproduct { CommonAtt, DefEncAtt, empty}
348
+ outerproduct = element outerproduct { CommonAtt, DefEncAtt, empty}
349
+
350
+ constant-set.class = integers | reals | rationals | naturalnumbers | complexes | primes | emptyset
351
+ ContExp |= constant-set.class
352
+
353
+
354
+ integers = element integers { CommonAtt, DefEncAtt, empty}
355
+ reals = element reals { CommonAtt, DefEncAtt, empty}
356
+ rationals = element rationals { CommonAtt, DefEncAtt, empty}
357
+ naturalnumbers = element naturalnumbers { CommonAtt, DefEncAtt, empty}
358
+ complexes = element complexes { CommonAtt, DefEncAtt, empty}
359
+ primes = element primes { CommonAtt, DefEncAtt, empty}
360
+ emptyset = element emptyset { CommonAtt, DefEncAtt, empty}
361
+
362
+ constant-arith.class = exponentiale | imaginaryi | notanumber | true | false | pi | eulergamma | infinity
363
+ ContExp |= constant-arith.class
364
+
365
+
366
+ exponentiale = element exponentiale { CommonAtt, DefEncAtt, empty}
367
+ imaginaryi = element imaginaryi { CommonAtt, DefEncAtt, empty}
368
+ notanumber = element notanumber { CommonAtt, DefEncAtt, empty}
369
+ true = element true { CommonAtt, DefEncAtt, empty}
370
+ false = element false { CommonAtt, DefEncAtt, empty}
371
+ pi = element pi { CommonAtt, DefEncAtt, empty}
372
+ eulergamma = element eulergamma { CommonAtt, DefEncAtt, empty}
373
+ infinity = element infinity { CommonAtt, DefEncAtt, empty}