source: branches/xtext-MDT/org.modelica.xtext/src-gen/org/modelica/xtext/ModelicaBase.xmi @ 540

Last change on this file since 540 was 540, checked in by nasko, 15 years ago

Added subfolders/files of org.modelica.xtext

File size: 99.1 KB
Line 
1<?xml version="1.0" encoding="ASCII"?>
2<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:xtext="http://www.eclipse.org/2008/Xtext">
3  <xtext:Grammar name="org.modelica.xtext.ModelicaBase" usedGrammars="/1">
4    <metamodelDeclarations xsi:type="xtext:GeneratedMetamodel" name="modelicaBase">
5      <ePackage href="http://www.modelica.org/xtext/ModelicaBase#/"/>
6    </metamodelDeclarations>
7    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="ecore">
8      <ePackage href="http://www.eclipse.org/emf/2002/Ecore#/"/>
9    </metamodelDeclarations>
10    <rules xsi:type="xtext:ParserRule" name="StorageUnit">
11      <type metamodel="/0/@metamodelDeclarations.0">
12        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//StorageUnit"/>
13      </type>
14      <alternatives xsi:type="xtext:Group">
15        <tokens xsi:type="xtext:Group" cardinality="?">
16          <tokens xsi:type="xtext:Keyword" value="within"/>
17          <tokens xsi:type="xtext:RuleCall" cardinality="?" rule="/0/@rules.71"/>
18          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.99"/>
19        </tokens>
20        <tokens xsi:type="xtext:Group" cardinality="*">
21          <tokens xsi:type="xtext:Keyword" cardinality="?" value="final"/>
22          <tokens xsi:type="xtext:Assignment" feature="classDefinition" operator="+=">
23            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.2"/>
24          </tokens>
25          <tokens xsi:type="xtext:Keyword" value=";"/>
26        </tokens>
27      </alternatives>
28    </rules>
29    <rules xsi:type="xtext:ParserRule" name="EntityDefinition">
30      <type metamodel="/0/@metamodelDeclarations.0">
31        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//EntityDefinition"/>
32      </type>
33      <alternatives xsi:type="xtext:Alternatives">
34        <groups xsi:type="xtext:RuleCall" rule="/0/@rules.2"/>
35        <groups xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
36        <groups xsi:type="xtext:RuleCall" rule="/0/@rules.5"/>
37        <groups xsi:type="xtext:RuleCall" rule="/0/@rules.6"/>
38        <groups xsi:type="xtext:RuleCall" rule="/0/@rules.7"/>
39      </alternatives>
40    </rules>
41    <rules xsi:type="xtext:ParserRule" name="ClassDefinition">
42      <type metamodel="/0/@metamodelDeclarations.0">
43        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//ClassDefinition"/>
44      </type>
45      <alternatives xsi:type="xtext:Group">
46        <tokens xsi:type="xtext:Assignment" cardinality="?" feature="encapsulated" operator="?=">
47          <terminal xsi:type="xtext:Keyword" value="encapsulated"/>
48        </tokens>
49        <tokens xsi:type="xtext:Assignment" cardinality="?" feature="partial" operator="?=">
50          <terminal xsi:type="xtext:Keyword" value="partial"/>
51        </tokens>
52        <tokens xsi:type="xtext:Assignment" cardinality="?" feature="expandable" operator="?=">
53          <terminal xsi:type="xtext:Keyword" value="expandable"/>
54        </tokens>
55        <tokens xsi:type="xtext:Assignment" feature="classType" operator="=">
56          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/>
57        </tokens>
58        <tokens xsi:type="xtext:Alternatives">
59          <groups xsi:type="xtext:Group">
60            <tokens xsi:type="xtext:Assignment" feature="name" operator="=">
61              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.118"/>
62            </tokens>
63            <tokens xsi:type="xtext:Assignment" cardinality="?" feature="comment" operator="=">
64              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.86"/>
65            </tokens>
66          </groups>
67          <groups xsi:type="xtext:Group">
68            <tokens xsi:type="xtext:Keyword" value="extends"/>
69            <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.118"/>
70            <tokens xsi:type="xtext:Assignment" cardinality="?" feature="modification" operator="=">
71              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.25"/>
72            </tokens>
73            <tokens xsi:type="xtext:RuleCall" cardinality="?" rule="/0/@rules.86"/>
74          </groups>
75        </tokens>
76        <tokens xsi:type="xtext:Assignment" feature="elemList" operator="+=">
77          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.12"/>
78        </tokens>
79        <tokens xsi:type="xtext:Alternatives" cardinality="*">
80          <groups xsi:type="xtext:Assignment" feature="elemList" operator="+=">
81            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.13"/>
82          </groups>
83          <groups xsi:type="xtext:Assignment" feature="initialEquationClauses" operator="+=">
84            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.33"/>
85          </groups>
86          <groups xsi:type="xtext:Assignment" feature="initialAlgorithmClauses" operator="+=">
87            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.34"/>
88          </groups>
89          <groups xsi:type="xtext:Assignment" feature="equationClauses" operator="+=">
90            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.31"/>
91          </groups>
92          <groups xsi:type="xtext:Assignment" feature="algorithmClauses" operator="+=">
93            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.32"/>
94          </groups>
95        </tokens>
96        <tokens xsi:type="xtext:Assignment" cardinality="?" feature="extClause" operator="=">
97          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.10"/>
98        </tokens>
99        <tokens xsi:type="xtext:Keyword" value="end"/>
100        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.118"/>
101      </alternatives>
102    </rules>
103    <rules xsi:type="xtext:EnumRule" name="ClassType">
104      <type metamodel="/0/@metamodelDeclarations.0">
105        <classifier xsi:type="ecore:EEnum" href="http://www.modelica.org/xtext/ModelicaBase#//ClassType"/>
106      </type>
107      <alternatives xsi:type="xtext:Alternatives">
108        <groups xsi:type="xtext:EnumLiteralDeclaration">
109          <enumLiteral href="http://www.modelica.org/xtext/ModelicaBase#//ClassType/CLASS"/>
110          <literal value="class"/>
111        </groups>
112        <groups xsi:type="xtext:EnumLiteralDeclaration">
113          <enumLiteral href="http://www.modelica.org/xtext/ModelicaBase#//ClassType/MODEL"/>
114          <literal value="model"/>
115        </groups>
116        <groups xsi:type="xtext:EnumLiteralDeclaration">
117          <enumLiteral href="http://www.modelica.org/xtext/ModelicaBase#//ClassType/RECORD"/>
118          <literal value="record"/>
119        </groups>
120        <groups xsi:type="xtext:EnumLiteralDeclaration">
121          <enumLiteral href="http://www.modelica.org/xtext/ModelicaBase#//ClassType/BLOCK"/>
122          <literal value="block"/>
123        </groups>
124        <groups xsi:type="xtext:EnumLiteralDeclaration">
125          <enumLiteral href="http://www.modelica.org/xtext/ModelicaBase#//ClassType/CONNECTOR"/>
126          <literal value="connector"/>
127        </groups>
128        <groups xsi:type="xtext:EnumLiteralDeclaration">
129          <enumLiteral href="http://www.modelica.org/xtext/ModelicaBase#//ClassType/TYPE"/>
130          <literal value="type"/>
131        </groups>
132        <groups xsi:type="xtext:EnumLiteralDeclaration">
133          <enumLiteral href="http://www.modelica.org/xtext/ModelicaBase#//ClassType/PACKAGE"/>
134          <literal value="package"/>
135        </groups>
136        <groups xsi:type="xtext:EnumLiteralDeclaration">
137          <enumLiteral href="http://www.modelica.org/xtext/ModelicaBase#//ClassType/FUNCTION"/>
138          <literal value="function"/>
139        </groups>
140      </alternatives>
141    </rules>
142    <rules xsi:type="xtext:ParserRule" name="PartialDerivative">
143      <type metamodel="/0/@metamodelDeclarations.0">
144        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//PartialDerivative"/>
145      </type>
146      <alternatives xsi:type="xtext:Group">
147        <tokens xsi:type="xtext:Keyword" value="function"/>
148        <tokens xsi:type="xtext:Assignment" feature="name" operator="=">
149          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.118"/>
150        </tokens>
151        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.95"/>
152        <tokens xsi:type="xtext:Keyword" value="der"/>
153        <tokens xsi:type="xtext:Keyword" value="("/>
154        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.71"/>
155        <tokens xsi:type="xtext:Keyword" value=","/>
156        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.8"/>
157        <tokens xsi:type="xtext:Keyword" value=")"/>
158        <tokens xsi:type="xtext:Assignment" feature="comment" operator="=">
159          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.85"/>
160        </tokens>
161      </alternatives>
162    </rules>
163    <rules xsi:type="xtext:ParserRule" name="ClassModification">
164      <type metamodel="/0/@metamodelDeclarations.0">
165        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//ClassModification"/>
166      </type>
167      <alternatives xsi:type="xtext:Group">
168        <tokens xsi:type="xtext:Assignment" feature="classType" operator="=">
169          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/>
170        </tokens>
171        <tokens xsi:type="xtext:Assignment" feature="name" operator="=">
172          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.118"/>
173        </tokens>
174        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.95"/>
175        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.20"/>
176        <tokens xsi:type="xtext:Assignment" feature="typeSpecifier" operator="=">
177          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.21"/>
178        </tokens>
179        <tokens xsi:type="xtext:Assignment" cardinality="?" feature="modification" operator="=">
180          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.25"/>
181        </tokens>
182        <tokens xsi:type="xtext:Assignment" feature="comment" operator="=">
183          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.85"/>
184        </tokens>
185      </alternatives>
186    </rules>
187    <rules xsi:type="xtext:ParserRule" name="ClassOverloading">
188      <type metamodel="/0/@metamodelDeclarations.0">
189        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//ClassOverloading"/>
190      </type>
191      <alternatives xsi:type="xtext:Group">
192        <tokens xsi:type="xtext:Assignment" feature="classType" operator="=">
193          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/>
194        </tokens>
195        <tokens xsi:type="xtext:Assignment" feature="name" operator="=">
196          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.118"/>
197        </tokens>
198        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.95"/>
199        <tokens xsi:type="xtext:Keyword" value="overload"/>
200        <tokens xsi:type="xtext:Keyword" value="("/>
201        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.9"/>
202        <tokens xsi:type="xtext:Keyword" value=")"/>
203        <tokens xsi:type="xtext:Assignment" feature="comment" operator="=">
204          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.85"/>
205        </tokens>
206      </alternatives>
207    </rules>
208    <rules xsi:type="xtext:ParserRule" name="Enumeration">
209      <type metamodel="/0/@metamodelDeclarations.0">
210        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//Enumeration"/>
211      </type>
212      <alternatives xsi:type="xtext:Group">
213        <tokens xsi:type="xtext:Assignment" feature="classType" operator="=">
214          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/>
215        </tokens>
216        <tokens xsi:type="xtext:Assignment" feature="name" operator="=">
217          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.118"/>
218        </tokens>
219        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.95"/>
220        <tokens xsi:type="xtext:Keyword" value="enumeration"/>
221        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.89"/>
222        <tokens xsi:type="xtext:Alternatives">
223          <groups xsi:type="xtext:Group">
224            <tokens xsi:type="xtext:Assignment" feature="ident" operator="+=">
225              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.118"/>
226            </tokens>
227            <tokens xsi:type="xtext:Assignment" feature="enumComments" operator="+=">
228              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.85"/>
229            </tokens>
230            <tokens xsi:type="xtext:Group" cardinality="*">
231              <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.97"/>
232              <tokens xsi:type="xtext:Assignment" feature="ident" operator="+=">
233                <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.118"/>
234              </tokens>
235              <tokens xsi:type="xtext:Assignment" feature="enumComments" operator="+=">
236                <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.85"/>
237              </tokens>
238            </tokens>
239          </groups>
240          <groups xsi:type="xtext:RuleCall" rule="/0/@rules.98"/>
241        </tokens>
242        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.90"/>
243        <tokens xsi:type="xtext:Assignment" feature="comment" operator="=">
244          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.85"/>
245        </tokens>
246      </alternatives>
247    </rules>
248    <rules xsi:type="xtext:ParserRule" name="ident_list">
249      <type metamodel="/0/@metamodelDeclarations.1">
250        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
251      </type>
252      <alternatives xsi:type="xtext:Group">
253        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.118"/>
254        <tokens xsi:type="xtext:Group" cardinality="*">
255          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.97"/>
256          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.118"/>
257        </tokens>
258      </alternatives>
259    </rules>
260    <rules xsi:type="xtext:ParserRule" name="name_list">
261      <type metamodel="/0/@metamodelDeclarations.1">
262        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
263      </type>
264      <alternatives xsi:type="xtext:Group">
265        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.71"/>
266        <tokens xsi:type="xtext:Group" cardinality="*">
267          <tokens xsi:type="xtext:Keyword" value=","/>
268          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.71"/>
269        </tokens>
270      </alternatives>
271    </rules>
272    <rules xsi:type="xtext:ParserRule" name="external_clause">
273      <type metamodel="/0/@metamodelDeclarations.0">
274        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//ExternalClause"/>
275      </type>
276      <alternatives xsi:type="xtext:Group">
277        <tokens xsi:type="xtext:Keyword" value="external"/>
278        <tokens xsi:type="xtext:Assignment" cardinality="?" feature="languageSpecification" operator="=">
279          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
280        </tokens>
281        <tokens xsi:type="xtext:RuleCall" cardinality="?" rule="/0/@rules.11"/>
282        <tokens xsi:type="xtext:Assignment" cardinality="?" feature="annotation" operator="=">
283          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.87"/>
284        </tokens>
285        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.99"/>
286        <tokens xsi:type="xtext:Group" cardinality="?">
287          <tokens xsi:type="xtext:Assignment" feature="extAnnotation" operator="=">
288            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.87"/>
289          </tokens>
290          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.99"/>
291        </tokens>
292      </alternatives>
293    </rules>
294    <rules xsi:type="xtext:ParserRule" name="external_function_call">
295      <type metamodel="/0/@metamodelDeclarations.1">
296        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
297      </type>
298      <alternatives xsi:type="xtext:Group">
299        <tokens xsi:type="xtext:Group" cardinality="?">
300          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.73"/>
301          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.95"/>
302        </tokens>
303        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.118"/>
304        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.89"/>
305        <tokens xsi:type="xtext:RuleCall" cardinality="?" rule="/0/@rules.81"/>
306        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.90"/>
307      </alternatives>
308    </rules>
309    <rules xsi:type="xtext:ParserRule" name="ElementList">
310      <type metamodel="/0/@metamodelDeclarations.0">
311        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//ElementList"/>
312      </type>
313      <alternatives xsi:type="xtext:Group" cardinality="*">
314        <tokens xsi:type="xtext:Alternatives">
315          <groups xsi:type="xtext:Assignment" feature="elements" operator="+=">
316            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/>
317          </groups>
318          <groups xsi:type="xtext:Assignment" feature="annotations" operator="+=">
319            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.87"/>
320          </groups>
321        </tokens>
322        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.99"/>
323      </alternatives>
324    </rules>
325    <rules xsi:type="xtext:ParserRule" name="ElementList2">
326      <type metamodel="/0/@metamodelDeclarations.0">
327        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//ElementList"/>
328      </type>
329      <alternatives xsi:type="xtext:Alternatives">
330        <groups xsi:type="xtext:Group">
331          <tokens xsi:type="xtext:Keyword" value="public"/>
332          <tokens xsi:type="xtext:Action">
333            <type metamodel="/0/@metamodelDeclarations.0">
334              <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//PublicElementList"/>
335            </type>
336          </tokens>
337          <tokens xsi:type="xtext:Group" cardinality="*">
338            <tokens xsi:type="xtext:Alternatives">
339              <groups xsi:type="xtext:Assignment" feature="elements" operator="+=">
340                <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/>
341              </groups>
342              <groups xsi:type="xtext:Assignment" feature="annotations" operator="+=">
343                <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.87"/>
344              </groups>
345            </tokens>
346            <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.99"/>
347          </tokens>
348        </groups>
349        <groups xsi:type="xtext:Group">
350          <tokens xsi:type="xtext:Keyword" value="protected"/>
351          <tokens xsi:type="xtext:Action">
352            <type metamodel="/0/@metamodelDeclarations.0">
353              <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//ProtectesElementList"/>
354            </type>
355          </tokens>
356          <tokens xsi:type="xtext:Group" cardinality="*">
357            <tokens xsi:type="xtext:Alternatives">
358              <groups xsi:type="xtext:Assignment" feature="elements" operator="+=">
359                <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/>
360              </groups>
361              <groups xsi:type="xtext:Assignment" feature="annotations" operator="+=">
362                <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.87"/>
363              </groups>
364            </tokens>
365            <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.99"/>
366          </tokens>
367        </groups>
368      </alternatives>
369    </rules>
370    <rules xsi:type="xtext:ParserRule" name="ClassElement">
371      <type metamodel="/0/@metamodelDeclarations.0">
372        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//ClassElement"/>
373      </type>
374      <alternatives xsi:type="xtext:Alternatives">
375        <groups xsi:type="xtext:RuleCall" rule="/0/@rules.16"/>
376        <groups xsi:type="xtext:RuleCall" rule="/0/@rules.17"/>
377        <groups xsi:type="xtext:Group">
378          <tokens xsi:type="xtext:Keyword" cardinality="?" value="redeclare"/>
379          <tokens xsi:type="xtext:Keyword" cardinality="?" value="final"/>
380          <tokens xsi:type="xtext:Keyword" cardinality="?" value="inner"/>
381          <tokens xsi:type="xtext:Keyword" cardinality="?" value="outer"/>
382          <tokens xsi:type="xtext:Alternatives">
383            <groups xsi:type="xtext:Alternatives">
384              <groups xsi:type="xtext:RuleCall" rule="/0/@rules.2"/>
385              <groups xsi:type="xtext:RuleCall" rule="/0/@rules.19"/>
386            </groups>
387            <groups xsi:type="xtext:RuleCall" rule="/0/@rules.15"/>
388          </tokens>
389        </groups>
390      </alternatives>
391    </rules>
392    <rules xsi:type="xtext:ParserRule" name="ReplaceableElementClause">
393      <type metamodel="/0/@metamodelDeclarations.0">
394        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//ReplaceableElementClause"/>
395      </type>
396      <alternatives xsi:type="xtext:Group">
397        <tokens xsi:type="xtext:Keyword" value="replaceable"/>
398        <tokens xsi:type="xtext:Assignment" feature="entity" operator="=">
399          <terminal xsi:type="xtext:Alternatives">
400            <groups xsi:type="xtext:RuleCall" rule="/0/@rules.2"/>
401            <groups xsi:type="xtext:RuleCall" rule="/0/@rules.19"/>
402          </terminal>
403        </tokens>
404        <tokens xsi:type="xtext:Assignment" cardinality="?" feature="constrain" operator="=">
405          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.18"/>
406        </tokens>
407      </alternatives>
408    </rules>
409    <rules xsi:type="xtext:ParserRule" name="import_clause">
410      <type metamodel="/0/@metamodelDeclarations.0">
411        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//ImportClause"/>
412      </type>
413      <alternatives xsi:type="xtext:Group">
414        <tokens xsi:type="xtext:Keyword" value="import"/>
415        <tokens xsi:type="xtext:Alternatives">
416          <groups xsi:type="xtext:Group">
417            <tokens xsi:type="xtext:Assignment" feature="asName" operator="=">
418              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.118"/>
419            </tokens>
420            <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.95"/>
421            <tokens xsi:type="xtext:Assignment" feature="name" operator="=">
422              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.71"/>
423            </tokens>
424          </groups>
425          <groups xsi:type="xtext:Assignment" feature="name" operator="=">
426            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.72"/>
427          </groups>
428        </tokens>
429        <tokens xsi:type="xtext:Assignment" feature="comment" operator="=">
430          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.85"/>
431        </tokens>
432      </alternatives>
433    </rules>
434    <rules xsi:type="xtext:ParserRule" name="extends_clause">
435      <type metamodel="/0/@metamodelDeclarations.0">
436        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//ExtendsClause"/>
437      </type>
438      <alternatives xsi:type="xtext:Group">
439        <tokens xsi:type="xtext:Keyword" value="extends"/>
440        <tokens xsi:type="xtext:Assignment" feature="baseClass" operator="=">
441          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.71"/>
442        </tokens>
443        <tokens xsi:type="xtext:Assignment" cardinality="?" feature="modification" operator="=">
444          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.25"/>
445        </tokens>
446        <tokens xsi:type="xtext:Assignment" cardinality="?" feature="annotation" operator="=">
447          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.87"/>
448        </tokens>
449      </alternatives>
450    </rules>
451    <rules xsi:type="xtext:ParserRule" name="constraining_clause">
452      <type metamodel="/0/@metamodelDeclarations.0">
453        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//ConstrainingClause"/>
454      </type>
455      <alternatives xsi:type="xtext:Group">
456        <tokens xsi:type="xtext:Alternatives">
457          <groups xsi:type="xtext:Group">
458            <tokens xsi:type="xtext:Keyword" value="extends"/>
459            <tokens xsi:type="xtext:Assignment" feature="name" operator="=">
460              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.71"/>
461            </tokens>
462            <tokens xsi:type="xtext:Assignment" cardinality="?" feature="modification" operator="=">
463              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.25"/>
464            </tokens>
465          </groups>
466          <groups xsi:type="xtext:Group">
467            <tokens xsi:type="xtext:Keyword" value="constrainedby"/>
468            <tokens xsi:type="xtext:Assignment" feature="name" operator="=">
469              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.71"/>
470            </tokens>
471            <tokens xsi:type="xtext:Assignment" cardinality="?" feature="modification" operator="=">
472              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.25"/>
473            </tokens>
474          </groups>
475        </tokens>
476        <tokens xsi:type="xtext:Assignment" feature="comment" operator="=">
477          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.85"/>
478        </tokens>
479      </alternatives>
480    </rules>
481    <rules xsi:type="xtext:ParserRule" name="component_clause">
482      <type metamodel="/0/@metamodelDeclarations.0">
483        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//ComponentClause"/>
484      </type>
485      <alternatives xsi:type="xtext:Group">
486        <tokens xsi:type="xtext:Assignment" feature="typePrefix" operator="=">
487          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.20"/>
488        </tokens>
489        <tokens xsi:type="xtext:Assignment" feature="typeSpecifier" operator="=">
490          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.21"/>
491        </tokens>
492        <tokens xsi:type="xtext:Assignment" feature="declarations" operator="+=">
493          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.22"/>
494        </tokens>
495        <tokens xsi:type="xtext:Group" cardinality="*">
496          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.97"/>
497          <tokens xsi:type="xtext:Assignment" feature="declarations" operator="+=">
498            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.22"/>
499          </tokens>
500        </tokens>
501      </alternatives>
502    </rules>
503    <rules xsi:type="xtext:ParserRule" name="type_prefix">
504      <type metamodel="/0/@metamodelDeclarations.1">
505        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
506      </type>
507      <alternatives xsi:type="xtext:Group">
508        <tokens xsi:type="xtext:Alternatives" cardinality="?">
509          <groups xsi:type="xtext:Keyword" value="flow"/>
510          <groups xsi:type="xtext:Keyword" value="stream"/>
511        </tokens>
512        <tokens xsi:type="xtext:Alternatives" cardinality="?">
513          <groups xsi:type="xtext:Keyword" value="discrete"/>
514          <groups xsi:type="xtext:Keyword" value="parameter"/>
515          <groups xsi:type="xtext:Keyword" value="constant"/>
516        </tokens>
517        <tokens xsi:type="xtext:Alternatives" cardinality="?">
518          <groups xsi:type="xtext:Keyword" value="input"/>
519          <groups xsi:type="xtext:Keyword" value="output"/>
520        </tokens>
521      </alternatives>
522    </rules>
523    <rules xsi:type="xtext:ParserRule" name="type_specifier">
524      <type metamodel="/0/@metamodelDeclarations.0">
525        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//TypeSpecifier"/>
526      </type>
527      <alternatives xsi:type="xtext:Group">
528        <tokens xsi:type="xtext:Assignment" feature="name" operator="=">
529          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.71"/>
530        </tokens>
531        <tokens xsi:type="xtext:Assignment" cardinality="?" feature="subscripts" operator="=">
532          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.83"/>
533        </tokens>
534      </alternatives>
535    </rules>
536    <rules xsi:type="xtext:ParserRule" name="component_declaration">
537      <type metamodel="/0/@metamodelDeclarations.0">
538        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//ComponentDeclaration"/>
539      </type>
540      <alternatives xsi:type="xtext:Group">
541        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.118"/>
542        <tokens xsi:type="xtext:Assignment" cardinality="?" feature="subscripts" operator="=">
543          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.83"/>
544        </tokens>
545        <tokens xsi:type="xtext:Assignment" cardinality="?" feature="modification" operator="=">
546          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.23"/>
547        </tokens>
548        <tokens xsi:type="xtext:Group" cardinality="?">
549          <tokens xsi:type="xtext:Keyword" value="if"/>
550          <tokens xsi:type="xtext:Assignment" feature="condition" operator="=">
551            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.53"/>
552          </tokens>
553        </tokens>
554        <tokens xsi:type="xtext:Assignment" feature="comment" operator="=">
555          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.85"/>
556        </tokens>
557      </alternatives>
558    </rules>
559    <rules xsi:type="xtext:ParserRule" name="modification">
560      <type metamodel="/0/@metamodelDeclarations.0">
561        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//Modification"/>
562      </type>
563      <alternatives xsi:type="xtext:Alternatives">
564        <groups xsi:type="xtext:RuleCall" rule="/0/@rules.25"/>
565        <groups xsi:type="xtext:RuleCall" rule="/0/@rules.24"/>
566      </alternatives>
567    </rules>
568    <rules xsi:type="xtext:ParserRule" name="SimpleModification">
569      <type metamodel="/0/@metamodelDeclarations.0">
570        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//SimpleModification"/>
571      </type>
572      <alternatives xsi:type="xtext:Alternatives">
573        <groups xsi:type="xtext:Group">
574          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.95"/>
575          <tokens xsi:type="xtext:Assignment" feature="expression" operator="=">
576            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.53"/>
577          </tokens>
578        </groups>
579        <groups xsi:type="xtext:Group">
580          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.96"/>
581          <tokens xsi:type="xtext:Assignment" feature="expression" operator="=">
582            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.53"/>
583          </tokens>
584        </groups>
585      </alternatives>
586    </rules>
587    <rules xsi:type="xtext:ParserRule" name="class_modification">
588      <type metamodel="/0/@metamodelDeclarations.0">
589        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//ClassModification"/>
590      </type>
591      <alternatives xsi:type="xtext:Group">
592        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.89"/>
593        <tokens xsi:type="xtext:Group" cardinality="?">
594          <tokens xsi:type="xtext:Assignment" feature="arguments" operator="+=">
595            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.26"/>
596          </tokens>
597          <tokens xsi:type="xtext:Group" cardinality="*">
598            <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.97"/>
599            <tokens xsi:type="xtext:Assignment" feature="arguments" operator="+=">
600              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.26"/>
601            </tokens>
602          </tokens>
603        </tokens>
604        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.90"/>
605        <tokens xsi:type="xtext:Group" cardinality="?">
606          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.95"/>
607          <tokens xsi:type="xtext:Assignment" feature="expression" operator="=">
608            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.53"/>
609          </tokens>
610        </tokens>
611      </alternatives>
612    </rules>
613    <rules xsi:type="xtext:ParserRule" name="argument">
614      <type metamodel="/0/@metamodelDeclarations.0">
615        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//argument"/>
616      </type>
617      <alternatives xsi:type="xtext:Alternatives">
618        <groups xsi:type="xtext:Group">
619          <tokens xsi:type="xtext:Keyword" cardinality="?" value="each"/>
620          <tokens xsi:type="xtext:Keyword" cardinality="?" value="final"/>
621          <tokens xsi:type="xtext:Alternatives">
622            <groups xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>
623            <groups xsi:type="xtext:RuleCall" rule="/0/@rules.29"/>
624          </tokens>
625        </groups>
626        <groups xsi:type="xtext:RuleCall" rule="/0/@rules.28"/>
627      </alternatives>
628    </rules>
629    <rules xsi:type="xtext:ParserRule" name="ElementModification">
630      <type metamodel="/0/@metamodelDeclarations.0">
631        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//ElementModification"/>
632      </type>
633      <alternatives xsi:type="xtext:Group">
634        <tokens xsi:type="xtext:Assignment" feature="componetRef" operator="=">
635          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.73"/>
636        </tokens>
637        <tokens xsi:type="xtext:Assignment" cardinality="?" feature="modification" operator="=">
638          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.23"/>
639        </tokens>
640        <tokens xsi:type="xtext:Assignment" cardinality="?" feature="comment" operator="=">
641          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.86"/>
642        </tokens>
643      </alternatives>
644    </rules>
645    <rules xsi:type="xtext:ParserRule" name="ElementRedeclaration">
646      <type metamodel="/0/@metamodelDeclarations.0">
647        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//ElementRedeclaration"/>
648      </type>
649      <alternatives xsi:type="xtext:Group">
650        <tokens xsi:type="xtext:Keyword" value="redeclare"/>
651        <tokens xsi:type="xtext:Keyword" cardinality="?" value="each"/>
652        <tokens xsi:type="xtext:Keyword" cardinality="?" value="final"/>
653        <tokens xsi:type="xtext:Alternatives">
654          <groups xsi:type="xtext:Alternatives">
655            <groups xsi:type="xtext:RuleCall" rule="/0/@rules.2"/>
656            <groups xsi:type="xtext:RuleCall" rule="/0/@rules.30"/>
657          </groups>
658          <groups xsi:type="xtext:RuleCall" rule="/0/@rules.29"/>
659        </tokens>
660      </alternatives>
661    </rules>
662    <rules xsi:type="xtext:ParserRule" name="ElementReplaceableClause">
663      <type metamodel="/0/@metamodelDeclarations.0">
664        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//ElementReplaceableClause"/>
665      </type>
666      <alternatives xsi:type="xtext:Group">
667        <tokens xsi:type="xtext:Keyword" value="replaceable"/>
668        <tokens xsi:type="xtext:Assignment" feature="element" operator="=">
669          <terminal xsi:type="xtext:Alternatives">
670            <groups xsi:type="xtext:RuleCall" rule="/0/@rules.2"/>
671            <groups xsi:type="xtext:RuleCall" rule="/0/@rules.30"/>
672          </terminal>
673        </tokens>
674        <tokens xsi:type="xtext:Assignment" cardinality="?" feature="constraint" operator="=">
675          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.18"/>
676        </tokens>
677      </alternatives>
678    </rules>
679    <rules xsi:type="xtext:ParserRule" name="ElementComponentClause">
680      <type metamodel="/0/@metamodelDeclarations.0">
681        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//ElementComponentClause"/>
682      </type>
683      <alternatives xsi:type="xtext:Group">
684        <tokens xsi:type="xtext:Assignment" feature="typePrefix" operator="=">
685          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.20"/>
686        </tokens>
687        <tokens xsi:type="xtext:Assignment" feature="typeSpecifier" operator="=">
688          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.21"/>
689        </tokens>
690        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.118"/>
691        <tokens xsi:type="xtext:Assignment" cardinality="?" feature="subscripts" operator="=">
692          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.83"/>
693        </tokens>
694        <tokens xsi:type="xtext:Assignment" cardinality="?" feature="modification" operator="=">
695          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.23"/>
696        </tokens>
697        <tokens xsi:type="xtext:Assignment" feature="comment" operator="=">
698          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.85"/>
699        </tokens>
700      </alternatives>
701    </rules>
702    <rules xsi:type="xtext:ParserRule" name="equation_rule_clause">
703      <type metamodel="/0/@metamodelDeclarations.0">
704        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//EquationClause"/>
705      </type>
706      <alternatives xsi:type="xtext:Group">
707        <tokens xsi:type="xtext:Keyword" value="equation"/>
708        <tokens xsi:type="xtext:Alternatives" cardinality="+">
709          <groups xsi:type="xtext:Group">
710            <tokens xsi:type="xtext:Assignment" feature="equationRules" operator="+=">
711              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.35"/>
712            </tokens>
713            <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.99"/>
714          </groups>
715          <groups xsi:type="xtext:Group">
716            <tokens xsi:type="xtext:Assignment" feature="annotations" operator="+=">
717              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.87"/>
718            </tokens>
719            <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.99"/>
720          </groups>
721        </tokens>
722      </alternatives>
723    </rules>
724    <rules xsi:type="xtext:ParserRule" name="algorithm_clause">
725      <type metamodel="/0/@metamodelDeclarations.0">
726        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//algorithm_clause"/>
727      </type>
728      <alternatives xsi:type="xtext:Group">
729        <tokens xsi:type="xtext:Keyword" value="algorithm"/>
730        <tokens xsi:type="xtext:Alternatives" cardinality="+">
731          <groups xsi:type="xtext:Group">
732            <tokens xsi:type="xtext:Assignment" feature="algorithmRules" operator="+=">
733              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.36"/>
734            </tokens>
735            <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.99"/>
736          </groups>
737          <groups xsi:type="xtext:Group">
738            <tokens xsi:type="xtext:Assignment" feature="annotations" operator="+=">
739              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.87"/>
740            </tokens>
741            <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.99"/>
742          </groups>
743        </tokens>
744      </alternatives>
745    </rules>
746    <rules xsi:type="xtext:ParserRule" name="initial_equation_rule_clause">
747      <type metamodel="/0/@metamodelDeclarations.0">
748        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//initial_equation_rule_clause"/>
749      </type>
750      <alternatives xsi:type="xtext:Group">
751        <tokens xsi:type="xtext:Keyword" value="initial"/>
752        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.31"/>
753      </alternatives>
754    </rules>
755    <rules xsi:type="xtext:ParserRule" name="initial_algorithm_clause">
756      <type metamodel="/0/@metamodelDeclarations.0">
757        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//initial_algorithm_clause"/>
758      </type>
759      <alternatives xsi:type="xtext:Group">
760        <tokens xsi:type="xtext:Keyword" value="initial"/>
761        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.32"/>
762      </alternatives>
763    </rules>
764    <rules xsi:type="xtext:ParserRule" name="equation_rule">
765      <type metamodel="/0/@metamodelDeclarations.0">
766        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//equation_rule"/>
767      </type>
768      <alternatives xsi:type="xtext:Group">
769        <tokens xsi:type="xtext:Alternatives">
770          <groups xsi:type="xtext:RuleCall" rule="/0/@rules.38"/>
771          <groups xsi:type="xtext:RuleCall" rule="/0/@rules.39"/>
772          <groups xsi:type="xtext:RuleCall" rule="/0/@rules.41"/>
773          <groups xsi:type="xtext:RuleCall" rule="/0/@rules.50"/>
774          <groups xsi:type="xtext:RuleCall" rule="/0/@rules.44"/>
775        </tokens>
776        <tokens xsi:type="xtext:Assignment" feature="comment" operator="=">
777          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.85"/>
778        </tokens>
779      </alternatives>
780    </rules>
781    <rules xsi:type="xtext:ParserRule" name="algorithm">
782      <type metamodel="/0/@metamodelDeclarations.0">
783        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//algorithm"/>
784      </type>
785      <alternatives xsi:type="xtext:Group">
786        <tokens xsi:type="xtext:Alternatives">
787          <groups xsi:type="xtext:RuleCall" rule="/0/@rules.37"/>
788          <groups xsi:type="xtext:RuleCall" rule="/0/@rules.40"/>
789          <groups xsi:type="xtext:RuleCall" rule="/0/@rules.42"/>
790          <groups xsi:type="xtext:RuleCall" rule="/0/@rules.43"/>
791          <groups xsi:type="xtext:RuleCall" rule="/0/@rules.46"/>
792          <groups xsi:type="xtext:Keyword" value="break"/>
793          <groups xsi:type="xtext:Keyword" value="return"/>
794        </tokens>
795        <tokens xsi:type="xtext:Assignment" feature="comment" operator="=">
796          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.85"/>
797        </tokens>
798      </alternatives>
799    </rules>
800    <rules xsi:type="xtext:ParserRule" name="assign_clause_a">
801      <type metamodel="/0/@metamodelDeclarations.1">
802        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
803      </type>
804      <alternatives xsi:type="xtext:Group">
805        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.59"/>
806        <tokens xsi:type="xtext:Alternatives" cardinality="?">
807          <groups xsi:type="xtext:Group">
808            <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.96"/>
809            <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.53"/>
810          </groups>
811          <groups xsi:type="xtext:Group">
812            <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.95"/>
813            <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.53"/>
814          </groups>
815        </tokens>
816      </alternatives>
817    </rules>
818    <rules xsi:type="xtext:ParserRule" name="equality_equation_rule">
819      <type metamodel="/0/@metamodelDeclarations.1">
820        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
821      </type>
822      <alternatives xsi:type="xtext:Group">
823        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.59"/>
824        <tokens xsi:type="xtext:Group" cardinality="?">
825          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.95"/>
826          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.53"/>
827        </tokens>
828      </alternatives>
829    </rules>
830    <rules xsi:type="xtext:ParserRule" name="conditional_equation_rule_e">
831      <type metamodel="/0/@metamodelDeclarations.0">
832        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//ConditionalEquationRule"/>
833      </type>
834      <alternatives xsi:type="xtext:Group">
835        <tokens xsi:type="xtext:Keyword" value="if"/>
836        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.53"/>
837        <tokens xsi:type="xtext:Keyword" value="then"/>
838        <tokens xsi:type="xtext:Group" cardinality="*">
839          <tokens xsi:type="xtext:Assignment" feature="thenEquationClauses" operator="+=">
840            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.35"/>
841          </tokens>
842          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.99"/>
843        </tokens>
844        <tokens xsi:type="xtext:Assignment" cardinality="*" feature="elseifClauses" operator="+=">
845          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.48"/>
846        </tokens>
847        <tokens xsi:type="xtext:Group" cardinality="?">
848          <tokens xsi:type="xtext:Keyword" value="else"/>
849          <tokens xsi:type="xtext:Group" cardinality="*">
850            <tokens xsi:type="xtext:Assignment" feature="elseEquationClauses" operator="+=">
851              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.35"/>
852            </tokens>
853            <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.99"/>
854          </tokens>
855        </tokens>
856        <tokens xsi:type="xtext:Keyword" value="end"/>
857        <tokens xsi:type="xtext:Keyword" value="if"/>
858      </alternatives>
859    </rules>
860    <rules xsi:type="xtext:ParserRule" name="conditional_equation_rule_a">
861      <type metamodel="/0/@metamodelDeclarations.0">
862        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//ConditionAlgorithmRule"/>
863      </type>
864      <alternatives xsi:type="xtext:Group">
865        <tokens xsi:type="xtext:Keyword" value="if"/>
866        <tokens xsi:type="xtext:Assignment" feature="condition" operator="=">
867          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.53"/>
868        </tokens>
869        <tokens xsi:type="xtext:Keyword" value="then"/>
870        <tokens xsi:type="xtext:Group" cardinality="*">
871          <tokens xsi:type="xtext:Assignment" feature="thenAlgorithmClauses" operator="+=">
872            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.36"/>
873          </tokens>
874          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.99"/>
875        </tokens>
876        <tokens xsi:type="xtext:Assignment" cardinality="*" feature="elseifClauses" operator="+=">
877          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.49"/>
878        </tokens>
879        <tokens xsi:type="xtext:Group" cardinality="?">
880          <tokens xsi:type="xtext:Keyword" value="else"/>
881          <tokens xsi:type="xtext:Group" cardinality="*">
882            <tokens xsi:type="xtext:Assignment" feature="elseAlgotithmClauses" operator="+=">
883              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.36"/>
884            </tokens>
885            <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.99"/>
886          </tokens>
887        </tokens>
888        <tokens xsi:type="xtext:Keyword" value="end"/>
889        <tokens xsi:type="xtext:Keyword" value="if"/>
890      </alternatives>
891    </rules>
892    <rules xsi:type="xtext:ParserRule" name="for_clause_e">
893      <type metamodel="/0/@metamodelDeclarations.0">
894        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//ForEquationClause"/>
895      </type>
896      <alternatives xsi:type="xtext:Group">
897        <tokens xsi:type="xtext:Keyword" value="for"/>
898        <tokens xsi:type="xtext:Assignment" feature="forIndices" operator="=">
899          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.57"/>
900        </tokens>
901        <tokens xsi:type="xtext:Keyword" value="loop"/>
902        <tokens xsi:type="xtext:Group" cardinality="*">
903          <tokens xsi:type="xtext:Assignment" feature="equationClauses" operator="+=">
904            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.35"/>
905          </tokens>
906          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.99"/>
907        </tokens>
908        <tokens xsi:type="xtext:Keyword" value="end"/>
909        <tokens xsi:type="xtext:Keyword" value="for"/>
910      </alternatives>
911    </rules>
912    <rules xsi:type="xtext:ParserRule" name="for_clause_a">
913      <type metamodel="/0/@metamodelDeclarations.0">
914        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//ForAlgorithmClause"/>
915      </type>
916      <alternatives xsi:type="xtext:Group">
917        <tokens xsi:type="xtext:Keyword" value="for"/>
918        <tokens xsi:type="xtext:Assignment" feature="forIndices" operator="=">
919          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.57"/>
920        </tokens>
921        <tokens xsi:type="xtext:Keyword" value="loop"/>
922        <tokens xsi:type="xtext:Group" cardinality="*">
923          <tokens xsi:type="xtext:Assignment" feature="algorithmClauses" operator="+=">
924            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.36"/>
925          </tokens>
926          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.99"/>
927        </tokens>
928        <tokens xsi:type="xtext:Keyword" value="end"/>
929        <tokens xsi:type="xtext:Keyword" value="for"/>
930      </alternatives>
931    </rules>
932    <rules xsi:type="xtext:ParserRule" name="while_clause">
933      <type metamodel="/0/@metamodelDeclarations.0">
934        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//WhileClause"/>
935      </type>
936      <alternatives xsi:type="xtext:Group">
937        <tokens xsi:type="xtext:Keyword" value="while"/>
938        <tokens xsi:type="xtext:Assignment" feature="condition" operator="=">
939          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.53"/>
940        </tokens>
941        <tokens xsi:type="xtext:Keyword" value="loop"/>
942        <tokens xsi:type="xtext:Group" cardinality="*">
943          <tokens xsi:type="xtext:Assignment" feature="algorithmClauses" operator="+=">
944            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.36"/>
945          </tokens>
946          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.99"/>
947        </tokens>
948        <tokens xsi:type="xtext:Keyword" value="end"/>
949        <tokens xsi:type="xtext:Keyword" value="while"/>
950      </alternatives>
951    </rules>
952    <rules xsi:type="xtext:ParserRule" name="when_clause_e">
953      <type metamodel="/0/@metamodelDeclarations.0">
954        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//when_clause_e"/>
955      </type>
956      <alternatives xsi:type="xtext:Group">
957        <tokens xsi:type="xtext:Keyword" value="when"/>
958        <tokens xsi:type="xtext:Assignment" feature="condition" operator="=">
959          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.53"/>
960        </tokens>
961        <tokens xsi:type="xtext:Keyword" value="then"/>
962        <tokens xsi:type="xtext:Group" cardinality="*">
963          <tokens xsi:type="xtext:Assignment" feature="thenEquationClauses" operator="+=">
964            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.35"/>
965          </tokens>
966          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.99"/>
967        </tokens>
968        <tokens xsi:type="xtext:Assignment" cardinality="*" feature="elseWhenClauses" operator="+=">
969          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.45"/>
970        </tokens>
971        <tokens xsi:type="xtext:Keyword" value="end"/>
972        <tokens xsi:type="xtext:Keyword" value="when"/>
973      </alternatives>
974    </rules>
975    <rules xsi:type="xtext:ParserRule" name="else_when_e">
976      <type metamodel="/0/@metamodelDeclarations.0">
977        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//else_when_e"/>
978      </type>
979      <alternatives xsi:type="xtext:Group">
980        <tokens xsi:type="xtext:Keyword" value="elsewhen"/>
981        <tokens xsi:type="xtext:Assignment" feature="condition" operator="=">
982          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.53"/>
983        </tokens>
984        <tokens xsi:type="xtext:Keyword" value="then"/>
985        <tokens xsi:type="xtext:Group" cardinality="*">
986          <tokens xsi:type="xtext:Assignment" feature="thenEquationClauses" operator="+=">
987            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.35"/>
988          </tokens>
989          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.99"/>
990        </tokens>
991      </alternatives>
992    </rules>
993    <rules xsi:type="xtext:ParserRule" name="when_clause_a">
994      <type metamodel="/0/@metamodelDeclarations.0">
995        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//when_clause_a"/>
996      </type>
997      <alternatives xsi:type="xtext:Group">
998        <tokens xsi:type="xtext:Keyword" value="when"/>
999        <tokens xsi:type="xtext:Assignment" feature="condition" operator="=">
1000          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.53"/>
1001        </tokens>
1002        <tokens xsi:type="xtext:Keyword" value="then"/>
1003        <tokens xsi:type="xtext:Group" cardinality="*">
1004          <tokens xsi:type="xtext:Assignment" feature="thenAlgorithmClauses" operator="+=">
1005            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.35"/>
1006          </tokens>
1007          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.99"/>
1008        </tokens>
1009        <tokens xsi:type="xtext:Assignment" cardinality="*" feature="elseWhenClauses" operator="+=">
1010          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.47"/>
1011        </tokens>
1012        <tokens xsi:type="xtext:Keyword" value="end"/>
1013        <tokens xsi:type="xtext:Keyword" value="when"/>
1014      </alternatives>
1015    </rules>
1016    <rules xsi:type="xtext:ParserRule" name="else_when_a">
1017      <type metamodel="/0/@metamodelDeclarations.0">
1018        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//else_when_a"/>
1019      </type>
1020      <alternatives xsi:type="xtext:Group">
1021        <tokens xsi:type="xtext:Keyword" value="elsewhen"/>
1022        <tokens xsi:type="xtext:Assignment" feature="condition" operator="=">
1023          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.53"/>
1024        </tokens>
1025        <tokens xsi:type="xtext:Keyword" value="then"/>
1026        <tokens xsi:type="xtext:Group" cardinality="*">
1027          <tokens xsi:type="xtext:Assignment" feature="thenAlgorithmClauses" operator="+=">
1028            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.35"/>
1029          </tokens>
1030          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.99"/>
1031        </tokens>
1032      </alternatives>
1033    </rules>
1034    <rules xsi:type="xtext:ParserRule" name="equation_rule_elseif">
1035      <type metamodel="/0/@metamodelDeclarations.0">
1036        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//equation_rule_elseif"/>
1037      </type>
1038      <alternatives xsi:type="xtext:Group">
1039        <tokens xsi:type="xtext:Keyword" value="elseif"/>
1040        <tokens xsi:type="xtext:Assignment" feature="condition" operator="=">
1041          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.53"/>
1042        </tokens>
1043        <tokens xsi:type="xtext:Keyword" value="then"/>
1044        <tokens xsi:type="xtext:Group" cardinality="*">
1045          <tokens xsi:type="xtext:Assignment" feature="thenEquationClauses" operator="+=">
1046            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.35"/>
1047          </tokens>
1048          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.99"/>
1049        </tokens>
1050      </alternatives>
1051    </rules>
1052    <rules xsi:type="xtext:ParserRule" name="algorithm_elseif">
1053      <type metamodel="/0/@metamodelDeclarations.0">
1054        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//algorithm_elseif"/>
1055      </type>
1056      <alternatives xsi:type="xtext:Group">
1057        <tokens xsi:type="xtext:Keyword" value="elseif"/>
1058        <tokens xsi:type="xtext:Assignment" feature="condition" operator="=">
1059          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.53"/>
1060        </tokens>
1061        <tokens xsi:type="xtext:Keyword" value="then"/>
1062        <tokens xsi:type="xtext:Group" cardinality="*">
1063          <tokens xsi:type="xtext:Assignment" feature="thenAlgorithmClauses" operator="+=">
1064            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.35"/>
1065          </tokens>
1066          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.99"/>
1067        </tokens>
1068      </alternatives>
1069    </rules>
1070    <rules xsi:type="xtext:ParserRule" name="connect_clause">
1071      <type metamodel="/0/@metamodelDeclarations.1">
1072        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1073      </type>
1074      <alternatives xsi:type="xtext:Group">
1075        <tokens xsi:type="xtext:Keyword" value="connect"/>
1076        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.89"/>
1077        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.51"/>
1078        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.97"/>
1079        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.51"/>
1080        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.90"/>
1081      </alternatives>
1082    </rules>
1083    <rules xsi:type="xtext:ParserRule" name="connector_ref">
1084      <type metamodel="/0/@metamodelDeclarations.1">
1085        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1086      </type>
1087      <alternatives xsi:type="xtext:Group">
1088        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.118"/>
1089        <tokens xsi:type="xtext:RuleCall" cardinality="?" rule="/0/@rules.83"/>
1090        <tokens xsi:type="xtext:Group" cardinality="?">
1091          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.88"/>
1092          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.52"/>
1093        </tokens>
1094      </alternatives>
1095    </rules>
1096    <rules xsi:type="xtext:ParserRule" name="connector_ref_2">
1097      <type metamodel="/0/@metamodelDeclarations.1">
1098        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1099      </type>
1100      <alternatives xsi:type="xtext:Group">
1101        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.118"/>
1102        <tokens xsi:type="xtext:RuleCall" cardinality="?" rule="/0/@rules.83"/>
1103      </alternatives>
1104    </rules>
1105    <rules xsi:type="xtext:ParserRule" name="expression">
1106      <type metamodel="/0/@metamodelDeclarations.1">
1107        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1108      </type>
1109      <alternatives xsi:type="xtext:Alternatives">
1110        <groups xsi:type="xtext:RuleCall" rule="/0/@rules.55"/>
1111        <groups xsi:type="xtext:RuleCall" rule="/0/@rules.59"/>
1112      </alternatives>
1113    </rules>
1114    <rules xsi:type="xtext:ParserRule" name="expression_or_empty">
1115      <type metamodel="/0/@metamodelDeclarations.1">
1116        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1117      </type>
1118      <alternatives xsi:type="xtext:Alternatives">
1119        <groups xsi:type="xtext:RuleCall" rule="/0/@rules.53"/>
1120        <groups xsi:type="xtext:Group">
1121          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.89"/>
1122          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.90"/>
1123        </groups>
1124      </alternatives>
1125    </rules>
1126    <rules xsi:type="xtext:ParserRule" name="if_expression">
1127      <type metamodel="/0/@metamodelDeclarations.1">
1128        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1129      </type>
1130      <alternatives xsi:type="xtext:Group">
1131        <tokens xsi:type="xtext:Keyword" value="if"/>
1132        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.53"/>
1133        <tokens xsi:type="xtext:Keyword" value="then"/>
1134        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.53"/>
1135        <tokens xsi:type="xtext:RuleCall" cardinality="*" rule="/0/@rules.56"/>
1136        <tokens xsi:type="xtext:Keyword" value="else"/>
1137        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.53"/>
1138      </alternatives>
1139    </rules>
1140    <rules xsi:type="xtext:ParserRule" name="elseif_expression">
1141      <type metamodel="/0/@metamodelDeclarations.1">
1142        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1143      </type>
1144      <alternatives xsi:type="xtext:Group">
1145        <tokens xsi:type="xtext:Keyword" value="elseif"/>
1146        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.53"/>
1147        <tokens xsi:type="xtext:Keyword" value="then"/>
1148        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.53"/>
1149      </alternatives>
1150    </rules>
1151    <rules xsi:type="xtext:ParserRule" name="for_indices">
1152      <type metamodel="/0/@metamodelDeclarations.1">
1153        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1154      </type>
1155      <alternatives xsi:type="xtext:Group">
1156        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.58"/>
1157        <tokens xsi:type="xtext:Group" cardinality="*">
1158          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.97"/>
1159          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.58"/>
1160        </tokens>
1161      </alternatives>
1162    </rules>
1163    <rules xsi:type="xtext:ParserRule" name="for_index">
1164      <type metamodel="/0/@metamodelDeclarations.1">
1165        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1166      </type>
1167      <alternatives xsi:type="xtext:Group">
1168        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.118"/>
1169        <tokens xsi:type="xtext:Group" cardinality="?">
1170          <tokens xsi:type="xtext:Keyword" value="in"/>
1171          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.53"/>
1172        </tokens>
1173      </alternatives>
1174    </rules>
1175    <rules xsi:type="xtext:ParserRule" name="simple_expression">
1176      <type metamodel="/0/@metamodelDeclarations.1">
1177        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1178      </type>
1179      <alternatives xsi:type="xtext:RuleCall" rule="/0/@rules.60"/>
1180    </rules>
1181    <rules xsi:type="xtext:ParserRule" name="simple_expr">
1182      <type metamodel="/0/@metamodelDeclarations.1">
1183        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1184      </type>
1185      <alternatives xsi:type="xtext:Group">
1186        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.61"/>
1187        <tokens xsi:type="xtext:Group" cardinality="?">
1188          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.98"/>
1189          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.61"/>
1190          <tokens xsi:type="xtext:Group" cardinality="?">
1191            <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.98"/>
1192            <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.61"/>
1193          </tokens>
1194        </tokens>
1195      </alternatives>
1196    </rules>
1197    <rules xsi:type="xtext:ParserRule" name="logical_expression">
1198      <type metamodel="/0/@metamodelDeclarations.1">
1199        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1200      </type>
1201      <alternatives xsi:type="xtext:Group">
1202        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.62"/>
1203        <tokens xsi:type="xtext:Group" cardinality="*">
1204          <tokens xsi:type="xtext:Keyword" value="or"/>
1205          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.62"/>
1206        </tokens>
1207      </alternatives>
1208    </rules>
1209    <rules xsi:type="xtext:ParserRule" name="logical_term">
1210      <type metamodel="/0/@metamodelDeclarations.1">
1211        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1212      </type>
1213      <alternatives xsi:type="xtext:Group">
1214        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.63"/>
1215        <tokens xsi:type="xtext:Group" cardinality="*">
1216          <tokens xsi:type="xtext:Keyword" value="and"/>
1217          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.63"/>
1218        </tokens>
1219      </alternatives>
1220    </rules>
1221    <rules xsi:type="xtext:ParserRule" name="logical_factor">
1222      <type metamodel="/0/@metamodelDeclarations.1">
1223        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1224      </type>
1225      <alternatives xsi:type="xtext:Group">
1226        <tokens xsi:type="xtext:Keyword" cardinality="?" value="not"/>
1227        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.64"/>
1228      </alternatives>
1229    </rules>
1230    <rules xsi:type="xtext:ParserRule" name="relation">
1231      <type metamodel="/0/@metamodelDeclarations.1">
1232        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1233      </type>
1234      <alternatives xsi:type="xtext:Group">
1235        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.65"/>
1236        <tokens xsi:type="xtext:Group" cardinality="?">
1237          <tokens xsi:type="xtext:Alternatives">
1238            <groups xsi:type="xtext:RuleCall" rule="/0/@rules.108"/>
1239            <groups xsi:type="xtext:RuleCall" rule="/0/@rules.109"/>
1240            <groups xsi:type="xtext:RuleCall" rule="/0/@rules.111"/>
1241            <groups xsi:type="xtext:RuleCall" rule="/0/@rules.112"/>
1242            <groups xsi:type="xtext:RuleCall" rule="/0/@rules.113"/>
1243            <groups xsi:type="xtext:RuleCall" rule="/0/@rules.110"/>
1244          </tokens>
1245          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.65"/>
1246        </tokens>
1247      </alternatives>
1248    </rules>
1249    <rules xsi:type="xtext:ParserRule" name="arithmetic_expression">
1250      <type metamodel="/0/@metamodelDeclarations.1">
1251        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1252      </type>
1253      <alternatives xsi:type="xtext:Group">
1254        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.66"/>
1255        <tokens xsi:type="xtext:Group" cardinality="*">
1256          <tokens xsi:type="xtext:Alternatives">
1257            <groups xsi:type="xtext:RuleCall" rule="/0/@rules.107"/>
1258            <groups xsi:type="xtext:RuleCall" rule="/0/@rules.106"/>
1259            <groups xsi:type="xtext:RuleCall" rule="/0/@rules.100"/>
1260            <groups xsi:type="xtext:RuleCall" rule="/0/@rules.101"/>
1261          </tokens>
1262          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.67"/>
1263        </tokens>
1264      </alternatives>
1265    </rules>
1266    <rules xsi:type="xtext:ParserRule" name="unary_arithmetic_expression">
1267      <type metamodel="/0/@metamodelDeclarations.1">
1268        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1269      </type>
1270      <alternatives xsi:type="xtext:Alternatives">
1271        <groups xsi:type="xtext:Group">
1272          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.107"/>
1273          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.67"/>
1274        </groups>
1275        <groups xsi:type="xtext:Group">
1276          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.106"/>
1277          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.67"/>
1278        </groups>
1279        <groups xsi:type="xtext:Group">
1280          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.100"/>
1281          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.67"/>
1282        </groups>
1283        <groups xsi:type="xtext:Group">
1284          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.101"/>
1285          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.67"/>
1286        </groups>
1287        <groups xsi:type="xtext:RuleCall" rule="/0/@rules.67"/>
1288      </alternatives>
1289    </rules>
1290    <rules xsi:type="xtext:ParserRule" name="term">
1291      <type metamodel="/0/@metamodelDeclarations.1">
1292        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1293      </type>
1294      <alternatives xsi:type="xtext:Group">
1295        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.68"/>
1296        <tokens xsi:type="xtext:Group" cardinality="*">
1297          <tokens xsi:type="xtext:Alternatives">
1298            <groups xsi:type="xtext:RuleCall" rule="/0/@rules.105"/>
1299            <groups xsi:type="xtext:RuleCall" rule="/0/@rules.115"/>
1300            <groups xsi:type="xtext:RuleCall" rule="/0/@rules.102"/>
1301            <groups xsi:type="xtext:RuleCall" rule="/0/@rules.103"/>
1302          </tokens>
1303          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.68"/>
1304        </tokens>
1305      </alternatives>
1306    </rules>
1307    <rules xsi:type="xtext:ParserRule" name="factor">
1308      <type metamodel="/0/@metamodelDeclarations.1">
1309        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1310      </type>
1311      <alternatives xsi:type="xtext:Group">
1312        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.69"/>
1313        <tokens xsi:type="xtext:Group" cardinality="?">
1314          <tokens xsi:type="xtext:Alternatives">
1315            <groups xsi:type="xtext:RuleCall" rule="/0/@rules.114"/>
1316            <groups xsi:type="xtext:RuleCall" rule="/0/@rules.104"/>
1317          </tokens>
1318          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.69"/>
1319        </tokens>
1320      </alternatives>
1321    </rules>
1322    <rules xsi:type="xtext:ParserRule" name="primary">
1323      <type metamodel="/0/@metamodelDeclarations.1">
1324        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1325      </type>
1326      <alternatives xsi:type="xtext:Alternatives">
1327        <groups xsi:type="xtext:RuleCall" rule="/0/@rules.117"/>
1328        <groups xsi:type="xtext:RuleCall" rule="/0/@rules.116"/>
1329        <groups xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
1330        <groups xsi:type="xtext:Keyword" value="false"/>
1331        <groups xsi:type="xtext:Keyword" value="true"/>
1332        <groups xsi:type="xtext:RuleCall" rule="/0/@rules.70"/>
1333        <groups xsi:type="xtext:Group">
1334          <tokens xsi:type="xtext:Keyword" value="der"/>
1335          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.74"/>
1336        </groups>
1337        <groups xsi:type="xtext:Group">
1338          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.89"/>
1339          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.81"/>
1340          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.90"/>
1341        </groups>
1342        <groups xsi:type="xtext:Group">
1343          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.91"/>
1344          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.81"/>
1345          <tokens xsi:type="xtext:Group" cardinality="*">
1346            <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.99"/>
1347            <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.81"/>
1348          </tokens>
1349          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.92"/>
1350        </groups>
1351        <groups xsi:type="xtext:Group">
1352          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.93"/>
1353          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.76"/>
1354          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.94"/>
1355        </groups>
1356        <groups xsi:type="xtext:Keyword" value="end"/>
1357      </alternatives>
1358    </rules>
1359    <rules xsi:type="xtext:ParserRule" name="component_reference__function_call">
1360      <type metamodel="/0/@metamodelDeclarations.1">
1361        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1362      </type>
1363      <alternatives xsi:type="xtext:Alternatives">
1364        <groups xsi:type="xtext:Group">
1365          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.73"/>
1366          <tokens xsi:type="xtext:RuleCall" cardinality="?" rule="/0/@rules.74"/>
1367        </groups>
1368        <groups xsi:type="xtext:Group">
1369          <tokens xsi:type="xtext:Keyword" value="initial"/>
1370          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.89"/>
1371          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.90"/>
1372        </groups>
1373      </alternatives>
1374    </rules>
1375    <rules xsi:type="xtext:ParserRule" name="name_path">
1376      <type metamodel="/0/@metamodelDeclarations.1">
1377        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1378      </type>
1379      <alternatives xsi:type="xtext:Alternatives">
1380        <groups xsi:type="xtext:RuleCall" rule="/0/@rules.118"/>
1381        <groups xsi:type="xtext:Group">
1382          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.118"/>
1383          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.88"/>
1384          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.71"/>
1385        </groups>
1386      </alternatives>
1387    </rules>
1388    <rules xsi:type="xtext:ParserRule" name="name_path_star">
1389      <type metamodel="/0/@metamodelDeclarations.1">
1390        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1391      </type>
1392      <alternatives xsi:type="xtext:Alternatives">
1393        <groups xsi:type="xtext:Group">
1394          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.118"/>
1395          <tokens xsi:type="xtext:RuleCall" cardinality="?" rule="/0/@rules.102"/>
1396        </groups>
1397        <groups xsi:type="xtext:Group">
1398          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.118"/>
1399          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.88"/>
1400          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.72"/>
1401        </groups>
1402      </alternatives>
1403    </rules>
1404    <rules xsi:type="xtext:ParserRule" name="component_reference">
1405      <type metamodel="/0/@metamodelDeclarations.1">
1406        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1407      </type>
1408      <alternatives xsi:type="xtext:Group">
1409        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.118"/>
1410        <tokens xsi:type="xtext:RuleCall" cardinality="?" rule="/0/@rules.83"/>
1411        <tokens xsi:type="xtext:Group" cardinality="?">
1412          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.88"/>
1413          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.73"/>
1414        </tokens>
1415      </alternatives>
1416    </rules>
1417    <rules xsi:type="xtext:ParserRule" name="function_call">
1418      <type metamodel="/0/@metamodelDeclarations.1">
1419        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1420      </type>
1421      <alternatives xsi:type="xtext:Group">
1422        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.89"/>
1423        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.75"/>
1424        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.90"/>
1425      </alternatives>
1426    </rules>
1427    <rules xsi:type="xtext:ParserRule" name="function_arguments">
1428      <type metamodel="/0/@metamodelDeclarations.1">
1429        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1430      </type>
1431      <alternatives xsi:type="xtext:Group">
1432        <tokens xsi:type="xtext:RuleCall" cardinality="?" rule="/0/@rules.76"/>
1433        <tokens xsi:type="xtext:RuleCall" cardinality="?" rule="/0/@rules.78"/>
1434      </alternatives>
1435    </rules>
1436    <rules xsi:type="xtext:ParserRule" name="for_or_expression_list">
1437      <type metamodel="/0/@metamodelDeclarations.1">
1438        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1439      </type>
1440      <alternatives xsi:type="xtext:Group">
1441        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.53"/>
1442        <tokens xsi:type="xtext:Alternatives" cardinality="?">
1443          <groups xsi:type="xtext:Group">
1444            <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.97"/>
1445            <tokens xsi:type="xtext:RuleCall" cardinality="?" rule="/0/@rules.77"/>
1446          </groups>
1447          <groups xsi:type="xtext:Group">
1448            <tokens xsi:type="xtext:Keyword" value="for"/>
1449            <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.57"/>
1450          </groups>
1451        </tokens>
1452      </alternatives>
1453    </rules>
1454    <rules xsi:type="xtext:ParserRule" name="for_or_expression_list2">
1455      <type metamodel="/0/@metamodelDeclarations.1">
1456        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1457      </type>
1458      <alternatives xsi:type="xtext:Group">
1459        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.53"/>
1460        <tokens xsi:type="xtext:Group" cardinality="?">
1461          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.97"/>
1462          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.77"/>
1463        </tokens>
1464      </alternatives>
1465    </rules>
1466    <rules xsi:type="xtext:ParserRule" name="named_arguments">
1467      <type metamodel="/0/@metamodelDeclarations.1">
1468        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1469      </type>
1470      <alternatives xsi:type="xtext:RuleCall" rule="/0/@rules.79"/>
1471    </rules>
1472    <rules xsi:type="xtext:ParserRule" name="named_arguments2">
1473      <type metamodel="/0/@metamodelDeclarations.1">
1474        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1475      </type>
1476      <alternatives xsi:type="xtext:Group">
1477        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.80"/>
1478        <tokens xsi:type="xtext:Group" cardinality="*">
1479          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.97"/>
1480          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.80"/>
1481        </tokens>
1482      </alternatives>
1483    </rules>
1484    <rules xsi:type="xtext:ParserRule" name="named_argument">
1485      <type metamodel="/0/@metamodelDeclarations.1">
1486        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1487      </type>
1488      <alternatives xsi:type="xtext:Group">
1489        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.118"/>
1490        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.95"/>
1491        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.53"/>
1492      </alternatives>
1493    </rules>
1494    <rules xsi:type="xtext:ParserRule" name="expression_list">
1495      <type metamodel="/0/@metamodelDeclarations.1">
1496        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1497      </type>
1498      <alternatives xsi:type="xtext:RuleCall" rule="/0/@rules.82"/>
1499    </rules>
1500    <rules xsi:type="xtext:ParserRule" name="expression_list2">
1501      <type metamodel="/0/@metamodelDeclarations.1">
1502        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1503      </type>
1504      <alternatives xsi:type="xtext:Group">
1505        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.53"/>
1506        <tokens xsi:type="xtext:Group" cardinality="?">
1507          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.97"/>
1508          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.82"/>
1509        </tokens>
1510      </alternatives>
1511    </rules>
1512    <rules xsi:type="xtext:ParserRule" name="array_subscripts">
1513      <type metamodel="/0/@metamodelDeclarations.1">
1514        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1515      </type>
1516      <alternatives xsi:type="xtext:Group">
1517        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.91"/>
1518        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.84"/>
1519        <tokens xsi:type="xtext:Group" cardinality="*">
1520          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.97"/>
1521          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.84"/>
1522        </tokens>
1523        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.92"/>
1524      </alternatives>
1525    </rules>
1526    <rules xsi:type="xtext:ParserRule" name="subscript">
1527      <type metamodel="/0/@metamodelDeclarations.1">
1528        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1529      </type>
1530      <alternatives xsi:type="xtext:Alternatives">
1531        <groups xsi:type="xtext:RuleCall" rule="/0/@rules.53"/>
1532        <groups xsi:type="xtext:RuleCall" rule="/0/@rules.98"/>
1533      </alternatives>
1534    </rules>
1535    <rules xsi:type="xtext:ParserRule" name="comment">
1536      <type metamodel="/0/@metamodelDeclarations.0">
1537        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//Comment"/>
1538      </type>
1539      <alternatives xsi:type="xtext:Group">
1540        <tokens xsi:type="xtext:Assignment" cardinality="?" feature="string" operator="=">
1541          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.86"/>
1542        </tokens>
1543        <tokens xsi:type="xtext:Assignment" cardinality="?" feature="annotation" operator="=">
1544          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.87"/>
1545        </tokens>
1546      </alternatives>
1547    </rules>
1548    <rules xsi:type="xtext:ParserRule" name="string_comment">
1549      <type metamodel="/0/@metamodelDeclarations.1">
1550        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1551      </type>
1552      <alternatives xsi:type="xtext:Group">
1553        <tokens xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
1554        <tokens xsi:type="xtext:Group" cardinality="*">
1555          <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.107"/>
1556          <tokens xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
1557        </tokens>
1558      </alternatives>
1559    </rules>
1560    <rules xsi:type="xtext:ParserRule" name="annotation">
1561      <type metamodel="/0/@metamodelDeclarations.0">
1562        <classifier xsi:type="ecore:EClass" href="http://www.modelica.org/xtext/ModelicaBase#//Annotation"/>
1563      </type>
1564      <alternatives xsi:type="xtext:Group">
1565        <tokens xsi:type="xtext:Keyword" value="annotation"/>
1566        <tokens xsi:type="xtext:RuleCall" rule="/0/@rules.25"/>
1567      </alternatives>
1568    </rules>
1569    <rules xsi:type="xtext:TerminalRule" name="DOT">
1570      <type metamodel="/0/@metamodelDeclarations.1">
1571        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1572      </type>
1573      <alternatives xsi:type="xtext:Keyword" value="."/>
1574    </rules>
1575    <rules xsi:type="xtext:TerminalRule" name="LPAR">
1576      <type metamodel="/0/@metamodelDeclarations.1">
1577        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1578      </type>
1579      <alternatives xsi:type="xtext:Keyword" value="("/>
1580    </rules>
1581    <rules xsi:type="xtext:TerminalRule" name="RPAR">
1582      <type metamodel="/0/@metamodelDeclarations.1">
1583        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1584      </type>
1585      <alternatives xsi:type="xtext:Keyword" value=")"/>
1586    </rules>
1587    <rules xsi:type="xtext:TerminalRule" name="LBRACK">
1588      <type metamodel="/0/@metamodelDeclarations.1">
1589        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1590      </type>
1591      <alternatives xsi:type="xtext:Keyword" value="["/>
1592    </rules>
1593    <rules xsi:type="xtext:TerminalRule" name="RBRACK">
1594      <type metamodel="/0/@metamodelDeclarations.1">
1595        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1596      </type>
1597      <alternatives xsi:type="xtext:Keyword" value="]"/>
1598    </rules>
1599    <rules xsi:type="xtext:TerminalRule" name="LBRACE">
1600      <type metamodel="/0/@metamodelDeclarations.1">
1601        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1602      </type>
1603      <alternatives xsi:type="xtext:Keyword" value="{"/>
1604    </rules>
1605    <rules xsi:type="xtext:TerminalRule" name="RBRACE">
1606      <type metamodel="/0/@metamodelDeclarations.1">
1607        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1608      </type>
1609      <alternatives xsi:type="xtext:Keyword" value="}"/>
1610    </rules>
1611    <rules xsi:type="xtext:TerminalRule" name="EQUALS">
1612      <type metamodel="/0/@metamodelDeclarations.1">
1613        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1614      </type>
1615      <alternatives xsi:type="xtext:Keyword" value="="/>
1616    </rules>
1617    <rules xsi:type="xtext:TerminalRule" name="ASSIGN">
1618      <type metamodel="/0/@metamodelDeclarations.1">
1619        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1620      </type>
1621      <alternatives xsi:type="xtext:Keyword" value=":="/>
1622    </rules>
1623    <rules xsi:type="xtext:TerminalRule" name="COMMA">
1624      <type metamodel="/0/@metamodelDeclarations.1">
1625        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1626      </type>
1627      <alternatives xsi:type="xtext:Keyword" value=","/>
1628    </rules>
1629    <rules xsi:type="xtext:TerminalRule" name="COLON">
1630      <type metamodel="/0/@metamodelDeclarations.1">
1631        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1632      </type>
1633      <alternatives xsi:type="xtext:Keyword" value=":"/>
1634    </rules>
1635    <rules xsi:type="xtext:TerminalRule" name="SEMICOLON">
1636      <type metamodel="/0/@metamodelDeclarations.1">
1637        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1638      </type>
1639      <alternatives xsi:type="xtext:Keyword" value=";"/>
1640    </rules>
1641    <rules xsi:type="xtext:TerminalRule" name="PLUS_EW">
1642      <type metamodel="/0/@metamodelDeclarations.1">
1643        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1644      </type>
1645      <alternatives xsi:type="xtext:Keyword" value=".+"/>
1646    </rules>
1647    <rules xsi:type="xtext:TerminalRule" name="MINUS_EW">
1648      <type metamodel="/0/@metamodelDeclarations.1">
1649        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1650      </type>
1651      <alternatives xsi:type="xtext:Keyword" value=".-"/>
1652    </rules>
1653    <rules xsi:type="xtext:TerminalRule" name="STAR_EW">
1654      <type metamodel="/0/@metamodelDeclarations.1">
1655        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1656      </type>
1657      <alternatives xsi:type="xtext:Keyword" value=".*"/>
1658    </rules>
1659    <rules xsi:type="xtext:TerminalRule" name="SLASH_EW">
1660      <type metamodel="/0/@metamodelDeclarations.1">
1661        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1662      </type>
1663      <alternatives xsi:type="xtext:Keyword" value="./"/>
1664    </rules>
1665    <rules xsi:type="xtext:TerminalRule" name="POWER_EW">
1666      <type metamodel="/0/@metamodelDeclarations.1">
1667        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1668      </type>
1669      <alternatives xsi:type="xtext:Keyword" value=".^"/>
1670    </rules>
1671    <rules xsi:type="xtext:TerminalRule" name="STAR">
1672      <type metamodel="/0/@metamodelDeclarations.1">
1673        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1674      </type>
1675      <alternatives xsi:type="xtext:Group">
1676        <tokens xsi:type="xtext:Keyword" value="*"/>
1677        <tokens xsi:type="xtext:Keyword" cardinality="?" value="."/>
1678      </alternatives>
1679    </rules>
1680    <rules xsi:type="xtext:TerminalRule" name="MINUS">
1681      <type metamodel="/0/@metamodelDeclarations.1">
1682        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1683      </type>
1684      <alternatives xsi:type="xtext:Group">
1685        <tokens xsi:type="xtext:Keyword" value="-"/>
1686        <tokens xsi:type="xtext:Keyword" cardinality="?" value="."/>
1687      </alternatives>
1688    </rules>
1689    <rules xsi:type="xtext:TerminalRule" name="PLUS">
1690      <type metamodel="/0/@metamodelDeclarations.1">
1691        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1692      </type>
1693      <alternatives xsi:type="xtext:Group">
1694        <tokens xsi:type="xtext:Keyword" value="+"/>
1695        <tokens xsi:type="xtext:Alternatives" cardinality="?">
1696          <groups xsi:type="xtext:Keyword" value="."/>
1697          <groups xsi:type="xtext:Keyword" value="&amp;"/>
1698        </tokens>
1699      </alternatives>
1700    </rules>
1701    <rules xsi:type="xtext:TerminalRule" name="LESS">
1702      <type metamodel="/0/@metamodelDeclarations.1">
1703        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1704      </type>
1705      <alternatives xsi:type="xtext:Group">
1706        <tokens xsi:type="xtext:Keyword" value="&lt;"/>
1707        <tokens xsi:type="xtext:Keyword" cardinality="?" value="."/>
1708      </alternatives>
1709    </rules>
1710    <rules xsi:type="xtext:TerminalRule" name="LESSEQ">
1711      <type metamodel="/0/@metamodelDeclarations.1">
1712        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1713      </type>
1714      <alternatives xsi:type="xtext:Group">
1715        <tokens xsi:type="xtext:Keyword" value="&lt;="/>
1716        <tokens xsi:type="xtext:Keyword" cardinality="?" value="."/>
1717      </alternatives>
1718    </rules>
1719    <rules xsi:type="xtext:TerminalRule" name="LESSGT">
1720      <type metamodel="/0/@metamodelDeclarations.1">
1721        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1722      </type>
1723      <alternatives xsi:type="xtext:Alternatives">
1724        <groups xsi:type="xtext:Group">
1725          <tokens xsi:type="xtext:Keyword" value="!="/>
1726          <tokens xsi:type="xtext:Keyword" cardinality="?" value="."/>
1727        </groups>
1728        <groups xsi:type="xtext:Group">
1729          <tokens xsi:type="xtext:Keyword" value="&lt;>"/>
1730          <tokens xsi:type="xtext:Keyword" cardinality="?" value="."/>
1731        </groups>
1732      </alternatives>
1733    </rules>
1734    <rules xsi:type="xtext:TerminalRule" name="GREATER">
1735      <type metamodel="/0/@metamodelDeclarations.1">
1736        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1737      </type>
1738      <alternatives xsi:type="xtext:Group">
1739        <tokens xsi:type="xtext:Keyword" value=">"/>
1740        <tokens xsi:type="xtext:Keyword" cardinality="?" value="."/>
1741      </alternatives>
1742    </rules>
1743    <rules xsi:type="xtext:TerminalRule" name="GREATEREQ">
1744      <type metamodel="/0/@metamodelDeclarations.1">
1745        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1746      </type>
1747      <alternatives xsi:type="xtext:Group">
1748        <tokens xsi:type="xtext:Keyword" value=">="/>
1749        <tokens xsi:type="xtext:Keyword" cardinality="?" value="."/>
1750      </alternatives>
1751    </rules>
1752    <rules xsi:type="xtext:TerminalRule" name="EQEQ">
1753      <type metamodel="/0/@metamodelDeclarations.1">
1754        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1755      </type>
1756      <alternatives xsi:type="xtext:Group">
1757        <tokens xsi:type="xtext:Keyword" value="=="/>
1758        <tokens xsi:type="xtext:Alternatives" cardinality="?">
1759          <groups xsi:type="xtext:Keyword" value="."/>
1760          <groups xsi:type="xtext:Keyword" value="&amp;"/>
1761        </tokens>
1762      </alternatives>
1763    </rules>
1764    <rules xsi:type="xtext:TerminalRule" name="POWER">
1765      <type metamodel="/0/@metamodelDeclarations.1">
1766        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1767      </type>
1768      <alternatives xsi:type="xtext:Group">
1769        <tokens xsi:type="xtext:Keyword" value="^"/>
1770        <tokens xsi:type="xtext:Keyword" cardinality="?" value="."/>
1771      </alternatives>
1772    </rules>
1773    <rules xsi:type="xtext:TerminalRule" name="SLASH">
1774      <type metamodel="/0/@metamodelDeclarations.1">
1775        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1776      </type>
1777      <alternatives xsi:type="xtext:Group">
1778        <tokens xsi:type="xtext:Keyword" value="/"/>
1779        <tokens xsi:type="xtext:Keyword" cardinality="?" value="."/>
1780      </alternatives>
1781    </rules>
1782    <rules xsi:type="xtext:TerminalRule" name="UNSIGNED_REAL">
1783      <type metamodel="/0/@metamodelDeclarations.1">
1784        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1785      </type>
1786      <alternatives xsi:type="xtext:Alternatives">
1787        <groups xsi:type="xtext:Group">
1788          <tokens xsi:type="xtext:CharacterRange" cardinality="+">
1789            <left value="0"/>
1790            <right value="9"/>
1791          </tokens>
1792          <tokens xsi:type="xtext:Keyword" value="."/>
1793          <tokens xsi:type="xtext:CharacterRange" cardinality="*">
1794            <left value="0"/>
1795            <right value="9"/>
1796          </tokens>
1797          <tokens xsi:type="xtext:Group" cardinality="?">
1798            <tokens xsi:type="xtext:Alternatives">
1799              <groups xsi:type="xtext:Keyword" value="E"/>
1800              <groups xsi:type="xtext:Keyword" value="e"/>
1801            </tokens>
1802            <tokens xsi:type="xtext:Alternatives" cardinality="?">
1803              <groups xsi:type="xtext:Keyword" value="+"/>
1804              <groups xsi:type="xtext:Keyword" value="-"/>
1805            </tokens>
1806            <tokens xsi:type="xtext:CharacterRange" cardinality="+">
1807              <left value="0"/>
1808              <right value="9"/>
1809            </tokens>
1810          </tokens>
1811        </groups>
1812        <groups xsi:type="xtext:Group">
1813          <tokens xsi:type="xtext:CharacterRange" cardinality="+">
1814            <left value="0"/>
1815            <right value="9"/>
1816          </tokens>
1817          <tokens xsi:type="xtext:Alternatives">
1818            <groups xsi:type="xtext:Keyword" value="E"/>
1819            <groups xsi:type="xtext:Keyword" value="e"/>
1820          </tokens>
1821          <tokens xsi:type="xtext:Alternatives" cardinality="?">
1822            <groups xsi:type="xtext:Keyword" value="+"/>
1823            <groups xsi:type="xtext:Keyword" value="-"/>
1824          </tokens>
1825          <tokens xsi:type="xtext:CharacterRange" cardinality="+">
1826            <left value="0"/>
1827            <right value="9"/>
1828          </tokens>
1829        </groups>
1830      </alternatives>
1831    </rules>
1832    <rules xsi:type="xtext:TerminalRule" name="UNSIGNED_INTEGER">
1833      <type metamodel="/0/@metamodelDeclarations.1">
1834        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1835      </type>
1836      <alternatives xsi:type="xtext:CharacterRange" cardinality="+">
1837        <left value="0"/>
1838        <right value="9"/>
1839      </alternatives>
1840    </rules>
1841    <rules xsi:type="xtext:TerminalRule" name="IDENT">
1842      <type metamodel="/0/@metamodelDeclarations.1">
1843        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1844      </type>
1845      <alternatives xsi:type="xtext:Group">
1846        <tokens xsi:type="xtext:Alternatives">
1847          <groups xsi:type="xtext:CharacterRange">
1848            <left value="a"/>
1849            <right value="z"/>
1850          </groups>
1851          <groups xsi:type="xtext:CharacterRange">
1852            <left value="A"/>
1853            <right value="Z"/>
1854          </groups>
1855          <groups xsi:type="xtext:Keyword" value="_"/>
1856        </tokens>
1857        <tokens xsi:type="xtext:Alternatives" cardinality="*">
1858          <groups xsi:type="xtext:CharacterRange">
1859            <left value="a"/>
1860            <right value="z"/>
1861          </groups>
1862          <groups xsi:type="xtext:CharacterRange">
1863            <left value="A"/>
1864            <right value="Z"/>
1865          </groups>
1866          <groups xsi:type="xtext:Keyword" value="_"/>
1867          <groups xsi:type="xtext:CharacterRange">
1868            <left value="0"/>
1869            <right value="9"/>
1870          </groups>
1871        </tokens>
1872      </alternatives>
1873    </rules>
1874  </xtext:Grammar>
1875  <xtext:Grammar name="org.eclipse.xtext.common.Terminals" definesHiddenTokens="true" hiddenTokens="/1/@rules.5 /1/@rules.3 /1/@rules.4">
1876    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="ecore">
1877      <ePackage href="http://www.eclipse.org/emf/2002/Ecore#/"/>
1878    </metamodelDeclarations>
1879    <rules xsi:type="xtext:TerminalRule" name="ID">
1880      <type metamodel="/1/@metamodelDeclarations.0">
1881        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1882      </type>
1883      <alternatives xsi:type="xtext:Group">
1884        <tokens xsi:type="xtext:Keyword" cardinality="?" value="^"/>
1885        <tokens xsi:type="xtext:Alternatives">
1886          <groups xsi:type="xtext:CharacterRange">
1887            <left value="a"/>
1888            <right value="z"/>
1889          </groups>
1890          <groups xsi:type="xtext:CharacterRange">
1891            <left value="A"/>
1892            <right value="Z"/>
1893          </groups>
1894          <groups xsi:type="xtext:Keyword" value="_"/>
1895        </tokens>
1896        <tokens xsi:type="xtext:Alternatives" cardinality="*">
1897          <groups xsi:type="xtext:CharacterRange">
1898            <left value="a"/>
1899            <right value="z"/>
1900          </groups>
1901          <groups xsi:type="xtext:CharacterRange">
1902            <left value="A"/>
1903            <right value="Z"/>
1904          </groups>
1905          <groups xsi:type="xtext:Keyword" value="_"/>
1906          <groups xsi:type="xtext:CharacterRange">
1907            <left value="0"/>
1908            <right value="9"/>
1909          </groups>
1910        </tokens>
1911      </alternatives>
1912    </rules>
1913    <rules xsi:type="xtext:TerminalRule" name="INT">
1914      <type metamodel="/1/@metamodelDeclarations.0">
1915        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
1916      </type>
1917      <alternatives xsi:type="xtext:CharacterRange" cardinality="+">
1918        <left value="0"/>
1919        <right value="9"/>
1920      </alternatives>
1921    </rules>
1922    <rules xsi:type="xtext:TerminalRule" name="STRING">
1923      <type metamodel="/1/@metamodelDeclarations.0">
1924        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1925      </type>
1926      <alternatives xsi:type="xtext:Alternatives">
1927        <groups xsi:type="xtext:Group">
1928          <tokens xsi:type="xtext:Keyword" value="&quot;"/>
1929          <tokens xsi:type="xtext:Alternatives" cardinality="*">
1930            <groups xsi:type="xtext:Group">
1931              <tokens xsi:type="xtext:Keyword" value="\"/>
1932              <tokens xsi:type="xtext:Alternatives">
1933                <groups xsi:type="xtext:Keyword" value="b"/>
1934                <groups xsi:type="xtext:Keyword" value="t"/>
1935                <groups xsi:type="xtext:Keyword" value="n"/>
1936                <groups xsi:type="xtext:Keyword" value="f"/>
1937                <groups xsi:type="xtext:Keyword" value="r"/>
1938                <groups xsi:type="xtext:Keyword" value="&quot;"/>
1939                <groups xsi:type="xtext:Keyword" value="'"/>
1940                <groups xsi:type="xtext:Keyword" value="\"/>
1941              </tokens>
1942            </groups>
1943            <groups xsi:type="xtext:NegatedToken">
1944              <terminal xsi:type="xtext:Alternatives">
1945                <groups xsi:type="xtext:Keyword" value="\"/>
1946                <groups xsi:type="xtext:Keyword" value="&quot;"/>
1947              </terminal>
1948            </groups>
1949          </tokens>
1950          <tokens xsi:type="xtext:Keyword" value="&quot;"/>
1951        </groups>
1952        <groups xsi:type="xtext:Group">
1953          <tokens xsi:type="xtext:Keyword" value="'"/>
1954          <tokens xsi:type="xtext:Alternatives" cardinality="*">
1955            <groups xsi:type="xtext:Group">
1956              <tokens xsi:type="xtext:Keyword" value="\"/>
1957              <tokens xsi:type="xtext:Alternatives">
1958                <groups xsi:type="xtext:Keyword" value="b"/>
1959                <groups xsi:type="xtext:Keyword" value="t"/>
1960                <groups xsi:type="xtext:Keyword" value="n"/>
1961                <groups xsi:type="xtext:Keyword" value="f"/>
1962                <groups xsi:type="xtext:Keyword" value="r"/>
1963                <groups xsi:type="xtext:Keyword" value="&quot;"/>
1964                <groups xsi:type="xtext:Keyword" value="'"/>
1965                <groups xsi:type="xtext:Keyword" value="\"/>
1966              </tokens>
1967            </groups>
1968            <groups xsi:type="xtext:NegatedToken">
1969              <terminal xsi:type="xtext:Alternatives">
1970                <groups xsi:type="xtext:Keyword" value="\"/>
1971                <groups xsi:type="xtext:Keyword" value="'"/>
1972              </terminal>
1973            </groups>
1974          </tokens>
1975          <tokens xsi:type="xtext:Keyword" value="'"/>
1976        </groups>
1977      </alternatives>
1978    </rules>
1979    <rules xsi:type="xtext:TerminalRule" name="ML_COMMENT">
1980      <type metamodel="/1/@metamodelDeclarations.0">
1981        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1982      </type>
1983      <alternatives xsi:type="xtext:Group">
1984        <tokens xsi:type="xtext:Keyword" value="/*"/>
1985        <tokens xsi:type="xtext:UntilToken">
1986          <terminal xsi:type="xtext:Keyword" value="*/"/>
1987        </tokens>
1988      </alternatives>
1989    </rules>
1990    <rules xsi:type="xtext:TerminalRule" name="SL_COMMENT">
1991      <type metamodel="/1/@metamodelDeclarations.0">
1992        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1993      </type>
1994      <alternatives xsi:type="xtext:Group">
1995        <tokens xsi:type="xtext:Keyword" value="//"/>
1996        <tokens xsi:type="xtext:NegatedToken" cardinality="*">
1997          <terminal xsi:type="xtext:Alternatives">
1998            <groups xsi:type="xtext:Keyword" value="&#xA;"/>
1999            <groups xsi:type="xtext:Keyword" value="&#xD;"/>
2000          </terminal>
2001        </tokens>
2002        <tokens xsi:type="xtext:Group" cardinality="?">
2003          <tokens xsi:type="xtext:Keyword" cardinality="?" value="&#xD;"/>
2004          <tokens xsi:type="xtext:Keyword" value="&#xA;"/>
2005        </tokens>
2006      </alternatives>
2007    </rules>
2008    <rules xsi:type="xtext:TerminalRule" name="WS">
2009      <type metamodel="/1/@metamodelDeclarations.0">
2010        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
2011      </type>
2012      <alternatives xsi:type="xtext:Alternatives" cardinality="+">
2013        <groups xsi:type="xtext:Keyword" value=" "/>
2014        <groups xsi:type="xtext:Keyword" value="&#x9;"/>
2015        <groups xsi:type="xtext:Keyword" value="&#xD;"/>
2016        <groups xsi:type="xtext:Keyword" value="&#xA;"/>
2017      </alternatives>
2018    </rules>
2019    <rules xsi:type="xtext:TerminalRule" name="ANY_OTHER">
2020      <type metamodel="/1/@metamodelDeclarations.0">
2021        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
2022      </type>
2023      <alternatives xsi:type="xtext:Wildcard"/>
2024    </rules>
2025  </xtext:Grammar>
2026</xmi:XMI>
Note: See TracBrowser for help on using the repository browser.