nora_mark 0.2beta3 → 0.2beta4

Sign up to get free protection for your applications and to get access to all the features.
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}