diff --git a/.Rhistory b/.Rhistory new file mode 100644 index 0000000..e69de29 diff --git a/.project b/.project new file mode 100644 index 0000000..0f3dce4 --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ + + + ERDSL + + + + + + org.eclipse.xtext.ui.shared.xtextBuilder + + + + + + org.eclipse.xtext.ui.shared.xtextNature + + diff --git a/README.md b/README.md index a424692..8d55ca1 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -# ERtext Tool +# ERtext ![](https://img.shields.io/badge/Eclipse%20IDE-2020‑03-blue) ![](https://img.shields.io/badge/Xtext-2.18.0-lightgrey) ____________________________ -ERtext tool repository for Modeling and Database Design with textual approach. +Domain-Specific Language for Conceptual Models of Relational Databases ![](https://img.shields.io/github/last-commit/ProjetoDSL/ERDSL?style=for-the-badge) ____________________________ diff --git a/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/.ErDslIdeModule.xtendbin b/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/.ErDslIdeModule.xtendbin index 847803c..3671727 100644 Binary files a/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/.ErDslIdeModule.xtendbin and b/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/.ErDslIdeModule.xtendbin differ diff --git a/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/.ErDslIdeSetup.xtendbin b/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/.ErDslIdeSetup.xtendbin index 196c199..97d9200 100644 Binary files a/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/.ErDslIdeSetup.xtendbin and b/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/.ErDslIdeSetup.xtendbin differ diff --git a/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/ErDslIdeModule.xtend b/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/ErDslIdeModule.xtend deleted file mode 100644 index 03c8357..0000000 --- a/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/ErDslIdeModule.xtend +++ /dev/null @@ -1,11 +0,0 @@ -/* - * generated by Xtext 2.17.0 - */ -package org.xtext.unipampa.erdsl.ide - - -/** - * Use this class to register ide components. - */ -class ErDslIdeModule extends AbstractErDslIdeModule { -} diff --git a/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/ErDslIdeSetup.xtend b/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/ErDslIdeSetup.xtend deleted file mode 100644 index 92ca662..0000000 --- a/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/ErDslIdeSetup.xtend +++ /dev/null @@ -1,20 +0,0 @@ -/* - * generated by Xtext 2.17.0 - */ -package org.xtext.unipampa.erdsl.ide - -import com.google.inject.Guice -import org.eclipse.xtext.util.Modules2 -import org.xtext.unipampa.erdsl.ErDslRuntimeModule -import org.xtext.unipampa.erdsl.ErDslStandaloneSetup - -/** - * Initialization support for running Xtext languages as language servers. - */ -class ErDslIdeSetup extends ErDslStandaloneSetup { - - override createInjector() { - Guice.createInjector(Modules2.mixin(new ErDslRuntimeModule, new ErDslIdeModule)) - } - -} diff --git a/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/ErDslParser$NameMappings.class b/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/ErDslParser$NameMappings.class index f5715a2..fd0efbd 100644 Binary files a/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/ErDslParser$NameMappings.class and b/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/ErDslParser$NameMappings.class differ diff --git a/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/ErDslParser.class b/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/ErDslParser.class index c10a44c..62b248f 100644 Binary files a/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/ErDslParser.class and b/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/ErDslParser.class differ diff --git a/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDsl.g b/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDsl.g index 2b3af1e..3f4eed1 100644 --- a/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDsl.g +++ b/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDsl.g @@ -1,5 +1,5 @@ /* - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ grammar InternalErDsl; @@ -199,6 +199,22 @@ finally { restoreStackSize(stackSize); } +// Rule DataType +ruleDataType + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getDataTypeAccess().getAlternatives()); } + (rule__DataType__Alternatives) + { after(grammarAccess.getDataTypeAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + rule__RelationSide__Alternatives @init { int stackSize = keepStackSize(); @@ -253,6 +269,57 @@ finally { restoreStackSize(stackSize); } +rule__DataType__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getDataTypeAccess().getINTEnumLiteralDeclaration_0()); } + ('int') + { after(grammarAccess.getDataTypeAccess().getINTEnumLiteralDeclaration_0()); } + ) + | + ( + { before(grammarAccess.getDataTypeAccess().getDOUBLEEnumLiteralDeclaration_1()); } + ('double') + { after(grammarAccess.getDataTypeAccess().getDOUBLEEnumLiteralDeclaration_1()); } + ) + | + ( + { before(grammarAccess.getDataTypeAccess().getMONEYEnumLiteralDeclaration_2()); } + ('money') + { after(grammarAccess.getDataTypeAccess().getMONEYEnumLiteralDeclaration_2()); } + ) + | + ( + { before(grammarAccess.getDataTypeAccess().getSTRINGEnumLiteralDeclaration_3()); } + ('string') + { after(grammarAccess.getDataTypeAccess().getSTRINGEnumLiteralDeclaration_3()); } + ) + | + ( + { before(grammarAccess.getDataTypeAccess().getBOOLEANEnumLiteralDeclaration_4()); } + ('boolean') + { after(grammarAccess.getDataTypeAccess().getBOOLEANEnumLiteralDeclaration_4()); } + ) + | + ( + { before(grammarAccess.getDataTypeAccess().getDATETIMEEnumLiteralDeclaration_5()); } + ('datetime') + { after(grammarAccess.getDataTypeAccess().getDATETIMEEnumLiteralDeclaration_5()); } + ) + | + ( + { before(grammarAccess.getDataTypeAccess().getBLOBEnumLiteralDeclaration_6()); } + ('file') + { after(grammarAccess.getDataTypeAccess().getBLOBEnumLiteralDeclaration_6()); } + ) +; +finally { + restoreStackSize(stackSize); +} + rule__ERModel__Group__0 @init { int stackSize = keepStackSize(); @@ -779,6 +846,7 @@ rule__Attribute__Group__1 } : rule__Attribute__Group__1__Impl + rule__Attribute__Group__2 ; finally { restoreStackSize(stackSize); @@ -790,9 +858,35 @@ rule__Attribute__Group__1__Impl } : ( - { before(grammarAccess.getAttributeAccess().getIsKeyAssignment_1()); } - (rule__Attribute__IsKeyAssignment_1)? - { after(grammarAccess.getAttributeAccess().getIsKeyAssignment_1()); } + { before(grammarAccess.getAttributeAccess().getTypeAssignment_1()); } + (rule__Attribute__TypeAssignment_1) + { after(grammarAccess.getAttributeAccess().getTypeAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Attribute__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__Attribute__Group__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Attribute__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAttributeAccess().getIsKeyAssignment_2()); } + (rule__Attribute__IsKeyAssignment_2)? + { after(grammarAccess.getAttributeAccess().getIsKeyAssignment_2()); } ) ; finally { @@ -1604,19 +1698,34 @@ finally { restoreStackSize(stackSize); } -rule__Attribute__IsKeyAssignment_1 +rule__Attribute__TypeAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getAttributeAccess().getTypeDataTypeEnumRuleCall_1_0()); } + ruleDataType + { after(grammarAccess.getAttributeAccess().getTypeDataTypeEnumRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Attribute__IsKeyAssignment_2 @init { int stackSize = keepStackSize(); } : ( - { before(grammarAccess.getAttributeAccess().getIsKeyIsIdentifierKeyword_1_0()); } + { before(grammarAccess.getAttributeAccess().getIsKeyIsIdentifierKeyword_2_0()); } ( - { before(grammarAccess.getAttributeAccess().getIsKeyIsIdentifierKeyword_1_0()); } + { before(grammarAccess.getAttributeAccess().getIsKeyIsIdentifierKeyword_2_0()); } 'isIdentifier' - { after(grammarAccess.getAttributeAccess().getIsKeyIsIdentifierKeyword_1_0()); } + { after(grammarAccess.getAttributeAccess().getIsKeyIsIdentifierKeyword_2_0()); } ) - { after(grammarAccess.getAttributeAccess().getIsKeyIsIdentifierKeyword_1_0()); } + { after(grammarAccess.getAttributeAccess().getIsKeyIsIdentifierKeyword_2_0()); } ) ; finally { diff --git a/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDsl.tokens b/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDsl.tokens index ca0de72..286c2bc 100644 --- a/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDsl.tokens +++ b/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDsl.tokens @@ -2,18 +2,25 @@ '(0:N)'=13 '(1:1)'=12 '(1:N)'=14 -','=22 -';'=15 -'Domain'=20 -'Entities'=16 -'Relationships'=19 -'['=23 -']'=25 -'is'=21 -'isIdentifier'=26 -'relates'=24 -'{'=17 -'}'=18 +','=29 +';'=22 +'Domain'=27 +'Entities'=23 +'Relationships'=26 +'['=30 +']'=32 +'boolean'=19 +'datetime'=20 +'double'=16 +'file'=21 +'int'=15 +'is'=28 +'isIdentifier'=33 +'money'=17 +'relates'=31 +'string'=18 +'{'=24 +'}'=25 RULE_ANY_OTHER=10 RULE_ID=4 RULE_INT=5 @@ -37,3 +44,10 @@ T__23=23 T__24=24 T__25=25 T__26=26 +T__27=27 +T__28=28 +T__29=29 +T__30=30 +T__31=31 +T__32=32 +T__33=33 diff --git a/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslLexer$DFA12.class b/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslLexer$DFA12.class index 3d19018..a45f5f1 100644 Binary files a/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslLexer$DFA12.class and b/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslLexer$DFA12.class differ diff --git a/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslLexer.class b/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslLexer.class index 09840b3..4ba37d3 100644 Binary files a/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslLexer.class and b/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslLexer.class differ diff --git a/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.class b/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.class index 6170fee..5c42d97 100644 Binary files a/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.class and b/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.class differ diff --git a/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/AbstractErDslIdeModule.java b/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/AbstractErDslIdeModule.java index f986a4a..ad2d3f1 100644 --- a/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/AbstractErDslIdeModule.java +++ b/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/AbstractErDslIdeModule.java @@ -1,5 +1,5 @@ /* - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl.ide; diff --git a/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/ErDslParser.java b/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/ErDslParser.java index f786bea..7f8e175 100644 --- a/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/ErDslParser.java +++ b/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/ErDslParser.java @@ -1,5 +1,5 @@ /* - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl.ide.contentassist.antlr; @@ -33,6 +33,7 @@ public String getRuleName(AbstractElement element) { private static void init(ImmutableMap.Builder builder, ErDslGrammarAccess grammarAccess) { builder.put(grammarAccess.getRelationSideAccess().getAlternatives(), "rule__RelationSide__Alternatives"); builder.put(grammarAccess.getRelationSideAccess().getCardinalityAlternatives_0_0_0(), "rule__RelationSide__CardinalityAlternatives_0_0_0"); + builder.put(grammarAccess.getDataTypeAccess().getAlternatives(), "rule__DataType__Alternatives"); builder.put(grammarAccess.getERModelAccess().getGroup(), "rule__ERModel__Group__0"); builder.put(grammarAccess.getERModelAccess().getGroup_2(), "rule__ERModel__Group_2__0"); builder.put(grammarAccess.getERModelAccess().getGroup_4(), "rule__ERModel__Group_4__0"); @@ -54,7 +55,8 @@ private static void init(ImmutableMap.Builder builder, builder.put(grammarAccess.getERModelAccess().getRelationsAssignment_6(), "rule__ERModel__RelationsAssignment_6"); builder.put(grammarAccess.getDomainAccess().getNameAssignment_1(), "rule__Domain__NameAssignment_1"); builder.put(grammarAccess.getAttributeAccess().getNameAssignment_0(), "rule__Attribute__NameAssignment_0"); - builder.put(grammarAccess.getAttributeAccess().getIsKeyAssignment_1(), "rule__Attribute__IsKeyAssignment_1"); + builder.put(grammarAccess.getAttributeAccess().getTypeAssignment_1(), "rule__Attribute__TypeAssignment_1"); + builder.put(grammarAccess.getAttributeAccess().getIsKeyAssignment_2(), "rule__Attribute__IsKeyAssignment_2"); builder.put(grammarAccess.getEntityAccess().getNameAssignment_0(), "rule__Entity__NameAssignment_0"); builder.put(grammarAccess.getEntityAccess().getIsAssignment_1_1(), "rule__Entity__IsAssignment_1_1"); builder.put(grammarAccess.getEntityAccess().getAttributesAssignment_2_1(), "rule__Entity__AttributesAssignment_2_1"); diff --git a/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/PartialErDslContentAssistParser.java b/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/PartialErDslContentAssistParser.java index e204c10..c0964d9 100644 --- a/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/PartialErDslContentAssistParser.java +++ b/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/PartialErDslContentAssistParser.java @@ -1,5 +1,5 @@ /* - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl.ide.contentassist.antlr; diff --git a/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDsl.g b/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDsl.g index 2b3af1e..3f4eed1 100644 --- a/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDsl.g +++ b/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDsl.g @@ -1,5 +1,5 @@ /* - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ grammar InternalErDsl; @@ -199,6 +199,22 @@ finally { restoreStackSize(stackSize); } +// Rule DataType +ruleDataType + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getDataTypeAccess().getAlternatives()); } + (rule__DataType__Alternatives) + { after(grammarAccess.getDataTypeAccess().getAlternatives()); } + ) +; +finally { + restoreStackSize(stackSize); +} + rule__RelationSide__Alternatives @init { int stackSize = keepStackSize(); @@ -253,6 +269,57 @@ finally { restoreStackSize(stackSize); } +rule__DataType__Alternatives + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getDataTypeAccess().getINTEnumLiteralDeclaration_0()); } + ('int') + { after(grammarAccess.getDataTypeAccess().getINTEnumLiteralDeclaration_0()); } + ) + | + ( + { before(grammarAccess.getDataTypeAccess().getDOUBLEEnumLiteralDeclaration_1()); } + ('double') + { after(grammarAccess.getDataTypeAccess().getDOUBLEEnumLiteralDeclaration_1()); } + ) + | + ( + { before(grammarAccess.getDataTypeAccess().getMONEYEnumLiteralDeclaration_2()); } + ('money') + { after(grammarAccess.getDataTypeAccess().getMONEYEnumLiteralDeclaration_2()); } + ) + | + ( + { before(grammarAccess.getDataTypeAccess().getSTRINGEnumLiteralDeclaration_3()); } + ('string') + { after(grammarAccess.getDataTypeAccess().getSTRINGEnumLiteralDeclaration_3()); } + ) + | + ( + { before(grammarAccess.getDataTypeAccess().getBOOLEANEnumLiteralDeclaration_4()); } + ('boolean') + { after(grammarAccess.getDataTypeAccess().getBOOLEANEnumLiteralDeclaration_4()); } + ) + | + ( + { before(grammarAccess.getDataTypeAccess().getDATETIMEEnumLiteralDeclaration_5()); } + ('datetime') + { after(grammarAccess.getDataTypeAccess().getDATETIMEEnumLiteralDeclaration_5()); } + ) + | + ( + { before(grammarAccess.getDataTypeAccess().getBLOBEnumLiteralDeclaration_6()); } + ('file') + { after(grammarAccess.getDataTypeAccess().getBLOBEnumLiteralDeclaration_6()); } + ) +; +finally { + restoreStackSize(stackSize); +} + rule__ERModel__Group__0 @init { int stackSize = keepStackSize(); @@ -779,6 +846,7 @@ rule__Attribute__Group__1 } : rule__Attribute__Group__1__Impl + rule__Attribute__Group__2 ; finally { restoreStackSize(stackSize); @@ -790,9 +858,35 @@ rule__Attribute__Group__1__Impl } : ( - { before(grammarAccess.getAttributeAccess().getIsKeyAssignment_1()); } - (rule__Attribute__IsKeyAssignment_1)? - { after(grammarAccess.getAttributeAccess().getIsKeyAssignment_1()); } + { before(grammarAccess.getAttributeAccess().getTypeAssignment_1()); } + (rule__Attribute__TypeAssignment_1) + { after(grammarAccess.getAttributeAccess().getTypeAssignment_1()); } +) +; +finally { + restoreStackSize(stackSize); +} + +rule__Attribute__Group__2 + @init { + int stackSize = keepStackSize(); + } +: + rule__Attribute__Group__2__Impl +; +finally { + restoreStackSize(stackSize); +} + +rule__Attribute__Group__2__Impl + @init { + int stackSize = keepStackSize(); + } +: +( + { before(grammarAccess.getAttributeAccess().getIsKeyAssignment_2()); } + (rule__Attribute__IsKeyAssignment_2)? + { after(grammarAccess.getAttributeAccess().getIsKeyAssignment_2()); } ) ; finally { @@ -1604,19 +1698,34 @@ finally { restoreStackSize(stackSize); } -rule__Attribute__IsKeyAssignment_1 +rule__Attribute__TypeAssignment_1 + @init { + int stackSize = keepStackSize(); + } +: + ( + { before(grammarAccess.getAttributeAccess().getTypeDataTypeEnumRuleCall_1_0()); } + ruleDataType + { after(grammarAccess.getAttributeAccess().getTypeDataTypeEnumRuleCall_1_0()); } + ) +; +finally { + restoreStackSize(stackSize); +} + +rule__Attribute__IsKeyAssignment_2 @init { int stackSize = keepStackSize(); } : ( - { before(grammarAccess.getAttributeAccess().getIsKeyIsIdentifierKeyword_1_0()); } + { before(grammarAccess.getAttributeAccess().getIsKeyIsIdentifierKeyword_2_0()); } ( - { before(grammarAccess.getAttributeAccess().getIsKeyIsIdentifierKeyword_1_0()); } + { before(grammarAccess.getAttributeAccess().getIsKeyIsIdentifierKeyword_2_0()); } 'isIdentifier' - { after(grammarAccess.getAttributeAccess().getIsKeyIsIdentifierKeyword_1_0()); } + { after(grammarAccess.getAttributeAccess().getIsKeyIsIdentifierKeyword_2_0()); } ) - { after(grammarAccess.getAttributeAccess().getIsKeyIsIdentifierKeyword_1_0()); } + { after(grammarAccess.getAttributeAccess().getIsKeyIsIdentifierKeyword_2_0()); } ) ; finally { diff --git a/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDsl.tokens b/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDsl.tokens index ca0de72..286c2bc 100644 --- a/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDsl.tokens +++ b/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDsl.tokens @@ -2,18 +2,25 @@ '(0:N)'=13 '(1:1)'=12 '(1:N)'=14 -','=22 -';'=15 -'Domain'=20 -'Entities'=16 -'Relationships'=19 -'['=23 -']'=25 -'is'=21 -'isIdentifier'=26 -'relates'=24 -'{'=17 -'}'=18 +','=29 +';'=22 +'Domain'=27 +'Entities'=23 +'Relationships'=26 +'['=30 +']'=32 +'boolean'=19 +'datetime'=20 +'double'=16 +'file'=21 +'int'=15 +'is'=28 +'isIdentifier'=33 +'money'=17 +'relates'=31 +'string'=18 +'{'=24 +'}'=25 RULE_ANY_OTHER=10 RULE_ID=4 RULE_INT=5 @@ -37,3 +44,10 @@ T__23=23 T__24=24 T__25=25 T__26=26 +T__27=27 +T__28=28 +T__29=29 +T__30=30 +T__31=31 +T__32=32 +T__33=33 diff --git a/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslLexer.java b/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslLexer.java index 92db25d..31ce8cd 100644 --- a/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslLexer.java +++ b/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslLexer.java @@ -20,15 +20,22 @@ public class InternalErDslLexer extends Lexer { public static final int T__17=17; public static final int T__18=18; public static final int T__11=11; + public static final int T__33=33; public static final int T__12=12; public static final int T__13=13; public static final int T__14=14; public static final int EOF=-1; + public static final int T__30=30; + public static final int T__31=31; + public static final int T__32=32; public static final int RULE_ID=4; public static final int RULE_WS=9; public static final int RULE_ANY_OTHER=10; public static final int T__26=26; + public static final int T__27=27; + public static final int T__28=28; public static final int RULE_INT=5; + public static final int T__29=29; public static final int T__22=22; public static final int RULE_ML_COMMENT=7; public static final int T__23=23; @@ -139,10 +146,11 @@ public final void mT__15() throws RecognitionException { try { int _type = T__15; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDsl.g:15:7: ( ';' ) - // InternalErDsl.g:15:9: ';' + // InternalErDsl.g:15:7: ( 'int' ) + // InternalErDsl.g:15:9: 'int' { - match(';'); + match("int"); + } @@ -159,10 +167,10 @@ public final void mT__16() throws RecognitionException { try { int _type = T__16; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDsl.g:16:7: ( 'Entities' ) - // InternalErDsl.g:16:9: 'Entities' + // InternalErDsl.g:16:7: ( 'double' ) + // InternalErDsl.g:16:9: 'double' { - match("Entities"); + match("double"); } @@ -180,10 +188,11 @@ public final void mT__17() throws RecognitionException { try { int _type = T__17; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDsl.g:17:7: ( '{' ) - // InternalErDsl.g:17:9: '{' + // InternalErDsl.g:17:7: ( 'money' ) + // InternalErDsl.g:17:9: 'money' { - match('{'); + match("money"); + } @@ -200,10 +209,11 @@ public final void mT__18() throws RecognitionException { try { int _type = T__18; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDsl.g:18:7: ( '}' ) - // InternalErDsl.g:18:9: '}' + // InternalErDsl.g:18:7: ( 'string' ) + // InternalErDsl.g:18:9: 'string' { - match('}'); + match("string"); + } @@ -220,10 +230,10 @@ public final void mT__19() throws RecognitionException { try { int _type = T__19; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDsl.g:19:7: ( 'Relationships' ) - // InternalErDsl.g:19:9: 'Relationships' + // InternalErDsl.g:19:7: ( 'boolean' ) + // InternalErDsl.g:19:9: 'boolean' { - match("Relationships"); + match("boolean"); } @@ -241,10 +251,10 @@ public final void mT__20() throws RecognitionException { try { int _type = T__20; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDsl.g:20:7: ( 'Domain' ) - // InternalErDsl.g:20:9: 'Domain' + // InternalErDsl.g:20:7: ( 'datetime' ) + // InternalErDsl.g:20:9: 'datetime' { - match("Domain"); + match("datetime"); } @@ -262,10 +272,10 @@ public final void mT__21() throws RecognitionException { try { int _type = T__21; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDsl.g:21:7: ( 'is' ) - // InternalErDsl.g:21:9: 'is' + // InternalErDsl.g:21:7: ( 'file' ) + // InternalErDsl.g:21:9: 'file' { - match("is"); + match("file"); } @@ -283,10 +293,10 @@ public final void mT__22() throws RecognitionException { try { int _type = T__22; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDsl.g:22:7: ( ',' ) - // InternalErDsl.g:22:9: ',' + // InternalErDsl.g:22:7: ( ';' ) + // InternalErDsl.g:22:9: ';' { - match(','); + match(';'); } @@ -303,10 +313,11 @@ public final void mT__23() throws RecognitionException { try { int _type = T__23; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDsl.g:23:7: ( '[' ) - // InternalErDsl.g:23:9: '[' + // InternalErDsl.g:23:7: ( 'Entities' ) + // InternalErDsl.g:23:9: 'Entities' { - match('['); + match("Entities"); + } @@ -323,11 +334,10 @@ public final void mT__24() throws RecognitionException { try { int _type = T__24; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDsl.g:24:7: ( 'relates' ) - // InternalErDsl.g:24:9: 'relates' + // InternalErDsl.g:24:7: ( '{' ) + // InternalErDsl.g:24:9: '{' { - match("relates"); - + match('{'); } @@ -344,10 +354,10 @@ public final void mT__25() throws RecognitionException { try { int _type = T__25; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDsl.g:25:7: ( ']' ) - // InternalErDsl.g:25:9: ']' + // InternalErDsl.g:25:7: ( '}' ) + // InternalErDsl.g:25:9: '}' { - match(']'); + match('}'); } @@ -364,10 +374,10 @@ public final void mT__26() throws RecognitionException { try { int _type = T__26; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDsl.g:26:7: ( 'isIdentifier' ) - // InternalErDsl.g:26:9: 'isIdentifier' + // InternalErDsl.g:26:7: ( 'Relationships' ) + // InternalErDsl.g:26:9: 'Relationships' { - match("isIdentifier"); + match("Relationships"); } @@ -380,15 +390,159 @@ public final void mT__26() throws RecognitionException { } // $ANTLR end "T__26" + // $ANTLR start "T__27" + public final void mT__27() throws RecognitionException { + try { + int _type = T__27; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalErDsl.g:27:7: ( 'Domain' ) + // InternalErDsl.g:27:9: 'Domain' + { + match("Domain"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__27" + + // $ANTLR start "T__28" + public final void mT__28() throws RecognitionException { + try { + int _type = T__28; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalErDsl.g:28:7: ( 'is' ) + // InternalErDsl.g:28:9: 'is' + { + match("is"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__28" + + // $ANTLR start "T__29" + public final void mT__29() throws RecognitionException { + try { + int _type = T__29; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalErDsl.g:29:7: ( ',' ) + // InternalErDsl.g:29:9: ',' + { + match(','); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__29" + + // $ANTLR start "T__30" + public final void mT__30() throws RecognitionException { + try { + int _type = T__30; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalErDsl.g:30:7: ( '[' ) + // InternalErDsl.g:30:9: '[' + { + match('['); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__30" + + // $ANTLR start "T__31" + public final void mT__31() throws RecognitionException { + try { + int _type = T__31; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalErDsl.g:31:7: ( 'relates' ) + // InternalErDsl.g:31:9: 'relates' + { + match("relates"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__31" + + // $ANTLR start "T__32" + public final void mT__32() throws RecognitionException { + try { + int _type = T__32; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalErDsl.g:32:7: ( ']' ) + // InternalErDsl.g:32:9: ']' + { + match(']'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__32" + + // $ANTLR start "T__33" + public final void mT__33() throws RecognitionException { + try { + int _type = T__33; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalErDsl.g:33:7: ( 'isIdentifier' ) + // InternalErDsl.g:33:9: 'isIdentifier' + { + match("isIdentifier"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__33" + // $ANTLR start "RULE_ID" public final void mRULE_ID() throws RecognitionException { try { int _type = RULE_ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDsl.g:1818:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* ) - // InternalErDsl.g:1818:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* + // InternalErDsl.g:1927:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* ) + // InternalErDsl.g:1927:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* { - // InternalErDsl.g:1818:11: ( '^' )? + // InternalErDsl.g:1927:11: ( '^' )? int alt1=2; int LA1_0 = input.LA(1); @@ -397,7 +551,7 @@ public final void mRULE_ID() throws RecognitionException { } switch (alt1) { case 1 : - // InternalErDsl.g:1818:11: '^' + // InternalErDsl.g:1927:11: '^' { match('^'); @@ -415,7 +569,7 @@ public final void mRULE_ID() throws RecognitionException { recover(mse); throw mse;} - // InternalErDsl.g:1818:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* + // InternalErDsl.g:1927:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* loop2: do { int alt2=2; @@ -464,10 +618,10 @@ public final void mRULE_INT() throws RecognitionException { try { int _type = RULE_INT; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDsl.g:1820:10: ( ( '0' .. '9' )+ ) - // InternalErDsl.g:1820:12: ( '0' .. '9' )+ + // InternalErDsl.g:1929:10: ( ( '0' .. '9' )+ ) + // InternalErDsl.g:1929:12: ( '0' .. '9' )+ { - // InternalErDsl.g:1820:12: ( '0' .. '9' )+ + // InternalErDsl.g:1929:12: ( '0' .. '9' )+ int cnt3=0; loop3: do { @@ -481,7 +635,7 @@ public final void mRULE_INT() throws RecognitionException { switch (alt3) { case 1 : - // InternalErDsl.g:1820:13: '0' .. '9' + // InternalErDsl.g:1929:13: '0' .. '9' { matchRange('0','9'); @@ -513,10 +667,10 @@ public final void mRULE_STRING() throws RecognitionException { try { int _type = RULE_STRING; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDsl.g:1822:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) ) - // InternalErDsl.g:1822:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) + // InternalErDsl.g:1931:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) ) + // InternalErDsl.g:1931:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) { - // InternalErDsl.g:1822:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) + // InternalErDsl.g:1931:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) int alt6=2; int LA6_0 = input.LA(1); @@ -534,10 +688,10 @@ else if ( (LA6_0=='\'') ) { } switch (alt6) { case 1 : - // InternalErDsl.g:1822:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' + // InternalErDsl.g:1931:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' { match('\"'); - // InternalErDsl.g:1822:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* + // InternalErDsl.g:1931:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* loop4: do { int alt4=3; @@ -553,7 +707,7 @@ else if ( ((LA4_0>='\u0000' && LA4_0<='!')||(LA4_0>='#' && LA4_0<='[')||(LA4_0>= switch (alt4) { case 1 : - // InternalErDsl.g:1822:21: '\\\\' . + // InternalErDsl.g:1931:21: '\\\\' . { match('\\'); matchAny(); @@ -561,7 +715,7 @@ else if ( ((LA4_0>='\u0000' && LA4_0<='!')||(LA4_0>='#' && LA4_0<='[')||(LA4_0>= } break; case 2 : - // InternalErDsl.g:1822:28: ~ ( ( '\\\\' | '\"' ) ) + // InternalErDsl.g:1931:28: ~ ( ( '\\\\' | '\"' ) ) { if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { input.consume(); @@ -586,10 +740,10 @@ else if ( ((LA4_0>='\u0000' && LA4_0<='!')||(LA4_0>='#' && LA4_0<='[')||(LA4_0>= } break; case 2 : - // InternalErDsl.g:1822:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' + // InternalErDsl.g:1931:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' { match('\''); - // InternalErDsl.g:1822:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* + // InternalErDsl.g:1931:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* loop5: do { int alt5=3; @@ -605,7 +759,7 @@ else if ( ((LA5_0>='\u0000' && LA5_0<='&')||(LA5_0>='(' && LA5_0<='[')||(LA5_0>= switch (alt5) { case 1 : - // InternalErDsl.g:1822:54: '\\\\' . + // InternalErDsl.g:1931:54: '\\\\' . { match('\\'); matchAny(); @@ -613,7 +767,7 @@ else if ( ((LA5_0>='\u0000' && LA5_0<='&')||(LA5_0>='(' && LA5_0<='[')||(LA5_0>= } break; case 2 : - // InternalErDsl.g:1822:61: ~ ( ( '\\\\' | '\\'' ) ) + // InternalErDsl.g:1931:61: ~ ( ( '\\\\' | '\\'' ) ) { if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { input.consume(); @@ -656,12 +810,12 @@ public final void mRULE_ML_COMMENT() throws RecognitionException { try { int _type = RULE_ML_COMMENT; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDsl.g:1824:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) - // InternalErDsl.g:1824:19: '/*' ( options {greedy=false; } : . )* '*/' + // InternalErDsl.g:1933:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) + // InternalErDsl.g:1933:19: '/*' ( options {greedy=false; } : . )* '*/' { match("/*"); - // InternalErDsl.g:1824:24: ( options {greedy=false; } : . )* + // InternalErDsl.g:1933:24: ( options {greedy=false; } : . )* loop7: do { int alt7=2; @@ -686,7 +840,7 @@ else if ( ((LA7_0>='\u0000' && LA7_0<=')')||(LA7_0>='+' && LA7_0<='\uFFFF')) ) { switch (alt7) { case 1 : - // InternalErDsl.g:1824:52: . + // InternalErDsl.g:1933:52: . { matchAny(); @@ -716,12 +870,12 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { try { int _type = RULE_SL_COMMENT; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDsl.g:1826:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) - // InternalErDsl.g:1826:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? + // InternalErDsl.g:1935:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) + // InternalErDsl.g:1935:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? { match("//"); - // InternalErDsl.g:1826:24: (~ ( ( '\\n' | '\\r' ) ) )* + // InternalErDsl.g:1935:24: (~ ( ( '\\n' | '\\r' ) ) )* loop8: do { int alt8=2; @@ -734,7 +888,7 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { switch (alt8) { case 1 : - // InternalErDsl.g:1826:24: ~ ( ( '\\n' | '\\r' ) ) + // InternalErDsl.g:1935:24: ~ ( ( '\\n' | '\\r' ) ) { if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) { input.consume(); @@ -754,7 +908,7 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { } } while (true); - // InternalErDsl.g:1826:40: ( ( '\\r' )? '\\n' )? + // InternalErDsl.g:1935:40: ( ( '\\r' )? '\\n' )? int alt10=2; int LA10_0 = input.LA(1); @@ -763,9 +917,9 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { } switch (alt10) { case 1 : - // InternalErDsl.g:1826:41: ( '\\r' )? '\\n' + // InternalErDsl.g:1935:41: ( '\\r' )? '\\n' { - // InternalErDsl.g:1826:41: ( '\\r' )? + // InternalErDsl.g:1935:41: ( '\\r' )? int alt9=2; int LA9_0 = input.LA(1); @@ -774,7 +928,7 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { } switch (alt9) { case 1 : - // InternalErDsl.g:1826:41: '\\r' + // InternalErDsl.g:1935:41: '\\r' { match('\r'); @@ -806,10 +960,10 @@ public final void mRULE_WS() throws RecognitionException { try { int _type = RULE_WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDsl.g:1828:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) - // InternalErDsl.g:1828:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + // InternalErDsl.g:1937:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) + // InternalErDsl.g:1937:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ { - // InternalErDsl.g:1828:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + // InternalErDsl.g:1937:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ int cnt11=0; loop11: do { @@ -863,8 +1017,8 @@ public final void mRULE_ANY_OTHER() throws RecognitionException { try { int _type = RULE_ANY_OTHER; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDsl.g:1830:16: ( . ) - // InternalErDsl.g:1830:18: . + // InternalErDsl.g:1939:16: ( . ) + // InternalErDsl.g:1939:18: . { matchAny(); @@ -879,8 +1033,8 @@ public final void mRULE_ANY_OTHER() throws RecognitionException { // $ANTLR end "RULE_ANY_OTHER" public void mTokens() throws RecognitionException { - // InternalErDsl.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER ) - int alt12=23; + // InternalErDsl.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER ) + int alt12=30; alt12 = dfa12.predict(input); switch (alt12) { case 1 : @@ -996,49 +1150,98 @@ public void mTokens() throws RecognitionException { } break; case 17 : - // InternalErDsl.g:1:106: RULE_ID + // InternalErDsl.g:1:106: T__27 { - mRULE_ID(); + mT__27(); } break; case 18 : - // InternalErDsl.g:1:114: RULE_INT + // InternalErDsl.g:1:112: T__28 { - mRULE_INT(); + mT__28(); } break; case 19 : - // InternalErDsl.g:1:123: RULE_STRING + // InternalErDsl.g:1:118: T__29 { - mRULE_STRING(); + mT__29(); } break; case 20 : - // InternalErDsl.g:1:135: RULE_ML_COMMENT + // InternalErDsl.g:1:124: T__30 { - mRULE_ML_COMMENT(); + mT__30(); } break; case 21 : - // InternalErDsl.g:1:151: RULE_SL_COMMENT + // InternalErDsl.g:1:130: T__31 { - mRULE_SL_COMMENT(); + mT__31(); } break; case 22 : - // InternalErDsl.g:1:167: RULE_WS + // InternalErDsl.g:1:136: T__32 { - mRULE_WS(); + mT__32(); } break; case 23 : - // InternalErDsl.g:1:175: RULE_ANY_OTHER + // InternalErDsl.g:1:142: T__33 + { + mT__33(); + + } + break; + case 24 : + // InternalErDsl.g:1:148: RULE_ID + { + mRULE_ID(); + + } + break; + case 25 : + // InternalErDsl.g:1:156: RULE_INT + { + mRULE_INT(); + + } + break; + case 26 : + // InternalErDsl.g:1:165: RULE_STRING + { + mRULE_STRING(); + + } + break; + case 27 : + // InternalErDsl.g:1:177: RULE_ML_COMMENT + { + mRULE_ML_COMMENT(); + + } + break; + case 28 : + // InternalErDsl.g:1:193: RULE_SL_COMMENT + { + mRULE_SL_COMMENT(); + + } + break; + case 29 : + // InternalErDsl.g:1:209: RULE_WS + { + mRULE_WS(); + + } + break; + case 30 : + // InternalErDsl.g:1:217: RULE_ANY_OTHER { mRULE_ANY_OTHER(); @@ -1052,69 +1255,48 @@ public void mTokens() throws RecognitionException { protected DFA12 dfa12 = new DFA12(this); static final String DFA12_eotS = - "\1\uffff\1\24\1\uffff\1\31\2\uffff\3\31\2\uffff\1\31\1\uffff\1\24\2\uffff\3\24\5\uffff\1\31\3\uffff\2\31\1\56\2\uffff\1\31\10\uffff\4\31\1\uffff\1\31\4\uffff\14\31\1\105\4\31\1\uffff\1\31\1\113\1\114\2\31\2\uffff\7\31\1\126\1\127\2\uffff"; + "\1\uffff\1\31\6\36\1\uffff\1\36\2\uffff\2\36\2\uffff\1\36\1\uffff\1\31\2\uffff\3\31\4\uffff\1\36\1\70\1\uffff\6\36\1\uffff\1\36\2\uffff\2\36\2\uffff\1\36\10\uffff\1\107\1\36\1\uffff\12\36\5\uffff\6\36\1\131\7\36\1\141\2\36\1\uffff\5\36\1\151\1\36\1\uffff\1\153\3\36\1\157\2\36\1\uffff\1\36\1\uffff\1\163\2\36\1\uffff\1\166\1\36\1\170\1\uffff\1\171\1\36\1\uffff\1\36\2\uffff\5\36\1\u0081\1\36\1\uffff\1\u0083\1\uffff"; static final String DFA12_eofS = - "\130\uffff"; + "\u0084\uffff"; static final String DFA12_minS = - "\1\0\1\60\1\uffff\1\156\2\uffff\1\145\1\157\1\163\2\uffff\1\145\1\uffff\1\101\2\uffff\2\0\1\52\2\uffff\2\72\1\uffff\1\164\3\uffff\1\154\1\155\1\60\2\uffff\1\154\6\uffff\2\61\1\151\2\141\1\144\1\uffff\1\141\4\uffff\2\164\1\151\1\145\1\164\2\151\2\156\2\145\1\157\1\60\1\164\2\163\1\156\1\uffff\1\151\2\60\1\163\1\146\2\uffff\1\150\2\151\1\145\1\160\1\162\1\163\2\60\2\uffff"; + "\1\0\1\60\1\156\1\141\1\157\1\164\1\157\1\151\1\uffff\1\156\2\uffff\1\145\1\157\2\uffff\1\145\1\uffff\1\101\2\uffff\2\0\1\52\2\uffff\2\72\1\164\1\60\1\uffff\1\165\1\164\1\156\1\162\1\157\1\154\1\uffff\1\164\2\uffff\1\154\1\155\2\uffff\1\154\6\uffff\2\61\1\60\1\144\1\uffff\1\142\2\145\1\151\1\154\1\145\1\151\3\141\5\uffff\1\145\1\154\1\164\1\171\1\156\1\145\1\60\2\164\1\151\1\164\1\156\1\145\1\151\1\60\1\147\1\141\1\uffff\2\151\1\156\1\145\1\164\1\60\1\155\1\uffff\1\60\1\156\1\145\1\157\1\60\1\163\1\151\1\uffff\1\145\1\uffff\1\60\1\163\1\156\1\uffff\1\60\1\146\1\60\1\uffff\1\60\1\163\1\uffff\1\151\2\uffff\1\150\1\145\1\151\1\162\1\160\1\60\1\163\1\uffff\1\60\1\uffff"; static final String DFA12_maxS = - "\1\uffff\1\61\1\uffff\1\156\2\uffff\1\145\1\157\1\163\2\uffff\1\145\1\uffff\1\172\2\uffff\2\uffff\1\57\2\uffff\2\72\1\uffff\1\164\3\uffff\1\154\1\155\1\172\2\uffff\1\154\6\uffff\2\116\1\151\2\141\1\144\1\uffff\1\141\4\uffff\2\164\1\151\1\145\1\164\2\151\2\156\2\145\1\157\1\172\1\164\2\163\1\156\1\uffff\1\151\2\172\1\163\1\146\2\uffff\1\150\2\151\1\145\1\160\1\162\1\163\2\172\2\uffff"; + "\1\uffff\1\61\1\163\2\157\1\164\1\157\1\151\1\uffff\1\156\2\uffff\1\145\1\157\2\uffff\1\145\1\uffff\1\172\2\uffff\2\uffff\1\57\2\uffff\2\72\1\164\1\172\1\uffff\1\165\1\164\1\156\1\162\1\157\1\154\1\uffff\1\164\2\uffff\1\154\1\155\2\uffff\1\154\6\uffff\2\116\1\172\1\144\1\uffff\1\142\2\145\1\151\1\154\1\145\1\151\3\141\5\uffff\1\145\1\154\1\164\1\171\1\156\1\145\1\172\2\164\1\151\1\164\1\156\1\145\1\151\1\172\1\147\1\141\1\uffff\2\151\1\156\1\145\1\164\1\172\1\155\1\uffff\1\172\1\156\1\145\1\157\1\172\1\163\1\151\1\uffff\1\145\1\uffff\1\172\1\163\1\156\1\uffff\1\172\1\146\1\172\1\uffff\1\172\1\163\1\uffff\1\151\2\uffff\1\150\1\145\1\151\1\162\1\160\1\172\1\163\1\uffff\1\172\1\uffff"; static final String DFA12_acceptS = - "\2\uffff\1\5\1\uffff\1\7\1\10\3\uffff\1\14\1\15\1\uffff\1\17\1\uffff\1\21\1\22\3\uffff\1\26\1\27\2\uffff\1\5\1\uffff\1\21\1\7\1\10\3\uffff\1\14\1\15\1\uffff\1\17\1\22\1\23\1\24\1\25\1\26\6\uffff\1\13\1\uffff\1\1\1\3\1\2\1\4\21\uffff\1\12\5\uffff\1\16\1\6\11\uffff\1\20\1\11"; + "\10\uffff\1\14\1\uffff\1\16\1\17\2\uffff\1\23\1\24\1\uffff\1\26\1\uffff\1\30\1\31\3\uffff\1\35\1\36\4\uffff\1\30\6\uffff\1\14\1\uffff\1\16\1\17\2\uffff\1\23\1\24\1\uffff\1\26\1\31\1\32\1\33\1\34\1\35\4\uffff\1\22\12\uffff\1\1\1\3\1\2\1\4\1\5\21\uffff\1\13\7\uffff\1\7\7\uffff\1\6\1\uffff\1\10\3\uffff\1\21\3\uffff\1\11\2\uffff\1\25\1\uffff\1\12\1\15\7\uffff\1\27\1\uffff\1\20"; static final String DFA12_specialS = - "\1\0\17\uffff\1\1\1\2\106\uffff}>"; + "\1\2\24\uffff\1\0\1\1\155\uffff}>"; static final String[] DFA12_transitionS = { - "\11\24\2\23\2\24\1\23\22\24\1\23\1\24\1\20\4\24\1\21\1\1\3\24\1\11\2\24\1\22\12\17\1\24\1\2\5\24\3\16\1\7\1\3\14\16\1\6\10\16\1\12\1\24\1\14\1\15\1\16\1\24\10\16\1\10\10\16\1\13\10\16\1\4\1\24\1\5\uff82\24", - "\1\25\1\26", - "", - "\1\30", - "", - "", - "\1\34", - "\1\35", - "\1\36", - "", - "", + "\11\31\2\30\2\31\1\30\22\31\1\30\1\31\1\25\4\31\1\26\1\1\3\31\1\16\2\31\1\27\12\24\1\31\1\10\5\31\3\23\1\15\1\11\14\23\1\14\10\23\1\17\1\31\1\21\1\22\1\23\1\31\1\23\1\6\1\23\1\3\1\23\1\7\2\23\1\2\3\23\1\4\4\23\1\20\1\5\7\23\1\12\1\31\1\13\uff82\31", + "\1\32\1\33", + "\1\34\4\uffff\1\35", + "\1\40\15\uffff\1\37", "\1\41", + "\1\42", + "\1\43", + "\1\44", "", - "\32\31\4\uffff\1\31\1\uffff\32\31", - "", - "", - "\0\44", - "\0\44", - "\1\45\4\uffff\1\46", + "\1\46", "", "", - "\1\50", "\1\51", - "", "\1\52", "", "", + "\1\55", "", - "\1\53", - "\1\54", - "\12\31\7\uffff\10\31\1\55\21\31\4\uffff\1\31\1\uffff\32\31", - "", - "", - "\1\57", + "\32\36\4\uffff\1\36\1\uffff\32\36", "", "", + "\0\60", + "\0\60", + "\1\61\4\uffff\1\62", "", "", - "", - "", - "\1\60\34\uffff\1\61", - "\1\62\34\uffff\1\63", "\1\64", "\1\65", "\1\66", - "\1\67", - "", - "\1\70", - "", - "", - "", + "\12\36\7\uffff\10\36\1\67\21\36\4\uffff\1\36\1\uffff\32\36", "", "\1\71", "\1\72", @@ -1122,35 +1304,100 @@ public void mTokens() throws RecognitionException { "\1\74", "\1\75", "\1\76", + "", "\1\77", + "", + "", "\1\100", "\1\101", + "", + "", "\1\102", - "\1\103", - "\1\104", - "\12\31\7\uffff\32\31\4\uffff\1\31\1\uffff\32\31", - "\1\106", - "\1\107", + "", + "", + "", + "", + "", + "", + "\1\103\34\uffff\1\104", + "\1\105\34\uffff\1\106", + "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36", "\1\110", - "\1\111", "", + "\1\111", "\1\112", - "\12\31\7\uffff\32\31\4\uffff\1\31\1\uffff\32\31", - "\12\31\7\uffff\32\31\4\uffff\1\31\1\uffff\32\31", + "\1\113", + "\1\114", "\1\115", "\1\116", - "", - "", "\1\117", "\1\120", "\1\121", "\1\122", + "", + "", + "", + "", + "", "\1\123", "\1\124", "\1\125", - "\12\31\7\uffff\32\31\4\uffff\1\31\1\uffff\32\31", - "\12\31\7\uffff\32\31\4\uffff\1\31\1\uffff\32\31", + "\1\126", + "\1\127", + "\1\130", + "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36", + "\1\132", + "\1\133", + "\1\134", + "\1\135", + "\1\136", + "\1\137", + "\1\140", + "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36", + "\1\142", + "\1\143", + "", + "\1\144", + "\1\145", + "\1\146", + "\1\147", + "\1\150", + "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36", + "\1\152", + "", + "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36", + "\1\154", + "\1\155", + "\1\156", + "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36", + "\1\160", + "\1\161", + "", + "\1\162", "", + "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36", + "\1\164", + "\1\165", + "", + "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36", + "\1\167", + "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36", + "", + "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36", + "\1\172", + "", + "\1\173", + "", + "", + "\1\174", + "\1\175", + "\1\176", + "\1\177", + "\1\u0080", + "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36", + "\1\u0082", + "", + "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36", "" }; @@ -1184,75 +1431,85 @@ public DFA12(BaseRecognizer recognizer) { this.transition = DFA12_transition; } public String getDescription() { - return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );"; + return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );"; } public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { IntStream input = _input; int _s = s; switch ( s ) { case 0 : + int LA12_21 = input.LA(1); + + s = -1; + if ( ((LA12_21>='\u0000' && LA12_21<='\uFFFF')) ) {s = 48;} + + else s = 25; + + if ( s>=0 ) return s; + break; + case 1 : + int LA12_22 = input.LA(1); + + s = -1; + if ( ((LA12_22>='\u0000' && LA12_22<='\uFFFF')) ) {s = 48;} + + else s = 25; + + if ( s>=0 ) return s; + break; + case 2 : int LA12_0 = input.LA(1); s = -1; if ( (LA12_0=='(') ) {s = 1;} - else if ( (LA12_0==';') ) {s = 2;} - - else if ( (LA12_0=='E') ) {s = 3;} + else if ( (LA12_0=='i') ) {s = 2;} - else if ( (LA12_0=='{') ) {s = 4;} + else if ( (LA12_0=='d') ) {s = 3;} - else if ( (LA12_0=='}') ) {s = 5;} + else if ( (LA12_0=='m') ) {s = 4;} - else if ( (LA12_0=='R') ) {s = 6;} + else if ( (LA12_0=='s') ) {s = 5;} - else if ( (LA12_0=='D') ) {s = 7;} + else if ( (LA12_0=='b') ) {s = 6;} - else if ( (LA12_0=='i') ) {s = 8;} + else if ( (LA12_0=='f') ) {s = 7;} - else if ( (LA12_0==',') ) {s = 9;} + else if ( (LA12_0==';') ) {s = 8;} - else if ( (LA12_0=='[') ) {s = 10;} + else if ( (LA12_0=='E') ) {s = 9;} - else if ( (LA12_0=='r') ) {s = 11;} + else if ( (LA12_0=='{') ) {s = 10;} - else if ( (LA12_0==']') ) {s = 12;} + else if ( (LA12_0=='}') ) {s = 11;} - else if ( (LA12_0=='^') ) {s = 13;} + else if ( (LA12_0=='R') ) {s = 12;} - else if ( ((LA12_0>='A' && LA12_0<='C')||(LA12_0>='F' && LA12_0<='Q')||(LA12_0>='S' && LA12_0<='Z')||LA12_0=='_'||(LA12_0>='a' && LA12_0<='h')||(LA12_0>='j' && LA12_0<='q')||(LA12_0>='s' && LA12_0<='z')) ) {s = 14;} + else if ( (LA12_0=='D') ) {s = 13;} - else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 15;} + else if ( (LA12_0==',') ) {s = 14;} - else if ( (LA12_0=='\"') ) {s = 16;} + else if ( (LA12_0=='[') ) {s = 15;} - else if ( (LA12_0=='\'') ) {s = 17;} + else if ( (LA12_0=='r') ) {s = 16;} - else if ( (LA12_0=='/') ) {s = 18;} + else if ( (LA12_0==']') ) {s = 17;} - else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 19;} + else if ( (LA12_0=='^') ) {s = 18;} - else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||LA12_0=='!'||(LA12_0>='#' && LA12_0<='&')||(LA12_0>=')' && LA12_0<='+')||(LA12_0>='-' && LA12_0<='.')||LA12_0==':'||(LA12_0>='<' && LA12_0<='@')||LA12_0=='\\'||LA12_0=='`'||LA12_0=='|'||(LA12_0>='~' && LA12_0<='\uFFFF')) ) {s = 20;} + else if ( ((LA12_0>='A' && LA12_0<='C')||(LA12_0>='F' && LA12_0<='Q')||(LA12_0>='S' && LA12_0<='Z')||LA12_0=='_'||LA12_0=='a'||LA12_0=='c'||LA12_0=='e'||(LA12_0>='g' && LA12_0<='h')||(LA12_0>='j' && LA12_0<='l')||(LA12_0>='n' && LA12_0<='q')||(LA12_0>='t' && LA12_0<='z')) ) {s = 19;} - if ( s>=0 ) return s; - break; - case 1 : - int LA12_16 = input.LA(1); + else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 20;} - s = -1; - if ( ((LA12_16>='\u0000' && LA12_16<='\uFFFF')) ) {s = 36;} + else if ( (LA12_0=='\"') ) {s = 21;} - else s = 20; + else if ( (LA12_0=='\'') ) {s = 22;} - if ( s>=0 ) return s; - break; - case 2 : - int LA12_17 = input.LA(1); + else if ( (LA12_0=='/') ) {s = 23;} - s = -1; - if ( ((LA12_17>='\u0000' && LA12_17<='\uFFFF')) ) {s = 36;} + else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 24;} - else s = 20; + else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||LA12_0=='!'||(LA12_0>='#' && LA12_0<='&')||(LA12_0>=')' && LA12_0<='+')||(LA12_0>='-' && LA12_0<='.')||LA12_0==':'||(LA12_0>='<' && LA12_0<='@')||LA12_0=='\\'||LA12_0=='`'||LA12_0=='|'||(LA12_0>='~' && LA12_0<='\uFFFF')) ) {s = 25;} if ( s>=0 ) return s; break; diff --git a/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.java b/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.java index 5da9fbd..a959557 100644 --- a/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.java +++ b/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.java @@ -22,7 +22,7 @@ @SuppressWarnings("all") public class InternalErDslParser extends AbstractInternalContentAssistParser { public static final String[] tokenNames = new String[] { - "", "", "", "", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'(0:1)'", "'(1:1)'", "'(0:N)'", "'(1:N)'", "';'", "'Entities'", "'{'", "'}'", "'Relationships'", "'Domain'", "'is'", "','", "'['", "'relates'", "']'", "'isIdentifier'" + "", "", "", "", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'(0:1)'", "'(1:1)'", "'(0:N)'", "'(1:N)'", "'int'", "'double'", "'money'", "'string'", "'boolean'", "'datetime'", "'file'", "';'", "'Entities'", "'{'", "'}'", "'Relationships'", "'Domain'", "'is'", "','", "'['", "'relates'", "']'", "'isIdentifier'" }; public static final int RULE_STRING=6; public static final int RULE_SL_COMMENT=8; @@ -32,15 +32,22 @@ public class InternalErDslParser extends AbstractInternalContentAssistParser { public static final int T__17=17; public static final int T__18=18; public static final int T__11=11; + public static final int T__33=33; public static final int T__12=12; public static final int T__13=13; public static final int T__14=14; public static final int EOF=-1; + public static final int T__30=30; + public static final int T__31=31; + public static final int T__32=32; public static final int RULE_ID=4; public static final int RULE_WS=9; public static final int RULE_ANY_OTHER=10; public static final int T__26=26; + public static final int T__27=27; + public static final int T__28=28; public static final int RULE_INT=5; + public static final int T__29=29; public static final int T__22=22; public static final int RULE_ML_COMMENT=7; public static final int T__23=23; @@ -546,14 +553,61 @@ public final void ruleRelationSide() throws RecognitionException { // $ANTLR end "ruleRelationSide" + // $ANTLR start "ruleDataType" + // InternalErDsl.g:203:1: ruleDataType : ( ( rule__DataType__Alternatives ) ) ; + public final void ruleDataType() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalErDsl.g:207:1: ( ( ( rule__DataType__Alternatives ) ) ) + // InternalErDsl.g:208:2: ( ( rule__DataType__Alternatives ) ) + { + // InternalErDsl.g:208:2: ( ( rule__DataType__Alternatives ) ) + // InternalErDsl.g:209:3: ( rule__DataType__Alternatives ) + { + before(grammarAccess.getDataTypeAccess().getAlternatives()); + // InternalErDsl.g:210:3: ( rule__DataType__Alternatives ) + // InternalErDsl.g:210:4: rule__DataType__Alternatives + { + pushFollow(FOLLOW_2); + rule__DataType__Alternatives(); + + state._fsp--; + + + } + + after(grammarAccess.getDataTypeAccess().getAlternatives()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "ruleDataType" + + // $ANTLR start "rule__RelationSide__Alternatives" - // InternalErDsl.g:202:1: rule__RelationSide__Alternatives : ( ( ( rule__RelationSide__Group_0__0 ) ) | ( ( rule__RelationSide__TargetAssignment_1 ) ) ); + // InternalErDsl.g:218:1: rule__RelationSide__Alternatives : ( ( ( rule__RelationSide__Group_0__0 ) ) | ( ( rule__RelationSide__TargetAssignment_1 ) ) ); public final void rule__RelationSide__Alternatives() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:206:1: ( ( ( rule__RelationSide__Group_0__0 ) ) | ( ( rule__RelationSide__TargetAssignment_1 ) ) ) + // InternalErDsl.g:222:1: ( ( ( rule__RelationSide__Group_0__0 ) ) | ( ( rule__RelationSide__TargetAssignment_1 ) ) ) int alt1=2; int LA1_0 = input.LA(1); @@ -571,14 +625,14 @@ else if ( (LA1_0==RULE_ID) ) { } switch (alt1) { case 1 : - // InternalErDsl.g:207:2: ( ( rule__RelationSide__Group_0__0 ) ) + // InternalErDsl.g:223:2: ( ( rule__RelationSide__Group_0__0 ) ) { - // InternalErDsl.g:207:2: ( ( rule__RelationSide__Group_0__0 ) ) - // InternalErDsl.g:208:3: ( rule__RelationSide__Group_0__0 ) + // InternalErDsl.g:223:2: ( ( rule__RelationSide__Group_0__0 ) ) + // InternalErDsl.g:224:3: ( rule__RelationSide__Group_0__0 ) { before(grammarAccess.getRelationSideAccess().getGroup_0()); - // InternalErDsl.g:209:3: ( rule__RelationSide__Group_0__0 ) - // InternalErDsl.g:209:4: rule__RelationSide__Group_0__0 + // InternalErDsl.g:225:3: ( rule__RelationSide__Group_0__0 ) + // InternalErDsl.g:225:4: rule__RelationSide__Group_0__0 { pushFollow(FOLLOW_2); rule__RelationSide__Group_0__0(); @@ -596,14 +650,14 @@ else if ( (LA1_0==RULE_ID) ) { } break; case 2 : - // InternalErDsl.g:213:2: ( ( rule__RelationSide__TargetAssignment_1 ) ) + // InternalErDsl.g:229:2: ( ( rule__RelationSide__TargetAssignment_1 ) ) { - // InternalErDsl.g:213:2: ( ( rule__RelationSide__TargetAssignment_1 ) ) - // InternalErDsl.g:214:3: ( rule__RelationSide__TargetAssignment_1 ) + // InternalErDsl.g:229:2: ( ( rule__RelationSide__TargetAssignment_1 ) ) + // InternalErDsl.g:230:3: ( rule__RelationSide__TargetAssignment_1 ) { before(grammarAccess.getRelationSideAccess().getTargetAssignment_1()); - // InternalErDsl.g:215:3: ( rule__RelationSide__TargetAssignment_1 ) - // InternalErDsl.g:215:4: rule__RelationSide__TargetAssignment_1 + // InternalErDsl.g:231:3: ( rule__RelationSide__TargetAssignment_1 ) + // InternalErDsl.g:231:4: rule__RelationSide__TargetAssignment_1 { pushFollow(FOLLOW_2); rule__RelationSide__TargetAssignment_1(); @@ -638,13 +692,13 @@ else if ( (LA1_0==RULE_ID) ) { // $ANTLR start "rule__RelationSide__CardinalityAlternatives_0_0_0" - // InternalErDsl.g:223:1: rule__RelationSide__CardinalityAlternatives_0_0_0 : ( ( '(0:1)' ) | ( '(1:1)' ) | ( '(0:N)' ) | ( '(1:N)' ) ); + // InternalErDsl.g:239:1: rule__RelationSide__CardinalityAlternatives_0_0_0 : ( ( '(0:1)' ) | ( '(1:1)' ) | ( '(0:N)' ) | ( '(1:N)' ) ); public final void rule__RelationSide__CardinalityAlternatives_0_0_0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:227:1: ( ( '(0:1)' ) | ( '(1:1)' ) | ( '(0:N)' ) | ( '(1:N)' ) ) + // InternalErDsl.g:243:1: ( ( '(0:1)' ) | ( '(1:1)' ) | ( '(0:N)' ) | ( '(1:N)' ) ) int alt2=4; switch ( input.LA(1) ) { case 11: @@ -676,10 +730,10 @@ public final void rule__RelationSide__CardinalityAlternatives_0_0_0() throws Rec switch (alt2) { case 1 : - // InternalErDsl.g:228:2: ( '(0:1)' ) + // InternalErDsl.g:244:2: ( '(0:1)' ) { - // InternalErDsl.g:228:2: ( '(0:1)' ) - // InternalErDsl.g:229:3: '(0:1)' + // InternalErDsl.g:244:2: ( '(0:1)' ) + // InternalErDsl.g:245:3: '(0:1)' { before(grammarAccess.getRelationSideAccess().getCardinality01Keyword_0_0_0_0()); match(input,11,FOLLOW_2); @@ -691,10 +745,10 @@ public final void rule__RelationSide__CardinalityAlternatives_0_0_0() throws Rec } break; case 2 : - // InternalErDsl.g:234:2: ( '(1:1)' ) + // InternalErDsl.g:250:2: ( '(1:1)' ) { - // InternalErDsl.g:234:2: ( '(1:1)' ) - // InternalErDsl.g:235:3: '(1:1)' + // InternalErDsl.g:250:2: ( '(1:1)' ) + // InternalErDsl.g:251:3: '(1:1)' { before(grammarAccess.getRelationSideAccess().getCardinality11Keyword_0_0_0_1()); match(input,12,FOLLOW_2); @@ -706,10 +760,10 @@ public final void rule__RelationSide__CardinalityAlternatives_0_0_0() throws Rec } break; case 3 : - // InternalErDsl.g:240:2: ( '(0:N)' ) + // InternalErDsl.g:256:2: ( '(0:N)' ) { - // InternalErDsl.g:240:2: ( '(0:N)' ) - // InternalErDsl.g:241:3: '(0:N)' + // InternalErDsl.g:256:2: ( '(0:N)' ) + // InternalErDsl.g:257:3: '(0:N)' { before(grammarAccess.getRelationSideAccess().getCardinality0NKeyword_0_0_0_2()); match(input,13,FOLLOW_2); @@ -721,10 +775,10 @@ public final void rule__RelationSide__CardinalityAlternatives_0_0_0() throws Rec } break; case 4 : - // InternalErDsl.g:246:2: ( '(1:N)' ) + // InternalErDsl.g:262:2: ( '(1:N)' ) { - // InternalErDsl.g:246:2: ( '(1:N)' ) - // InternalErDsl.g:247:3: '(1:N)' + // InternalErDsl.g:262:2: ( '(1:N)' ) + // InternalErDsl.g:263:3: '(1:N)' { before(grammarAccess.getRelationSideAccess().getCardinality1NKeyword_0_0_0_3()); match(input,14,FOLLOW_2); @@ -752,15 +806,232 @@ public final void rule__RelationSide__CardinalityAlternatives_0_0_0() throws Rec // $ANTLR end "rule__RelationSide__CardinalityAlternatives_0_0_0" + // $ANTLR start "rule__DataType__Alternatives" + // InternalErDsl.g:272:1: rule__DataType__Alternatives : ( ( ( 'int' ) ) | ( ( 'double' ) ) | ( ( 'money' ) ) | ( ( 'string' ) ) | ( ( 'boolean' ) ) | ( ( 'datetime' ) ) | ( ( 'file' ) ) ); + public final void rule__DataType__Alternatives() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalErDsl.g:276:1: ( ( ( 'int' ) ) | ( ( 'double' ) ) | ( ( 'money' ) ) | ( ( 'string' ) ) | ( ( 'boolean' ) ) | ( ( 'datetime' ) ) | ( ( 'file' ) ) ) + int alt3=7; + switch ( input.LA(1) ) { + case 15: + { + alt3=1; + } + break; + case 16: + { + alt3=2; + } + break; + case 17: + { + alt3=3; + } + break; + case 18: + { + alt3=4; + } + break; + case 19: + { + alt3=5; + } + break; + case 20: + { + alt3=6; + } + break; + case 21: + { + alt3=7; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 3, 0, input); + + throw nvae; + } + + switch (alt3) { + case 1 : + // InternalErDsl.g:277:2: ( ( 'int' ) ) + { + // InternalErDsl.g:277:2: ( ( 'int' ) ) + // InternalErDsl.g:278:3: ( 'int' ) + { + before(grammarAccess.getDataTypeAccess().getINTEnumLiteralDeclaration_0()); + // InternalErDsl.g:279:3: ( 'int' ) + // InternalErDsl.g:279:4: 'int' + { + match(input,15,FOLLOW_2); + + } + + after(grammarAccess.getDataTypeAccess().getINTEnumLiteralDeclaration_0()); + + } + + + } + break; + case 2 : + // InternalErDsl.g:283:2: ( ( 'double' ) ) + { + // InternalErDsl.g:283:2: ( ( 'double' ) ) + // InternalErDsl.g:284:3: ( 'double' ) + { + before(grammarAccess.getDataTypeAccess().getDOUBLEEnumLiteralDeclaration_1()); + // InternalErDsl.g:285:3: ( 'double' ) + // InternalErDsl.g:285:4: 'double' + { + match(input,16,FOLLOW_2); + + } + + after(grammarAccess.getDataTypeAccess().getDOUBLEEnumLiteralDeclaration_1()); + + } + + + } + break; + case 3 : + // InternalErDsl.g:289:2: ( ( 'money' ) ) + { + // InternalErDsl.g:289:2: ( ( 'money' ) ) + // InternalErDsl.g:290:3: ( 'money' ) + { + before(grammarAccess.getDataTypeAccess().getMONEYEnumLiteralDeclaration_2()); + // InternalErDsl.g:291:3: ( 'money' ) + // InternalErDsl.g:291:4: 'money' + { + match(input,17,FOLLOW_2); + + } + + after(grammarAccess.getDataTypeAccess().getMONEYEnumLiteralDeclaration_2()); + + } + + + } + break; + case 4 : + // InternalErDsl.g:295:2: ( ( 'string' ) ) + { + // InternalErDsl.g:295:2: ( ( 'string' ) ) + // InternalErDsl.g:296:3: ( 'string' ) + { + before(grammarAccess.getDataTypeAccess().getSTRINGEnumLiteralDeclaration_3()); + // InternalErDsl.g:297:3: ( 'string' ) + // InternalErDsl.g:297:4: 'string' + { + match(input,18,FOLLOW_2); + + } + + after(grammarAccess.getDataTypeAccess().getSTRINGEnumLiteralDeclaration_3()); + + } + + + } + break; + case 5 : + // InternalErDsl.g:301:2: ( ( 'boolean' ) ) + { + // InternalErDsl.g:301:2: ( ( 'boolean' ) ) + // InternalErDsl.g:302:3: ( 'boolean' ) + { + before(grammarAccess.getDataTypeAccess().getBOOLEANEnumLiteralDeclaration_4()); + // InternalErDsl.g:303:3: ( 'boolean' ) + // InternalErDsl.g:303:4: 'boolean' + { + match(input,19,FOLLOW_2); + + } + + after(grammarAccess.getDataTypeAccess().getBOOLEANEnumLiteralDeclaration_4()); + + } + + + } + break; + case 6 : + // InternalErDsl.g:307:2: ( ( 'datetime' ) ) + { + // InternalErDsl.g:307:2: ( ( 'datetime' ) ) + // InternalErDsl.g:308:3: ( 'datetime' ) + { + before(grammarAccess.getDataTypeAccess().getDATETIMEEnumLiteralDeclaration_5()); + // InternalErDsl.g:309:3: ( 'datetime' ) + // InternalErDsl.g:309:4: 'datetime' + { + match(input,20,FOLLOW_2); + + } + + after(grammarAccess.getDataTypeAccess().getDATETIMEEnumLiteralDeclaration_5()); + + } + + + } + break; + case 7 : + // InternalErDsl.g:313:2: ( ( 'file' ) ) + { + // InternalErDsl.g:313:2: ( ( 'file' ) ) + // InternalErDsl.g:314:3: ( 'file' ) + { + before(grammarAccess.getDataTypeAccess().getBLOBEnumLiteralDeclaration_6()); + // InternalErDsl.g:315:3: ( 'file' ) + // InternalErDsl.g:315:4: 'file' + { + match(input,21,FOLLOW_2); + + } + + after(grammarAccess.getDataTypeAccess().getBLOBEnumLiteralDeclaration_6()); + + } + + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__DataType__Alternatives" + + // $ANTLR start "rule__ERModel__Group__0" - // InternalErDsl.g:256:1: rule__ERModel__Group__0 : rule__ERModel__Group__0__Impl rule__ERModel__Group__1 ; + // InternalErDsl.g:323:1: rule__ERModel__Group__0 : rule__ERModel__Group__0__Impl rule__ERModel__Group__1 ; public final void rule__ERModel__Group__0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:260:1: ( rule__ERModel__Group__0__Impl rule__ERModel__Group__1 ) - // InternalErDsl.g:261:2: rule__ERModel__Group__0__Impl rule__ERModel__Group__1 + // InternalErDsl.g:327:1: ( rule__ERModel__Group__0__Impl rule__ERModel__Group__1 ) + // InternalErDsl.g:328:2: rule__ERModel__Group__0__Impl rule__ERModel__Group__1 { pushFollow(FOLLOW_3); rule__ERModel__Group__0__Impl(); @@ -791,21 +1062,21 @@ public final void rule__ERModel__Group__0() throws RecognitionException { // $ANTLR start "rule__ERModel__Group__0__Impl" - // InternalErDsl.g:268:1: rule__ERModel__Group__0__Impl : ( ( rule__ERModel__DomainAssignment_0 ) ) ; + // InternalErDsl.g:335:1: rule__ERModel__Group__0__Impl : ( ( rule__ERModel__DomainAssignment_0 ) ) ; public final void rule__ERModel__Group__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:272:1: ( ( ( rule__ERModel__DomainAssignment_0 ) ) ) - // InternalErDsl.g:273:1: ( ( rule__ERModel__DomainAssignment_0 ) ) + // InternalErDsl.g:339:1: ( ( ( rule__ERModel__DomainAssignment_0 ) ) ) + // InternalErDsl.g:340:1: ( ( rule__ERModel__DomainAssignment_0 ) ) { - // InternalErDsl.g:273:1: ( ( rule__ERModel__DomainAssignment_0 ) ) - // InternalErDsl.g:274:2: ( rule__ERModel__DomainAssignment_0 ) + // InternalErDsl.g:340:1: ( ( rule__ERModel__DomainAssignment_0 ) ) + // InternalErDsl.g:341:2: ( rule__ERModel__DomainAssignment_0 ) { before(grammarAccess.getERModelAccess().getDomainAssignment_0()); - // InternalErDsl.g:275:2: ( rule__ERModel__DomainAssignment_0 ) - // InternalErDsl.g:275:3: rule__ERModel__DomainAssignment_0 + // InternalErDsl.g:342:2: ( rule__ERModel__DomainAssignment_0 ) + // InternalErDsl.g:342:3: rule__ERModel__DomainAssignment_0 { pushFollow(FOLLOW_2); rule__ERModel__DomainAssignment_0(); @@ -838,14 +1109,14 @@ public final void rule__ERModel__Group__0__Impl() throws RecognitionException { // $ANTLR start "rule__ERModel__Group__1" - // InternalErDsl.g:283:1: rule__ERModel__Group__1 : rule__ERModel__Group__1__Impl rule__ERModel__Group__2 ; + // InternalErDsl.g:350:1: rule__ERModel__Group__1 : rule__ERModel__Group__1__Impl rule__ERModel__Group__2 ; public final void rule__ERModel__Group__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:287:1: ( rule__ERModel__Group__1__Impl rule__ERModel__Group__2 ) - // InternalErDsl.g:288:2: rule__ERModel__Group__1__Impl rule__ERModel__Group__2 + // InternalErDsl.g:354:1: ( rule__ERModel__Group__1__Impl rule__ERModel__Group__2 ) + // InternalErDsl.g:355:2: rule__ERModel__Group__1__Impl rule__ERModel__Group__2 { pushFollow(FOLLOW_4); rule__ERModel__Group__1__Impl(); @@ -876,20 +1147,20 @@ public final void rule__ERModel__Group__1() throws RecognitionException { // $ANTLR start "rule__ERModel__Group__1__Impl" - // InternalErDsl.g:295:1: rule__ERModel__Group__1__Impl : ( ';' ) ; + // InternalErDsl.g:362:1: rule__ERModel__Group__1__Impl : ( ';' ) ; public final void rule__ERModel__Group__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:299:1: ( ( ';' ) ) - // InternalErDsl.g:300:1: ( ';' ) + // InternalErDsl.g:366:1: ( ( ';' ) ) + // InternalErDsl.g:367:1: ( ';' ) { - // InternalErDsl.g:300:1: ( ';' ) - // InternalErDsl.g:301:2: ';' + // InternalErDsl.g:367:1: ( ';' ) + // InternalErDsl.g:368:2: ';' { before(grammarAccess.getERModelAccess().getSemicolonKeyword_1()); - match(input,15,FOLLOW_2); + match(input,22,FOLLOW_2); after(grammarAccess.getERModelAccess().getSemicolonKeyword_1()); } @@ -913,14 +1184,14 @@ public final void rule__ERModel__Group__1__Impl() throws RecognitionException { // $ANTLR start "rule__ERModel__Group__2" - // InternalErDsl.g:310:1: rule__ERModel__Group__2 : rule__ERModel__Group__2__Impl rule__ERModel__Group__3 ; + // InternalErDsl.g:377:1: rule__ERModel__Group__2 : rule__ERModel__Group__2__Impl rule__ERModel__Group__3 ; public final void rule__ERModel__Group__2() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:314:1: ( rule__ERModel__Group__2__Impl rule__ERModel__Group__3 ) - // InternalErDsl.g:315:2: rule__ERModel__Group__2__Impl rule__ERModel__Group__3 + // InternalErDsl.g:381:1: ( rule__ERModel__Group__2__Impl rule__ERModel__Group__3 ) + // InternalErDsl.g:382:2: rule__ERModel__Group__2__Impl rule__ERModel__Group__3 { pushFollow(FOLLOW_5); rule__ERModel__Group__2__Impl(); @@ -951,21 +1222,21 @@ public final void rule__ERModel__Group__2() throws RecognitionException { // $ANTLR start "rule__ERModel__Group__2__Impl" - // InternalErDsl.g:322:1: rule__ERModel__Group__2__Impl : ( ( rule__ERModel__Group_2__0 ) ) ; + // InternalErDsl.g:389:1: rule__ERModel__Group__2__Impl : ( ( rule__ERModel__Group_2__0 ) ) ; public final void rule__ERModel__Group__2__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:326:1: ( ( ( rule__ERModel__Group_2__0 ) ) ) - // InternalErDsl.g:327:1: ( ( rule__ERModel__Group_2__0 ) ) + // InternalErDsl.g:393:1: ( ( ( rule__ERModel__Group_2__0 ) ) ) + // InternalErDsl.g:394:1: ( ( rule__ERModel__Group_2__0 ) ) { - // InternalErDsl.g:327:1: ( ( rule__ERModel__Group_2__0 ) ) - // InternalErDsl.g:328:2: ( rule__ERModel__Group_2__0 ) + // InternalErDsl.g:394:1: ( ( rule__ERModel__Group_2__0 ) ) + // InternalErDsl.g:395:2: ( rule__ERModel__Group_2__0 ) { before(grammarAccess.getERModelAccess().getGroup_2()); - // InternalErDsl.g:329:2: ( rule__ERModel__Group_2__0 ) - // InternalErDsl.g:329:3: rule__ERModel__Group_2__0 + // InternalErDsl.g:396:2: ( rule__ERModel__Group_2__0 ) + // InternalErDsl.g:396:3: rule__ERModel__Group_2__0 { pushFollow(FOLLOW_2); rule__ERModel__Group_2__0(); @@ -998,14 +1269,14 @@ public final void rule__ERModel__Group__2__Impl() throws RecognitionException { // $ANTLR start "rule__ERModel__Group__3" - // InternalErDsl.g:337:1: rule__ERModel__Group__3 : rule__ERModel__Group__3__Impl rule__ERModel__Group__4 ; + // InternalErDsl.g:404:1: rule__ERModel__Group__3 : rule__ERModel__Group__3__Impl rule__ERModel__Group__4 ; public final void rule__ERModel__Group__3() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:341:1: ( rule__ERModel__Group__3__Impl rule__ERModel__Group__4 ) - // InternalErDsl.g:342:2: rule__ERModel__Group__3__Impl rule__ERModel__Group__4 + // InternalErDsl.g:408:1: ( rule__ERModel__Group__3__Impl rule__ERModel__Group__4 ) + // InternalErDsl.g:409:2: rule__ERModel__Group__3__Impl rule__ERModel__Group__4 { pushFollow(FOLLOW_6); rule__ERModel__Group__3__Impl(); @@ -1036,24 +1307,24 @@ public final void rule__ERModel__Group__3() throws RecognitionException { // $ANTLR start "rule__ERModel__Group__3__Impl" - // InternalErDsl.g:349:1: rule__ERModel__Group__3__Impl : ( ( ( rule__ERModel__EntitiesAssignment_3 ) ) ( ( rule__ERModel__EntitiesAssignment_3 )* ) ) ; + // InternalErDsl.g:416:1: rule__ERModel__Group__3__Impl : ( ( ( rule__ERModel__EntitiesAssignment_3 ) ) ( ( rule__ERModel__EntitiesAssignment_3 )* ) ) ; public final void rule__ERModel__Group__3__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:353:1: ( ( ( ( rule__ERModel__EntitiesAssignment_3 ) ) ( ( rule__ERModel__EntitiesAssignment_3 )* ) ) ) - // InternalErDsl.g:354:1: ( ( ( rule__ERModel__EntitiesAssignment_3 ) ) ( ( rule__ERModel__EntitiesAssignment_3 )* ) ) + // InternalErDsl.g:420:1: ( ( ( ( rule__ERModel__EntitiesAssignment_3 ) ) ( ( rule__ERModel__EntitiesAssignment_3 )* ) ) ) + // InternalErDsl.g:421:1: ( ( ( rule__ERModel__EntitiesAssignment_3 ) ) ( ( rule__ERModel__EntitiesAssignment_3 )* ) ) { - // InternalErDsl.g:354:1: ( ( ( rule__ERModel__EntitiesAssignment_3 ) ) ( ( rule__ERModel__EntitiesAssignment_3 )* ) ) - // InternalErDsl.g:355:2: ( ( rule__ERModel__EntitiesAssignment_3 ) ) ( ( rule__ERModel__EntitiesAssignment_3 )* ) + // InternalErDsl.g:421:1: ( ( ( rule__ERModel__EntitiesAssignment_3 ) ) ( ( rule__ERModel__EntitiesAssignment_3 )* ) ) + // InternalErDsl.g:422:2: ( ( rule__ERModel__EntitiesAssignment_3 ) ) ( ( rule__ERModel__EntitiesAssignment_3 )* ) { - // InternalErDsl.g:355:2: ( ( rule__ERModel__EntitiesAssignment_3 ) ) - // InternalErDsl.g:356:3: ( rule__ERModel__EntitiesAssignment_3 ) + // InternalErDsl.g:422:2: ( ( rule__ERModel__EntitiesAssignment_3 ) ) + // InternalErDsl.g:423:3: ( rule__ERModel__EntitiesAssignment_3 ) { before(grammarAccess.getERModelAccess().getEntitiesAssignment_3()); - // InternalErDsl.g:357:3: ( rule__ERModel__EntitiesAssignment_3 ) - // InternalErDsl.g:357:4: rule__ERModel__EntitiesAssignment_3 + // InternalErDsl.g:424:3: ( rule__ERModel__EntitiesAssignment_3 ) + // InternalErDsl.g:424:4: rule__ERModel__EntitiesAssignment_3 { pushFollow(FOLLOW_7); rule__ERModel__EntitiesAssignment_3(); @@ -1067,24 +1338,24 @@ public final void rule__ERModel__Group__3__Impl() throws RecognitionException { } - // InternalErDsl.g:360:2: ( ( rule__ERModel__EntitiesAssignment_3 )* ) - // InternalErDsl.g:361:3: ( rule__ERModel__EntitiesAssignment_3 )* + // InternalErDsl.g:427:2: ( ( rule__ERModel__EntitiesAssignment_3 )* ) + // InternalErDsl.g:428:3: ( rule__ERModel__EntitiesAssignment_3 )* { before(grammarAccess.getERModelAccess().getEntitiesAssignment_3()); - // InternalErDsl.g:362:3: ( rule__ERModel__EntitiesAssignment_3 )* - loop3: + // InternalErDsl.g:429:3: ( rule__ERModel__EntitiesAssignment_3 )* + loop4: do { - int alt3=2; - int LA3_0 = input.LA(1); + int alt4=2; + int LA4_0 = input.LA(1); - if ( (LA3_0==RULE_ID) ) { - alt3=1; + if ( (LA4_0==RULE_ID) ) { + alt4=1; } - switch (alt3) { + switch (alt4) { case 1 : - // InternalErDsl.g:362:4: rule__ERModel__EntitiesAssignment_3 + // InternalErDsl.g:429:4: rule__ERModel__EntitiesAssignment_3 { pushFollow(FOLLOW_7); rule__ERModel__EntitiesAssignment_3(); @@ -1096,7 +1367,7 @@ public final void rule__ERModel__Group__3__Impl() throws RecognitionException { break; default : - break loop3; + break loop4; } } while (true); @@ -1126,14 +1397,14 @@ public final void rule__ERModel__Group__3__Impl() throws RecognitionException { // $ANTLR start "rule__ERModel__Group__4" - // InternalErDsl.g:371:1: rule__ERModel__Group__4 : rule__ERModel__Group__4__Impl rule__ERModel__Group__5 ; + // InternalErDsl.g:438:1: rule__ERModel__Group__4 : rule__ERModel__Group__4__Impl rule__ERModel__Group__5 ; public final void rule__ERModel__Group__4() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:375:1: ( rule__ERModel__Group__4__Impl rule__ERModel__Group__5 ) - // InternalErDsl.g:376:2: rule__ERModel__Group__4__Impl rule__ERModel__Group__5 + // InternalErDsl.g:442:1: ( rule__ERModel__Group__4__Impl rule__ERModel__Group__5 ) + // InternalErDsl.g:443:2: rule__ERModel__Group__4__Impl rule__ERModel__Group__5 { pushFollow(FOLLOW_8); rule__ERModel__Group__4__Impl(); @@ -1164,21 +1435,21 @@ public final void rule__ERModel__Group__4() throws RecognitionException { // $ANTLR start "rule__ERModel__Group__4__Impl" - // InternalErDsl.g:383:1: rule__ERModel__Group__4__Impl : ( ( rule__ERModel__Group_4__0 ) ) ; + // InternalErDsl.g:450:1: rule__ERModel__Group__4__Impl : ( ( rule__ERModel__Group_4__0 ) ) ; public final void rule__ERModel__Group__4__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:387:1: ( ( ( rule__ERModel__Group_4__0 ) ) ) - // InternalErDsl.g:388:1: ( ( rule__ERModel__Group_4__0 ) ) + // InternalErDsl.g:454:1: ( ( ( rule__ERModel__Group_4__0 ) ) ) + // InternalErDsl.g:455:1: ( ( rule__ERModel__Group_4__0 ) ) { - // InternalErDsl.g:388:1: ( ( rule__ERModel__Group_4__0 ) ) - // InternalErDsl.g:389:2: ( rule__ERModel__Group_4__0 ) + // InternalErDsl.g:455:1: ( ( rule__ERModel__Group_4__0 ) ) + // InternalErDsl.g:456:2: ( rule__ERModel__Group_4__0 ) { before(grammarAccess.getERModelAccess().getGroup_4()); - // InternalErDsl.g:390:2: ( rule__ERModel__Group_4__0 ) - // InternalErDsl.g:390:3: rule__ERModel__Group_4__0 + // InternalErDsl.g:457:2: ( rule__ERModel__Group_4__0 ) + // InternalErDsl.g:457:3: rule__ERModel__Group_4__0 { pushFollow(FOLLOW_2); rule__ERModel__Group_4__0(); @@ -1211,14 +1482,14 @@ public final void rule__ERModel__Group__4__Impl() throws RecognitionException { // $ANTLR start "rule__ERModel__Group__5" - // InternalErDsl.g:398:1: rule__ERModel__Group__5 : rule__ERModel__Group__5__Impl rule__ERModel__Group__6 ; + // InternalErDsl.g:465:1: rule__ERModel__Group__5 : rule__ERModel__Group__5__Impl rule__ERModel__Group__6 ; public final void rule__ERModel__Group__5() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:402:1: ( rule__ERModel__Group__5__Impl rule__ERModel__Group__6 ) - // InternalErDsl.g:403:2: rule__ERModel__Group__5__Impl rule__ERModel__Group__6 + // InternalErDsl.g:469:1: ( rule__ERModel__Group__5__Impl rule__ERModel__Group__6 ) + // InternalErDsl.g:470:2: rule__ERModel__Group__5__Impl rule__ERModel__Group__6 { pushFollow(FOLLOW_9); rule__ERModel__Group__5__Impl(); @@ -1249,21 +1520,21 @@ public final void rule__ERModel__Group__5() throws RecognitionException { // $ANTLR start "rule__ERModel__Group__5__Impl" - // InternalErDsl.g:410:1: rule__ERModel__Group__5__Impl : ( ( rule__ERModel__Group_5__0 ) ) ; + // InternalErDsl.g:477:1: rule__ERModel__Group__5__Impl : ( ( rule__ERModel__Group_5__0 ) ) ; public final void rule__ERModel__Group__5__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:414:1: ( ( ( rule__ERModel__Group_5__0 ) ) ) - // InternalErDsl.g:415:1: ( ( rule__ERModel__Group_5__0 ) ) + // InternalErDsl.g:481:1: ( ( ( rule__ERModel__Group_5__0 ) ) ) + // InternalErDsl.g:482:1: ( ( rule__ERModel__Group_5__0 ) ) { - // InternalErDsl.g:415:1: ( ( rule__ERModel__Group_5__0 ) ) - // InternalErDsl.g:416:2: ( rule__ERModel__Group_5__0 ) + // InternalErDsl.g:482:1: ( ( rule__ERModel__Group_5__0 ) ) + // InternalErDsl.g:483:2: ( rule__ERModel__Group_5__0 ) { before(grammarAccess.getERModelAccess().getGroup_5()); - // InternalErDsl.g:417:2: ( rule__ERModel__Group_5__0 ) - // InternalErDsl.g:417:3: rule__ERModel__Group_5__0 + // InternalErDsl.g:484:2: ( rule__ERModel__Group_5__0 ) + // InternalErDsl.g:484:3: rule__ERModel__Group_5__0 { pushFollow(FOLLOW_2); rule__ERModel__Group_5__0(); @@ -1296,14 +1567,14 @@ public final void rule__ERModel__Group__5__Impl() throws RecognitionException { // $ANTLR start "rule__ERModel__Group__6" - // InternalErDsl.g:425:1: rule__ERModel__Group__6 : rule__ERModel__Group__6__Impl rule__ERModel__Group__7 ; + // InternalErDsl.g:492:1: rule__ERModel__Group__6 : rule__ERModel__Group__6__Impl rule__ERModel__Group__7 ; public final void rule__ERModel__Group__6() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:429:1: ( rule__ERModel__Group__6__Impl rule__ERModel__Group__7 ) - // InternalErDsl.g:430:2: rule__ERModel__Group__6__Impl rule__ERModel__Group__7 + // InternalErDsl.g:496:1: ( rule__ERModel__Group__6__Impl rule__ERModel__Group__7 ) + // InternalErDsl.g:497:2: rule__ERModel__Group__6__Impl rule__ERModel__Group__7 { pushFollow(FOLLOW_9); rule__ERModel__Group__6__Impl(); @@ -1334,33 +1605,33 @@ public final void rule__ERModel__Group__6() throws RecognitionException { // $ANTLR start "rule__ERModel__Group__6__Impl" - // InternalErDsl.g:437:1: rule__ERModel__Group__6__Impl : ( ( rule__ERModel__RelationsAssignment_6 )* ) ; + // InternalErDsl.g:504:1: rule__ERModel__Group__6__Impl : ( ( rule__ERModel__RelationsAssignment_6 )* ) ; public final void rule__ERModel__Group__6__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:441:1: ( ( ( rule__ERModel__RelationsAssignment_6 )* ) ) - // InternalErDsl.g:442:1: ( ( rule__ERModel__RelationsAssignment_6 )* ) + // InternalErDsl.g:508:1: ( ( ( rule__ERModel__RelationsAssignment_6 )* ) ) + // InternalErDsl.g:509:1: ( ( rule__ERModel__RelationsAssignment_6 )* ) { - // InternalErDsl.g:442:1: ( ( rule__ERModel__RelationsAssignment_6 )* ) - // InternalErDsl.g:443:2: ( rule__ERModel__RelationsAssignment_6 )* + // InternalErDsl.g:509:1: ( ( rule__ERModel__RelationsAssignment_6 )* ) + // InternalErDsl.g:510:2: ( rule__ERModel__RelationsAssignment_6 )* { before(grammarAccess.getERModelAccess().getRelationsAssignment_6()); - // InternalErDsl.g:444:2: ( rule__ERModel__RelationsAssignment_6 )* - loop4: + // InternalErDsl.g:511:2: ( rule__ERModel__RelationsAssignment_6 )* + loop5: do { - int alt4=2; - int LA4_0 = input.LA(1); + int alt5=2; + int LA5_0 = input.LA(1); - if ( (LA4_0==RULE_ID||LA4_0==23) ) { - alt4=1; + if ( (LA5_0==RULE_ID||LA5_0==30) ) { + alt5=1; } - switch (alt4) { + switch (alt5) { case 1 : - // InternalErDsl.g:444:3: rule__ERModel__RelationsAssignment_6 + // InternalErDsl.g:511:3: rule__ERModel__RelationsAssignment_6 { pushFollow(FOLLOW_10); rule__ERModel__RelationsAssignment_6(); @@ -1372,7 +1643,7 @@ public final void rule__ERModel__Group__6__Impl() throws RecognitionException { break; default : - break loop4; + break loop5; } } while (true); @@ -1399,14 +1670,14 @@ public final void rule__ERModel__Group__6__Impl() throws RecognitionException { // $ANTLR start "rule__ERModel__Group__7" - // InternalErDsl.g:452:1: rule__ERModel__Group__7 : rule__ERModel__Group__7__Impl ; + // InternalErDsl.g:519:1: rule__ERModel__Group__7 : rule__ERModel__Group__7__Impl ; public final void rule__ERModel__Group__7() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:456:1: ( rule__ERModel__Group__7__Impl ) - // InternalErDsl.g:457:2: rule__ERModel__Group__7__Impl + // InternalErDsl.g:523:1: ( rule__ERModel__Group__7__Impl ) + // InternalErDsl.g:524:2: rule__ERModel__Group__7__Impl { pushFollow(FOLLOW_2); rule__ERModel__Group__7__Impl(); @@ -1432,21 +1703,21 @@ public final void rule__ERModel__Group__7() throws RecognitionException { // $ANTLR start "rule__ERModel__Group__7__Impl" - // InternalErDsl.g:463:1: rule__ERModel__Group__7__Impl : ( ( rule__ERModel__Group_7__0 ) ) ; + // InternalErDsl.g:530:1: rule__ERModel__Group__7__Impl : ( ( rule__ERModel__Group_7__0 ) ) ; public final void rule__ERModel__Group__7__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:467:1: ( ( ( rule__ERModel__Group_7__0 ) ) ) - // InternalErDsl.g:468:1: ( ( rule__ERModel__Group_7__0 ) ) + // InternalErDsl.g:534:1: ( ( ( rule__ERModel__Group_7__0 ) ) ) + // InternalErDsl.g:535:1: ( ( rule__ERModel__Group_7__0 ) ) { - // InternalErDsl.g:468:1: ( ( rule__ERModel__Group_7__0 ) ) - // InternalErDsl.g:469:2: ( rule__ERModel__Group_7__0 ) + // InternalErDsl.g:535:1: ( ( rule__ERModel__Group_7__0 ) ) + // InternalErDsl.g:536:2: ( rule__ERModel__Group_7__0 ) { before(grammarAccess.getERModelAccess().getGroup_7()); - // InternalErDsl.g:470:2: ( rule__ERModel__Group_7__0 ) - // InternalErDsl.g:470:3: rule__ERModel__Group_7__0 + // InternalErDsl.g:537:2: ( rule__ERModel__Group_7__0 ) + // InternalErDsl.g:537:3: rule__ERModel__Group_7__0 { pushFollow(FOLLOW_2); rule__ERModel__Group_7__0(); @@ -1479,14 +1750,14 @@ public final void rule__ERModel__Group__7__Impl() throws RecognitionException { // $ANTLR start "rule__ERModel__Group_2__0" - // InternalErDsl.g:479:1: rule__ERModel__Group_2__0 : rule__ERModel__Group_2__0__Impl rule__ERModel__Group_2__1 ; + // InternalErDsl.g:546:1: rule__ERModel__Group_2__0 : rule__ERModel__Group_2__0__Impl rule__ERModel__Group_2__1 ; public final void rule__ERModel__Group_2__0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:483:1: ( rule__ERModel__Group_2__0__Impl rule__ERModel__Group_2__1 ) - // InternalErDsl.g:484:2: rule__ERModel__Group_2__0__Impl rule__ERModel__Group_2__1 + // InternalErDsl.g:550:1: ( rule__ERModel__Group_2__0__Impl rule__ERModel__Group_2__1 ) + // InternalErDsl.g:551:2: rule__ERModel__Group_2__0__Impl rule__ERModel__Group_2__1 { pushFollow(FOLLOW_11); rule__ERModel__Group_2__0__Impl(); @@ -1517,20 +1788,20 @@ public final void rule__ERModel__Group_2__0() throws RecognitionException { // $ANTLR start "rule__ERModel__Group_2__0__Impl" - // InternalErDsl.g:491:1: rule__ERModel__Group_2__0__Impl : ( 'Entities' ) ; + // InternalErDsl.g:558:1: rule__ERModel__Group_2__0__Impl : ( 'Entities' ) ; public final void rule__ERModel__Group_2__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:495:1: ( ( 'Entities' ) ) - // InternalErDsl.g:496:1: ( 'Entities' ) + // InternalErDsl.g:562:1: ( ( 'Entities' ) ) + // InternalErDsl.g:563:1: ( 'Entities' ) { - // InternalErDsl.g:496:1: ( 'Entities' ) - // InternalErDsl.g:497:2: 'Entities' + // InternalErDsl.g:563:1: ( 'Entities' ) + // InternalErDsl.g:564:2: 'Entities' { before(grammarAccess.getERModelAccess().getEntitiesKeyword_2_0()); - match(input,16,FOLLOW_2); + match(input,23,FOLLOW_2); after(grammarAccess.getERModelAccess().getEntitiesKeyword_2_0()); } @@ -1554,14 +1825,14 @@ public final void rule__ERModel__Group_2__0__Impl() throws RecognitionException // $ANTLR start "rule__ERModel__Group_2__1" - // InternalErDsl.g:506:1: rule__ERModel__Group_2__1 : rule__ERModel__Group_2__1__Impl ; + // InternalErDsl.g:573:1: rule__ERModel__Group_2__1 : rule__ERModel__Group_2__1__Impl ; public final void rule__ERModel__Group_2__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:510:1: ( rule__ERModel__Group_2__1__Impl ) - // InternalErDsl.g:511:2: rule__ERModel__Group_2__1__Impl + // InternalErDsl.g:577:1: ( rule__ERModel__Group_2__1__Impl ) + // InternalErDsl.g:578:2: rule__ERModel__Group_2__1__Impl { pushFollow(FOLLOW_2); rule__ERModel__Group_2__1__Impl(); @@ -1587,20 +1858,20 @@ public final void rule__ERModel__Group_2__1() throws RecognitionException { // $ANTLR start "rule__ERModel__Group_2__1__Impl" - // InternalErDsl.g:517:1: rule__ERModel__Group_2__1__Impl : ( '{' ) ; + // InternalErDsl.g:584:1: rule__ERModel__Group_2__1__Impl : ( '{' ) ; public final void rule__ERModel__Group_2__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:521:1: ( ( '{' ) ) - // InternalErDsl.g:522:1: ( '{' ) + // InternalErDsl.g:588:1: ( ( '{' ) ) + // InternalErDsl.g:589:1: ( '{' ) { - // InternalErDsl.g:522:1: ( '{' ) - // InternalErDsl.g:523:2: '{' + // InternalErDsl.g:589:1: ( '{' ) + // InternalErDsl.g:590:2: '{' { before(grammarAccess.getERModelAccess().getLeftCurlyBracketKeyword_2_1()); - match(input,17,FOLLOW_2); + match(input,24,FOLLOW_2); after(grammarAccess.getERModelAccess().getLeftCurlyBracketKeyword_2_1()); } @@ -1624,14 +1895,14 @@ public final void rule__ERModel__Group_2__1__Impl() throws RecognitionException // $ANTLR start "rule__ERModel__Group_4__0" - // InternalErDsl.g:533:1: rule__ERModel__Group_4__0 : rule__ERModel__Group_4__0__Impl rule__ERModel__Group_4__1 ; + // InternalErDsl.g:600:1: rule__ERModel__Group_4__0 : rule__ERModel__Group_4__0__Impl rule__ERModel__Group_4__1 ; public final void rule__ERModel__Group_4__0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:537:1: ( rule__ERModel__Group_4__0__Impl rule__ERModel__Group_4__1 ) - // InternalErDsl.g:538:2: rule__ERModel__Group_4__0__Impl rule__ERModel__Group_4__1 + // InternalErDsl.g:604:1: ( rule__ERModel__Group_4__0__Impl rule__ERModel__Group_4__1 ) + // InternalErDsl.g:605:2: rule__ERModel__Group_4__0__Impl rule__ERModel__Group_4__1 { pushFollow(FOLLOW_3); rule__ERModel__Group_4__0__Impl(); @@ -1662,20 +1933,20 @@ public final void rule__ERModel__Group_4__0() throws RecognitionException { // $ANTLR start "rule__ERModel__Group_4__0__Impl" - // InternalErDsl.g:545:1: rule__ERModel__Group_4__0__Impl : ( '}' ) ; + // InternalErDsl.g:612:1: rule__ERModel__Group_4__0__Impl : ( '}' ) ; public final void rule__ERModel__Group_4__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:549:1: ( ( '}' ) ) - // InternalErDsl.g:550:1: ( '}' ) + // InternalErDsl.g:616:1: ( ( '}' ) ) + // InternalErDsl.g:617:1: ( '}' ) { - // InternalErDsl.g:550:1: ( '}' ) - // InternalErDsl.g:551:2: '}' + // InternalErDsl.g:617:1: ( '}' ) + // InternalErDsl.g:618:2: '}' { before(grammarAccess.getERModelAccess().getRightCurlyBracketKeyword_4_0()); - match(input,18,FOLLOW_2); + match(input,25,FOLLOW_2); after(grammarAccess.getERModelAccess().getRightCurlyBracketKeyword_4_0()); } @@ -1699,14 +1970,14 @@ public final void rule__ERModel__Group_4__0__Impl() throws RecognitionException // $ANTLR start "rule__ERModel__Group_4__1" - // InternalErDsl.g:560:1: rule__ERModel__Group_4__1 : rule__ERModel__Group_4__1__Impl ; + // InternalErDsl.g:627:1: rule__ERModel__Group_4__1 : rule__ERModel__Group_4__1__Impl ; public final void rule__ERModel__Group_4__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:564:1: ( rule__ERModel__Group_4__1__Impl ) - // InternalErDsl.g:565:2: rule__ERModel__Group_4__1__Impl + // InternalErDsl.g:631:1: ( rule__ERModel__Group_4__1__Impl ) + // InternalErDsl.g:632:2: rule__ERModel__Group_4__1__Impl { pushFollow(FOLLOW_2); rule__ERModel__Group_4__1__Impl(); @@ -1732,20 +2003,20 @@ public final void rule__ERModel__Group_4__1() throws RecognitionException { // $ANTLR start "rule__ERModel__Group_4__1__Impl" - // InternalErDsl.g:571:1: rule__ERModel__Group_4__1__Impl : ( ';' ) ; + // InternalErDsl.g:638:1: rule__ERModel__Group_4__1__Impl : ( ';' ) ; public final void rule__ERModel__Group_4__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:575:1: ( ( ';' ) ) - // InternalErDsl.g:576:1: ( ';' ) + // InternalErDsl.g:642:1: ( ( ';' ) ) + // InternalErDsl.g:643:1: ( ';' ) { - // InternalErDsl.g:576:1: ( ';' ) - // InternalErDsl.g:577:2: ';' + // InternalErDsl.g:643:1: ( ';' ) + // InternalErDsl.g:644:2: ';' { before(grammarAccess.getERModelAccess().getSemicolonKeyword_4_1()); - match(input,15,FOLLOW_2); + match(input,22,FOLLOW_2); after(grammarAccess.getERModelAccess().getSemicolonKeyword_4_1()); } @@ -1769,14 +2040,14 @@ public final void rule__ERModel__Group_4__1__Impl() throws RecognitionException // $ANTLR start "rule__ERModel__Group_5__0" - // InternalErDsl.g:587:1: rule__ERModel__Group_5__0 : rule__ERModel__Group_5__0__Impl rule__ERModel__Group_5__1 ; + // InternalErDsl.g:654:1: rule__ERModel__Group_5__0 : rule__ERModel__Group_5__0__Impl rule__ERModel__Group_5__1 ; public final void rule__ERModel__Group_5__0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:591:1: ( rule__ERModel__Group_5__0__Impl rule__ERModel__Group_5__1 ) - // InternalErDsl.g:592:2: rule__ERModel__Group_5__0__Impl rule__ERModel__Group_5__1 + // InternalErDsl.g:658:1: ( rule__ERModel__Group_5__0__Impl rule__ERModel__Group_5__1 ) + // InternalErDsl.g:659:2: rule__ERModel__Group_5__0__Impl rule__ERModel__Group_5__1 { pushFollow(FOLLOW_11); rule__ERModel__Group_5__0__Impl(); @@ -1807,20 +2078,20 @@ public final void rule__ERModel__Group_5__0() throws RecognitionException { // $ANTLR start "rule__ERModel__Group_5__0__Impl" - // InternalErDsl.g:599:1: rule__ERModel__Group_5__0__Impl : ( 'Relationships' ) ; + // InternalErDsl.g:666:1: rule__ERModel__Group_5__0__Impl : ( 'Relationships' ) ; public final void rule__ERModel__Group_5__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:603:1: ( ( 'Relationships' ) ) - // InternalErDsl.g:604:1: ( 'Relationships' ) + // InternalErDsl.g:670:1: ( ( 'Relationships' ) ) + // InternalErDsl.g:671:1: ( 'Relationships' ) { - // InternalErDsl.g:604:1: ( 'Relationships' ) - // InternalErDsl.g:605:2: 'Relationships' + // InternalErDsl.g:671:1: ( 'Relationships' ) + // InternalErDsl.g:672:2: 'Relationships' { before(grammarAccess.getERModelAccess().getRelationshipsKeyword_5_0()); - match(input,19,FOLLOW_2); + match(input,26,FOLLOW_2); after(grammarAccess.getERModelAccess().getRelationshipsKeyword_5_0()); } @@ -1844,14 +2115,14 @@ public final void rule__ERModel__Group_5__0__Impl() throws RecognitionException // $ANTLR start "rule__ERModel__Group_5__1" - // InternalErDsl.g:614:1: rule__ERModel__Group_5__1 : rule__ERModel__Group_5__1__Impl ; + // InternalErDsl.g:681:1: rule__ERModel__Group_5__1 : rule__ERModel__Group_5__1__Impl ; public final void rule__ERModel__Group_5__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:618:1: ( rule__ERModel__Group_5__1__Impl ) - // InternalErDsl.g:619:2: rule__ERModel__Group_5__1__Impl + // InternalErDsl.g:685:1: ( rule__ERModel__Group_5__1__Impl ) + // InternalErDsl.g:686:2: rule__ERModel__Group_5__1__Impl { pushFollow(FOLLOW_2); rule__ERModel__Group_5__1__Impl(); @@ -1877,20 +2148,20 @@ public final void rule__ERModel__Group_5__1() throws RecognitionException { // $ANTLR start "rule__ERModel__Group_5__1__Impl" - // InternalErDsl.g:625:1: rule__ERModel__Group_5__1__Impl : ( '{' ) ; + // InternalErDsl.g:692:1: rule__ERModel__Group_5__1__Impl : ( '{' ) ; public final void rule__ERModel__Group_5__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:629:1: ( ( '{' ) ) - // InternalErDsl.g:630:1: ( '{' ) + // InternalErDsl.g:696:1: ( ( '{' ) ) + // InternalErDsl.g:697:1: ( '{' ) { - // InternalErDsl.g:630:1: ( '{' ) - // InternalErDsl.g:631:2: '{' + // InternalErDsl.g:697:1: ( '{' ) + // InternalErDsl.g:698:2: '{' { before(grammarAccess.getERModelAccess().getLeftCurlyBracketKeyword_5_1()); - match(input,17,FOLLOW_2); + match(input,24,FOLLOW_2); after(grammarAccess.getERModelAccess().getLeftCurlyBracketKeyword_5_1()); } @@ -1914,14 +2185,14 @@ public final void rule__ERModel__Group_5__1__Impl() throws RecognitionException // $ANTLR start "rule__ERModel__Group_7__0" - // InternalErDsl.g:641:1: rule__ERModel__Group_7__0 : rule__ERModel__Group_7__0__Impl rule__ERModel__Group_7__1 ; + // InternalErDsl.g:708:1: rule__ERModel__Group_7__0 : rule__ERModel__Group_7__0__Impl rule__ERModel__Group_7__1 ; public final void rule__ERModel__Group_7__0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:645:1: ( rule__ERModel__Group_7__0__Impl rule__ERModel__Group_7__1 ) - // InternalErDsl.g:646:2: rule__ERModel__Group_7__0__Impl rule__ERModel__Group_7__1 + // InternalErDsl.g:712:1: ( rule__ERModel__Group_7__0__Impl rule__ERModel__Group_7__1 ) + // InternalErDsl.g:713:2: rule__ERModel__Group_7__0__Impl rule__ERModel__Group_7__1 { pushFollow(FOLLOW_3); rule__ERModel__Group_7__0__Impl(); @@ -1952,20 +2223,20 @@ public final void rule__ERModel__Group_7__0() throws RecognitionException { // $ANTLR start "rule__ERModel__Group_7__0__Impl" - // InternalErDsl.g:653:1: rule__ERModel__Group_7__0__Impl : ( '}' ) ; + // InternalErDsl.g:720:1: rule__ERModel__Group_7__0__Impl : ( '}' ) ; public final void rule__ERModel__Group_7__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:657:1: ( ( '}' ) ) - // InternalErDsl.g:658:1: ( '}' ) + // InternalErDsl.g:724:1: ( ( '}' ) ) + // InternalErDsl.g:725:1: ( '}' ) { - // InternalErDsl.g:658:1: ( '}' ) - // InternalErDsl.g:659:2: '}' + // InternalErDsl.g:725:1: ( '}' ) + // InternalErDsl.g:726:2: '}' { before(grammarAccess.getERModelAccess().getRightCurlyBracketKeyword_7_0()); - match(input,18,FOLLOW_2); + match(input,25,FOLLOW_2); after(grammarAccess.getERModelAccess().getRightCurlyBracketKeyword_7_0()); } @@ -1989,14 +2260,14 @@ public final void rule__ERModel__Group_7__0__Impl() throws RecognitionException // $ANTLR start "rule__ERModel__Group_7__1" - // InternalErDsl.g:668:1: rule__ERModel__Group_7__1 : rule__ERModel__Group_7__1__Impl ; + // InternalErDsl.g:735:1: rule__ERModel__Group_7__1 : rule__ERModel__Group_7__1__Impl ; public final void rule__ERModel__Group_7__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:672:1: ( rule__ERModel__Group_7__1__Impl ) - // InternalErDsl.g:673:2: rule__ERModel__Group_7__1__Impl + // InternalErDsl.g:739:1: ( rule__ERModel__Group_7__1__Impl ) + // InternalErDsl.g:740:2: rule__ERModel__Group_7__1__Impl { pushFollow(FOLLOW_2); rule__ERModel__Group_7__1__Impl(); @@ -2022,20 +2293,20 @@ public final void rule__ERModel__Group_7__1() throws RecognitionException { // $ANTLR start "rule__ERModel__Group_7__1__Impl" - // InternalErDsl.g:679:1: rule__ERModel__Group_7__1__Impl : ( ';' ) ; + // InternalErDsl.g:746:1: rule__ERModel__Group_7__1__Impl : ( ';' ) ; public final void rule__ERModel__Group_7__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:683:1: ( ( ';' ) ) - // InternalErDsl.g:684:1: ( ';' ) + // InternalErDsl.g:750:1: ( ( ';' ) ) + // InternalErDsl.g:751:1: ( ';' ) { - // InternalErDsl.g:684:1: ( ';' ) - // InternalErDsl.g:685:2: ';' + // InternalErDsl.g:751:1: ( ';' ) + // InternalErDsl.g:752:2: ';' { before(grammarAccess.getERModelAccess().getSemicolonKeyword_7_1()); - match(input,15,FOLLOW_2); + match(input,22,FOLLOW_2); after(grammarAccess.getERModelAccess().getSemicolonKeyword_7_1()); } @@ -2059,14 +2330,14 @@ public final void rule__ERModel__Group_7__1__Impl() throws RecognitionException // $ANTLR start "rule__Domain__Group__0" - // InternalErDsl.g:695:1: rule__Domain__Group__0 : rule__Domain__Group__0__Impl rule__Domain__Group__1 ; + // InternalErDsl.g:762:1: rule__Domain__Group__0 : rule__Domain__Group__0__Impl rule__Domain__Group__1 ; public final void rule__Domain__Group__0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:699:1: ( rule__Domain__Group__0__Impl rule__Domain__Group__1 ) - // InternalErDsl.g:700:2: rule__Domain__Group__0__Impl rule__Domain__Group__1 + // InternalErDsl.g:766:1: ( rule__Domain__Group__0__Impl rule__Domain__Group__1 ) + // InternalErDsl.g:767:2: rule__Domain__Group__0__Impl rule__Domain__Group__1 { pushFollow(FOLLOW_5); rule__Domain__Group__0__Impl(); @@ -2097,20 +2368,20 @@ public final void rule__Domain__Group__0() throws RecognitionException { // $ANTLR start "rule__Domain__Group__0__Impl" - // InternalErDsl.g:707:1: rule__Domain__Group__0__Impl : ( 'Domain' ) ; + // InternalErDsl.g:774:1: rule__Domain__Group__0__Impl : ( 'Domain' ) ; public final void rule__Domain__Group__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:711:1: ( ( 'Domain' ) ) - // InternalErDsl.g:712:1: ( 'Domain' ) + // InternalErDsl.g:778:1: ( ( 'Domain' ) ) + // InternalErDsl.g:779:1: ( 'Domain' ) { - // InternalErDsl.g:712:1: ( 'Domain' ) - // InternalErDsl.g:713:2: 'Domain' + // InternalErDsl.g:779:1: ( 'Domain' ) + // InternalErDsl.g:780:2: 'Domain' { before(grammarAccess.getDomainAccess().getDomainKeyword_0()); - match(input,20,FOLLOW_2); + match(input,27,FOLLOW_2); after(grammarAccess.getDomainAccess().getDomainKeyword_0()); } @@ -2134,14 +2405,14 @@ public final void rule__Domain__Group__0__Impl() throws RecognitionException { // $ANTLR start "rule__Domain__Group__1" - // InternalErDsl.g:722:1: rule__Domain__Group__1 : rule__Domain__Group__1__Impl ; + // InternalErDsl.g:789:1: rule__Domain__Group__1 : rule__Domain__Group__1__Impl ; public final void rule__Domain__Group__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:726:1: ( rule__Domain__Group__1__Impl ) - // InternalErDsl.g:727:2: rule__Domain__Group__1__Impl + // InternalErDsl.g:793:1: ( rule__Domain__Group__1__Impl ) + // InternalErDsl.g:794:2: rule__Domain__Group__1__Impl { pushFollow(FOLLOW_2); rule__Domain__Group__1__Impl(); @@ -2167,21 +2438,21 @@ public final void rule__Domain__Group__1() throws RecognitionException { // $ANTLR start "rule__Domain__Group__1__Impl" - // InternalErDsl.g:733:1: rule__Domain__Group__1__Impl : ( ( rule__Domain__NameAssignment_1 ) ) ; + // InternalErDsl.g:800:1: rule__Domain__Group__1__Impl : ( ( rule__Domain__NameAssignment_1 ) ) ; public final void rule__Domain__Group__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:737:1: ( ( ( rule__Domain__NameAssignment_1 ) ) ) - // InternalErDsl.g:738:1: ( ( rule__Domain__NameAssignment_1 ) ) + // InternalErDsl.g:804:1: ( ( ( rule__Domain__NameAssignment_1 ) ) ) + // InternalErDsl.g:805:1: ( ( rule__Domain__NameAssignment_1 ) ) { - // InternalErDsl.g:738:1: ( ( rule__Domain__NameAssignment_1 ) ) - // InternalErDsl.g:739:2: ( rule__Domain__NameAssignment_1 ) + // InternalErDsl.g:805:1: ( ( rule__Domain__NameAssignment_1 ) ) + // InternalErDsl.g:806:2: ( rule__Domain__NameAssignment_1 ) { before(grammarAccess.getDomainAccess().getNameAssignment_1()); - // InternalErDsl.g:740:2: ( rule__Domain__NameAssignment_1 ) - // InternalErDsl.g:740:3: rule__Domain__NameAssignment_1 + // InternalErDsl.g:807:2: ( rule__Domain__NameAssignment_1 ) + // InternalErDsl.g:807:3: rule__Domain__NameAssignment_1 { pushFollow(FOLLOW_2); rule__Domain__NameAssignment_1(); @@ -2214,14 +2485,14 @@ public final void rule__Domain__Group__1__Impl() throws RecognitionException { // $ANTLR start "rule__Attribute__Group__0" - // InternalErDsl.g:749:1: rule__Attribute__Group__0 : rule__Attribute__Group__0__Impl rule__Attribute__Group__1 ; + // InternalErDsl.g:816:1: rule__Attribute__Group__0 : rule__Attribute__Group__0__Impl rule__Attribute__Group__1 ; public final void rule__Attribute__Group__0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:753:1: ( rule__Attribute__Group__0__Impl rule__Attribute__Group__1 ) - // InternalErDsl.g:754:2: rule__Attribute__Group__0__Impl rule__Attribute__Group__1 + // InternalErDsl.g:820:1: ( rule__Attribute__Group__0__Impl rule__Attribute__Group__1 ) + // InternalErDsl.g:821:2: rule__Attribute__Group__0__Impl rule__Attribute__Group__1 { pushFollow(FOLLOW_12); rule__Attribute__Group__0__Impl(); @@ -2252,21 +2523,21 @@ public final void rule__Attribute__Group__0() throws RecognitionException { // $ANTLR start "rule__Attribute__Group__0__Impl" - // InternalErDsl.g:761:1: rule__Attribute__Group__0__Impl : ( ( rule__Attribute__NameAssignment_0 ) ) ; + // InternalErDsl.g:828:1: rule__Attribute__Group__0__Impl : ( ( rule__Attribute__NameAssignment_0 ) ) ; public final void rule__Attribute__Group__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:765:1: ( ( ( rule__Attribute__NameAssignment_0 ) ) ) - // InternalErDsl.g:766:1: ( ( rule__Attribute__NameAssignment_0 ) ) + // InternalErDsl.g:832:1: ( ( ( rule__Attribute__NameAssignment_0 ) ) ) + // InternalErDsl.g:833:1: ( ( rule__Attribute__NameAssignment_0 ) ) { - // InternalErDsl.g:766:1: ( ( rule__Attribute__NameAssignment_0 ) ) - // InternalErDsl.g:767:2: ( rule__Attribute__NameAssignment_0 ) + // InternalErDsl.g:833:1: ( ( rule__Attribute__NameAssignment_0 ) ) + // InternalErDsl.g:834:2: ( rule__Attribute__NameAssignment_0 ) { before(grammarAccess.getAttributeAccess().getNameAssignment_0()); - // InternalErDsl.g:768:2: ( rule__Attribute__NameAssignment_0 ) - // InternalErDsl.g:768:3: rule__Attribute__NameAssignment_0 + // InternalErDsl.g:835:2: ( rule__Attribute__NameAssignment_0 ) + // InternalErDsl.g:835:3: rule__Attribute__NameAssignment_0 { pushFollow(FOLLOW_2); rule__Attribute__NameAssignment_0(); @@ -2299,20 +2570,25 @@ public final void rule__Attribute__Group__0__Impl() throws RecognitionException // $ANTLR start "rule__Attribute__Group__1" - // InternalErDsl.g:776:1: rule__Attribute__Group__1 : rule__Attribute__Group__1__Impl ; + // InternalErDsl.g:843:1: rule__Attribute__Group__1 : rule__Attribute__Group__1__Impl rule__Attribute__Group__2 ; public final void rule__Attribute__Group__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:780:1: ( rule__Attribute__Group__1__Impl ) - // InternalErDsl.g:781:2: rule__Attribute__Group__1__Impl + // InternalErDsl.g:847:1: ( rule__Attribute__Group__1__Impl rule__Attribute__Group__2 ) + // InternalErDsl.g:848:2: rule__Attribute__Group__1__Impl rule__Attribute__Group__2 { - pushFollow(FOLLOW_2); + pushFollow(FOLLOW_13); rule__Attribute__Group__1__Impl(); state._fsp--; + pushFollow(FOLLOW_2); + rule__Attribute__Group__2(); + + state._fsp--; + } @@ -2332,32 +2608,112 @@ public final void rule__Attribute__Group__1() throws RecognitionException { // $ANTLR start "rule__Attribute__Group__1__Impl" - // InternalErDsl.g:787:1: rule__Attribute__Group__1__Impl : ( ( rule__Attribute__IsKeyAssignment_1 )? ) ; + // InternalErDsl.g:855:1: rule__Attribute__Group__1__Impl : ( ( rule__Attribute__TypeAssignment_1 ) ) ; public final void rule__Attribute__Group__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:791:1: ( ( ( rule__Attribute__IsKeyAssignment_1 )? ) ) - // InternalErDsl.g:792:1: ( ( rule__Attribute__IsKeyAssignment_1 )? ) + // InternalErDsl.g:859:1: ( ( ( rule__Attribute__TypeAssignment_1 ) ) ) + // InternalErDsl.g:860:1: ( ( rule__Attribute__TypeAssignment_1 ) ) + { + // InternalErDsl.g:860:1: ( ( rule__Attribute__TypeAssignment_1 ) ) + // InternalErDsl.g:861:2: ( rule__Attribute__TypeAssignment_1 ) + { + before(grammarAccess.getAttributeAccess().getTypeAssignment_1()); + // InternalErDsl.g:862:2: ( rule__Attribute__TypeAssignment_1 ) + // InternalErDsl.g:862:3: rule__Attribute__TypeAssignment_1 { - // InternalErDsl.g:792:1: ( ( rule__Attribute__IsKeyAssignment_1 )? ) - // InternalErDsl.g:793:2: ( rule__Attribute__IsKeyAssignment_1 )? + pushFollow(FOLLOW_2); + rule__Attribute__TypeAssignment_1(); + + state._fsp--; + + + } + + after(grammarAccess.getAttributeAccess().getTypeAssignment_1()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Attribute__Group__1__Impl" + + + // $ANTLR start "rule__Attribute__Group__2" + // InternalErDsl.g:870:1: rule__Attribute__Group__2 : rule__Attribute__Group__2__Impl ; + public final void rule__Attribute__Group__2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalErDsl.g:874:1: ( rule__Attribute__Group__2__Impl ) + // InternalErDsl.g:875:2: rule__Attribute__Group__2__Impl { - before(grammarAccess.getAttributeAccess().getIsKeyAssignment_1()); - // InternalErDsl.g:794:2: ( rule__Attribute__IsKeyAssignment_1 )? - int alt5=2; - int LA5_0 = input.LA(1); + pushFollow(FOLLOW_2); + rule__Attribute__Group__2__Impl(); + + state._fsp--; + - if ( (LA5_0==26) ) { - alt5=1; } - switch (alt5) { + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Attribute__Group__2" + + + // $ANTLR start "rule__Attribute__Group__2__Impl" + // InternalErDsl.g:881:1: rule__Attribute__Group__2__Impl : ( ( rule__Attribute__IsKeyAssignment_2 )? ) ; + public final void rule__Attribute__Group__2__Impl() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalErDsl.g:885:1: ( ( ( rule__Attribute__IsKeyAssignment_2 )? ) ) + // InternalErDsl.g:886:1: ( ( rule__Attribute__IsKeyAssignment_2 )? ) + { + // InternalErDsl.g:886:1: ( ( rule__Attribute__IsKeyAssignment_2 )? ) + // InternalErDsl.g:887:2: ( rule__Attribute__IsKeyAssignment_2 )? + { + before(grammarAccess.getAttributeAccess().getIsKeyAssignment_2()); + // InternalErDsl.g:888:2: ( rule__Attribute__IsKeyAssignment_2 )? + int alt6=2; + int LA6_0 = input.LA(1); + + if ( (LA6_0==33) ) { + alt6=1; + } + switch (alt6) { case 1 : - // InternalErDsl.g:794:3: rule__Attribute__IsKeyAssignment_1 + // InternalErDsl.g:888:3: rule__Attribute__IsKeyAssignment_2 { pushFollow(FOLLOW_2); - rule__Attribute__IsKeyAssignment_1(); + rule__Attribute__IsKeyAssignment_2(); state._fsp--; @@ -2367,7 +2723,7 @@ public final void rule__Attribute__Group__1__Impl() throws RecognitionException } - after(grammarAccess.getAttributeAccess().getIsKeyAssignment_1()); + after(grammarAccess.getAttributeAccess().getIsKeyAssignment_2()); } @@ -2386,20 +2742,20 @@ public final void rule__Attribute__Group__1__Impl() throws RecognitionException } return ; } - // $ANTLR end "rule__Attribute__Group__1__Impl" + // $ANTLR end "rule__Attribute__Group__2__Impl" // $ANTLR start "rule__Entity__Group__0" - // InternalErDsl.g:803:1: rule__Entity__Group__0 : rule__Entity__Group__0__Impl rule__Entity__Group__1 ; + // InternalErDsl.g:897:1: rule__Entity__Group__0 : rule__Entity__Group__0__Impl rule__Entity__Group__1 ; public final void rule__Entity__Group__0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:807:1: ( rule__Entity__Group__0__Impl rule__Entity__Group__1 ) - // InternalErDsl.g:808:2: rule__Entity__Group__0__Impl rule__Entity__Group__1 + // InternalErDsl.g:901:1: ( rule__Entity__Group__0__Impl rule__Entity__Group__1 ) + // InternalErDsl.g:902:2: rule__Entity__Group__0__Impl rule__Entity__Group__1 { - pushFollow(FOLLOW_13); + pushFollow(FOLLOW_14); rule__Entity__Group__0__Impl(); state._fsp--; @@ -2428,21 +2784,21 @@ public final void rule__Entity__Group__0() throws RecognitionException { // $ANTLR start "rule__Entity__Group__0__Impl" - // InternalErDsl.g:815:1: rule__Entity__Group__0__Impl : ( ( rule__Entity__NameAssignment_0 ) ) ; + // InternalErDsl.g:909:1: rule__Entity__Group__0__Impl : ( ( rule__Entity__NameAssignment_0 ) ) ; public final void rule__Entity__Group__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:819:1: ( ( ( rule__Entity__NameAssignment_0 ) ) ) - // InternalErDsl.g:820:1: ( ( rule__Entity__NameAssignment_0 ) ) + // InternalErDsl.g:913:1: ( ( ( rule__Entity__NameAssignment_0 ) ) ) + // InternalErDsl.g:914:1: ( ( rule__Entity__NameAssignment_0 ) ) { - // InternalErDsl.g:820:1: ( ( rule__Entity__NameAssignment_0 ) ) - // InternalErDsl.g:821:2: ( rule__Entity__NameAssignment_0 ) + // InternalErDsl.g:914:1: ( ( rule__Entity__NameAssignment_0 ) ) + // InternalErDsl.g:915:2: ( rule__Entity__NameAssignment_0 ) { before(grammarAccess.getEntityAccess().getNameAssignment_0()); - // InternalErDsl.g:822:2: ( rule__Entity__NameAssignment_0 ) - // InternalErDsl.g:822:3: rule__Entity__NameAssignment_0 + // InternalErDsl.g:916:2: ( rule__Entity__NameAssignment_0 ) + // InternalErDsl.g:916:3: rule__Entity__NameAssignment_0 { pushFollow(FOLLOW_2); rule__Entity__NameAssignment_0(); @@ -2475,16 +2831,16 @@ public final void rule__Entity__Group__0__Impl() throws RecognitionException { // $ANTLR start "rule__Entity__Group__1" - // InternalErDsl.g:830:1: rule__Entity__Group__1 : rule__Entity__Group__1__Impl rule__Entity__Group__2 ; + // InternalErDsl.g:924:1: rule__Entity__Group__1 : rule__Entity__Group__1__Impl rule__Entity__Group__2 ; public final void rule__Entity__Group__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:834:1: ( rule__Entity__Group__1__Impl rule__Entity__Group__2 ) - // InternalErDsl.g:835:2: rule__Entity__Group__1__Impl rule__Entity__Group__2 + // InternalErDsl.g:928:1: ( rule__Entity__Group__1__Impl rule__Entity__Group__2 ) + // InternalErDsl.g:929:2: rule__Entity__Group__1__Impl rule__Entity__Group__2 { - pushFollow(FOLLOW_13); + pushFollow(FOLLOW_14); rule__Entity__Group__1__Impl(); state._fsp--; @@ -2513,35 +2869,35 @@ public final void rule__Entity__Group__1() throws RecognitionException { // $ANTLR start "rule__Entity__Group__1__Impl" - // InternalErDsl.g:842:1: rule__Entity__Group__1__Impl : ( ( rule__Entity__Group_1__0 )* ) ; + // InternalErDsl.g:936:1: rule__Entity__Group__1__Impl : ( ( rule__Entity__Group_1__0 )* ) ; public final void rule__Entity__Group__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:846:1: ( ( ( rule__Entity__Group_1__0 )* ) ) - // InternalErDsl.g:847:1: ( ( rule__Entity__Group_1__0 )* ) + // InternalErDsl.g:940:1: ( ( ( rule__Entity__Group_1__0 )* ) ) + // InternalErDsl.g:941:1: ( ( rule__Entity__Group_1__0 )* ) { - // InternalErDsl.g:847:1: ( ( rule__Entity__Group_1__0 )* ) - // InternalErDsl.g:848:2: ( rule__Entity__Group_1__0 )* + // InternalErDsl.g:941:1: ( ( rule__Entity__Group_1__0 )* ) + // InternalErDsl.g:942:2: ( rule__Entity__Group_1__0 )* { before(grammarAccess.getEntityAccess().getGroup_1()); - // InternalErDsl.g:849:2: ( rule__Entity__Group_1__0 )* - loop6: + // InternalErDsl.g:943:2: ( rule__Entity__Group_1__0 )* + loop7: do { - int alt6=2; - int LA6_0 = input.LA(1); + int alt7=2; + int LA7_0 = input.LA(1); - if ( (LA6_0==21) ) { - alt6=1; + if ( (LA7_0==28) ) { + alt7=1; } - switch (alt6) { + switch (alt7) { case 1 : - // InternalErDsl.g:849:3: rule__Entity__Group_1__0 + // InternalErDsl.g:943:3: rule__Entity__Group_1__0 { - pushFollow(FOLLOW_14); + pushFollow(FOLLOW_15); rule__Entity__Group_1__0(); state._fsp--; @@ -2551,7 +2907,7 @@ public final void rule__Entity__Group__1__Impl() throws RecognitionException { break; default : - break loop6; + break loop7; } } while (true); @@ -2578,14 +2934,14 @@ public final void rule__Entity__Group__1__Impl() throws RecognitionException { // $ANTLR start "rule__Entity__Group__2" - // InternalErDsl.g:857:1: rule__Entity__Group__2 : rule__Entity__Group__2__Impl ; + // InternalErDsl.g:951:1: rule__Entity__Group__2 : rule__Entity__Group__2__Impl ; public final void rule__Entity__Group__2() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:861:1: ( rule__Entity__Group__2__Impl ) - // InternalErDsl.g:862:2: rule__Entity__Group__2__Impl + // InternalErDsl.g:955:1: ( rule__Entity__Group__2__Impl ) + // InternalErDsl.g:956:2: rule__Entity__Group__2__Impl { pushFollow(FOLLOW_2); rule__Entity__Group__2__Impl(); @@ -2611,29 +2967,29 @@ public final void rule__Entity__Group__2() throws RecognitionException { // $ANTLR start "rule__Entity__Group__2__Impl" - // InternalErDsl.g:868:1: rule__Entity__Group__2__Impl : ( ( rule__Entity__Group_2__0 )? ) ; + // InternalErDsl.g:962:1: rule__Entity__Group__2__Impl : ( ( rule__Entity__Group_2__0 )? ) ; public final void rule__Entity__Group__2__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:872:1: ( ( ( rule__Entity__Group_2__0 )? ) ) - // InternalErDsl.g:873:1: ( ( rule__Entity__Group_2__0 )? ) + // InternalErDsl.g:966:1: ( ( ( rule__Entity__Group_2__0 )? ) ) + // InternalErDsl.g:967:1: ( ( rule__Entity__Group_2__0 )? ) { - // InternalErDsl.g:873:1: ( ( rule__Entity__Group_2__0 )? ) - // InternalErDsl.g:874:2: ( rule__Entity__Group_2__0 )? + // InternalErDsl.g:967:1: ( ( rule__Entity__Group_2__0 )? ) + // InternalErDsl.g:968:2: ( rule__Entity__Group_2__0 )? { before(grammarAccess.getEntityAccess().getGroup_2()); - // InternalErDsl.g:875:2: ( rule__Entity__Group_2__0 )? - int alt7=2; - int LA7_0 = input.LA(1); + // InternalErDsl.g:969:2: ( rule__Entity__Group_2__0 )? + int alt8=2; + int LA8_0 = input.LA(1); - if ( (LA7_0==17) ) { - alt7=1; + if ( (LA8_0==24) ) { + alt8=1; } - switch (alt7) { + switch (alt8) { case 1 : - // InternalErDsl.g:875:3: rule__Entity__Group_2__0 + // InternalErDsl.g:969:3: rule__Entity__Group_2__0 { pushFollow(FOLLOW_2); rule__Entity__Group_2__0(); @@ -2669,14 +3025,14 @@ public final void rule__Entity__Group__2__Impl() throws RecognitionException { // $ANTLR start "rule__Entity__Group_1__0" - // InternalErDsl.g:884:1: rule__Entity__Group_1__0 : rule__Entity__Group_1__0__Impl rule__Entity__Group_1__1 ; + // InternalErDsl.g:978:1: rule__Entity__Group_1__0 : rule__Entity__Group_1__0__Impl rule__Entity__Group_1__1 ; public final void rule__Entity__Group_1__0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:888:1: ( rule__Entity__Group_1__0__Impl rule__Entity__Group_1__1 ) - // InternalErDsl.g:889:2: rule__Entity__Group_1__0__Impl rule__Entity__Group_1__1 + // InternalErDsl.g:982:1: ( rule__Entity__Group_1__0__Impl rule__Entity__Group_1__1 ) + // InternalErDsl.g:983:2: rule__Entity__Group_1__0__Impl rule__Entity__Group_1__1 { pushFollow(FOLLOW_5); rule__Entity__Group_1__0__Impl(); @@ -2707,20 +3063,20 @@ public final void rule__Entity__Group_1__0() throws RecognitionException { // $ANTLR start "rule__Entity__Group_1__0__Impl" - // InternalErDsl.g:896:1: rule__Entity__Group_1__0__Impl : ( 'is' ) ; + // InternalErDsl.g:990:1: rule__Entity__Group_1__0__Impl : ( 'is' ) ; public final void rule__Entity__Group_1__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:900:1: ( ( 'is' ) ) - // InternalErDsl.g:901:1: ( 'is' ) + // InternalErDsl.g:994:1: ( ( 'is' ) ) + // InternalErDsl.g:995:1: ( 'is' ) { - // InternalErDsl.g:901:1: ( 'is' ) - // InternalErDsl.g:902:2: 'is' + // InternalErDsl.g:995:1: ( 'is' ) + // InternalErDsl.g:996:2: 'is' { before(grammarAccess.getEntityAccess().getIsKeyword_1_0()); - match(input,21,FOLLOW_2); + match(input,28,FOLLOW_2); after(grammarAccess.getEntityAccess().getIsKeyword_1_0()); } @@ -2744,14 +3100,14 @@ public final void rule__Entity__Group_1__0__Impl() throws RecognitionException { // $ANTLR start "rule__Entity__Group_1__1" - // InternalErDsl.g:911:1: rule__Entity__Group_1__1 : rule__Entity__Group_1__1__Impl ; + // InternalErDsl.g:1005:1: rule__Entity__Group_1__1 : rule__Entity__Group_1__1__Impl ; public final void rule__Entity__Group_1__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:915:1: ( rule__Entity__Group_1__1__Impl ) - // InternalErDsl.g:916:2: rule__Entity__Group_1__1__Impl + // InternalErDsl.g:1009:1: ( rule__Entity__Group_1__1__Impl ) + // InternalErDsl.g:1010:2: rule__Entity__Group_1__1__Impl { pushFollow(FOLLOW_2); rule__Entity__Group_1__1__Impl(); @@ -2777,21 +3133,21 @@ public final void rule__Entity__Group_1__1() throws RecognitionException { // $ANTLR start "rule__Entity__Group_1__1__Impl" - // InternalErDsl.g:922:1: rule__Entity__Group_1__1__Impl : ( ( rule__Entity__IsAssignment_1_1 ) ) ; + // InternalErDsl.g:1016:1: rule__Entity__Group_1__1__Impl : ( ( rule__Entity__IsAssignment_1_1 ) ) ; public final void rule__Entity__Group_1__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:926:1: ( ( ( rule__Entity__IsAssignment_1_1 ) ) ) - // InternalErDsl.g:927:1: ( ( rule__Entity__IsAssignment_1_1 ) ) + // InternalErDsl.g:1020:1: ( ( ( rule__Entity__IsAssignment_1_1 ) ) ) + // InternalErDsl.g:1021:1: ( ( rule__Entity__IsAssignment_1_1 ) ) { - // InternalErDsl.g:927:1: ( ( rule__Entity__IsAssignment_1_1 ) ) - // InternalErDsl.g:928:2: ( rule__Entity__IsAssignment_1_1 ) + // InternalErDsl.g:1021:1: ( ( rule__Entity__IsAssignment_1_1 ) ) + // InternalErDsl.g:1022:2: ( rule__Entity__IsAssignment_1_1 ) { before(grammarAccess.getEntityAccess().getIsAssignment_1_1()); - // InternalErDsl.g:929:2: ( rule__Entity__IsAssignment_1_1 ) - // InternalErDsl.g:929:3: rule__Entity__IsAssignment_1_1 + // InternalErDsl.g:1023:2: ( rule__Entity__IsAssignment_1_1 ) + // InternalErDsl.g:1023:3: rule__Entity__IsAssignment_1_1 { pushFollow(FOLLOW_2); rule__Entity__IsAssignment_1_1(); @@ -2824,14 +3180,14 @@ public final void rule__Entity__Group_1__1__Impl() throws RecognitionException { // $ANTLR start "rule__Entity__Group_2__0" - // InternalErDsl.g:938:1: rule__Entity__Group_2__0 : rule__Entity__Group_2__0__Impl rule__Entity__Group_2__1 ; + // InternalErDsl.g:1032:1: rule__Entity__Group_2__0 : rule__Entity__Group_2__0__Impl rule__Entity__Group_2__1 ; public final void rule__Entity__Group_2__0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:942:1: ( rule__Entity__Group_2__0__Impl rule__Entity__Group_2__1 ) - // InternalErDsl.g:943:2: rule__Entity__Group_2__0__Impl rule__Entity__Group_2__1 + // InternalErDsl.g:1036:1: ( rule__Entity__Group_2__0__Impl rule__Entity__Group_2__1 ) + // InternalErDsl.g:1037:2: rule__Entity__Group_2__0__Impl rule__Entity__Group_2__1 { pushFollow(FOLLOW_5); rule__Entity__Group_2__0__Impl(); @@ -2862,20 +3218,20 @@ public final void rule__Entity__Group_2__0() throws RecognitionException { // $ANTLR start "rule__Entity__Group_2__0__Impl" - // InternalErDsl.g:950:1: rule__Entity__Group_2__0__Impl : ( '{' ) ; + // InternalErDsl.g:1044:1: rule__Entity__Group_2__0__Impl : ( '{' ) ; public final void rule__Entity__Group_2__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:954:1: ( ( '{' ) ) - // InternalErDsl.g:955:1: ( '{' ) + // InternalErDsl.g:1048:1: ( ( '{' ) ) + // InternalErDsl.g:1049:1: ( '{' ) { - // InternalErDsl.g:955:1: ( '{' ) - // InternalErDsl.g:956:2: '{' + // InternalErDsl.g:1049:1: ( '{' ) + // InternalErDsl.g:1050:2: '{' { before(grammarAccess.getEntityAccess().getLeftCurlyBracketKeyword_2_0()); - match(input,17,FOLLOW_2); + match(input,24,FOLLOW_2); after(grammarAccess.getEntityAccess().getLeftCurlyBracketKeyword_2_0()); } @@ -2899,16 +3255,16 @@ public final void rule__Entity__Group_2__0__Impl() throws RecognitionException { // $ANTLR start "rule__Entity__Group_2__1" - // InternalErDsl.g:965:1: rule__Entity__Group_2__1 : rule__Entity__Group_2__1__Impl rule__Entity__Group_2__2 ; + // InternalErDsl.g:1059:1: rule__Entity__Group_2__1 : rule__Entity__Group_2__1__Impl rule__Entity__Group_2__2 ; public final void rule__Entity__Group_2__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:969:1: ( rule__Entity__Group_2__1__Impl rule__Entity__Group_2__2 ) - // InternalErDsl.g:970:2: rule__Entity__Group_2__1__Impl rule__Entity__Group_2__2 + // InternalErDsl.g:1063:1: ( rule__Entity__Group_2__1__Impl rule__Entity__Group_2__2 ) + // InternalErDsl.g:1064:2: rule__Entity__Group_2__1__Impl rule__Entity__Group_2__2 { - pushFollow(FOLLOW_15); + pushFollow(FOLLOW_16); rule__Entity__Group_2__1__Impl(); state._fsp--; @@ -2937,21 +3293,21 @@ public final void rule__Entity__Group_2__1() throws RecognitionException { // $ANTLR start "rule__Entity__Group_2__1__Impl" - // InternalErDsl.g:977:1: rule__Entity__Group_2__1__Impl : ( ( rule__Entity__AttributesAssignment_2_1 ) ) ; + // InternalErDsl.g:1071:1: rule__Entity__Group_2__1__Impl : ( ( rule__Entity__AttributesAssignment_2_1 ) ) ; public final void rule__Entity__Group_2__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:981:1: ( ( ( rule__Entity__AttributesAssignment_2_1 ) ) ) - // InternalErDsl.g:982:1: ( ( rule__Entity__AttributesAssignment_2_1 ) ) + // InternalErDsl.g:1075:1: ( ( ( rule__Entity__AttributesAssignment_2_1 ) ) ) + // InternalErDsl.g:1076:1: ( ( rule__Entity__AttributesAssignment_2_1 ) ) { - // InternalErDsl.g:982:1: ( ( rule__Entity__AttributesAssignment_2_1 ) ) - // InternalErDsl.g:983:2: ( rule__Entity__AttributesAssignment_2_1 ) + // InternalErDsl.g:1076:1: ( ( rule__Entity__AttributesAssignment_2_1 ) ) + // InternalErDsl.g:1077:2: ( rule__Entity__AttributesAssignment_2_1 ) { before(grammarAccess.getEntityAccess().getAttributesAssignment_2_1()); - // InternalErDsl.g:984:2: ( rule__Entity__AttributesAssignment_2_1 ) - // InternalErDsl.g:984:3: rule__Entity__AttributesAssignment_2_1 + // InternalErDsl.g:1078:2: ( rule__Entity__AttributesAssignment_2_1 ) + // InternalErDsl.g:1078:3: rule__Entity__AttributesAssignment_2_1 { pushFollow(FOLLOW_2); rule__Entity__AttributesAssignment_2_1(); @@ -2984,16 +3340,16 @@ public final void rule__Entity__Group_2__1__Impl() throws RecognitionException { // $ANTLR start "rule__Entity__Group_2__2" - // InternalErDsl.g:992:1: rule__Entity__Group_2__2 : rule__Entity__Group_2__2__Impl rule__Entity__Group_2__3 ; + // InternalErDsl.g:1086:1: rule__Entity__Group_2__2 : rule__Entity__Group_2__2__Impl rule__Entity__Group_2__3 ; public final void rule__Entity__Group_2__2() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:996:1: ( rule__Entity__Group_2__2__Impl rule__Entity__Group_2__3 ) - // InternalErDsl.g:997:2: rule__Entity__Group_2__2__Impl rule__Entity__Group_2__3 + // InternalErDsl.g:1090:1: ( rule__Entity__Group_2__2__Impl rule__Entity__Group_2__3 ) + // InternalErDsl.g:1091:2: rule__Entity__Group_2__2__Impl rule__Entity__Group_2__3 { - pushFollow(FOLLOW_15); + pushFollow(FOLLOW_16); rule__Entity__Group_2__2__Impl(); state._fsp--; @@ -3022,35 +3378,35 @@ public final void rule__Entity__Group_2__2() throws RecognitionException { // $ANTLR start "rule__Entity__Group_2__2__Impl" - // InternalErDsl.g:1004:1: rule__Entity__Group_2__2__Impl : ( ( rule__Entity__Group_2_2__0 )* ) ; + // InternalErDsl.g:1098:1: rule__Entity__Group_2__2__Impl : ( ( rule__Entity__Group_2_2__0 )* ) ; public final void rule__Entity__Group_2__2__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1008:1: ( ( ( rule__Entity__Group_2_2__0 )* ) ) - // InternalErDsl.g:1009:1: ( ( rule__Entity__Group_2_2__0 )* ) + // InternalErDsl.g:1102:1: ( ( ( rule__Entity__Group_2_2__0 )* ) ) + // InternalErDsl.g:1103:1: ( ( rule__Entity__Group_2_2__0 )* ) { - // InternalErDsl.g:1009:1: ( ( rule__Entity__Group_2_2__0 )* ) - // InternalErDsl.g:1010:2: ( rule__Entity__Group_2_2__0 )* + // InternalErDsl.g:1103:1: ( ( rule__Entity__Group_2_2__0 )* ) + // InternalErDsl.g:1104:2: ( rule__Entity__Group_2_2__0 )* { before(grammarAccess.getEntityAccess().getGroup_2_2()); - // InternalErDsl.g:1011:2: ( rule__Entity__Group_2_2__0 )* - loop8: + // InternalErDsl.g:1105:2: ( rule__Entity__Group_2_2__0 )* + loop9: do { - int alt8=2; - int LA8_0 = input.LA(1); + int alt9=2; + int LA9_0 = input.LA(1); - if ( (LA8_0==22) ) { - alt8=1; + if ( (LA9_0==29) ) { + alt9=1; } - switch (alt8) { + switch (alt9) { case 1 : - // InternalErDsl.g:1011:3: rule__Entity__Group_2_2__0 + // InternalErDsl.g:1105:3: rule__Entity__Group_2_2__0 { - pushFollow(FOLLOW_16); + pushFollow(FOLLOW_17); rule__Entity__Group_2_2__0(); state._fsp--; @@ -3060,7 +3416,7 @@ public final void rule__Entity__Group_2__2__Impl() throws RecognitionException { break; default : - break loop8; + break loop9; } } while (true); @@ -3087,14 +3443,14 @@ public final void rule__Entity__Group_2__2__Impl() throws RecognitionException { // $ANTLR start "rule__Entity__Group_2__3" - // InternalErDsl.g:1019:1: rule__Entity__Group_2__3 : rule__Entity__Group_2__3__Impl ; + // InternalErDsl.g:1113:1: rule__Entity__Group_2__3 : rule__Entity__Group_2__3__Impl ; public final void rule__Entity__Group_2__3() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1023:1: ( rule__Entity__Group_2__3__Impl ) - // InternalErDsl.g:1024:2: rule__Entity__Group_2__3__Impl + // InternalErDsl.g:1117:1: ( rule__Entity__Group_2__3__Impl ) + // InternalErDsl.g:1118:2: rule__Entity__Group_2__3__Impl { pushFollow(FOLLOW_2); rule__Entity__Group_2__3__Impl(); @@ -3120,20 +3476,20 @@ public final void rule__Entity__Group_2__3() throws RecognitionException { // $ANTLR start "rule__Entity__Group_2__3__Impl" - // InternalErDsl.g:1030:1: rule__Entity__Group_2__3__Impl : ( '}' ) ; + // InternalErDsl.g:1124:1: rule__Entity__Group_2__3__Impl : ( '}' ) ; public final void rule__Entity__Group_2__3__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1034:1: ( ( '}' ) ) - // InternalErDsl.g:1035:1: ( '}' ) + // InternalErDsl.g:1128:1: ( ( '}' ) ) + // InternalErDsl.g:1129:1: ( '}' ) { - // InternalErDsl.g:1035:1: ( '}' ) - // InternalErDsl.g:1036:2: '}' + // InternalErDsl.g:1129:1: ( '}' ) + // InternalErDsl.g:1130:2: '}' { before(grammarAccess.getEntityAccess().getRightCurlyBracketKeyword_2_3()); - match(input,18,FOLLOW_2); + match(input,25,FOLLOW_2); after(grammarAccess.getEntityAccess().getRightCurlyBracketKeyword_2_3()); } @@ -3157,14 +3513,14 @@ public final void rule__Entity__Group_2__3__Impl() throws RecognitionException { // $ANTLR start "rule__Entity__Group_2_2__0" - // InternalErDsl.g:1046:1: rule__Entity__Group_2_2__0 : rule__Entity__Group_2_2__0__Impl rule__Entity__Group_2_2__1 ; + // InternalErDsl.g:1140:1: rule__Entity__Group_2_2__0 : rule__Entity__Group_2_2__0__Impl rule__Entity__Group_2_2__1 ; public final void rule__Entity__Group_2_2__0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1050:1: ( rule__Entity__Group_2_2__0__Impl rule__Entity__Group_2_2__1 ) - // InternalErDsl.g:1051:2: rule__Entity__Group_2_2__0__Impl rule__Entity__Group_2_2__1 + // InternalErDsl.g:1144:1: ( rule__Entity__Group_2_2__0__Impl rule__Entity__Group_2_2__1 ) + // InternalErDsl.g:1145:2: rule__Entity__Group_2_2__0__Impl rule__Entity__Group_2_2__1 { pushFollow(FOLLOW_5); rule__Entity__Group_2_2__0__Impl(); @@ -3195,20 +3551,20 @@ public final void rule__Entity__Group_2_2__0() throws RecognitionException { // $ANTLR start "rule__Entity__Group_2_2__0__Impl" - // InternalErDsl.g:1058:1: rule__Entity__Group_2_2__0__Impl : ( ',' ) ; + // InternalErDsl.g:1152:1: rule__Entity__Group_2_2__0__Impl : ( ',' ) ; public final void rule__Entity__Group_2_2__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1062:1: ( ( ',' ) ) - // InternalErDsl.g:1063:1: ( ',' ) + // InternalErDsl.g:1156:1: ( ( ',' ) ) + // InternalErDsl.g:1157:1: ( ',' ) { - // InternalErDsl.g:1063:1: ( ',' ) - // InternalErDsl.g:1064:2: ',' + // InternalErDsl.g:1157:1: ( ',' ) + // InternalErDsl.g:1158:2: ',' { before(grammarAccess.getEntityAccess().getCommaKeyword_2_2_0()); - match(input,22,FOLLOW_2); + match(input,29,FOLLOW_2); after(grammarAccess.getEntityAccess().getCommaKeyword_2_2_0()); } @@ -3232,14 +3588,14 @@ public final void rule__Entity__Group_2_2__0__Impl() throws RecognitionException // $ANTLR start "rule__Entity__Group_2_2__1" - // InternalErDsl.g:1073:1: rule__Entity__Group_2_2__1 : rule__Entity__Group_2_2__1__Impl ; + // InternalErDsl.g:1167:1: rule__Entity__Group_2_2__1 : rule__Entity__Group_2_2__1__Impl ; public final void rule__Entity__Group_2_2__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1077:1: ( rule__Entity__Group_2_2__1__Impl ) - // InternalErDsl.g:1078:2: rule__Entity__Group_2_2__1__Impl + // InternalErDsl.g:1171:1: ( rule__Entity__Group_2_2__1__Impl ) + // InternalErDsl.g:1172:2: rule__Entity__Group_2_2__1__Impl { pushFollow(FOLLOW_2); rule__Entity__Group_2_2__1__Impl(); @@ -3265,21 +3621,21 @@ public final void rule__Entity__Group_2_2__1() throws RecognitionException { // $ANTLR start "rule__Entity__Group_2_2__1__Impl" - // InternalErDsl.g:1084:1: rule__Entity__Group_2_2__1__Impl : ( ( rule__Entity__AttributesAssignment_2_2_1 ) ) ; + // InternalErDsl.g:1178:1: rule__Entity__Group_2_2__1__Impl : ( ( rule__Entity__AttributesAssignment_2_2_1 ) ) ; public final void rule__Entity__Group_2_2__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1088:1: ( ( ( rule__Entity__AttributesAssignment_2_2_1 ) ) ) - // InternalErDsl.g:1089:1: ( ( rule__Entity__AttributesAssignment_2_2_1 ) ) + // InternalErDsl.g:1182:1: ( ( ( rule__Entity__AttributesAssignment_2_2_1 ) ) ) + // InternalErDsl.g:1183:1: ( ( rule__Entity__AttributesAssignment_2_2_1 ) ) { - // InternalErDsl.g:1089:1: ( ( rule__Entity__AttributesAssignment_2_2_1 ) ) - // InternalErDsl.g:1090:2: ( rule__Entity__AttributesAssignment_2_2_1 ) + // InternalErDsl.g:1183:1: ( ( rule__Entity__AttributesAssignment_2_2_1 ) ) + // InternalErDsl.g:1184:2: ( rule__Entity__AttributesAssignment_2_2_1 ) { before(grammarAccess.getEntityAccess().getAttributesAssignment_2_2_1()); - // InternalErDsl.g:1091:2: ( rule__Entity__AttributesAssignment_2_2_1 ) - // InternalErDsl.g:1091:3: rule__Entity__AttributesAssignment_2_2_1 + // InternalErDsl.g:1185:2: ( rule__Entity__AttributesAssignment_2_2_1 ) + // InternalErDsl.g:1185:3: rule__Entity__AttributesAssignment_2_2_1 { pushFollow(FOLLOW_2); rule__Entity__AttributesAssignment_2_2_1(); @@ -3312,16 +3668,16 @@ public final void rule__Entity__Group_2_2__1__Impl() throws RecognitionException // $ANTLR start "rule__Relation__Group__0" - // InternalErDsl.g:1100:1: rule__Relation__Group__0 : rule__Relation__Group__0__Impl rule__Relation__Group__1 ; + // InternalErDsl.g:1194:1: rule__Relation__Group__0 : rule__Relation__Group__0__Impl rule__Relation__Group__1 ; public final void rule__Relation__Group__0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1104:1: ( rule__Relation__Group__0__Impl rule__Relation__Group__1 ) - // InternalErDsl.g:1105:2: rule__Relation__Group__0__Impl rule__Relation__Group__1 + // InternalErDsl.g:1198:1: ( rule__Relation__Group__0__Impl rule__Relation__Group__1 ) + // InternalErDsl.g:1199:2: rule__Relation__Group__0__Impl rule__Relation__Group__1 { - pushFollow(FOLLOW_17); + pushFollow(FOLLOW_18); rule__Relation__Group__0__Impl(); state._fsp--; @@ -3350,29 +3706,29 @@ public final void rule__Relation__Group__0() throws RecognitionException { // $ANTLR start "rule__Relation__Group__0__Impl" - // InternalErDsl.g:1112:1: rule__Relation__Group__0__Impl : ( ( rule__Relation__NameAssignment_0 )? ) ; + // InternalErDsl.g:1206:1: rule__Relation__Group__0__Impl : ( ( rule__Relation__NameAssignment_0 )? ) ; public final void rule__Relation__Group__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1116:1: ( ( ( rule__Relation__NameAssignment_0 )? ) ) - // InternalErDsl.g:1117:1: ( ( rule__Relation__NameAssignment_0 )? ) + // InternalErDsl.g:1210:1: ( ( ( rule__Relation__NameAssignment_0 )? ) ) + // InternalErDsl.g:1211:1: ( ( rule__Relation__NameAssignment_0 )? ) { - // InternalErDsl.g:1117:1: ( ( rule__Relation__NameAssignment_0 )? ) - // InternalErDsl.g:1118:2: ( rule__Relation__NameAssignment_0 )? + // InternalErDsl.g:1211:1: ( ( rule__Relation__NameAssignment_0 )? ) + // InternalErDsl.g:1212:2: ( rule__Relation__NameAssignment_0 )? { before(grammarAccess.getRelationAccess().getNameAssignment_0()); - // InternalErDsl.g:1119:2: ( rule__Relation__NameAssignment_0 )? - int alt9=2; - int LA9_0 = input.LA(1); + // InternalErDsl.g:1213:2: ( rule__Relation__NameAssignment_0 )? + int alt10=2; + int LA10_0 = input.LA(1); - if ( (LA9_0==RULE_ID) ) { - alt9=1; + if ( (LA10_0==RULE_ID) ) { + alt10=1; } - switch (alt9) { + switch (alt10) { case 1 : - // InternalErDsl.g:1119:3: rule__Relation__NameAssignment_0 + // InternalErDsl.g:1213:3: rule__Relation__NameAssignment_0 { pushFollow(FOLLOW_2); rule__Relation__NameAssignment_0(); @@ -3408,14 +3764,14 @@ public final void rule__Relation__Group__0__Impl() throws RecognitionException { // $ANTLR start "rule__Relation__Group__1" - // InternalErDsl.g:1127:1: rule__Relation__Group__1 : rule__Relation__Group__1__Impl rule__Relation__Group__2 ; + // InternalErDsl.g:1221:1: rule__Relation__Group__1 : rule__Relation__Group__1__Impl rule__Relation__Group__2 ; public final void rule__Relation__Group__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1131:1: ( rule__Relation__Group__1__Impl rule__Relation__Group__2 ) - // InternalErDsl.g:1132:2: rule__Relation__Group__1__Impl rule__Relation__Group__2 + // InternalErDsl.g:1225:1: ( rule__Relation__Group__1__Impl rule__Relation__Group__2 ) + // InternalErDsl.g:1226:2: rule__Relation__Group__1__Impl rule__Relation__Group__2 { pushFollow(FOLLOW_11); rule__Relation__Group__1__Impl(); @@ -3446,21 +3802,21 @@ public final void rule__Relation__Group__1() throws RecognitionException { // $ANTLR start "rule__Relation__Group__1__Impl" - // InternalErDsl.g:1139:1: rule__Relation__Group__1__Impl : ( ( rule__Relation__Group_1__0 ) ) ; + // InternalErDsl.g:1233:1: rule__Relation__Group__1__Impl : ( ( rule__Relation__Group_1__0 ) ) ; public final void rule__Relation__Group__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1143:1: ( ( ( rule__Relation__Group_1__0 ) ) ) - // InternalErDsl.g:1144:1: ( ( rule__Relation__Group_1__0 ) ) + // InternalErDsl.g:1237:1: ( ( ( rule__Relation__Group_1__0 ) ) ) + // InternalErDsl.g:1238:1: ( ( rule__Relation__Group_1__0 ) ) { - // InternalErDsl.g:1144:1: ( ( rule__Relation__Group_1__0 ) ) - // InternalErDsl.g:1145:2: ( rule__Relation__Group_1__0 ) + // InternalErDsl.g:1238:1: ( ( rule__Relation__Group_1__0 ) ) + // InternalErDsl.g:1239:2: ( rule__Relation__Group_1__0 ) { before(grammarAccess.getRelationAccess().getGroup_1()); - // InternalErDsl.g:1146:2: ( rule__Relation__Group_1__0 ) - // InternalErDsl.g:1146:3: rule__Relation__Group_1__0 + // InternalErDsl.g:1240:2: ( rule__Relation__Group_1__0 ) + // InternalErDsl.g:1240:3: rule__Relation__Group_1__0 { pushFollow(FOLLOW_2); rule__Relation__Group_1__0(); @@ -3493,14 +3849,14 @@ public final void rule__Relation__Group__1__Impl() throws RecognitionException { // $ANTLR start "rule__Relation__Group__2" - // InternalErDsl.g:1154:1: rule__Relation__Group__2 : rule__Relation__Group__2__Impl ; + // InternalErDsl.g:1248:1: rule__Relation__Group__2 : rule__Relation__Group__2__Impl ; public final void rule__Relation__Group__2() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1158:1: ( rule__Relation__Group__2__Impl ) - // InternalErDsl.g:1159:2: rule__Relation__Group__2__Impl + // InternalErDsl.g:1252:1: ( rule__Relation__Group__2__Impl ) + // InternalErDsl.g:1253:2: rule__Relation__Group__2__Impl { pushFollow(FOLLOW_2); rule__Relation__Group__2__Impl(); @@ -3526,35 +3882,35 @@ public final void rule__Relation__Group__2() throws RecognitionException { // $ANTLR start "rule__Relation__Group__2__Impl" - // InternalErDsl.g:1165:1: rule__Relation__Group__2__Impl : ( ( rule__Relation__Group_2__0 )* ) ; + // InternalErDsl.g:1259:1: rule__Relation__Group__2__Impl : ( ( rule__Relation__Group_2__0 )* ) ; public final void rule__Relation__Group__2__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1169:1: ( ( ( rule__Relation__Group_2__0 )* ) ) - // InternalErDsl.g:1170:1: ( ( rule__Relation__Group_2__0 )* ) + // InternalErDsl.g:1263:1: ( ( ( rule__Relation__Group_2__0 )* ) ) + // InternalErDsl.g:1264:1: ( ( rule__Relation__Group_2__0 )* ) { - // InternalErDsl.g:1170:1: ( ( rule__Relation__Group_2__0 )* ) - // InternalErDsl.g:1171:2: ( rule__Relation__Group_2__0 )* + // InternalErDsl.g:1264:1: ( ( rule__Relation__Group_2__0 )* ) + // InternalErDsl.g:1265:2: ( rule__Relation__Group_2__0 )* { before(grammarAccess.getRelationAccess().getGroup_2()); - // InternalErDsl.g:1172:2: ( rule__Relation__Group_2__0 )* - loop10: + // InternalErDsl.g:1266:2: ( rule__Relation__Group_2__0 )* + loop11: do { - int alt10=2; - int LA10_0 = input.LA(1); + int alt11=2; + int LA11_0 = input.LA(1); - if ( (LA10_0==17) ) { - alt10=1; + if ( (LA11_0==24) ) { + alt11=1; } - switch (alt10) { + switch (alt11) { case 1 : - // InternalErDsl.g:1172:3: rule__Relation__Group_2__0 + // InternalErDsl.g:1266:3: rule__Relation__Group_2__0 { - pushFollow(FOLLOW_18); + pushFollow(FOLLOW_19); rule__Relation__Group_2__0(); state._fsp--; @@ -3564,7 +3920,7 @@ public final void rule__Relation__Group__2__Impl() throws RecognitionException { break; default : - break loop10; + break loop11; } } while (true); @@ -3591,16 +3947,16 @@ public final void rule__Relation__Group__2__Impl() throws RecognitionException { // $ANTLR start "rule__Relation__Group_1__0" - // InternalErDsl.g:1181:1: rule__Relation__Group_1__0 : rule__Relation__Group_1__0__Impl rule__Relation__Group_1__1 ; + // InternalErDsl.g:1275:1: rule__Relation__Group_1__0 : rule__Relation__Group_1__0__Impl rule__Relation__Group_1__1 ; public final void rule__Relation__Group_1__0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1185:1: ( rule__Relation__Group_1__0__Impl rule__Relation__Group_1__1 ) - // InternalErDsl.g:1186:2: rule__Relation__Group_1__0__Impl rule__Relation__Group_1__1 + // InternalErDsl.g:1279:1: ( rule__Relation__Group_1__0__Impl rule__Relation__Group_1__1 ) + // InternalErDsl.g:1280:2: rule__Relation__Group_1__0__Impl rule__Relation__Group_1__1 { - pushFollow(FOLLOW_19); + pushFollow(FOLLOW_20); rule__Relation__Group_1__0__Impl(); state._fsp--; @@ -3629,20 +3985,20 @@ public final void rule__Relation__Group_1__0() throws RecognitionException { // $ANTLR start "rule__Relation__Group_1__0__Impl" - // InternalErDsl.g:1193:1: rule__Relation__Group_1__0__Impl : ( '[' ) ; + // InternalErDsl.g:1287:1: rule__Relation__Group_1__0__Impl : ( '[' ) ; public final void rule__Relation__Group_1__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1197:1: ( ( '[' ) ) - // InternalErDsl.g:1198:1: ( '[' ) + // InternalErDsl.g:1291:1: ( ( '[' ) ) + // InternalErDsl.g:1292:1: ( '[' ) { - // InternalErDsl.g:1198:1: ( '[' ) - // InternalErDsl.g:1199:2: '[' + // InternalErDsl.g:1292:1: ( '[' ) + // InternalErDsl.g:1293:2: '[' { before(grammarAccess.getRelationAccess().getLeftSquareBracketKeyword_1_0()); - match(input,23,FOLLOW_2); + match(input,30,FOLLOW_2); after(grammarAccess.getRelationAccess().getLeftSquareBracketKeyword_1_0()); } @@ -3666,16 +4022,16 @@ public final void rule__Relation__Group_1__0__Impl() throws RecognitionException // $ANTLR start "rule__Relation__Group_1__1" - // InternalErDsl.g:1208:1: rule__Relation__Group_1__1 : rule__Relation__Group_1__1__Impl rule__Relation__Group_1__2 ; + // InternalErDsl.g:1302:1: rule__Relation__Group_1__1 : rule__Relation__Group_1__1__Impl rule__Relation__Group_1__2 ; public final void rule__Relation__Group_1__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1212:1: ( rule__Relation__Group_1__1__Impl rule__Relation__Group_1__2 ) - // InternalErDsl.g:1213:2: rule__Relation__Group_1__1__Impl rule__Relation__Group_1__2 + // InternalErDsl.g:1306:1: ( rule__Relation__Group_1__1__Impl rule__Relation__Group_1__2 ) + // InternalErDsl.g:1307:2: rule__Relation__Group_1__1__Impl rule__Relation__Group_1__2 { - pushFollow(FOLLOW_20); + pushFollow(FOLLOW_21); rule__Relation__Group_1__1__Impl(); state._fsp--; @@ -3704,21 +4060,21 @@ public final void rule__Relation__Group_1__1() throws RecognitionException { // $ANTLR start "rule__Relation__Group_1__1__Impl" - // InternalErDsl.g:1220:1: rule__Relation__Group_1__1__Impl : ( ( rule__Relation__LeftEndingAssignment_1_1 ) ) ; + // InternalErDsl.g:1314:1: rule__Relation__Group_1__1__Impl : ( ( rule__Relation__LeftEndingAssignment_1_1 ) ) ; public final void rule__Relation__Group_1__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1224:1: ( ( ( rule__Relation__LeftEndingAssignment_1_1 ) ) ) - // InternalErDsl.g:1225:1: ( ( rule__Relation__LeftEndingAssignment_1_1 ) ) + // InternalErDsl.g:1318:1: ( ( ( rule__Relation__LeftEndingAssignment_1_1 ) ) ) + // InternalErDsl.g:1319:1: ( ( rule__Relation__LeftEndingAssignment_1_1 ) ) { - // InternalErDsl.g:1225:1: ( ( rule__Relation__LeftEndingAssignment_1_1 ) ) - // InternalErDsl.g:1226:2: ( rule__Relation__LeftEndingAssignment_1_1 ) + // InternalErDsl.g:1319:1: ( ( rule__Relation__LeftEndingAssignment_1_1 ) ) + // InternalErDsl.g:1320:2: ( rule__Relation__LeftEndingAssignment_1_1 ) { before(grammarAccess.getRelationAccess().getLeftEndingAssignment_1_1()); - // InternalErDsl.g:1227:2: ( rule__Relation__LeftEndingAssignment_1_1 ) - // InternalErDsl.g:1227:3: rule__Relation__LeftEndingAssignment_1_1 + // InternalErDsl.g:1321:2: ( rule__Relation__LeftEndingAssignment_1_1 ) + // InternalErDsl.g:1321:3: rule__Relation__LeftEndingAssignment_1_1 { pushFollow(FOLLOW_2); rule__Relation__LeftEndingAssignment_1_1(); @@ -3751,16 +4107,16 @@ public final void rule__Relation__Group_1__1__Impl() throws RecognitionException // $ANTLR start "rule__Relation__Group_1__2" - // InternalErDsl.g:1235:1: rule__Relation__Group_1__2 : rule__Relation__Group_1__2__Impl rule__Relation__Group_1__3 ; + // InternalErDsl.g:1329:1: rule__Relation__Group_1__2 : rule__Relation__Group_1__2__Impl rule__Relation__Group_1__3 ; public final void rule__Relation__Group_1__2() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1239:1: ( rule__Relation__Group_1__2__Impl rule__Relation__Group_1__3 ) - // InternalErDsl.g:1240:2: rule__Relation__Group_1__2__Impl rule__Relation__Group_1__3 + // InternalErDsl.g:1333:1: ( rule__Relation__Group_1__2__Impl rule__Relation__Group_1__3 ) + // InternalErDsl.g:1334:2: rule__Relation__Group_1__2__Impl rule__Relation__Group_1__3 { - pushFollow(FOLLOW_19); + pushFollow(FOLLOW_20); rule__Relation__Group_1__2__Impl(); state._fsp--; @@ -3789,20 +4145,20 @@ public final void rule__Relation__Group_1__2() throws RecognitionException { // $ANTLR start "rule__Relation__Group_1__2__Impl" - // InternalErDsl.g:1247:1: rule__Relation__Group_1__2__Impl : ( 'relates' ) ; + // InternalErDsl.g:1341:1: rule__Relation__Group_1__2__Impl : ( 'relates' ) ; public final void rule__Relation__Group_1__2__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1251:1: ( ( 'relates' ) ) - // InternalErDsl.g:1252:1: ( 'relates' ) + // InternalErDsl.g:1345:1: ( ( 'relates' ) ) + // InternalErDsl.g:1346:1: ( 'relates' ) { - // InternalErDsl.g:1252:1: ( 'relates' ) - // InternalErDsl.g:1253:2: 'relates' + // InternalErDsl.g:1346:1: ( 'relates' ) + // InternalErDsl.g:1347:2: 'relates' { before(grammarAccess.getRelationAccess().getRelatesKeyword_1_2()); - match(input,24,FOLLOW_2); + match(input,31,FOLLOW_2); after(grammarAccess.getRelationAccess().getRelatesKeyword_1_2()); } @@ -3826,16 +4182,16 @@ public final void rule__Relation__Group_1__2__Impl() throws RecognitionException // $ANTLR start "rule__Relation__Group_1__3" - // InternalErDsl.g:1262:1: rule__Relation__Group_1__3 : rule__Relation__Group_1__3__Impl rule__Relation__Group_1__4 ; + // InternalErDsl.g:1356:1: rule__Relation__Group_1__3 : rule__Relation__Group_1__3__Impl rule__Relation__Group_1__4 ; public final void rule__Relation__Group_1__3() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1266:1: ( rule__Relation__Group_1__3__Impl rule__Relation__Group_1__4 ) - // InternalErDsl.g:1267:2: rule__Relation__Group_1__3__Impl rule__Relation__Group_1__4 + // InternalErDsl.g:1360:1: ( rule__Relation__Group_1__3__Impl rule__Relation__Group_1__4 ) + // InternalErDsl.g:1361:2: rule__Relation__Group_1__3__Impl rule__Relation__Group_1__4 { - pushFollow(FOLLOW_21); + pushFollow(FOLLOW_22); rule__Relation__Group_1__3__Impl(); state._fsp--; @@ -3864,21 +4220,21 @@ public final void rule__Relation__Group_1__3() throws RecognitionException { // $ANTLR start "rule__Relation__Group_1__3__Impl" - // InternalErDsl.g:1274:1: rule__Relation__Group_1__3__Impl : ( ( rule__Relation__RightEndingAssignment_1_3 ) ) ; + // InternalErDsl.g:1368:1: rule__Relation__Group_1__3__Impl : ( ( rule__Relation__RightEndingAssignment_1_3 ) ) ; public final void rule__Relation__Group_1__3__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1278:1: ( ( ( rule__Relation__RightEndingAssignment_1_3 ) ) ) - // InternalErDsl.g:1279:1: ( ( rule__Relation__RightEndingAssignment_1_3 ) ) + // InternalErDsl.g:1372:1: ( ( ( rule__Relation__RightEndingAssignment_1_3 ) ) ) + // InternalErDsl.g:1373:1: ( ( rule__Relation__RightEndingAssignment_1_3 ) ) { - // InternalErDsl.g:1279:1: ( ( rule__Relation__RightEndingAssignment_1_3 ) ) - // InternalErDsl.g:1280:2: ( rule__Relation__RightEndingAssignment_1_3 ) + // InternalErDsl.g:1373:1: ( ( rule__Relation__RightEndingAssignment_1_3 ) ) + // InternalErDsl.g:1374:2: ( rule__Relation__RightEndingAssignment_1_3 ) { before(grammarAccess.getRelationAccess().getRightEndingAssignment_1_3()); - // InternalErDsl.g:1281:2: ( rule__Relation__RightEndingAssignment_1_3 ) - // InternalErDsl.g:1281:3: rule__Relation__RightEndingAssignment_1_3 + // InternalErDsl.g:1375:2: ( rule__Relation__RightEndingAssignment_1_3 ) + // InternalErDsl.g:1375:3: rule__Relation__RightEndingAssignment_1_3 { pushFollow(FOLLOW_2); rule__Relation__RightEndingAssignment_1_3(); @@ -3911,14 +4267,14 @@ public final void rule__Relation__Group_1__3__Impl() throws RecognitionException // $ANTLR start "rule__Relation__Group_1__4" - // InternalErDsl.g:1289:1: rule__Relation__Group_1__4 : rule__Relation__Group_1__4__Impl ; + // InternalErDsl.g:1383:1: rule__Relation__Group_1__4 : rule__Relation__Group_1__4__Impl ; public final void rule__Relation__Group_1__4() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1293:1: ( rule__Relation__Group_1__4__Impl ) - // InternalErDsl.g:1294:2: rule__Relation__Group_1__4__Impl + // InternalErDsl.g:1387:1: ( rule__Relation__Group_1__4__Impl ) + // InternalErDsl.g:1388:2: rule__Relation__Group_1__4__Impl { pushFollow(FOLLOW_2); rule__Relation__Group_1__4__Impl(); @@ -3944,20 +4300,20 @@ public final void rule__Relation__Group_1__4() throws RecognitionException { // $ANTLR start "rule__Relation__Group_1__4__Impl" - // InternalErDsl.g:1300:1: rule__Relation__Group_1__4__Impl : ( ']' ) ; + // InternalErDsl.g:1394:1: rule__Relation__Group_1__4__Impl : ( ']' ) ; public final void rule__Relation__Group_1__4__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1304:1: ( ( ']' ) ) - // InternalErDsl.g:1305:1: ( ']' ) + // InternalErDsl.g:1398:1: ( ( ']' ) ) + // InternalErDsl.g:1399:1: ( ']' ) { - // InternalErDsl.g:1305:1: ( ']' ) - // InternalErDsl.g:1306:2: ']' + // InternalErDsl.g:1399:1: ( ']' ) + // InternalErDsl.g:1400:2: ']' { before(grammarAccess.getRelationAccess().getRightSquareBracketKeyword_1_4()); - match(input,25,FOLLOW_2); + match(input,32,FOLLOW_2); after(grammarAccess.getRelationAccess().getRightSquareBracketKeyword_1_4()); } @@ -3981,14 +4337,14 @@ public final void rule__Relation__Group_1__4__Impl() throws RecognitionException // $ANTLR start "rule__Relation__Group_2__0" - // InternalErDsl.g:1316:1: rule__Relation__Group_2__0 : rule__Relation__Group_2__0__Impl rule__Relation__Group_2__1 ; + // InternalErDsl.g:1410:1: rule__Relation__Group_2__0 : rule__Relation__Group_2__0__Impl rule__Relation__Group_2__1 ; public final void rule__Relation__Group_2__0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1320:1: ( rule__Relation__Group_2__0__Impl rule__Relation__Group_2__1 ) - // InternalErDsl.g:1321:2: rule__Relation__Group_2__0__Impl rule__Relation__Group_2__1 + // InternalErDsl.g:1414:1: ( rule__Relation__Group_2__0__Impl rule__Relation__Group_2__1 ) + // InternalErDsl.g:1415:2: rule__Relation__Group_2__0__Impl rule__Relation__Group_2__1 { pushFollow(FOLLOW_5); rule__Relation__Group_2__0__Impl(); @@ -4019,20 +4375,20 @@ public final void rule__Relation__Group_2__0() throws RecognitionException { // $ANTLR start "rule__Relation__Group_2__0__Impl" - // InternalErDsl.g:1328:1: rule__Relation__Group_2__0__Impl : ( '{' ) ; + // InternalErDsl.g:1422:1: rule__Relation__Group_2__0__Impl : ( '{' ) ; public final void rule__Relation__Group_2__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1332:1: ( ( '{' ) ) - // InternalErDsl.g:1333:1: ( '{' ) + // InternalErDsl.g:1426:1: ( ( '{' ) ) + // InternalErDsl.g:1427:1: ( '{' ) { - // InternalErDsl.g:1333:1: ( '{' ) - // InternalErDsl.g:1334:2: '{' + // InternalErDsl.g:1427:1: ( '{' ) + // InternalErDsl.g:1428:2: '{' { before(grammarAccess.getRelationAccess().getLeftCurlyBracketKeyword_2_0()); - match(input,17,FOLLOW_2); + match(input,24,FOLLOW_2); after(grammarAccess.getRelationAccess().getLeftCurlyBracketKeyword_2_0()); } @@ -4056,16 +4412,16 @@ public final void rule__Relation__Group_2__0__Impl() throws RecognitionException // $ANTLR start "rule__Relation__Group_2__1" - // InternalErDsl.g:1343:1: rule__Relation__Group_2__1 : rule__Relation__Group_2__1__Impl rule__Relation__Group_2__2 ; + // InternalErDsl.g:1437:1: rule__Relation__Group_2__1 : rule__Relation__Group_2__1__Impl rule__Relation__Group_2__2 ; public final void rule__Relation__Group_2__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1347:1: ( rule__Relation__Group_2__1__Impl rule__Relation__Group_2__2 ) - // InternalErDsl.g:1348:2: rule__Relation__Group_2__1__Impl rule__Relation__Group_2__2 + // InternalErDsl.g:1441:1: ( rule__Relation__Group_2__1__Impl rule__Relation__Group_2__2 ) + // InternalErDsl.g:1442:2: rule__Relation__Group_2__1__Impl rule__Relation__Group_2__2 { - pushFollow(FOLLOW_15); + pushFollow(FOLLOW_16); rule__Relation__Group_2__1__Impl(); state._fsp--; @@ -4094,21 +4450,21 @@ public final void rule__Relation__Group_2__1() throws RecognitionException { // $ANTLR start "rule__Relation__Group_2__1__Impl" - // InternalErDsl.g:1355:1: rule__Relation__Group_2__1__Impl : ( ( rule__Relation__AttributesAssignment_2_1 ) ) ; + // InternalErDsl.g:1449:1: rule__Relation__Group_2__1__Impl : ( ( rule__Relation__AttributesAssignment_2_1 ) ) ; public final void rule__Relation__Group_2__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1359:1: ( ( ( rule__Relation__AttributesAssignment_2_1 ) ) ) - // InternalErDsl.g:1360:1: ( ( rule__Relation__AttributesAssignment_2_1 ) ) + // InternalErDsl.g:1453:1: ( ( ( rule__Relation__AttributesAssignment_2_1 ) ) ) + // InternalErDsl.g:1454:1: ( ( rule__Relation__AttributesAssignment_2_1 ) ) { - // InternalErDsl.g:1360:1: ( ( rule__Relation__AttributesAssignment_2_1 ) ) - // InternalErDsl.g:1361:2: ( rule__Relation__AttributesAssignment_2_1 ) + // InternalErDsl.g:1454:1: ( ( rule__Relation__AttributesAssignment_2_1 ) ) + // InternalErDsl.g:1455:2: ( rule__Relation__AttributesAssignment_2_1 ) { before(grammarAccess.getRelationAccess().getAttributesAssignment_2_1()); - // InternalErDsl.g:1362:2: ( rule__Relation__AttributesAssignment_2_1 ) - // InternalErDsl.g:1362:3: rule__Relation__AttributesAssignment_2_1 + // InternalErDsl.g:1456:2: ( rule__Relation__AttributesAssignment_2_1 ) + // InternalErDsl.g:1456:3: rule__Relation__AttributesAssignment_2_1 { pushFollow(FOLLOW_2); rule__Relation__AttributesAssignment_2_1(); @@ -4141,16 +4497,16 @@ public final void rule__Relation__Group_2__1__Impl() throws RecognitionException // $ANTLR start "rule__Relation__Group_2__2" - // InternalErDsl.g:1370:1: rule__Relation__Group_2__2 : rule__Relation__Group_2__2__Impl rule__Relation__Group_2__3 ; + // InternalErDsl.g:1464:1: rule__Relation__Group_2__2 : rule__Relation__Group_2__2__Impl rule__Relation__Group_2__3 ; public final void rule__Relation__Group_2__2() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1374:1: ( rule__Relation__Group_2__2__Impl rule__Relation__Group_2__3 ) - // InternalErDsl.g:1375:2: rule__Relation__Group_2__2__Impl rule__Relation__Group_2__3 + // InternalErDsl.g:1468:1: ( rule__Relation__Group_2__2__Impl rule__Relation__Group_2__3 ) + // InternalErDsl.g:1469:2: rule__Relation__Group_2__2__Impl rule__Relation__Group_2__3 { - pushFollow(FOLLOW_15); + pushFollow(FOLLOW_16); rule__Relation__Group_2__2__Impl(); state._fsp--; @@ -4179,35 +4535,35 @@ public final void rule__Relation__Group_2__2() throws RecognitionException { // $ANTLR start "rule__Relation__Group_2__2__Impl" - // InternalErDsl.g:1382:1: rule__Relation__Group_2__2__Impl : ( ( rule__Relation__Group_2_2__0 )* ) ; + // InternalErDsl.g:1476:1: rule__Relation__Group_2__2__Impl : ( ( rule__Relation__Group_2_2__0 )* ) ; public final void rule__Relation__Group_2__2__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1386:1: ( ( ( rule__Relation__Group_2_2__0 )* ) ) - // InternalErDsl.g:1387:1: ( ( rule__Relation__Group_2_2__0 )* ) + // InternalErDsl.g:1480:1: ( ( ( rule__Relation__Group_2_2__0 )* ) ) + // InternalErDsl.g:1481:1: ( ( rule__Relation__Group_2_2__0 )* ) { - // InternalErDsl.g:1387:1: ( ( rule__Relation__Group_2_2__0 )* ) - // InternalErDsl.g:1388:2: ( rule__Relation__Group_2_2__0 )* + // InternalErDsl.g:1481:1: ( ( rule__Relation__Group_2_2__0 )* ) + // InternalErDsl.g:1482:2: ( rule__Relation__Group_2_2__0 )* { before(grammarAccess.getRelationAccess().getGroup_2_2()); - // InternalErDsl.g:1389:2: ( rule__Relation__Group_2_2__0 )* - loop11: + // InternalErDsl.g:1483:2: ( rule__Relation__Group_2_2__0 )* + loop12: do { - int alt11=2; - int LA11_0 = input.LA(1); + int alt12=2; + int LA12_0 = input.LA(1); - if ( (LA11_0==22) ) { - alt11=1; + if ( (LA12_0==29) ) { + alt12=1; } - switch (alt11) { + switch (alt12) { case 1 : - // InternalErDsl.g:1389:3: rule__Relation__Group_2_2__0 + // InternalErDsl.g:1483:3: rule__Relation__Group_2_2__0 { - pushFollow(FOLLOW_16); + pushFollow(FOLLOW_17); rule__Relation__Group_2_2__0(); state._fsp--; @@ -4217,7 +4573,7 @@ public final void rule__Relation__Group_2__2__Impl() throws RecognitionException break; default : - break loop11; + break loop12; } } while (true); @@ -4244,14 +4600,14 @@ public final void rule__Relation__Group_2__2__Impl() throws RecognitionException // $ANTLR start "rule__Relation__Group_2__3" - // InternalErDsl.g:1397:1: rule__Relation__Group_2__3 : rule__Relation__Group_2__3__Impl ; + // InternalErDsl.g:1491:1: rule__Relation__Group_2__3 : rule__Relation__Group_2__3__Impl ; public final void rule__Relation__Group_2__3() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1401:1: ( rule__Relation__Group_2__3__Impl ) - // InternalErDsl.g:1402:2: rule__Relation__Group_2__3__Impl + // InternalErDsl.g:1495:1: ( rule__Relation__Group_2__3__Impl ) + // InternalErDsl.g:1496:2: rule__Relation__Group_2__3__Impl { pushFollow(FOLLOW_2); rule__Relation__Group_2__3__Impl(); @@ -4277,20 +4633,20 @@ public final void rule__Relation__Group_2__3() throws RecognitionException { // $ANTLR start "rule__Relation__Group_2__3__Impl" - // InternalErDsl.g:1408:1: rule__Relation__Group_2__3__Impl : ( '}' ) ; + // InternalErDsl.g:1502:1: rule__Relation__Group_2__3__Impl : ( '}' ) ; public final void rule__Relation__Group_2__3__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1412:1: ( ( '}' ) ) - // InternalErDsl.g:1413:1: ( '}' ) + // InternalErDsl.g:1506:1: ( ( '}' ) ) + // InternalErDsl.g:1507:1: ( '}' ) { - // InternalErDsl.g:1413:1: ( '}' ) - // InternalErDsl.g:1414:2: '}' + // InternalErDsl.g:1507:1: ( '}' ) + // InternalErDsl.g:1508:2: '}' { before(grammarAccess.getRelationAccess().getRightCurlyBracketKeyword_2_3()); - match(input,18,FOLLOW_2); + match(input,25,FOLLOW_2); after(grammarAccess.getRelationAccess().getRightCurlyBracketKeyword_2_3()); } @@ -4314,14 +4670,14 @@ public final void rule__Relation__Group_2__3__Impl() throws RecognitionException // $ANTLR start "rule__Relation__Group_2_2__0" - // InternalErDsl.g:1424:1: rule__Relation__Group_2_2__0 : rule__Relation__Group_2_2__0__Impl rule__Relation__Group_2_2__1 ; + // InternalErDsl.g:1518:1: rule__Relation__Group_2_2__0 : rule__Relation__Group_2_2__0__Impl rule__Relation__Group_2_2__1 ; public final void rule__Relation__Group_2_2__0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1428:1: ( rule__Relation__Group_2_2__0__Impl rule__Relation__Group_2_2__1 ) - // InternalErDsl.g:1429:2: rule__Relation__Group_2_2__0__Impl rule__Relation__Group_2_2__1 + // InternalErDsl.g:1522:1: ( rule__Relation__Group_2_2__0__Impl rule__Relation__Group_2_2__1 ) + // InternalErDsl.g:1523:2: rule__Relation__Group_2_2__0__Impl rule__Relation__Group_2_2__1 { pushFollow(FOLLOW_5); rule__Relation__Group_2_2__0__Impl(); @@ -4352,20 +4708,20 @@ public final void rule__Relation__Group_2_2__0() throws RecognitionException { // $ANTLR start "rule__Relation__Group_2_2__0__Impl" - // InternalErDsl.g:1436:1: rule__Relation__Group_2_2__0__Impl : ( ',' ) ; + // InternalErDsl.g:1530:1: rule__Relation__Group_2_2__0__Impl : ( ',' ) ; public final void rule__Relation__Group_2_2__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1440:1: ( ( ',' ) ) - // InternalErDsl.g:1441:1: ( ',' ) + // InternalErDsl.g:1534:1: ( ( ',' ) ) + // InternalErDsl.g:1535:1: ( ',' ) { - // InternalErDsl.g:1441:1: ( ',' ) - // InternalErDsl.g:1442:2: ',' + // InternalErDsl.g:1535:1: ( ',' ) + // InternalErDsl.g:1536:2: ',' { before(grammarAccess.getRelationAccess().getCommaKeyword_2_2_0()); - match(input,22,FOLLOW_2); + match(input,29,FOLLOW_2); after(grammarAccess.getRelationAccess().getCommaKeyword_2_2_0()); } @@ -4389,14 +4745,14 @@ public final void rule__Relation__Group_2_2__0__Impl() throws RecognitionExcepti // $ANTLR start "rule__Relation__Group_2_2__1" - // InternalErDsl.g:1451:1: rule__Relation__Group_2_2__1 : rule__Relation__Group_2_2__1__Impl ; + // InternalErDsl.g:1545:1: rule__Relation__Group_2_2__1 : rule__Relation__Group_2_2__1__Impl ; public final void rule__Relation__Group_2_2__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1455:1: ( rule__Relation__Group_2_2__1__Impl ) - // InternalErDsl.g:1456:2: rule__Relation__Group_2_2__1__Impl + // InternalErDsl.g:1549:1: ( rule__Relation__Group_2_2__1__Impl ) + // InternalErDsl.g:1550:2: rule__Relation__Group_2_2__1__Impl { pushFollow(FOLLOW_2); rule__Relation__Group_2_2__1__Impl(); @@ -4422,21 +4778,21 @@ public final void rule__Relation__Group_2_2__1() throws RecognitionException { // $ANTLR start "rule__Relation__Group_2_2__1__Impl" - // InternalErDsl.g:1462:1: rule__Relation__Group_2_2__1__Impl : ( ( rule__Relation__AttributesAssignment_2_2_1 ) ) ; + // InternalErDsl.g:1556:1: rule__Relation__Group_2_2__1__Impl : ( ( rule__Relation__AttributesAssignment_2_2_1 ) ) ; public final void rule__Relation__Group_2_2__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1466:1: ( ( ( rule__Relation__AttributesAssignment_2_2_1 ) ) ) - // InternalErDsl.g:1467:1: ( ( rule__Relation__AttributesAssignment_2_2_1 ) ) + // InternalErDsl.g:1560:1: ( ( ( rule__Relation__AttributesAssignment_2_2_1 ) ) ) + // InternalErDsl.g:1561:1: ( ( rule__Relation__AttributesAssignment_2_2_1 ) ) { - // InternalErDsl.g:1467:1: ( ( rule__Relation__AttributesAssignment_2_2_1 ) ) - // InternalErDsl.g:1468:2: ( rule__Relation__AttributesAssignment_2_2_1 ) + // InternalErDsl.g:1561:1: ( ( rule__Relation__AttributesAssignment_2_2_1 ) ) + // InternalErDsl.g:1562:2: ( rule__Relation__AttributesAssignment_2_2_1 ) { before(grammarAccess.getRelationAccess().getAttributesAssignment_2_2_1()); - // InternalErDsl.g:1469:2: ( rule__Relation__AttributesAssignment_2_2_1 ) - // InternalErDsl.g:1469:3: rule__Relation__AttributesAssignment_2_2_1 + // InternalErDsl.g:1563:2: ( rule__Relation__AttributesAssignment_2_2_1 ) + // InternalErDsl.g:1563:3: rule__Relation__AttributesAssignment_2_2_1 { pushFollow(FOLLOW_2); rule__Relation__AttributesAssignment_2_2_1(); @@ -4469,14 +4825,14 @@ public final void rule__Relation__Group_2_2__1__Impl() throws RecognitionExcepti // $ANTLR start "rule__RelationSide__Group_0__0" - // InternalErDsl.g:1478:1: rule__RelationSide__Group_0__0 : rule__RelationSide__Group_0__0__Impl rule__RelationSide__Group_0__1 ; + // InternalErDsl.g:1572:1: rule__RelationSide__Group_0__0 : rule__RelationSide__Group_0__0__Impl rule__RelationSide__Group_0__1 ; public final void rule__RelationSide__Group_0__0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1482:1: ( rule__RelationSide__Group_0__0__Impl rule__RelationSide__Group_0__1 ) - // InternalErDsl.g:1483:2: rule__RelationSide__Group_0__0__Impl rule__RelationSide__Group_0__1 + // InternalErDsl.g:1576:1: ( rule__RelationSide__Group_0__0__Impl rule__RelationSide__Group_0__1 ) + // InternalErDsl.g:1577:2: rule__RelationSide__Group_0__0__Impl rule__RelationSide__Group_0__1 { pushFollow(FOLLOW_5); rule__RelationSide__Group_0__0__Impl(); @@ -4507,21 +4863,21 @@ public final void rule__RelationSide__Group_0__0() throws RecognitionException { // $ANTLR start "rule__RelationSide__Group_0__0__Impl" - // InternalErDsl.g:1490:1: rule__RelationSide__Group_0__0__Impl : ( ( rule__RelationSide__CardinalityAssignment_0_0 ) ) ; + // InternalErDsl.g:1584:1: rule__RelationSide__Group_0__0__Impl : ( ( rule__RelationSide__CardinalityAssignment_0_0 ) ) ; public final void rule__RelationSide__Group_0__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1494:1: ( ( ( rule__RelationSide__CardinalityAssignment_0_0 ) ) ) - // InternalErDsl.g:1495:1: ( ( rule__RelationSide__CardinalityAssignment_0_0 ) ) + // InternalErDsl.g:1588:1: ( ( ( rule__RelationSide__CardinalityAssignment_0_0 ) ) ) + // InternalErDsl.g:1589:1: ( ( rule__RelationSide__CardinalityAssignment_0_0 ) ) { - // InternalErDsl.g:1495:1: ( ( rule__RelationSide__CardinalityAssignment_0_0 ) ) - // InternalErDsl.g:1496:2: ( rule__RelationSide__CardinalityAssignment_0_0 ) + // InternalErDsl.g:1589:1: ( ( rule__RelationSide__CardinalityAssignment_0_0 ) ) + // InternalErDsl.g:1590:2: ( rule__RelationSide__CardinalityAssignment_0_0 ) { before(grammarAccess.getRelationSideAccess().getCardinalityAssignment_0_0()); - // InternalErDsl.g:1497:2: ( rule__RelationSide__CardinalityAssignment_0_0 ) - // InternalErDsl.g:1497:3: rule__RelationSide__CardinalityAssignment_0_0 + // InternalErDsl.g:1591:2: ( rule__RelationSide__CardinalityAssignment_0_0 ) + // InternalErDsl.g:1591:3: rule__RelationSide__CardinalityAssignment_0_0 { pushFollow(FOLLOW_2); rule__RelationSide__CardinalityAssignment_0_0(); @@ -4554,14 +4910,14 @@ public final void rule__RelationSide__Group_0__0__Impl() throws RecognitionExcep // $ANTLR start "rule__RelationSide__Group_0__1" - // InternalErDsl.g:1505:1: rule__RelationSide__Group_0__1 : rule__RelationSide__Group_0__1__Impl ; + // InternalErDsl.g:1599:1: rule__RelationSide__Group_0__1 : rule__RelationSide__Group_0__1__Impl ; public final void rule__RelationSide__Group_0__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1509:1: ( rule__RelationSide__Group_0__1__Impl ) - // InternalErDsl.g:1510:2: rule__RelationSide__Group_0__1__Impl + // InternalErDsl.g:1603:1: ( rule__RelationSide__Group_0__1__Impl ) + // InternalErDsl.g:1604:2: rule__RelationSide__Group_0__1__Impl { pushFollow(FOLLOW_2); rule__RelationSide__Group_0__1__Impl(); @@ -4587,21 +4943,21 @@ public final void rule__RelationSide__Group_0__1() throws RecognitionException { // $ANTLR start "rule__RelationSide__Group_0__1__Impl" - // InternalErDsl.g:1516:1: rule__RelationSide__Group_0__1__Impl : ( ( rule__RelationSide__TargetAssignment_0_1 ) ) ; + // InternalErDsl.g:1610:1: rule__RelationSide__Group_0__1__Impl : ( ( rule__RelationSide__TargetAssignment_0_1 ) ) ; public final void rule__RelationSide__Group_0__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1520:1: ( ( ( rule__RelationSide__TargetAssignment_0_1 ) ) ) - // InternalErDsl.g:1521:1: ( ( rule__RelationSide__TargetAssignment_0_1 ) ) + // InternalErDsl.g:1614:1: ( ( ( rule__RelationSide__TargetAssignment_0_1 ) ) ) + // InternalErDsl.g:1615:1: ( ( rule__RelationSide__TargetAssignment_0_1 ) ) { - // InternalErDsl.g:1521:1: ( ( rule__RelationSide__TargetAssignment_0_1 ) ) - // InternalErDsl.g:1522:2: ( rule__RelationSide__TargetAssignment_0_1 ) + // InternalErDsl.g:1615:1: ( ( rule__RelationSide__TargetAssignment_0_1 ) ) + // InternalErDsl.g:1616:2: ( rule__RelationSide__TargetAssignment_0_1 ) { before(grammarAccess.getRelationSideAccess().getTargetAssignment_0_1()); - // InternalErDsl.g:1523:2: ( rule__RelationSide__TargetAssignment_0_1 ) - // InternalErDsl.g:1523:3: rule__RelationSide__TargetAssignment_0_1 + // InternalErDsl.g:1617:2: ( rule__RelationSide__TargetAssignment_0_1 ) + // InternalErDsl.g:1617:3: rule__RelationSide__TargetAssignment_0_1 { pushFollow(FOLLOW_2); rule__RelationSide__TargetAssignment_0_1(); @@ -4634,17 +4990,17 @@ public final void rule__RelationSide__Group_0__1__Impl() throws RecognitionExcep // $ANTLR start "rule__ERModel__DomainAssignment_0" - // InternalErDsl.g:1532:1: rule__ERModel__DomainAssignment_0 : ( ruleDomain ) ; + // InternalErDsl.g:1626:1: rule__ERModel__DomainAssignment_0 : ( ruleDomain ) ; public final void rule__ERModel__DomainAssignment_0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1536:1: ( ( ruleDomain ) ) - // InternalErDsl.g:1537:2: ( ruleDomain ) + // InternalErDsl.g:1630:1: ( ( ruleDomain ) ) + // InternalErDsl.g:1631:2: ( ruleDomain ) { - // InternalErDsl.g:1537:2: ( ruleDomain ) - // InternalErDsl.g:1538:3: ruleDomain + // InternalErDsl.g:1631:2: ( ruleDomain ) + // InternalErDsl.g:1632:3: ruleDomain { before(grammarAccess.getERModelAccess().getDomainDomainParserRuleCall_0_0()); pushFollow(FOLLOW_2); @@ -4675,17 +5031,17 @@ public final void rule__ERModel__DomainAssignment_0() throws RecognitionExceptio // $ANTLR start "rule__ERModel__EntitiesAssignment_3" - // InternalErDsl.g:1547:1: rule__ERModel__EntitiesAssignment_3 : ( ruleEntity ) ; + // InternalErDsl.g:1641:1: rule__ERModel__EntitiesAssignment_3 : ( ruleEntity ) ; public final void rule__ERModel__EntitiesAssignment_3() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1551:1: ( ( ruleEntity ) ) - // InternalErDsl.g:1552:2: ( ruleEntity ) + // InternalErDsl.g:1645:1: ( ( ruleEntity ) ) + // InternalErDsl.g:1646:2: ( ruleEntity ) { - // InternalErDsl.g:1552:2: ( ruleEntity ) - // InternalErDsl.g:1553:3: ruleEntity + // InternalErDsl.g:1646:2: ( ruleEntity ) + // InternalErDsl.g:1647:3: ruleEntity { before(grammarAccess.getERModelAccess().getEntitiesEntityParserRuleCall_3_0()); pushFollow(FOLLOW_2); @@ -4716,17 +5072,17 @@ public final void rule__ERModel__EntitiesAssignment_3() throws RecognitionExcept // $ANTLR start "rule__ERModel__RelationsAssignment_6" - // InternalErDsl.g:1562:1: rule__ERModel__RelationsAssignment_6 : ( ruleRelation ) ; + // InternalErDsl.g:1656:1: rule__ERModel__RelationsAssignment_6 : ( ruleRelation ) ; public final void rule__ERModel__RelationsAssignment_6() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1566:1: ( ( ruleRelation ) ) - // InternalErDsl.g:1567:2: ( ruleRelation ) + // InternalErDsl.g:1660:1: ( ( ruleRelation ) ) + // InternalErDsl.g:1661:2: ( ruleRelation ) { - // InternalErDsl.g:1567:2: ( ruleRelation ) - // InternalErDsl.g:1568:3: ruleRelation + // InternalErDsl.g:1661:2: ( ruleRelation ) + // InternalErDsl.g:1662:3: ruleRelation { before(grammarAccess.getERModelAccess().getRelationsRelationParserRuleCall_6_0()); pushFollow(FOLLOW_2); @@ -4757,17 +5113,17 @@ public final void rule__ERModel__RelationsAssignment_6() throws RecognitionExcep // $ANTLR start "rule__Domain__NameAssignment_1" - // InternalErDsl.g:1577:1: rule__Domain__NameAssignment_1 : ( RULE_ID ) ; + // InternalErDsl.g:1671:1: rule__Domain__NameAssignment_1 : ( RULE_ID ) ; public final void rule__Domain__NameAssignment_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1581:1: ( ( RULE_ID ) ) - // InternalErDsl.g:1582:2: ( RULE_ID ) + // InternalErDsl.g:1675:1: ( ( RULE_ID ) ) + // InternalErDsl.g:1676:2: ( RULE_ID ) { - // InternalErDsl.g:1582:2: ( RULE_ID ) - // InternalErDsl.g:1583:3: RULE_ID + // InternalErDsl.g:1676:2: ( RULE_ID ) + // InternalErDsl.g:1677:3: RULE_ID { before(grammarAccess.getDomainAccess().getNameIDTerminalRuleCall_1_0()); match(input,RULE_ID,FOLLOW_2); @@ -4794,17 +5150,17 @@ public final void rule__Domain__NameAssignment_1() throws RecognitionException { // $ANTLR start "rule__Attribute__NameAssignment_0" - // InternalErDsl.g:1592:1: rule__Attribute__NameAssignment_0 : ( RULE_ID ) ; + // InternalErDsl.g:1686:1: rule__Attribute__NameAssignment_0 : ( RULE_ID ) ; public final void rule__Attribute__NameAssignment_0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1596:1: ( ( RULE_ID ) ) - // InternalErDsl.g:1597:2: ( RULE_ID ) + // InternalErDsl.g:1690:1: ( ( RULE_ID ) ) + // InternalErDsl.g:1691:2: ( RULE_ID ) { - // InternalErDsl.g:1597:2: ( RULE_ID ) - // InternalErDsl.g:1598:3: RULE_ID + // InternalErDsl.g:1691:2: ( RULE_ID ) + // InternalErDsl.g:1692:3: RULE_ID { before(grammarAccess.getAttributeAccess().getNameIDTerminalRuleCall_0_0()); match(input,RULE_ID,FOLLOW_2); @@ -4830,30 +5186,71 @@ public final void rule__Attribute__NameAssignment_0() throws RecognitionExceptio // $ANTLR end "rule__Attribute__NameAssignment_0" - // $ANTLR start "rule__Attribute__IsKeyAssignment_1" - // InternalErDsl.g:1607:1: rule__Attribute__IsKeyAssignment_1 : ( ( 'isIdentifier' ) ) ; - public final void rule__Attribute__IsKeyAssignment_1() throws RecognitionException { + // $ANTLR start "rule__Attribute__TypeAssignment_1" + // InternalErDsl.g:1701:1: rule__Attribute__TypeAssignment_1 : ( ruleDataType ) ; + public final void rule__Attribute__TypeAssignment_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1611:1: ( ( ( 'isIdentifier' ) ) ) - // InternalErDsl.g:1612:2: ( ( 'isIdentifier' ) ) + // InternalErDsl.g:1705:1: ( ( ruleDataType ) ) + // InternalErDsl.g:1706:2: ( ruleDataType ) { - // InternalErDsl.g:1612:2: ( ( 'isIdentifier' ) ) - // InternalErDsl.g:1613:3: ( 'isIdentifier' ) + // InternalErDsl.g:1706:2: ( ruleDataType ) + // InternalErDsl.g:1707:3: ruleDataType { - before(grammarAccess.getAttributeAccess().getIsKeyIsIdentifierKeyword_1_0()); - // InternalErDsl.g:1614:3: ( 'isIdentifier' ) - // InternalErDsl.g:1615:4: 'isIdentifier' + before(grammarAccess.getAttributeAccess().getTypeDataTypeEnumRuleCall_1_0()); + pushFollow(FOLLOW_2); + ruleDataType(); + + state._fsp--; + + after(grammarAccess.getAttributeAccess().getTypeDataTypeEnumRuleCall_1_0()); + + } + + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + finally { + + restoreStackSize(stackSize); + + } + return ; + } + // $ANTLR end "rule__Attribute__TypeAssignment_1" + + + // $ANTLR start "rule__Attribute__IsKeyAssignment_2" + // InternalErDsl.g:1716:1: rule__Attribute__IsKeyAssignment_2 : ( ( 'isIdentifier' ) ) ; + public final void rule__Attribute__IsKeyAssignment_2() throws RecognitionException { + + int stackSize = keepStackSize(); + + try { + // InternalErDsl.g:1720:1: ( ( ( 'isIdentifier' ) ) ) + // InternalErDsl.g:1721:2: ( ( 'isIdentifier' ) ) { - before(grammarAccess.getAttributeAccess().getIsKeyIsIdentifierKeyword_1_0()); - match(input,26,FOLLOW_2); - after(grammarAccess.getAttributeAccess().getIsKeyIsIdentifierKeyword_1_0()); + // InternalErDsl.g:1721:2: ( ( 'isIdentifier' ) ) + // InternalErDsl.g:1722:3: ( 'isIdentifier' ) + { + before(grammarAccess.getAttributeAccess().getIsKeyIsIdentifierKeyword_2_0()); + // InternalErDsl.g:1723:3: ( 'isIdentifier' ) + // InternalErDsl.g:1724:4: 'isIdentifier' + { + before(grammarAccess.getAttributeAccess().getIsKeyIsIdentifierKeyword_2_0()); + match(input,33,FOLLOW_2); + after(grammarAccess.getAttributeAccess().getIsKeyIsIdentifierKeyword_2_0()); } - after(grammarAccess.getAttributeAccess().getIsKeyIsIdentifierKeyword_1_0()); + after(grammarAccess.getAttributeAccess().getIsKeyIsIdentifierKeyword_2_0()); } @@ -4872,21 +5269,21 @@ public final void rule__Attribute__IsKeyAssignment_1() throws RecognitionExcepti } return ; } - // $ANTLR end "rule__Attribute__IsKeyAssignment_1" + // $ANTLR end "rule__Attribute__IsKeyAssignment_2" // $ANTLR start "rule__Entity__NameAssignment_0" - // InternalErDsl.g:1626:1: rule__Entity__NameAssignment_0 : ( RULE_ID ) ; + // InternalErDsl.g:1735:1: rule__Entity__NameAssignment_0 : ( RULE_ID ) ; public final void rule__Entity__NameAssignment_0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1630:1: ( ( RULE_ID ) ) - // InternalErDsl.g:1631:2: ( RULE_ID ) + // InternalErDsl.g:1739:1: ( ( RULE_ID ) ) + // InternalErDsl.g:1740:2: ( RULE_ID ) { - // InternalErDsl.g:1631:2: ( RULE_ID ) - // InternalErDsl.g:1632:3: RULE_ID + // InternalErDsl.g:1740:2: ( RULE_ID ) + // InternalErDsl.g:1741:3: RULE_ID { before(grammarAccess.getEntityAccess().getNameIDTerminalRuleCall_0_0()); match(input,RULE_ID,FOLLOW_2); @@ -4913,21 +5310,21 @@ public final void rule__Entity__NameAssignment_0() throws RecognitionException { // $ANTLR start "rule__Entity__IsAssignment_1_1" - // InternalErDsl.g:1641:1: rule__Entity__IsAssignment_1_1 : ( ( RULE_ID ) ) ; + // InternalErDsl.g:1750:1: rule__Entity__IsAssignment_1_1 : ( ( RULE_ID ) ) ; public final void rule__Entity__IsAssignment_1_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1645:1: ( ( ( RULE_ID ) ) ) - // InternalErDsl.g:1646:2: ( ( RULE_ID ) ) + // InternalErDsl.g:1754:1: ( ( ( RULE_ID ) ) ) + // InternalErDsl.g:1755:2: ( ( RULE_ID ) ) { - // InternalErDsl.g:1646:2: ( ( RULE_ID ) ) - // InternalErDsl.g:1647:3: ( RULE_ID ) + // InternalErDsl.g:1755:2: ( ( RULE_ID ) ) + // InternalErDsl.g:1756:3: ( RULE_ID ) { before(grammarAccess.getEntityAccess().getIsEntityCrossReference_1_1_0()); - // InternalErDsl.g:1648:3: ( RULE_ID ) - // InternalErDsl.g:1649:4: RULE_ID + // InternalErDsl.g:1757:3: ( RULE_ID ) + // InternalErDsl.g:1758:4: RULE_ID { before(grammarAccess.getEntityAccess().getIsEntityIDTerminalRuleCall_1_1_0_1()); match(input,RULE_ID,FOLLOW_2); @@ -4958,17 +5355,17 @@ public final void rule__Entity__IsAssignment_1_1() throws RecognitionException { // $ANTLR start "rule__Entity__AttributesAssignment_2_1" - // InternalErDsl.g:1660:1: rule__Entity__AttributesAssignment_2_1 : ( ruleAttribute ) ; + // InternalErDsl.g:1769:1: rule__Entity__AttributesAssignment_2_1 : ( ruleAttribute ) ; public final void rule__Entity__AttributesAssignment_2_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1664:1: ( ( ruleAttribute ) ) - // InternalErDsl.g:1665:2: ( ruleAttribute ) + // InternalErDsl.g:1773:1: ( ( ruleAttribute ) ) + // InternalErDsl.g:1774:2: ( ruleAttribute ) { - // InternalErDsl.g:1665:2: ( ruleAttribute ) - // InternalErDsl.g:1666:3: ruleAttribute + // InternalErDsl.g:1774:2: ( ruleAttribute ) + // InternalErDsl.g:1775:3: ruleAttribute { before(grammarAccess.getEntityAccess().getAttributesAttributeParserRuleCall_2_1_0()); pushFollow(FOLLOW_2); @@ -4999,17 +5396,17 @@ public final void rule__Entity__AttributesAssignment_2_1() throws RecognitionExc // $ANTLR start "rule__Entity__AttributesAssignment_2_2_1" - // InternalErDsl.g:1675:1: rule__Entity__AttributesAssignment_2_2_1 : ( ruleAttribute ) ; + // InternalErDsl.g:1784:1: rule__Entity__AttributesAssignment_2_2_1 : ( ruleAttribute ) ; public final void rule__Entity__AttributesAssignment_2_2_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1679:1: ( ( ruleAttribute ) ) - // InternalErDsl.g:1680:2: ( ruleAttribute ) + // InternalErDsl.g:1788:1: ( ( ruleAttribute ) ) + // InternalErDsl.g:1789:2: ( ruleAttribute ) { - // InternalErDsl.g:1680:2: ( ruleAttribute ) - // InternalErDsl.g:1681:3: ruleAttribute + // InternalErDsl.g:1789:2: ( ruleAttribute ) + // InternalErDsl.g:1790:3: ruleAttribute { before(grammarAccess.getEntityAccess().getAttributesAttributeParserRuleCall_2_2_1_0()); pushFollow(FOLLOW_2); @@ -5040,17 +5437,17 @@ public final void rule__Entity__AttributesAssignment_2_2_1() throws RecognitionE // $ANTLR start "rule__Relation__NameAssignment_0" - // InternalErDsl.g:1690:1: rule__Relation__NameAssignment_0 : ( RULE_ID ) ; + // InternalErDsl.g:1799:1: rule__Relation__NameAssignment_0 : ( RULE_ID ) ; public final void rule__Relation__NameAssignment_0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1694:1: ( ( RULE_ID ) ) - // InternalErDsl.g:1695:2: ( RULE_ID ) + // InternalErDsl.g:1803:1: ( ( RULE_ID ) ) + // InternalErDsl.g:1804:2: ( RULE_ID ) { - // InternalErDsl.g:1695:2: ( RULE_ID ) - // InternalErDsl.g:1696:3: RULE_ID + // InternalErDsl.g:1804:2: ( RULE_ID ) + // InternalErDsl.g:1805:3: RULE_ID { before(grammarAccess.getRelationAccess().getNameIDTerminalRuleCall_0_0()); match(input,RULE_ID,FOLLOW_2); @@ -5077,17 +5474,17 @@ public final void rule__Relation__NameAssignment_0() throws RecognitionException // $ANTLR start "rule__Relation__LeftEndingAssignment_1_1" - // InternalErDsl.g:1705:1: rule__Relation__LeftEndingAssignment_1_1 : ( ruleRelationSide ) ; + // InternalErDsl.g:1814:1: rule__Relation__LeftEndingAssignment_1_1 : ( ruleRelationSide ) ; public final void rule__Relation__LeftEndingAssignment_1_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1709:1: ( ( ruleRelationSide ) ) - // InternalErDsl.g:1710:2: ( ruleRelationSide ) + // InternalErDsl.g:1818:1: ( ( ruleRelationSide ) ) + // InternalErDsl.g:1819:2: ( ruleRelationSide ) { - // InternalErDsl.g:1710:2: ( ruleRelationSide ) - // InternalErDsl.g:1711:3: ruleRelationSide + // InternalErDsl.g:1819:2: ( ruleRelationSide ) + // InternalErDsl.g:1820:3: ruleRelationSide { before(grammarAccess.getRelationAccess().getLeftEndingRelationSideParserRuleCall_1_1_0()); pushFollow(FOLLOW_2); @@ -5118,17 +5515,17 @@ public final void rule__Relation__LeftEndingAssignment_1_1() throws RecognitionE // $ANTLR start "rule__Relation__RightEndingAssignment_1_3" - // InternalErDsl.g:1720:1: rule__Relation__RightEndingAssignment_1_3 : ( ruleRelationSide ) ; + // InternalErDsl.g:1829:1: rule__Relation__RightEndingAssignment_1_3 : ( ruleRelationSide ) ; public final void rule__Relation__RightEndingAssignment_1_3() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1724:1: ( ( ruleRelationSide ) ) - // InternalErDsl.g:1725:2: ( ruleRelationSide ) + // InternalErDsl.g:1833:1: ( ( ruleRelationSide ) ) + // InternalErDsl.g:1834:2: ( ruleRelationSide ) { - // InternalErDsl.g:1725:2: ( ruleRelationSide ) - // InternalErDsl.g:1726:3: ruleRelationSide + // InternalErDsl.g:1834:2: ( ruleRelationSide ) + // InternalErDsl.g:1835:3: ruleRelationSide { before(grammarAccess.getRelationAccess().getRightEndingRelationSideParserRuleCall_1_3_0()); pushFollow(FOLLOW_2); @@ -5159,17 +5556,17 @@ public final void rule__Relation__RightEndingAssignment_1_3() throws Recognition // $ANTLR start "rule__Relation__AttributesAssignment_2_1" - // InternalErDsl.g:1735:1: rule__Relation__AttributesAssignment_2_1 : ( ruleAttribute ) ; + // InternalErDsl.g:1844:1: rule__Relation__AttributesAssignment_2_1 : ( ruleAttribute ) ; public final void rule__Relation__AttributesAssignment_2_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1739:1: ( ( ruleAttribute ) ) - // InternalErDsl.g:1740:2: ( ruleAttribute ) + // InternalErDsl.g:1848:1: ( ( ruleAttribute ) ) + // InternalErDsl.g:1849:2: ( ruleAttribute ) { - // InternalErDsl.g:1740:2: ( ruleAttribute ) - // InternalErDsl.g:1741:3: ruleAttribute + // InternalErDsl.g:1849:2: ( ruleAttribute ) + // InternalErDsl.g:1850:3: ruleAttribute { before(grammarAccess.getRelationAccess().getAttributesAttributeParserRuleCall_2_1_0()); pushFollow(FOLLOW_2); @@ -5200,17 +5597,17 @@ public final void rule__Relation__AttributesAssignment_2_1() throws RecognitionE // $ANTLR start "rule__Relation__AttributesAssignment_2_2_1" - // InternalErDsl.g:1750:1: rule__Relation__AttributesAssignment_2_2_1 : ( ruleAttribute ) ; + // InternalErDsl.g:1859:1: rule__Relation__AttributesAssignment_2_2_1 : ( ruleAttribute ) ; public final void rule__Relation__AttributesAssignment_2_2_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1754:1: ( ( ruleAttribute ) ) - // InternalErDsl.g:1755:2: ( ruleAttribute ) + // InternalErDsl.g:1863:1: ( ( ruleAttribute ) ) + // InternalErDsl.g:1864:2: ( ruleAttribute ) { - // InternalErDsl.g:1755:2: ( ruleAttribute ) - // InternalErDsl.g:1756:3: ruleAttribute + // InternalErDsl.g:1864:2: ( ruleAttribute ) + // InternalErDsl.g:1865:3: ruleAttribute { before(grammarAccess.getRelationAccess().getAttributesAttributeParserRuleCall_2_2_1_0()); pushFollow(FOLLOW_2); @@ -5241,21 +5638,21 @@ public final void rule__Relation__AttributesAssignment_2_2_1() throws Recognitio // $ANTLR start "rule__RelationSide__CardinalityAssignment_0_0" - // InternalErDsl.g:1765:1: rule__RelationSide__CardinalityAssignment_0_0 : ( ( rule__RelationSide__CardinalityAlternatives_0_0_0 ) ) ; + // InternalErDsl.g:1874:1: rule__RelationSide__CardinalityAssignment_0_0 : ( ( rule__RelationSide__CardinalityAlternatives_0_0_0 ) ) ; public final void rule__RelationSide__CardinalityAssignment_0_0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1769:1: ( ( ( rule__RelationSide__CardinalityAlternatives_0_0_0 ) ) ) - // InternalErDsl.g:1770:2: ( ( rule__RelationSide__CardinalityAlternatives_0_0_0 ) ) + // InternalErDsl.g:1878:1: ( ( ( rule__RelationSide__CardinalityAlternatives_0_0_0 ) ) ) + // InternalErDsl.g:1879:2: ( ( rule__RelationSide__CardinalityAlternatives_0_0_0 ) ) { - // InternalErDsl.g:1770:2: ( ( rule__RelationSide__CardinalityAlternatives_0_0_0 ) ) - // InternalErDsl.g:1771:3: ( rule__RelationSide__CardinalityAlternatives_0_0_0 ) + // InternalErDsl.g:1879:2: ( ( rule__RelationSide__CardinalityAlternatives_0_0_0 ) ) + // InternalErDsl.g:1880:3: ( rule__RelationSide__CardinalityAlternatives_0_0_0 ) { before(grammarAccess.getRelationSideAccess().getCardinalityAlternatives_0_0_0()); - // InternalErDsl.g:1772:3: ( rule__RelationSide__CardinalityAlternatives_0_0_0 ) - // InternalErDsl.g:1772:4: rule__RelationSide__CardinalityAlternatives_0_0_0 + // InternalErDsl.g:1881:3: ( rule__RelationSide__CardinalityAlternatives_0_0_0 ) + // InternalErDsl.g:1881:4: rule__RelationSide__CardinalityAlternatives_0_0_0 { pushFollow(FOLLOW_2); rule__RelationSide__CardinalityAlternatives_0_0_0(); @@ -5288,21 +5685,21 @@ public final void rule__RelationSide__CardinalityAssignment_0_0() throws Recogni // $ANTLR start "rule__RelationSide__TargetAssignment_0_1" - // InternalErDsl.g:1780:1: rule__RelationSide__TargetAssignment_0_1 : ( ( RULE_ID ) ) ; + // InternalErDsl.g:1889:1: rule__RelationSide__TargetAssignment_0_1 : ( ( RULE_ID ) ) ; public final void rule__RelationSide__TargetAssignment_0_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1784:1: ( ( ( RULE_ID ) ) ) - // InternalErDsl.g:1785:2: ( ( RULE_ID ) ) + // InternalErDsl.g:1893:1: ( ( ( RULE_ID ) ) ) + // InternalErDsl.g:1894:2: ( ( RULE_ID ) ) { - // InternalErDsl.g:1785:2: ( ( RULE_ID ) ) - // InternalErDsl.g:1786:3: ( RULE_ID ) + // InternalErDsl.g:1894:2: ( ( RULE_ID ) ) + // InternalErDsl.g:1895:3: ( RULE_ID ) { before(grammarAccess.getRelationSideAccess().getTargetEntityCrossReference_0_1_0()); - // InternalErDsl.g:1787:3: ( RULE_ID ) - // InternalErDsl.g:1788:4: RULE_ID + // InternalErDsl.g:1896:3: ( RULE_ID ) + // InternalErDsl.g:1897:4: RULE_ID { before(grammarAccess.getRelationSideAccess().getTargetEntityIDTerminalRuleCall_0_1_0_1()); match(input,RULE_ID,FOLLOW_2); @@ -5333,21 +5730,21 @@ public final void rule__RelationSide__TargetAssignment_0_1() throws RecognitionE // $ANTLR start "rule__RelationSide__TargetAssignment_1" - // InternalErDsl.g:1799:1: rule__RelationSide__TargetAssignment_1 : ( ( RULE_ID ) ) ; + // InternalErDsl.g:1908:1: rule__RelationSide__TargetAssignment_1 : ( ( RULE_ID ) ) ; public final void rule__RelationSide__TargetAssignment_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDsl.g:1803:1: ( ( ( RULE_ID ) ) ) - // InternalErDsl.g:1804:2: ( ( RULE_ID ) ) + // InternalErDsl.g:1912:1: ( ( ( RULE_ID ) ) ) + // InternalErDsl.g:1913:2: ( ( RULE_ID ) ) { - // InternalErDsl.g:1804:2: ( ( RULE_ID ) ) - // InternalErDsl.g:1805:3: ( RULE_ID ) + // InternalErDsl.g:1913:2: ( ( RULE_ID ) ) + // InternalErDsl.g:1914:3: ( RULE_ID ) { before(grammarAccess.getRelationSideAccess().getTargetRelationCrossReference_1_0()); - // InternalErDsl.g:1806:3: ( RULE_ID ) - // InternalErDsl.g:1807:4: RULE_ID + // InternalErDsl.g:1915:3: ( RULE_ID ) + // InternalErDsl.g:1916:4: RULE_ID { before(grammarAccess.getRelationSideAccess().getTargetRelationIDTerminalRuleCall_1_0_1()); match(input,RULE_ID,FOLLOW_2); @@ -5383,24 +5780,25 @@ public final void rule__RelationSide__TargetAssignment_1() throws RecognitionExc public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000000000008000L}); - public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000000000400000L}); + public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000800000L}); public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000002000000L}); public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000000012L}); - public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000080000L}); - public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000840010L}); - public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000800012L}); - public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000020000L}); - public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000004000000L}); - public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000220000L}); - public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000000200002L}); - public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000440000L}); - public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000000400002L}); - public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000800010L}); - public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000000020002L}); - public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000000007810L}); - public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000001000000L}); - public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000002000000L}); + public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000004000000L}); + public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000042000010L}); + public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000040000012L}); + public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000001000000L}); + public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x00000000003F8000L}); + public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000200000000L}); + public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000011000000L}); + public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000010000002L}); + public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000022000000L}); + public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000020000002L}); + public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000040000010L}); + public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000001000002L}); + public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000000007810L}); + public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000080000000L}); + public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000100000000L}); } \ No newline at end of file diff --git a/org.xtext.unipampa.erdsl.ide/xtend-gen/org/xtext/unipampa/erdsl/ide/.ErDslIdeModule.xtendbin b/org.xtext.unipampa.erdsl.ide/xtend-gen/org/xtext/unipampa/erdsl/ide/.ErDslIdeModule.xtendbin index 847803c..3671727 100644 Binary files a/org.xtext.unipampa.erdsl.ide/xtend-gen/org/xtext/unipampa/erdsl/ide/.ErDslIdeModule.xtendbin and b/org.xtext.unipampa.erdsl.ide/xtend-gen/org/xtext/unipampa/erdsl/ide/.ErDslIdeModule.xtendbin differ diff --git a/org.xtext.unipampa.erdsl.ide/xtend-gen/org/xtext/unipampa/erdsl/ide/.ErDslIdeSetup.xtendbin b/org.xtext.unipampa.erdsl.ide/xtend-gen/org/xtext/unipampa/erdsl/ide/.ErDslIdeSetup.xtendbin index 196c199..97d9200 100644 Binary files a/org.xtext.unipampa.erdsl.ide/xtend-gen/org/xtext/unipampa/erdsl/ide/.ErDslIdeSetup.xtendbin and b/org.xtext.unipampa.erdsl.ide/xtend-gen/org/xtext/unipampa/erdsl/ide/.ErDslIdeSetup.xtendbin differ diff --git a/org.xtext.unipampa.erdsl.tests/src-gen/org/xtext/unipampa/erdsl/tests/ErDslInjectorProvider.java b/org.xtext.unipampa.erdsl.tests/src-gen/org/xtext/unipampa/erdsl/tests/ErDslInjectorProvider.java index 5ab8a8a..f4cfe04 100644 --- a/org.xtext.unipampa.erdsl.tests/src-gen/org/xtext/unipampa/erdsl/tests/ErDslInjectorProvider.java +++ b/org.xtext.unipampa.erdsl.tests/src-gen/org/xtext/unipampa/erdsl/tests/ErDslInjectorProvider.java @@ -1,5 +1,5 @@ /* - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl.tests; diff --git a/org.xtext.unipampa.erdsl.tests/test-bin/org/xtext/unipampa/erdsl/tests/.ErDslParsingTest.xtendbin b/org.xtext.unipampa.erdsl.tests/test-bin/org/xtext/unipampa/erdsl/tests/.ErDslParsingTest.xtendbin index b6241b4..73c9945 100644 Binary files a/org.xtext.unipampa.erdsl.tests/test-bin/org/xtext/unipampa/erdsl/tests/.ErDslParsingTest.xtendbin and b/org.xtext.unipampa.erdsl.tests/test-bin/org/xtext/unipampa/erdsl/tests/.ErDslParsingTest.xtendbin differ diff --git a/org.xtext.unipampa.erdsl.tests/test-bin/org/xtext/unipampa/erdsl/tests/ErDslParsingTest.xtend b/org.xtext.unipampa.erdsl.tests/test-bin/org/xtext/unipampa/erdsl/tests/ErDslParsingTest.xtend deleted file mode 100644 index 44b3334..0000000 --- a/org.xtext.unipampa.erdsl.tests/test-bin/org/xtext/unipampa/erdsl/tests/ErDslParsingTest.xtend +++ /dev/null @@ -1,30 +0,0 @@ -/* - * generated by Xtext 2.17.0 - */ -//package org.xtext.unipampa.erdsl.tests -// -//import com.google.inject.Inject -//import org.eclipse.xtext.testing.InjectWith -//import org.eclipse.xtext.testing.extensions.InjectionExtension -//import org.eclipse.xtext.testing.util.ParseHelper -//import org.junit.jupiter.api.Assertions -//import org.junit.jupiter.api.Test -//import org.junit.jupiter.api.^extension.ExtendWith -//import org.xtext.unipampa.erdsl.erDsl.Model -// -//@ExtendWith(InjectionExtension) -//@InjectWith(ErDslInjectorProvider) -//class ErDslParsingTest { -// @Inject -// ParseHelper parseHelper -// -// @Test -// def void loadModel() { -// val result = parseHelper.parse(''' -// Hello Xtext! -// ''') -// Assertions.assertNotNull(result) -// val errors = result.eResource.errors -// Assertions.assertTrue(errors.isEmpty, '''Unexpected errors: «errors.join(", ")»''') -// } -//} diff --git a/org.xtext.unipampa.erdsl.tests/xtend-gen/org/xtext/unipampa/erdsl/tests/.ErDslParsingTest.xtendbin b/org.xtext.unipampa.erdsl.tests/xtend-gen/org/xtext/unipampa/erdsl/tests/.ErDslParsingTest.xtendbin index b6241b4..73c9945 100644 Binary files a/org.xtext.unipampa.erdsl.tests/xtend-gen/org/xtext/unipampa/erdsl/tests/.ErDslParsingTest.xtendbin and b/org.xtext.unipampa.erdsl.tests/xtend-gen/org/xtext/unipampa/erdsl/tests/.ErDslParsingTest.xtendbin differ diff --git a/org.xtext.unipampa.erdsl.ui.tests/META-INF/MANIFEST.MF b/org.xtext.unipampa.erdsl.ui.tests/META-INF/MANIFEST.MF index c159646..3687d5f 100644 --- a/org.xtext.unipampa.erdsl.ui.tests/META-INF/MANIFEST.MF +++ b/org.xtext.unipampa.erdsl.ui.tests/META-INF/MANIFEST.MF @@ -13,6 +13,7 @@ Require-Bundle: org.xtext.unipampa.erdsl.ui, org.eclipse.xtext.junit4, org.eclipse.xtext.xbase.junit, org.eclipse.core.runtime, - org.eclipse.ui.workbench;resolution:=optional + org.eclipse.ui.workbench;resolution:=optional, + org.eclipse.xtext.ui.testing Bundle-RequiredExecutionEnvironment: JavaSE-11 Export-Package: org.xtext.unipampa.erdsl.ui.tests;x-internal=true diff --git a/org.xtext.unipampa.erdsl.ui.tests/src-gen/org/xtext/unipampa/erdsl/ui/tests/ErDslUiInjectorProvider.java b/org.xtext.unipampa.erdsl.ui.tests/src-gen/org/xtext/unipampa/erdsl/ui/tests/ErDslUiInjectorProvider.java index 39ee1ce..e1d750d 100644 --- a/org.xtext.unipampa.erdsl.ui.tests/src-gen/org/xtext/unipampa/erdsl/ui/tests/ErDslUiInjectorProvider.java +++ b/org.xtext.unipampa.erdsl.ui.tests/src-gen/org/xtext/unipampa/erdsl/ui/tests/ErDslUiInjectorProvider.java @@ -1,5 +1,5 @@ /* - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl.ui.tests; diff --git a/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/.ErDslUiModule.xtendbin b/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/.ErDslUiModule.xtendbin index 598e679..0f07a30 100644 Binary files a/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/.ErDslUiModule.xtendbin and b/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/.ErDslUiModule.xtendbin differ diff --git a/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/ErDslUiModule.xtend b/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/ErDslUiModule.xtend deleted file mode 100644 index a579a51..0000000 --- a/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/ErDslUiModule.xtend +++ /dev/null @@ -1,13 +0,0 @@ -/* - * generated by Xtext 2.17.0 - */ -package org.xtext.unipampa.erdsl.ui - -import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor - -/** - * Use this class to register components to be used within the Eclipse IDE. - */ -@FinalFieldsConstructor -class ErDslUiModule extends AbstractErDslUiModule { -} diff --git a/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/contentassist/.ErDslProposalProvider.xtendbin b/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/contentassist/.ErDslProposalProvider.xtendbin index 3054850..530a0af 100644 Binary files a/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/contentassist/.ErDslProposalProvider.xtendbin and b/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/contentassist/.ErDslProposalProvider.xtendbin differ diff --git a/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/contentassist/AbstractErDslProposalProvider.class b/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/contentassist/AbstractErDslProposalProvider.class index 130e370..b260c33 100644 Binary files a/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/contentassist/AbstractErDslProposalProvider.class and b/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/contentassist/AbstractErDslProposalProvider.class differ diff --git a/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/contentassist/ErDslProposalProvider.xtend b/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/contentassist/ErDslProposalProvider.xtend deleted file mode 100644 index 9083c34..0000000 --- a/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/contentassist/ErDslProposalProvider.xtend +++ /dev/null @@ -1,12 +0,0 @@ -/* - * generated by Xtext 2.17.0 - */ -package org.xtext.unipampa.erdsl.ui.contentassist - - -/** - * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#content-assist - * on how to customize the content assistant. - */ -class ErDslProposalProvider extends AbstractErDslProposalProvider { -} diff --git a/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/labeling/.ErDslDescriptionLabelProvider.xtendbin b/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/labeling/.ErDslDescriptionLabelProvider.xtendbin index bdf974b..1929d34 100644 Binary files a/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/labeling/.ErDslDescriptionLabelProvider.xtendbin and b/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/labeling/.ErDslDescriptionLabelProvider.xtendbin differ diff --git a/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/labeling/.ErDslLabelProvider.xtendbin b/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/labeling/.ErDslLabelProvider.xtendbin index e8c3b8c..03666cb 100644 Binary files a/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/labeling/.ErDslLabelProvider.xtendbin and b/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/labeling/.ErDslLabelProvider.xtendbin differ diff --git a/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/labeling/ErDslDescriptionLabelProvider.xtend b/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/labeling/ErDslDescriptionLabelProvider.xtend deleted file mode 100644 index 9acb727..0000000 --- a/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/labeling/ErDslDescriptionLabelProvider.xtend +++ /dev/null @@ -1,24 +0,0 @@ -/* - * generated by Xtext 2.17.0 - */ -package org.xtext.unipampa.erdsl.ui.labeling - -import org.eclipse.xtext.ui.label.DefaultDescriptionLabelProvider - -/** - * Provides labels for IEObjectDescriptions and IResourceDescriptions. - * - * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#label-provider - */ -class ErDslDescriptionLabelProvider extends DefaultDescriptionLabelProvider { - - // Labels and icons can be computed like this: - -// override text(IEObjectDescription ele) { -// ele.name.toString -// } -// -// override image(IEObjectDescription ele) { -// ele.EClass.name + '.gif' -// } -} diff --git a/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/labeling/ErDslLabelProvider.xtend b/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/labeling/ErDslLabelProvider.xtend deleted file mode 100644 index 8327669..0000000 --- a/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/labeling/ErDslLabelProvider.xtend +++ /dev/null @@ -1,31 +0,0 @@ -/* - * generated by Xtext 2.17.0 - */ -package org.xtext.unipampa.erdsl.ui.labeling - -import com.google.inject.Inject -import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider -import org.eclipse.xtext.ui.label.DefaultEObjectLabelProvider - -/** - * Provides labels for EObjects. - * - * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#label-provider - */ -class ErDslLabelProvider extends DefaultEObjectLabelProvider { - - @Inject - new(AdapterFactoryLabelProvider delegate) { - super(delegate); - } - - // Labels and icons can be computed like this: - -// def text(Greeting ele) { -// 'A greeting to ' + ele.name -// } -// -// def image(Greeting ele) { -// 'Greeting.gif' -// } -} diff --git a/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/outline/.ErDslOutlineTreeProvider.xtendbin b/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/outline/.ErDslOutlineTreeProvider.xtendbin index d177826..08db0bc 100644 Binary files a/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/outline/.ErDslOutlineTreeProvider.xtendbin and b/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/outline/.ErDslOutlineTreeProvider.xtendbin differ diff --git a/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/outline/ErDslOutlineTreeProvider.xtend b/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/outline/ErDslOutlineTreeProvider.xtend deleted file mode 100644 index 5395328..0000000 --- a/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/outline/ErDslOutlineTreeProvider.xtend +++ /dev/null @@ -1,15 +0,0 @@ -/* - * generated by Xtext 2.17.0 - */ -package org.xtext.unipampa.erdsl.ui.outline - -import org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider - -/** - * Customization of the default outline structure. - * - * See https://www.eclipse.org/Xtext/documentation/310_eclipse_support.html#outline - */ -class ErDslOutlineTreeProvider extends DefaultOutlineTreeProvider { - -} diff --git a/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/quickfix/.ErDslQuickfixProvider.xtendbin b/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/quickfix/.ErDslQuickfixProvider.xtendbin index de07caf..6e8ce55 100644 Binary files a/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/quickfix/.ErDslQuickfixProvider.xtendbin and b/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/quickfix/.ErDslQuickfixProvider.xtendbin differ diff --git a/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/quickfix/ErDslQuickfixProvider.xtend b/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/quickfix/ErDslQuickfixProvider.xtend deleted file mode 100644 index 4879c35..0000000 --- a/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/quickfix/ErDslQuickfixProvider.xtend +++ /dev/null @@ -1,24 +0,0 @@ -/* - * generated by Xtext 2.17.0 - */ -package org.xtext.unipampa.erdsl.ui.quickfix - -import org.eclipse.xtext.ui.editor.quickfix.DefaultQuickfixProvider - -/** - * Custom quickfixes. - * - * See https://www.eclipse.org/Xtext/documentation/310_eclipse_support.html#quick-fixes - */ -class ErDslQuickfixProvider extends DefaultQuickfixProvider { - -// @Fix(ErDslValidator.INVALID_NAME) -// def capitalizeName(Issue issue, IssueResolutionAcceptor acceptor) { -// acceptor.accept(issue, 'Capitalize name', 'Capitalize the name.', 'upcase.png') [ -// context | -// val xtextDocument = context.xtextDocument -// val firstLetter = xtextDocument.get(issue.offset, 1) -// xtextDocument.replace(issue.offset, 1, firstLetter.toUpperCase) -// ] -// } -} diff --git a/org.xtext.unipampa.erdsl.ui/plugin.xml_gen b/org.xtext.unipampa.erdsl.ui/plugin.xml_gen new file mode 100644 index 0000000..fb79744 --- /dev/null +++ b/org.xtext.unipampa.erdsl.ui/plugin.xml_gen @@ -0,0 +1,434 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/org.xtext.unipampa.erdsl.ui/src-gen/org/xtext/unipampa/erdsl/ui/AbstractErDslUiModule.java b/org.xtext.unipampa.erdsl.ui/src-gen/org/xtext/unipampa/erdsl/ui/AbstractErDslUiModule.java index 9dcc9ba..0bfa40d 100644 --- a/org.xtext.unipampa.erdsl.ui/src-gen/org/xtext/unipampa/erdsl/ui/AbstractErDslUiModule.java +++ b/org.xtext.unipampa.erdsl.ui/src-gen/org/xtext/unipampa/erdsl/ui/AbstractErDslUiModule.java @@ -1,5 +1,5 @@ /* - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl.ui; diff --git a/org.xtext.unipampa.erdsl.ui/src-gen/org/xtext/unipampa/erdsl/ui/ErDslExecutableExtensionFactory.java b/org.xtext.unipampa.erdsl.ui/src-gen/org/xtext/unipampa/erdsl/ui/ErDslExecutableExtensionFactory.java index 730261a..5292ec2 100644 --- a/org.xtext.unipampa.erdsl.ui/src-gen/org/xtext/unipampa/erdsl/ui/ErDslExecutableExtensionFactory.java +++ b/org.xtext.unipampa.erdsl.ui/src-gen/org/xtext/unipampa/erdsl/ui/ErDslExecutableExtensionFactory.java @@ -1,5 +1,5 @@ /* - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl.ui; diff --git a/org.xtext.unipampa.erdsl.ui/src-gen/org/xtext/unipampa/erdsl/ui/contentassist/AbstractErDslProposalProvider.java b/org.xtext.unipampa.erdsl.ui/src-gen/org/xtext/unipampa/erdsl/ui/contentassist/AbstractErDslProposalProvider.java index 9a94365..94570c7 100644 --- a/org.xtext.unipampa.erdsl.ui/src-gen/org/xtext/unipampa/erdsl/ui/contentassist/AbstractErDslProposalProvider.java +++ b/org.xtext.unipampa.erdsl.ui/src-gen/org/xtext/unipampa/erdsl/ui/contentassist/AbstractErDslProposalProvider.java @@ -1,5 +1,5 @@ /* - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl.ui.contentassist; @@ -33,6 +33,9 @@ public void completeDomain_Name(EObject model, Assignment assignment, ContentAss public void completeAttribute_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); } + public void completeAttribute_Type(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); + } public void completeAttribute_IsKey(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { // subclasses may override } @@ -85,4 +88,7 @@ public void complete_Relation(EObject model, RuleCall ruleCall, ContentAssistCon public void complete_RelationSide(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { // subclasses may override } + public void complete_DataType(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { + // subclasses may override + } } diff --git a/org.xtext.unipampa.erdsl.ui/src-gen/org/xtext/unipampa/erdsl/ui/internal/ErdslActivator.java b/org.xtext.unipampa.erdsl.ui/src-gen/org/xtext/unipampa/erdsl/ui/internal/ErdslActivator.java index fc410da..d464919 100644 --- a/org.xtext.unipampa.erdsl.ui/src-gen/org/xtext/unipampa/erdsl/ui/internal/ErdslActivator.java +++ b/org.xtext.unipampa.erdsl.ui/src-gen/org/xtext/unipampa/erdsl/ui/internal/ErdslActivator.java @@ -1,5 +1,5 @@ /* - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl.ui.internal; diff --git a/org.xtext.unipampa.erdsl.ui/src-gen/org/xtext/unipampa/erdsl/validation/ErDslValidatorConfigurationBlock.java b/org.xtext.unipampa.erdsl.ui/src-gen/org/xtext/unipampa/erdsl/validation/ErDslValidatorConfigurationBlock.java index 2dae311..e493285 100644 --- a/org.xtext.unipampa.erdsl.ui/src-gen/org/xtext/unipampa/erdsl/validation/ErDslValidatorConfigurationBlock.java +++ b/org.xtext.unipampa.erdsl.ui/src-gen/org/xtext/unipampa/erdsl/validation/ErDslValidatorConfigurationBlock.java @@ -1,5 +1,5 @@ /* - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl.validation; diff --git a/org.xtext.unipampa.erdsl.ui/xtend-gen/org/xtext/unipampa/erdsl/ui/.ErDslUiModule.xtendbin b/org.xtext.unipampa.erdsl.ui/xtend-gen/org/xtext/unipampa/erdsl/ui/.ErDslUiModule.xtendbin index 598e679..0f07a30 100644 Binary files a/org.xtext.unipampa.erdsl.ui/xtend-gen/org/xtext/unipampa/erdsl/ui/.ErDslUiModule.xtendbin and b/org.xtext.unipampa.erdsl.ui/xtend-gen/org/xtext/unipampa/erdsl/ui/.ErDslUiModule.xtendbin differ diff --git a/org.xtext.unipampa.erdsl.ui/xtend-gen/org/xtext/unipampa/erdsl/ui/contentassist/.ErDslProposalProvider.xtendbin b/org.xtext.unipampa.erdsl.ui/xtend-gen/org/xtext/unipampa/erdsl/ui/contentassist/.ErDslProposalProvider.xtendbin index 3054850..530a0af 100644 Binary files a/org.xtext.unipampa.erdsl.ui/xtend-gen/org/xtext/unipampa/erdsl/ui/contentassist/.ErDslProposalProvider.xtendbin and b/org.xtext.unipampa.erdsl.ui/xtend-gen/org/xtext/unipampa/erdsl/ui/contentassist/.ErDslProposalProvider.xtendbin differ diff --git a/org.xtext.unipampa.erdsl.ui/xtend-gen/org/xtext/unipampa/erdsl/ui/labeling/.ErDslDescriptionLabelProvider.xtendbin b/org.xtext.unipampa.erdsl.ui/xtend-gen/org/xtext/unipampa/erdsl/ui/labeling/.ErDslDescriptionLabelProvider.xtendbin index bdf974b..1929d34 100644 Binary files a/org.xtext.unipampa.erdsl.ui/xtend-gen/org/xtext/unipampa/erdsl/ui/labeling/.ErDslDescriptionLabelProvider.xtendbin and b/org.xtext.unipampa.erdsl.ui/xtend-gen/org/xtext/unipampa/erdsl/ui/labeling/.ErDslDescriptionLabelProvider.xtendbin differ diff --git a/org.xtext.unipampa.erdsl.ui/xtend-gen/org/xtext/unipampa/erdsl/ui/labeling/.ErDslLabelProvider.xtendbin b/org.xtext.unipampa.erdsl.ui/xtend-gen/org/xtext/unipampa/erdsl/ui/labeling/.ErDslLabelProvider.xtendbin index e8c3b8c..03666cb 100644 Binary files a/org.xtext.unipampa.erdsl.ui/xtend-gen/org/xtext/unipampa/erdsl/ui/labeling/.ErDslLabelProvider.xtendbin and b/org.xtext.unipampa.erdsl.ui/xtend-gen/org/xtext/unipampa/erdsl/ui/labeling/.ErDslLabelProvider.xtendbin differ diff --git a/org.xtext.unipampa.erdsl.ui/xtend-gen/org/xtext/unipampa/erdsl/ui/outline/.ErDslOutlineTreeProvider.xtendbin b/org.xtext.unipampa.erdsl.ui/xtend-gen/org/xtext/unipampa/erdsl/ui/outline/.ErDslOutlineTreeProvider.xtendbin index d177826..08db0bc 100644 Binary files a/org.xtext.unipampa.erdsl.ui/xtend-gen/org/xtext/unipampa/erdsl/ui/outline/.ErDslOutlineTreeProvider.xtendbin and b/org.xtext.unipampa.erdsl.ui/xtend-gen/org/xtext/unipampa/erdsl/ui/outline/.ErDslOutlineTreeProvider.xtendbin differ diff --git a/org.xtext.unipampa.erdsl.ui/xtend-gen/org/xtext/unipampa/erdsl/ui/quickfix/.ErDslQuickfixProvider.xtendbin b/org.xtext.unipampa.erdsl.ui/xtend-gen/org/xtext/unipampa/erdsl/ui/quickfix/.ErDslQuickfixProvider.xtendbin index de07caf..6e8ce55 100644 Binary files a/org.xtext.unipampa.erdsl.ui/xtend-gen/org/xtext/unipampa/erdsl/ui/quickfix/.ErDslQuickfixProvider.xtendbin and b/org.xtext.unipampa.erdsl.ui/xtend-gen/org/xtext/unipampa/erdsl/ui/quickfix/.ErDslQuickfixProvider.xtendbin differ diff --git a/org.xtext.unipampa.erdsl/.launch/Launch Runtime Eclipse.launch b/org.xtext.unipampa.erdsl/.launch/Launch Runtime Eclipse.launch index 2720ffb..6c187af 100644 --- a/org.xtext.unipampa.erdsl/.launch/Launch Runtime Eclipse.launch +++ b/org.xtext.unipampa.erdsl/.launch/Launch Runtime Eclipse.launch @@ -1,34 +1,35 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/.ErDslRuntimeModule.xtendbin b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/.ErDslRuntimeModule.xtendbin index be79612..79e54a7 100644 Binary files a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/.ErDslRuntimeModule.xtendbin and b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/.ErDslRuntimeModule.xtendbin differ diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/.ErDslStandaloneSetup.xtendbin b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/.ErDslStandaloneSetup.xtendbin index 894b918..2235eb5 100644 Binary files a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/.ErDslStandaloneSetup.xtendbin and b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/.ErDslStandaloneSetup.xtendbin differ diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/ErDsl.xtext b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/ErDsl.xtext index b58a315..47a55d9 100644 --- a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/ErDsl.xtext +++ b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/ErDsl.xtext @@ -6,60 +6,26 @@ ERModel: domain=Domain ';' ('Entities' '{') entities+=Entity+ ('}' ';') ('Relationships' '{') relations+=Relation* ('}' ';'); - Domain: 'Domain' name=ID; - Attribute: - name=ID (isKey?='isIdentifier')?; - - + name=ID type=DataType (isKey?='isIdentifier')?; Entity: - name=ID ('is' is+=[Entity])* - ('{' attributes+=Attribute (',' attributes+=Attribute)* '}')?; - + name=ID ('is' is=[Entity])* + ('{' attributes+=Attribute + (',' attributes+=Attribute)* '}')?; Relation: - (name=ID)? ('[' leftEnding=RelationSide 'relates' rightEnding=RelationSide ']') ('{' - attributes+=Attribute (',' attributes+=Attribute)* '}')*; - - + (name=ID)? ('[' leftEnding=RelationSide + 'relates' + rightEnding=RelationSide ']') + ('{' attributes+=Attribute + (',' attributes+=Attribute)* '}')*; RelationSide: - Cardinality=('(0:1)' | '(1:1)' | '(0:N)' | '(1:N)') target=[Entity] | target=[Relation]; - - -//grammar org.xtext.unipampa.erdsl.ErDsl with org.eclipse.xtext.common.Terminals -// -//generate erDsl "http://www.xtext.org/unipampa/erdsl/ErDsl" -// -//ERModel: -// domain=Domain ';' -// ('Entities{') entities+=Entity+ ('};') -// ('Relationships{') relations+=Relation* ('};'); -// -//Domain: -// 'Domain' name=ID; -// -//Attribute: -// name=ID ':' type=DataType (isKey?='isIdentifier')?; -// -//enum DataType: -// INT='int' | DOUBLE='double' | MONEY='money' | STRING='string' | BOOLEAN='boolean' | DATETIME='datetime' | BLOB='file'; -// -//Entity: -// name=ID ('is' is+=[Entity])* -// ('{' attributes+=Attribute (',' attributes+=Attribute)* '}')?; -// -//Relation: -// (name=ID)? ('[' leftEnding=RelationSide 'relates' rightEnding=RelationSide ']') ('{' -// attributes+=Attribute (',' attributes+=Attribute)* '}')*; -// -// -//RelationSide: -// Cardinality=('(0:1)' | '(1:1)' | '(0:N)' | '(1:N)') target=[Entity] | target=[Relation]; -// -//RelationSide: -// ((minimalCardinality?='zero')?) maximumCardinality=CardinalityType target=[Entity] | target=[Relation]; -// -//enum CardinalityType: -// One='one' | Many='many'; + cardinality=('(0:1)' | '(1:1)' | '(0:N)' | '(1:N)') + target=[Entity] | target=[Relation]; +enum DataType: + INT='int' | DOUBLE='double' | + MONEY='money' | STRING='string' | + BOOLEAN='boolean' | DATETIME='datetime' | + BLOB='file'; \ No newline at end of file diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/ErDsl.xtextbin b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/ErDsl.xtextbin index f5d20c8..ddb203d 100644 Binary files a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/ErDsl.xtextbin and b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/ErDsl.xtextbin differ diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/ErDslRuntimeModule.xtend b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/ErDslRuntimeModule.xtend deleted file mode 100644 index 866bda3..0000000 --- a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/ErDslRuntimeModule.xtend +++ /dev/null @@ -1,11 +0,0 @@ -/* - * generated by Xtext 2.17.0 - */ -package org.xtext.unipampa.erdsl - - -/** - * Use this class to register components to be used at runtime / without the Equinox extension registry. - */ -class ErDslRuntimeModule extends AbstractErDslRuntimeModule { -} diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/ErDslStandaloneSetup.xtend b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/ErDslStandaloneSetup.xtend deleted file mode 100644 index 4208441..0000000 --- a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/ErDslStandaloneSetup.xtend +++ /dev/null @@ -1,15 +0,0 @@ -/* - * generated by Xtext 2.17.0 - */ -package org.xtext.unipampa.erdsl - - -/** - * Initialization support for running Xtext languages without Equinox extension registry. - */ -class ErDslStandaloneSetup extends ErDslStandaloneSetupGenerated { - - def static void doSetup() { - new ErDslStandaloneSetup().createInjectorAndDoEMFRegistration() - } -} diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/Attribute.class b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/Attribute.class index 48f2770..5b6d470 100644 Binary files a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/Attribute.class and b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/Attribute.class differ diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/DataType.class b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/DataType.class new file mode 100644 index 0000000..5e428a5 Binary files /dev/null and b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/DataType.class differ diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/Entity.class b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/Entity.class index dca9e68..0e8f28c 100644 Binary files a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/Entity.class and b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/Entity.class differ diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/ErDslPackage$Literals.class b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/ErDslPackage$Literals.class index 9dfbe94..94eda2e 100644 Binary files a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/ErDslPackage$Literals.class and b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/ErDslPackage$Literals.class differ diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/ErDslPackage.class b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/ErDslPackage.class index 054f10c..228d6bc 100644 Binary files a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/ErDslPackage.class and b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/ErDslPackage.class differ diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/impl/AttributeImpl.class b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/impl/AttributeImpl.class index bc35ac9..d4c0b28 100644 Binary files a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/impl/AttributeImpl.class and b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/impl/AttributeImpl.class differ diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/impl/EntityImpl.class b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/impl/EntityImpl.class index 0a93e0c..160c796 100644 Binary files a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/impl/EntityImpl.class and b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/impl/EntityImpl.class differ diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/impl/ErDslFactoryImpl.class b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/impl/ErDslFactoryImpl.class index be98eee..f282119 100644 Binary files a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/impl/ErDslFactoryImpl.class and b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/impl/ErDslFactoryImpl.class differ diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/impl/ErDslPackageImpl.class b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/impl/ErDslPackageImpl.class index e0f8d4a..6aba913 100644 Binary files a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/impl/ErDslPackageImpl.class and b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/impl/ErDslPackageImpl.class differ diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/impl/RelationImpl.class b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/impl/RelationImpl.class index 386d3b7..1c10b3d 100644 Binary files a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/impl/RelationImpl.class and b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/impl/RelationImpl.class differ diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/impl/RelationSideImpl.class b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/impl/RelationSideImpl.class index bb3ba2c..fdefac4 100644 Binary files a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/impl/RelationSideImpl.class and b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/erDsl/impl/RelationSideImpl.class differ diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/.ErDslGenerator.java._trace b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/.ErDslGenerator.java._trace index 7121335..841ad84 100644 Binary files a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/.ErDslGenerator.java._trace and b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/.ErDslGenerator.java._trace differ diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/.ErDslGenerator.xtendbin b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/.ErDslGenerator.xtendbin index 3be60ca..8459d4d 100644 Binary files a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/.ErDslGenerator.xtendbin and b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/.ErDslGenerator.xtendbin differ diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/ErDslGenerator.class b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/ErDslGenerator.class index f7f9ee6..b1346a9 100644 Binary files a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/ErDslGenerator.class and b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/ErDslGenerator.class differ diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/ErDslGenerator.xtend b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/ErDslGenerator.xtend deleted file mode 100644 index dcdd069..0000000 --- a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/ErDslGenerator.xtend +++ /dev/null @@ -1,430 +0,0 @@ -/* - * generated by Xtext 2.17.0 - */ -package org.xtext.unipampa.erdsl.generator - -import org.eclipse.emf.ecore.resource.Resource -import org.eclipse.xtext.generator.AbstractGenerator -import org.eclipse.xtext.generator.IFileSystemAccess2 -import org.eclipse.xtext.generator.IGeneratorContext -import org.xtext.unipampa.erdsl.erDsl.ERModel - -/** - * Generates code from your model files on save. - * - * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#code-generation - */ -class ErDslGenerator extends AbstractGenerator { - - override void doGenerate(Resource resource, IFileSystemAccess2 fsa, IGeneratorContext context) { -// fsa.generateFile('greetings.txt', 'People to greet: ' + -// resource.allContents -// .filter(Greeting) -// .map[name] -// .join(', ')) -val modeloER = resource.contents.get(0) as ERModel - fsa.generateFile('LogicalSchema_'+modeloER.domain.name+'.html', - ''' - - - -

DOMÍNIO


-«modeloER.domain.name» -

TABELAS LÓGICAS


-«FOR entity : modeloER.entities SEPARATOR ')
' AFTER ')
' »«entity.name» ( - «FOR parent : entity.is»«IF entity.is !== null»«FOR chavePai : parent.attributes»«IF chavePai.isIsKey»«chavePai.name»* [Referência para: «parent.name»], «ENDIF»«ENDFOR»«ENDIF»«ENDFOR» - «FOR attribute : entity.attributes SEPARATOR ', '» - «IF attribute.isIsKey»«attribute.name»*«ELSE»«attribute.name»«ENDIF»«ENDFOR» -«««############################################################################################################################################ -«««############################################################################################################################################ -««« AQUI SE RESOLVEM OS RELACIONAMENTOS BINÁRIOS UM PARA MUITOS E MUITOS PARA UM -«««############################################################################################################################################ -«««############################################################################################################################################ - «FOR relationAux : modeloER.relations» - «IF (relationAux.leftEnding.cardinality == "(0:1)" || relationAux.leftEnding.cardinality == "(1:1)") && (relationAux.rightEnding.cardinality == "(0:N)" || relationAux.rightEnding.cardinality == "(1:N)")» - «FOR entityAux : modeloER.entities» - «IF (entityAux.name.equalsIgnoreCase(relationAux.rightEnding.target.toString)) && (entityAux.name.equalsIgnoreCase(entity.name.toString))» - «FOR entityMapeada : modeloER.entities» - «IF (entityMapeada.name.equalsIgnoreCase(relationAux.leftEnding.target.toString))» - «FOR attributeAux : entityMapeada.attributes SEPARATOR ','» - «IF attributeAux.isIsKey»«attributeAux.name»«ENDIF» - «ENDFOR» - «FOR entityMapeadaPai : entityMapeada.is» - «FOR atributoPai: entityMapeadaPai.attributes SEPARATOR ','» - «IF atributoPai.isIsKey» - «atributoPai.name»«entityMapeada.name» - «ENDIF» - «ENDFOR» - «ENDFOR» - «IF relationAux.attributes !== null» - «FOR relationMapeada : relationAux.attributes SEPARATOR ','»«relationMapeada.name»«ENDFOR» - «ENDIF» - «ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ENDIF» - «IF (relationAux.leftEnding.cardinality == "(0:N)" || relationAux.leftEnding.cardinality == "(1:N)") && (relationAux.rightEnding.cardinality == "(0:1)" || relationAux.rightEnding.cardinality == "(1:1)")» - «FOR entityAux : modeloER.entities» - «IF (entityAux.name.equalsIgnoreCase(relationAux.leftEnding.target.toString)) && (entityAux.name.equalsIgnoreCase(entity.name.toString))» - «FOR entityMapeada : modeloER.entities» - «IF (entityMapeada.name.equalsIgnoreCase(relationAux.rightEnding.target.toString))» - «FOR attributeAux : entityMapeada.attributes SEPARATOR ','» - «IF attributeAux.isIsKey», «attributeAux.name»«ENDIF» - «ENDFOR» - «FOR entityMapeadaPai : entityMapeada.is» - «FOR atributoPai: entityMapeadaPai.attributes SEPARATOR ','» - «IF atributoPai.isIsKey» - «atributoPai.name»«entityMapeada.name» - «ENDIF» - «ENDFOR» - «ENDFOR» - «IF relationAux.attributes !== null» - «FOR relationMapeada : relationAux.attributes SEPARATOR ','»«relationMapeada.name» - «ENDFOR» - «ENDIF» - «ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» -«««############################################################################################################################################ -«««############################################################################################################################################ -««« AQUI SE RESOLVEM OS RELACIONAMENTOS BINÁRIOS 0:1 && 1:1 || 1:1 && 0:1 (ADIÇÃO DE COLUNA) -«««############################################################################################################################################ -«««############################################################################################################################################ - «FOR relationAux : modeloER.relations» - «IF (relationAux.leftEnding.cardinality == "(0:1)" && relationAux.rightEnding.cardinality == "(1:1)")» - «FOR entityAux : modeloER.entities» - «IF (relationAux.leftEnding.target.toString.equalsIgnoreCase(relationAux.rightEnding.target.toString)) && (entityAux.name.equalsIgnoreCase(relationAux.rightEnding.target.toString)) && (entityAux.name.equalsIgnoreCase(entity.name.toString))» - «relationAux.name» - «ELSEIF (entityAux.name.equalsIgnoreCase(relationAux.rightEnding.target.toString)) && (entityAux.name.equalsIgnoreCase(entity.name.toString))» - «FOR entityMapeada : modeloER.entities» - «IF (entityMapeada.name.equalsIgnoreCase(relationAux.leftEnding.target.toString))» - «FOR attributeAux : entityMapeada.attributes SEPARATOR ','» - «IF attributeAux.isIsKey»«attributeAux.name» - «ENDIF» - «ENDFOR» - «FOR entityMapeadaPai : entityMapeada.is» - «FOR atributoPai: entityMapeadaPai.attributes SEPARATOR ','» - «IF atributoPai.isIsKey» «atributoPai.name»«entityMapeada.name» - «ENDIF» - «ENDFOR» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ELSEIF (relationAux.leftEnding.cardinality == "(1:1)" && relationAux.rightEnding.cardinality == "(0:1)")» - «FOR entityAux : modeloER.entities» - «IF (relationAux.leftEnding.target.toString.equalsIgnoreCase(relationAux.rightEnding.target.toString)) && (entityAux.name.equalsIgnoreCase(relationAux.rightEnding.target.toString)) && (entityAux.name.equalsIgnoreCase(entity.name.toString))» - «relationAux.name» - «ELSEIF (entityAux.name.equalsIgnoreCase(relationAux.leftEnding.target.toString)) && (entityAux.name.equalsIgnoreCase(entity.name.toString))» - «FOR entityMapeada : modeloER.entities» - «IF (entityMapeada.name.equalsIgnoreCase(relationAux.rightEnding.target.toString))» - «FOR attributeAux : entityMapeada.attributes SEPARATOR ','» - «IF attributeAux.isIsKey», «attributeAux.name» - «ENDIF» - «ENDFOR» - «FOR entityMapeadaPai : entityMapeada.is» - «FOR atributoPai: entityMapeadaPai.attributes SEPARATOR ','» - «IF atributoPai.isIsKey» «atributoPai.name»«entityMapeada.name» - «ENDIF» - «ENDFOR» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ELSEIF (relationAux.leftEnding.cardinality == "(0:1)" && relationAux.rightEnding.cardinality == "(0:1)")» - «FOR entityAux : modeloER.entities» - «IF (relationAux.leftEnding.target.toString.equalsIgnoreCase(relationAux.rightEnding.target.toString)) && (entityAux.name.equalsIgnoreCase(relationAux.rightEnding.target.toString)) && (entityAux.name.equalsIgnoreCase(entity.name.toString))» - «relationAux.name» - «ELSEIF (entityAux.name.equalsIgnoreCase(relationAux.rightEnding.target.toString)) && (entityAux.name.equalsIgnoreCase(entity.name.toString))» - «FOR entityMapeada : modeloER.entities» - «IF (entityMapeada.name.equalsIgnoreCase(relationAux.leftEnding.target.toString))» - «FOR attributeAux : entityMapeada.attributes» - «IF attributeAux.isIsKey», «attributeAux.name» - «ENDIF» - «ENDFOR» - «FOR entityMapeadaPai : entityMapeada.is» - «FOR atributoPai: entityMapeadaPai.attributes» - «IF atributoPai.isIsKey», «atributoPai.name»«entityMapeada.name» - «ENDIF» - «ENDFOR» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ELSEIF (relationAux.leftEnding.cardinality == "(1:1)" && relationAux.rightEnding.cardinality == "(1:1)")» - «FOR entityAux : modeloER.entities» - «IF (relationAux.leftEnding.target.toString.equalsIgnoreCase(relationAux.rightEnding.target.toString)) && (entityAux.name.equalsIgnoreCase(relationAux.rightEnding.target.toString)) && (entityAux.name.equalsIgnoreCase(entity.name.toString))» - «relationAux.name» - «ELSEIF (entityAux.name.equalsIgnoreCase(relationAux.rightEnding.target.toString)) && (entityAux.name.equalsIgnoreCase(entity.name.toString))» - «FOR entityMapeada : modeloER.entities» - «IF (entityMapeada.name.equalsIgnoreCase(relationAux.leftEnding.target.toString))» - «FOR attributeAux : entityMapeada.attributes» - «IF attributeAux.isIsKey», «attributeAux.name» - «ENDIF» - «ENDFOR» - «FOR entityMapeadaPai : entityMapeada.is» - «FOR atributoPai: entityMapeadaPai.attributes» - «IF atributoPai.isIsKey», «atributoPai.name»«entityMapeada.name» - «ENDIF» - «ENDFOR» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» -«ENDFOR» -«««############################################################################################################################################ -«««############################################################################################################################################ -««« AQUI SE RESOLVEM OS RELACIONAMENTOS BINÁRIOS MUITOS PARA MUITOS -«««############################################################################################################################################ -«««############################################################################################################################################ -«FOR relationAux : modeloER.relations SEPARATOR ')
'AFTER '
'» - «IF ((relationAux.leftEnding.cardinality == "(0:N)" || relationAux.leftEnding.cardinality == "(1:N)") - && (relationAux.rightEnding.cardinality == "(0:N)" || relationAux.rightEnding.cardinality == "(1:N)"))» - «IF (relationAux.name == '' || relationAux.name === null) » -«relationAux.leftEnding.target»«relationAux.rightEnding.target» ( - «FOR entityAux : modeloER.entities» - «IF entityAux.name.equalsIgnoreCase(relationAux.leftEnding.target.toString)» - «FOR atributoAux : entityAux.attributes» - «IF atributoAux.isIsKey»«atributoAux.name»*!«ENDIF» - «ENDFOR» - «FOR parent : entityAux.is» - «IF entityAux.is !== null» - «FOR chavePai : parent.attributes» - «IF chavePai.isIsKey»«chavePai.name»«relationAux.leftEnding.target.toString»*@«ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ENDIF» - «IF entityAux.name.equalsIgnoreCase(relationAux.rightEnding.target.toString)» - «FOR atributoAux : entityAux.attributes» - «IF atributoAux.isIsKey»«atributoAux.name»*#«ENDIF» - «ENDFOR» - «FOR parent : entityAux.is» - «IF entityAux.is !== null» - «FOR chavePai : parent.attributes» - «IF chavePai.isIsKey»«chavePai.name»«relationAux.rightEnding.target.toString»*$«ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ELSE» -«relationAux.name» ( - «FOR entityAux : modeloER.entities» - «IF entityAux.name.equalsIgnoreCase(relationAux.leftEnding.target.toString)» - «FOR atributoAux : entityAux.attributes» - «IF atributoAux.isIsKey»«atributoAux.name»*«ENDIF» - «ENDFOR» - «FOR parent : entityAux.is» - «IF entityAux.is !== null» - «FOR chavePai : parent.attributes» - «IF chavePai.isIsKey»«chavePai.name»«relationAux.leftEnding.target.toString»*«ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ENDIF» - «IF entityAux.name.equalsIgnoreCase(relationAux.rightEnding.target.toString)» - «FOR atributoAux : entityAux.attributes» - «IF atributoAux.isIsKey»«atributoAux.name»*«ENDIF» - «ENDFOR» - «FOR parent : entityAux.is» - «IF entityAux.is !== null» - «FOR chavePai : parent.attributes» - «IF chavePai.isIsKey»«chavePai.name»«relationAux.leftEnding.target.toString»*«ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ENDIF» - «IF (relationAux.attributes !== null)» - «FOR atributoRelacaoMuitosParaMuitos : relationAux.attributes SEPARATOR ','»«atributoRelacaoMuitosParaMuitos.name» - «IF atributoRelacaoMuitosParaMuitos.isIsKey»*«ENDIF» - «ENDFOR» - «ENDIF» - «ENDIF» -«ENDFOR» -«««############################################################################################################################################ -«««############################################################################################################################################ -««« AQUI SE RESOLVEM OS RELACIONAMENTOS TERNÁRIOS -«««############################################################################################################################################ -«««############################################################################################################################################ -«««############################################################################################################################################ -«««############################################################################################################################################ -««« MAPEAMENTO DAS REFERÊNCIAS DERIVADAS DOS RELACIONAMENTOS -«««############################################################################################################################################ -«««############################################################################################################################################ -

CHAVES REFERENCIAIS


-«FOR relation : modeloER.relations» -«««############################################################################################################################################ -«««############################################################################################################################################ -««« MAPEAMENTO DE RELAÇÃO 0:1 || 1:1 PARA 0:N || 1:N -«««############################################################################################################################################ -«««############################################################################################################################################ - «IF ((relation.leftEnding.cardinality == "(0:1)" || relation.leftEnding.cardinality == "(1:1)") && (relation.rightEnding.cardinality == "(0:N)" || relation.rightEnding.cardinality == "(1:N)"))» - «FOR entity : modeloER.entities» - «IF entity.name.equalsIgnoreCase(relation.leftEnding.target.toString)» - «FOR attribute : entity.attributes» - «IF attribute.isIsKey» -
Atributo "«attribute.name»" EM "«relation.rightEnding.target.toString»" REFERENCIA "«relation.leftEnding.target.toString»" - «ENDIF» - «ENDFOR» - «FOR parent : entity.is» - «IF entity.is !== null» - «FOR chavePai : parent.attributes» - «IF chavePai.isIsKey» -
Atributo "«chavePai.name»«relation.leftEnding.target.toString»" EM "«relation.rightEnding.target.toString»" REFERENCIA "«parent.name»" - «ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ELSEIF ((relation.leftEnding.cardinality == "(0:N)" || relation.leftEnding.cardinality == "(1:N)") && (relation.rightEnding.cardinality == "(0:1)" || relation.rightEnding.cardinality == "(1:1)"))» - «FOR entity : modeloER.entities» - «IF entity.name.equalsIgnoreCase(relation.rightEnding.target.toString)» - «FOR attribute : entity.attributes» - «IF attribute.isIsKey» -
Atributo "«attribute.name»" EM "«relation.leftEnding.target.toString»" REFERENCIA "«relation.rightEnding.target.toString»" - «ENDIF» - «ENDFOR» - «FOR parent : entity.is» - «IF entity.is !== null» - «FOR chavePai : parent.attributes» - «IF chavePai.isIsKey» -
Atributo "«chavePai.name»«relation.rightEnding.target.toString»" EM "«relation.leftEnding.target.toString»" REFERENCIA "«parent.name»" - «ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ENDIF» -«««############################################################################################################################################ -«««############################################################################################################################################ -««« MAPEAMENTO DE RELAÇÃO 0:N ou 1:N PARA 0:1 ou 1:1 -«««############################################################################################################################################ -«««############################################################################################################################################ - «IF (relation.leftEnding.cardinality == "(0:N)" || relation.leftEnding.cardinality == "(1:N)") && (relation.rightEnding.cardinality == "(0:1)" || relation.rightEnding.cardinality == "(1:1)")» - «FOR entity : modeloER.entities» - «IF entity.name.equalsIgnoreCase(relation.rightEnding.target.toString) && (relation.leftEnding.target.toString != relation.rightEnding.target.toString)» - «FOR attribute : entity.attributes» - «IF attribute.isIsKey» -
Atributo "«attribute.name»" EM "«relation.leftEnding.target.toString»" REFERENCIA "«relation.rightEnding.target.toString»"«ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ENDIF» - «IF (relation.leftEnding.cardinality == "(0:N)" || relation.leftEnding.cardinality == "(1:N)") && (relation.rightEnding.cardinality == "(0:N)" || relation.rightEnding.cardinality == "(1:N)")» - «FOR entity : modeloER.entities» - «IF entity.name.equalsIgnoreCase(relation.leftEnding.target.toString)» - «FOR attribute : entity.attributes» - «IF attribute.isIsKey» - «IF (relation.name !== null && relation.name !== '')» -
Atributo "«attribute.name»" EM "«relation.name»" REFERENCIA "«relation.leftEnding.target.toString»" - «ELSE» -
Atributo "«attribute.name»" EM "«relation.leftEnding.target.toString»«relation.rightEnding.target.toString»" REFERENCIA "«relation.leftEnding.target.toString»" - «ENDIF» - «ENDIF» - «ENDFOR» - «ENDIF» -«««############################################################################################################################################ -«««############################################################################################################################################ -««« MAPEAMENTO DE ENTIDADE DA ESQUERDA EM RELACIONAMENTO MUITOS PARA MUITOS COM E SEM IDENTIFICADOR NA RELAÇÃO -«««############################################################################################################################################ -«««############################################################################################################################################ - «IF entity.name.equalsIgnoreCase(relation.rightEnding.target.toString)» - «FOR attribute : entity.attributes» - «IF attribute.isIsKey» - «IF (relation.name !== null && relation.name !== '')» -
Atributo "«attribute.name»" EM "«relation.name»" REFERENCIA "«relation.rightEnding.target.toString»" - «ELSE» -
Atributo "«attribute.name»" EM "«relation.leftEnding.target.toString»«relation.rightEnding.target.toString»" REFERENCIA "«relation.rightEnding.target.toString»" - «ENDIF» - «ENDIF» - «ENDFOR» - «FOR parent : entity.is» - «IF entity.is !== null» - «FOR chavePai : parent.attributes SEPARATOR ', '» - «IF chavePai.isIsKey» - «IF (relation.name !== null && relation.name !== '')» -
Atributo "«chavePai.name»«relation.leftEnding.target.toString»" EM "«relation.name»" REFERENCIA "«parent.name.toString»" -
Atributo "«chavePai.name»«relation.rightEnding.target.toString»" EM "«relation.name»" REFERENCIA "«parent.name.toString»" - «ELSE» -
Atributo "«chavePai.name»«relation.leftEnding.target.toString»" EM "«relation.leftEnding.target.toString»«relation.rightEnding.target.toString»" REFERENCIA "«parent.name.toString»" -
Atributo "«chavePai.name»«relation.rightEnding.target.toString»" EM "«relation.leftEnding.target.toString»«relation.rightEnding.target.toString»" REFERENCIA "«parent.name.toString»" - «ENDIF» - «ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ENDIF» -«««############################################################################################################################################ -«««############################################################################################################################################ -««« MAPEAMENTO DE AUTORELACIONAMENTO -«««############################################################################################################################################ -«««############################################################################################################################################ - «IF (relation.leftEnding.cardinality == "(0:1)" || relation.leftEnding.cardinality == "(1:1)") && (relation.rightEnding.cardinality == "(0:1)" || relation.rightEnding.cardinality == "(1:1)")» - «FOR entity : modeloER.entities» - «IF entity.name.equalsIgnoreCase(relation.leftEnding.target.toString) && entity.name.equalsIgnoreCase(relation.rightEnding.target.toString)» - «FOR attribute : entity.attributes» - «IF attribute.isIsKey» -
Atributo "«relation.name»" EM "«relation.leftEnding.target.toString»" REFERENCIA "«relation.rightEnding.target.toString»" - «ENDIF» - «ENDFOR» - «FOR parent : entity.is» - «IF entity.is !== null» - «FOR chavePai : parent.attributes» - «IF chavePai.isIsKey» -
Atributo "«relation.name»" EM "«relation.rightEnding.target.toString»" REFERENCIA "«parent.name»" - «ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ELSEIF entity.name.equalsIgnoreCase(relation.leftEnding.target.toString) && !(entity.name.equalsIgnoreCase(relation.rightEnding.target.toString))» - «FOR attribute : entity.attributes» - «IF attribute.isIsKey» - «IF relation.name === null || relation.name == ''» -
Atributo "«attribute.name»" EM "«relation.rightEnding.target.toString»" REFERENCIA "«relation.leftEnding.target.toString»" - «ELSE» -
Atributo "«attribute.name»" EM "«relation.rightEnding.target.toString»" REFERENCIA "«relation.leftEnding.target.toString»" - «ENDIF» - «ENDIF» - «ENDFOR» - «FOR parent : entity.is» - «IF entity.is !== null» - «FOR chavePai : parent.attributes» - «IF chavePai.isIsKey» -
Atributo "«chavePai.name»«relation.leftEnding.target»" EM "«relation.rightEnding.target.toString»" REFERENCIA "«parent.name»" - «ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ENDIF» -«ENDFOR» -«««

RELAÇÕES MODELADAS

-««««FOR relation : modeloER.relations» -«««
[«relation.name»] «relation.leftEnding.cardinality» «relation.leftEnding.target» relates «relation.rightEnding.target» «relation.rightEnding.cardinality» -««««ENDFOR» -««« -««« - ''' - ) - - } -} - diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDsl.g b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDsl.g index 254c2fd..b63f8e6 100644 --- a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDsl.g +++ b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDsl.g @@ -1,5 +1,5 @@ /* - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ grammar InternalErDsl; @@ -23,6 +23,7 @@ import org.eclipse.xtext.parser.*; import org.eclipse.xtext.parser.impl.*; import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.common.util.Enumerator; import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser; import org.eclipse.xtext.parser.antlr.XtextTokenStream; import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens; @@ -257,9 +258,28 @@ ruleAttribute returns [EObject current=null] ) ( ( - lv_isKey_1_0='isIdentifier' { - newLeafNode(lv_isKey_1_0, grammarAccess.getAttributeAccess().getIsKeyIsIdentifierKeyword_1_0()); + newCompositeNode(grammarAccess.getAttributeAccess().getTypeDataTypeEnumRuleCall_1_0()); + } + lv_type_1_0=ruleDataType + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getAttributeRule()); + } + set( + $current, + "type", + lv_type_1_0, + "org.xtext.unipampa.erdsl.ErDsl.DataType"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + ( + lv_isKey_2_0='isIdentifier' + { + newLeafNode(lv_isKey_2_0, grammarAccess.getAttributeAccess().getIsKeyIsIdentifierKeyword_2_0()); } { if ($current==null) { @@ -545,48 +565,48 @@ ruleRelationSide returns [EObject current=null] ( ( ( - lv_Cardinality_0_1='(0:1)' + lv_cardinality_0_1='(0:1)' { - newLeafNode(lv_Cardinality_0_1, grammarAccess.getRelationSideAccess().getCardinality01Keyword_0_0_0_0()); + newLeafNode(lv_cardinality_0_1, grammarAccess.getRelationSideAccess().getCardinality01Keyword_0_0_0_0()); } { if ($current==null) { $current = createModelElement(grammarAccess.getRelationSideRule()); } - setWithLastConsumed($current, "Cardinality", lv_Cardinality_0_1, null); + setWithLastConsumed($current, "cardinality", lv_cardinality_0_1, null); } | - lv_Cardinality_0_2='(1:1)' + lv_cardinality_0_2='(1:1)' { - newLeafNode(lv_Cardinality_0_2, grammarAccess.getRelationSideAccess().getCardinality11Keyword_0_0_0_1()); + newLeafNode(lv_cardinality_0_2, grammarAccess.getRelationSideAccess().getCardinality11Keyword_0_0_0_1()); } { if ($current==null) { $current = createModelElement(grammarAccess.getRelationSideRule()); } - setWithLastConsumed($current, "Cardinality", lv_Cardinality_0_2, null); + setWithLastConsumed($current, "cardinality", lv_cardinality_0_2, null); } | - lv_Cardinality_0_3='(0:N)' + lv_cardinality_0_3='(0:N)' { - newLeafNode(lv_Cardinality_0_3, grammarAccess.getRelationSideAccess().getCardinality0NKeyword_0_0_0_2()); + newLeafNode(lv_cardinality_0_3, grammarAccess.getRelationSideAccess().getCardinality0NKeyword_0_0_0_2()); } { if ($current==null) { $current = createModelElement(grammarAccess.getRelationSideRule()); } - setWithLastConsumed($current, "Cardinality", lv_Cardinality_0_3, null); + setWithLastConsumed($current, "cardinality", lv_cardinality_0_3, null); } | - lv_Cardinality_0_4='(1:N)' + lv_cardinality_0_4='(1:N)' { - newLeafNode(lv_Cardinality_0_4, grammarAccess.getRelationSideAccess().getCardinality1NKeyword_0_0_0_3()); + newLeafNode(lv_cardinality_0_4, grammarAccess.getRelationSideAccess().getCardinality1NKeyword_0_0_0_3()); } { if ($current==null) { $current = createModelElement(grammarAccess.getRelationSideRule()); } - setWithLastConsumed($current, "Cardinality", lv_Cardinality_0_4, null); + setWithLastConsumed($current, "cardinality", lv_cardinality_0_4, null); } ) ) @@ -622,6 +642,73 @@ ruleRelationSide returns [EObject current=null] ) ; +// Rule DataType +ruleDataType returns [Enumerator current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + enumLiteral_0='int' + { + $current = grammarAccess.getDataTypeAccess().getINTEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getDataTypeAccess().getINTEnumLiteralDeclaration_0()); + } + ) + | + ( + enumLiteral_1='double' + { + $current = grammarAccess.getDataTypeAccess().getDOUBLEEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_1, grammarAccess.getDataTypeAccess().getDOUBLEEnumLiteralDeclaration_1()); + } + ) + | + ( + enumLiteral_2='money' + { + $current = grammarAccess.getDataTypeAccess().getMONEYEnumLiteralDeclaration_2().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_2, grammarAccess.getDataTypeAccess().getMONEYEnumLiteralDeclaration_2()); + } + ) + | + ( + enumLiteral_3='string' + { + $current = grammarAccess.getDataTypeAccess().getSTRINGEnumLiteralDeclaration_3().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_3, grammarAccess.getDataTypeAccess().getSTRINGEnumLiteralDeclaration_3()); + } + ) + | + ( + enumLiteral_4='boolean' + { + $current = grammarAccess.getDataTypeAccess().getBOOLEANEnumLiteralDeclaration_4().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_4, grammarAccess.getDataTypeAccess().getBOOLEANEnumLiteralDeclaration_4()); + } + ) + | + ( + enumLiteral_5='datetime' + { + $current = grammarAccess.getDataTypeAccess().getDATETIMEEnumLiteralDeclaration_5().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_5, grammarAccess.getDataTypeAccess().getDATETIMEEnumLiteralDeclaration_5()); + } + ) + | + ( + enumLiteral_6='file' + { + $current = grammarAccess.getDataTypeAccess().getBLOBEnumLiteralDeclaration_6().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_6, grammarAccess.getDataTypeAccess().getBLOBEnumLiteralDeclaration_6()); + } + ) + ) +; + RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*; RULE_INT : ('0'..'9')+; diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDsl.tokens b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDsl.tokens index 61a7bc5..30c68d6 100644 --- a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDsl.tokens +++ b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDsl.tokens @@ -9,9 +9,16 @@ 'Relationships'=15 '['=20 ']'=22 +'boolean'=31 +'datetime'=32 +'double'=28 +'file'=33 +'int'=27 'is'=18 'isIdentifier'=17 +'money'=29 'relates'=21 +'string'=30 '{'=13 '}'=14 RULE_ANY_OTHER=10 @@ -37,3 +44,10 @@ T__23=23 T__24=24 T__25=25 T__26=26 +T__27=27 +T__28=28 +T__29=29 +T__30=30 +T__31=31 +T__32=32 +T__33=33 diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslLexer$DFA12.class b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslLexer$DFA12.class index cdcde47..972856f 100644 Binary files a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslLexer$DFA12.class and b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslLexer$DFA12.class differ diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslLexer.class b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslLexer.class index cd9b430..4f0f37c 100644 Binary files a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslLexer.class and b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslLexer.class differ diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslParser.class b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslParser.class index 7089ca8..40d0409 100644 Binary files a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslParser.class and b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslParser.class differ diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/scoping/.ErDslScopeProvider.xtendbin b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/scoping/.ErDslScopeProvider.xtendbin index 43e12be..11f116c 100644 Binary files a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/scoping/.ErDslScopeProvider.xtendbin and b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/scoping/.ErDslScopeProvider.xtendbin differ diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/scoping/ErDslScopeProvider.xtend b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/scoping/ErDslScopeProvider.xtend deleted file mode 100644 index ffd1cd6..0000000 --- a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/scoping/ErDslScopeProvider.xtend +++ /dev/null @@ -1,30 +0,0 @@ -/* - * generated by Xtext 2.17.0 - */ -package org.xtext.unipampa.erdsl.scoping - -import org.eclipse.xtext.scoping.IScope -import org.eclipse.emf.ecore.EObject -import org.eclipse.emf.ecore.EReference -import org.eclipse.xtext.scoping.Scopes -import org.xtext.unipampa.erdsl.erDsl.ERModel -import org.xtext.unipampa.erdsl.erDsl.Entity - -/** - * This class contains custom scoping description. - * - * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#scoping - * on how and when to use it. - */ -class ErDslScopeProvider extends AbstractErDslScopeProvider { - - override IScope getScope(EObject context, EReference reference) { - if (context instanceof Entity) { - return Scopes.scopeFor( - (context.eContainer as ERModel).entities.filter[x | x != context] - ) - } - return super.getScope(context, reference) - } - -} diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess$AttributeElements.class b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess$AttributeElements.class index e754f29..edab8bd 100644 Binary files a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess$AttributeElements.class and b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess$AttributeElements.class differ diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess$DataTypeElements.class b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess$DataTypeElements.class new file mode 100644 index 0000000..c6d1de6 Binary files /dev/null and b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess$DataTypeElements.class differ diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess$DomainElements.class b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess$DomainElements.class index ebcdb72..caf64e7 100644 Binary files a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess$DomainElements.class and b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess$DomainElements.class differ diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess$ERModelElements.class b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess$ERModelElements.class index 731865a..b2765ce 100644 Binary files a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess$ERModelElements.class and b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess$ERModelElements.class differ diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess$EntityElements.class b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess$EntityElements.class index 1787598..a0103f1 100644 Binary files a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess$EntityElements.class and b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess$EntityElements.class differ diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess$RelationElements.class b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess$RelationElements.class index 0e1c6bb..f30d529 100644 Binary files a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess$RelationElements.class and b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess$RelationElements.class differ diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess$RelationSideElements.class b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess$RelationSideElements.class index 1c7f575..2714e77 100644 Binary files a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess$RelationSideElements.class and b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess$RelationSideElements.class differ diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess.class b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess.class index 17d5a5f..78c5763 100644 Binary files a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess.class and b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess.class differ diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/validation/.ErDslValidator.xtendbin b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/validation/.ErDslValidator.xtendbin index d697d2b..f1356d5 100644 Binary files a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/validation/.ErDslValidator.xtendbin and b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/validation/.ErDslValidator.xtendbin differ diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/validation/ErDslValidator.xtend b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/validation/ErDslValidator.xtend deleted file mode 100644 index 9d63962..0000000 --- a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/validation/ErDslValidator.xtend +++ /dev/null @@ -1,25 +0,0 @@ -/* - * generated by Xtext 2.17.0 - */ -package org.xtext.unipampa.erdsl.validation - - -/** - * This class contains custom validation rules. - * - * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#validation - */ -class ErDslValidator extends AbstractErDslValidator { - -// public static val INVALID_NAME = 'invalidName' -// -// @Check -// def checkGreetingStartsWithCapital(Greeting greeting) { -// if (!Character.isUpperCase(greeting.name.charAt(0))) { -// warning('Name should start with a capital', -// ErDslPackage.Literals.GREETING__NAME, -// INVALID_NAME) -// } -// } - -} diff --git a/org.xtext.unipampa.erdsl/model/generated/ErDsl.ecore b/org.xtext.unipampa.erdsl/model/generated/ErDsl.ecore index 09708ed..26c8ddb 100644 --- a/org.xtext.unipampa.erdsl/model/generated/ErDsl.ecore +++ b/org.xtext.unipampa.erdsl/model/generated/ErDsl.ecore @@ -14,12 +14,12 @@ + - + @@ -33,7 +33,16 @@ eType="#//Attribute" containment="true"/> - + + + + + + + + + + diff --git a/org.xtext.unipampa.erdsl/model/generated/ErDsl.genmodel b/org.xtext.unipampa.erdsl/model/generated/ErDsl.genmodel index 7818945..5a6db36 100644 --- a/org.xtext.unipampa.erdsl/model/generated/ErDsl.genmodel +++ b/org.xtext.unipampa.erdsl/model/generated/ErDsl.genmodel @@ -1,11 +1,20 @@ + complianceLevel="8.0" copyrightFields="false" runtimeVersion="2.20"> + + + + + + + + + @@ -16,6 +25,7 @@ + @@ -30,7 +40,7 @@ - + diff --git a/org.xtext.unipampa.erdsl/plugin.xml_gen b/org.xtext.unipampa.erdsl/plugin.xml_gen new file mode 100644 index 0000000..f4ede3a --- /dev/null +++ b/org.xtext.unipampa.erdsl/plugin.xml_gen @@ -0,0 +1,10 @@ + + + + + + + diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/AbstractErDslRuntimeModule.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/AbstractErDslRuntimeModule.java index 84cca44..062b2a1 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/AbstractErDslRuntimeModule.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/AbstractErDslRuntimeModule.java @@ -1,5 +1,5 @@ /* - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl; diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/ErDsl.xtextbin b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/ErDsl.xtextbin index f5d20c8..ddb203d 100644 Binary files a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/ErDsl.xtextbin and b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/ErDsl.xtextbin differ diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/ErDslStandaloneSetupGenerated.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/ErDslStandaloneSetupGenerated.java index 63e09f9..582ff1b 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/ErDslStandaloneSetupGenerated.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/ErDslStandaloneSetupGenerated.java @@ -1,5 +1,5 @@ /* - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl; diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/Attribute.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/Attribute.java index e9629e2..4eb0676 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/Attribute.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/Attribute.java @@ -1,5 +1,5 @@ /** - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl.erDsl; @@ -15,6 +15,7 @@ *

*
    *
  • {@link org.xtext.unipampa.erdsl.erDsl.Attribute#getName Name}
  • + *
  • {@link org.xtext.unipampa.erdsl.erDsl.Attribute#getType Type}
  • *
  • {@link org.xtext.unipampa.erdsl.erDsl.Attribute#isIsKey Is Key}
  • *
* @@ -46,6 +47,31 @@ public interface Attribute extends EObject */ void setName(String value); + /** + * Returns the value of the 'Type' attribute. + * The literals are from the enumeration {@link org.xtext.unipampa.erdsl.erDsl.DataType}. + * + * + * @return the value of the 'Type' attribute. + * @see org.xtext.unipampa.erdsl.erDsl.DataType + * @see #setType(DataType) + * @see org.xtext.unipampa.erdsl.erDsl.ErDslPackage#getAttribute_Type() + * @model + * @generated + */ + DataType getType(); + + /** + * Sets the value of the '{@link org.xtext.unipampa.erdsl.erDsl.Attribute#getType Type}' attribute. + * + * + * @param value the new value of the 'Type' attribute. + * @see org.xtext.unipampa.erdsl.erDsl.DataType + * @see #getType() + * @generated + */ + void setType(DataType value); + /** * Returns the value of the 'Is Key' attribute. * diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/DataType.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/DataType.java new file mode 100644 index 0000000..02e5a28 --- /dev/null +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/DataType.java @@ -0,0 +1,340 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.xtext.unipampa.erdsl.erDsl; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.Enumerator; + +/** + * + * A representation of the literals of the enumeration 'Data Type', + * and utility methods for working with them. + * + * @see org.xtext.unipampa.erdsl.erDsl.ErDslPackage#getDataType() + * @model + * @generated + */ +public enum DataType implements Enumerator +{ + /** + * The 'INT' literal object. + * + * + * @see #INT_VALUE + * @generated + * @ordered + */ + INT(0, "INT", "int"), + + /** + * The 'DOUBLE' literal object. + * + * + * @see #DOUBLE_VALUE + * @generated + * @ordered + */ + DOUBLE(1, "DOUBLE", "double"), + + /** + * The 'MONEY' literal object. + * + * + * @see #MONEY_VALUE + * @generated + * @ordered + */ + MONEY(2, "MONEY", "money"), + + /** + * The 'STRING' literal object. + * + * + * @see #STRING_VALUE + * @generated + * @ordered + */ + STRING(3, "STRING", "string"), + + /** + * The 'BOOLEAN' literal object. + * + * + * @see #BOOLEAN_VALUE + * @generated + * @ordered + */ + BOOLEAN(4, "BOOLEAN", "boolean"), + + /** + * The 'DATETIME' literal object. + * + * + * @see #DATETIME_VALUE + * @generated + * @ordered + */ + DATETIME(5, "DATETIME", "datetime"), + + /** + * The 'BLOB' literal object. + * + * + * @see #BLOB_VALUE + * @generated + * @ordered + */ + BLOB(6, "BLOB", "file"); + + /** + * The 'INT' literal value. + * + * + * @see #INT + * @model literal="int" + * @generated + * @ordered + */ + public static final int INT_VALUE = 0; + + /** + * The 'DOUBLE' literal value. + * + * + * @see #DOUBLE + * @model literal="double" + * @generated + * @ordered + */ + public static final int DOUBLE_VALUE = 1; + + /** + * The 'MONEY' literal value. + * + * + * @see #MONEY + * @model literal="money" + * @generated + * @ordered + */ + public static final int MONEY_VALUE = 2; + + /** + * The 'STRING' literal value. + * + * + * @see #STRING + * @model literal="string" + * @generated + * @ordered + */ + public static final int STRING_VALUE = 3; + + /** + * The 'BOOLEAN' literal value. + * + * + * @see #BOOLEAN + * @model literal="boolean" + * @generated + * @ordered + */ + public static final int BOOLEAN_VALUE = 4; + + /** + * The 'DATETIME' literal value. + * + * + * @see #DATETIME + * @model literal="datetime" + * @generated + * @ordered + */ + public static final int DATETIME_VALUE = 5; + + /** + * The 'BLOB' literal value. + * + * + * @see #BLOB + * @model literal="file" + * @generated + * @ordered + */ + public static final int BLOB_VALUE = 6; + + /** + * An array of all the 'Data Type' enumerators. + * + * + * @generated + */ + private static final DataType[] VALUES_ARRAY = + new DataType[] + { + INT, + DOUBLE, + MONEY, + STRING, + BOOLEAN, + DATETIME, + BLOB, + }; + + /** + * A public read-only list of all the 'Data Type' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the 'Data Type' literal with the specified literal value. + * + * + * @param literal the literal. + * @return the matching enumerator or null. + * @generated + */ + public static DataType get(String literal) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) + { + DataType result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) + { + return result; + } + } + return null; + } + + /** + * Returns the 'Data Type' literal with the specified name. + * + * + * @param name the name. + * @return the matching enumerator or null. + * @generated + */ + public static DataType getByName(String name) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) + { + DataType result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) + { + return result; + } + } + return null; + } + + /** + * Returns the 'Data Type' literal with the specified integer value. + * + * + * @param value the integer value. + * @return the matching enumerator or null. + * @generated + */ + public static DataType get(int value) + { + switch (value) + { + case INT_VALUE: return INT; + case DOUBLE_VALUE: return DOUBLE; + case MONEY_VALUE: return MONEY; + case STRING_VALUE: return STRING; + case BOOLEAN_VALUE: return BOOLEAN; + case DATETIME_VALUE: return DATETIME; + case BLOB_VALUE: return BLOB; + } + return null; + } + + /** + * + * + * @generated + */ + private final int value; + + /** + * + * + * @generated + */ + private final String name; + + /** + * + * + * @generated + */ + private final String literal; + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private DataType(int value, String name, String literal) + { + this.value = value; + this.name = name; + this.literal = literal; + } + + /** + * + * + * @generated + */ + @Override + public int getValue() + { + return value; + } + + /** + * + * + * @generated + */ + @Override + public String getName() + { + return name; + } + + /** + * + * + * @generated + */ + @Override + public String getLiteral() + { + return literal; + } + + /** + * Returns the literal value of the enumerator, which is its string representation. + * + * + * @generated + */ + @Override + public String toString() + { + return literal; + } + +} //DataType diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/Domain.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/Domain.java index cfbad51..fadbd27 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/Domain.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/Domain.java @@ -1,5 +1,5 @@ /** - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl.erDsl; diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/ERModel.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/ERModel.java index a5588cf..1955cf5 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/ERModel.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/ERModel.java @@ -1,5 +1,5 @@ /** - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl.erDsl; diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/Entity.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/Entity.java index d0bfa70..3dd698c 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/Entity.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/Entity.java @@ -1,5 +1,5 @@ /** - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl.erDsl; @@ -50,16 +50,26 @@ public interface Entity extends EObject void setName(String value); /** - * Returns the value of the 'Is' reference list. - * The list contents are of type {@link org.xtext.unipampa.erdsl.erDsl.Entity}. + * Returns the value of the 'Is' reference. * * - * @return the value of the 'Is' reference list. + * @return the value of the 'Is' reference. + * @see #setIs(Entity) * @see org.xtext.unipampa.erdsl.erDsl.ErDslPackage#getEntity_Is() * @model * @generated */ - EList getIs(); + Entity getIs(); + + /** + * Sets the value of the '{@link org.xtext.unipampa.erdsl.erDsl.Entity#getIs Is}' reference. + * + * + * @param value the new value of the 'Is' reference. + * @see #getIs() + * @generated + */ + void setIs(Entity value); /** * Returns the value of the 'Attributes' containment reference list. diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/ErDslFactory.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/ErDslFactory.java index b7119d3..39d8e6a 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/ErDslFactory.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/ErDslFactory.java @@ -1,5 +1,5 @@ /** - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl.erDsl; diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/ErDslPackage.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/ErDslPackage.java index 05172df..e8f957e 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/ErDslPackage.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/ErDslPackage.java @@ -1,10 +1,11 @@ /** - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl.erDsl; import org.eclipse.emf.ecore.EAttribute; import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EEnum; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.ecore.EReference; @@ -150,6 +151,15 @@ public interface ErDslPackage extends EPackage */ int ATTRIBUTE__NAME = 0; + /** + * The feature id for the 'Type' attribute. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE__TYPE = 1; + /** * The feature id for the 'Is Key' attribute. * @@ -157,7 +167,7 @@ public interface ErDslPackage extends EPackage * @generated * @ordered */ - int ATTRIBUTE__IS_KEY = 1; + int ATTRIBUTE__IS_KEY = 2; /** * The number of structural features of the 'Attribute' class. @@ -166,7 +176,7 @@ public interface ErDslPackage extends EPackage * @generated * @ordered */ - int ATTRIBUTE_FEATURE_COUNT = 2; + int ATTRIBUTE_FEATURE_COUNT = 3; /** * The meta object id for the '{@link org.xtext.unipampa.erdsl.erDsl.impl.EntityImpl Entity}' class. @@ -188,7 +198,7 @@ public interface ErDslPackage extends EPackage int ENTITY__NAME = 0; /** - * The feature id for the 'Is' reference list. + * The feature id for the 'Is' reference. * * * @generated @@ -306,6 +316,16 @@ public interface ErDslPackage extends EPackage */ int RELATION_SIDE_FEATURE_COUNT = 2; + /** + * The meta object id for the '{@link org.xtext.unipampa.erdsl.erDsl.DataType Data Type}' enum. + * + * + * @see org.xtext.unipampa.erdsl.erDsl.DataType + * @see org.xtext.unipampa.erdsl.erDsl.impl.ErDslPackageImpl#getDataType() + * @generated + */ + int DATA_TYPE = 6; + /** * Returns the meta object for class '{@link org.xtext.unipampa.erdsl.erDsl.ERModel ER Model}'. @@ -392,6 +412,17 @@ public interface ErDslPackage extends EPackage */ EAttribute getAttribute_Name(); + /** + * Returns the meta object for the attribute '{@link org.xtext.unipampa.erdsl.erDsl.Attribute#getType Type}'. + * + * + * @return the meta object for the attribute 'Type'. + * @see org.xtext.unipampa.erdsl.erDsl.Attribute#getType() + * @see #getAttribute() + * @generated + */ + EAttribute getAttribute_Type(); + /** * Returns the meta object for the attribute '{@link org.xtext.unipampa.erdsl.erDsl.Attribute#isIsKey Is Key}'. * @@ -425,10 +456,10 @@ public interface ErDslPackage extends EPackage EAttribute getEntity_Name(); /** - * Returns the meta object for the reference list '{@link org.xtext.unipampa.erdsl.erDsl.Entity#getIs Is}'. + * Returns the meta object for the reference '{@link org.xtext.unipampa.erdsl.erDsl.Entity#getIs Is}'. * * - * @return the meta object for the reference list 'Is'. + * @return the meta object for the reference 'Is'. * @see org.xtext.unipampa.erdsl.erDsl.Entity#getIs() * @see #getEntity() * @generated @@ -532,6 +563,16 @@ public interface ErDslPackage extends EPackage */ EReference getRelationSide_Target(); + /** + * Returns the meta object for enum '{@link org.xtext.unipampa.erdsl.erDsl.DataType Data Type}'. + * + * + * @return the meta object for enum 'Data Type'. + * @see org.xtext.unipampa.erdsl.erDsl.DataType + * @generated + */ + EEnum getDataType(); + /** * Returns the factory that creates the instances of the model. * @@ -625,6 +666,14 @@ interface Literals */ EAttribute ATTRIBUTE__NAME = eINSTANCE.getAttribute_Name(); + /** + * The meta object literal for the 'Type' attribute feature. + * + * + * @generated + */ + EAttribute ATTRIBUTE__TYPE = eINSTANCE.getAttribute_Type(); + /** * The meta object literal for the 'Is Key' attribute feature. * @@ -652,7 +701,7 @@ interface Literals EAttribute ENTITY__NAME = eINSTANCE.getEntity_Name(); /** - * The meta object literal for the 'Is' reference list feature. + * The meta object literal for the 'Is' reference feature. * * * @generated @@ -735,6 +784,16 @@ interface Literals */ EReference RELATION_SIDE__TARGET = eINSTANCE.getRelationSide_Target(); + /** + * The meta object literal for the '{@link org.xtext.unipampa.erdsl.erDsl.DataType Data Type}' enum. + * + * + * @see org.xtext.unipampa.erdsl.erDsl.DataType + * @see org.xtext.unipampa.erdsl.erDsl.impl.ErDslPackageImpl#getDataType() + * @generated + */ + EEnum DATA_TYPE = eINSTANCE.getDataType(); + } } //ErDslPackage diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/Relation.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/Relation.java index 992034c..f4bb5a5 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/Relation.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/Relation.java @@ -1,5 +1,5 @@ /** - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl.erDsl; diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/RelationSide.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/RelationSide.java index 15152f2..0370588 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/RelationSide.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/RelationSide.java @@ -1,5 +1,5 @@ /** - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl.erDsl; diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/AttributeImpl.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/AttributeImpl.java index 926a1a5..894a93b 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/AttributeImpl.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/AttributeImpl.java @@ -1,5 +1,5 @@ /** - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl.erDsl.impl; @@ -11,6 +11,7 @@ import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; import org.xtext.unipampa.erdsl.erDsl.Attribute; +import org.xtext.unipampa.erdsl.erDsl.DataType; import org.xtext.unipampa.erdsl.erDsl.ErDslPackage; /** @@ -22,6 +23,7 @@ *

*
    *
  • {@link org.xtext.unipampa.erdsl.erDsl.impl.AttributeImpl#getName Name}
  • + *
  • {@link org.xtext.unipampa.erdsl.erDsl.impl.AttributeImpl#getType Type}
  • *
  • {@link org.xtext.unipampa.erdsl.erDsl.impl.AttributeImpl#isIsKey Is Key}
  • *
* @@ -49,6 +51,26 @@ public class AttributeImpl extends MinimalEObjectImpl.Container implements Attri */ protected String name = NAME_EDEFAULT; + /** + * The default value of the '{@link #getType() Type}' attribute. + * + * + * @see #getType() + * @generated + * @ordered + */ + protected static final DataType TYPE_EDEFAULT = DataType.INT; + + /** + * The cached value of the '{@link #getType() Type}' attribute. + * + * + * @see #getType() + * @generated + * @ordered + */ + protected DataType type = TYPE_EDEFAULT; + /** * The default value of the '{@link #isIsKey() Is Key}' attribute. * @@ -115,6 +137,31 @@ public void setName(String newName) eNotify(new ENotificationImpl(this, Notification.SET, ErDslPackage.ATTRIBUTE__NAME, oldName, name)); } + /** + * + * + * @generated + */ + @Override + public DataType getType() + { + return type; + } + + /** + * + * + * @generated + */ + @Override + public void setType(DataType newType) + { + DataType oldType = type; + type = newType == null ? TYPE_EDEFAULT : newType; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ErDslPackage.ATTRIBUTE__TYPE, oldType, type)); + } + /** * * @@ -152,6 +199,8 @@ public Object eGet(int featureID, boolean resolve, boolean coreType) { case ErDslPackage.ATTRIBUTE__NAME: return getName(); + case ErDslPackage.ATTRIBUTE__TYPE: + return getType(); case ErDslPackage.ATTRIBUTE__IS_KEY: return isIsKey(); } @@ -171,6 +220,9 @@ public void eSet(int featureID, Object newValue) case ErDslPackage.ATTRIBUTE__NAME: setName((String)newValue); return; + case ErDslPackage.ATTRIBUTE__TYPE: + setType((DataType)newValue); + return; case ErDslPackage.ATTRIBUTE__IS_KEY: setIsKey((Boolean)newValue); return; @@ -191,6 +243,9 @@ public void eUnset(int featureID) case ErDslPackage.ATTRIBUTE__NAME: setName(NAME_EDEFAULT); return; + case ErDslPackage.ATTRIBUTE__TYPE: + setType(TYPE_EDEFAULT); + return; case ErDslPackage.ATTRIBUTE__IS_KEY: setIsKey(IS_KEY_EDEFAULT); return; @@ -210,6 +265,8 @@ public boolean eIsSet(int featureID) { case ErDslPackage.ATTRIBUTE__NAME: return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case ErDslPackage.ATTRIBUTE__TYPE: + return type != TYPE_EDEFAULT; case ErDslPackage.ATTRIBUTE__IS_KEY: return isKey != IS_KEY_EDEFAULT; } @@ -229,6 +286,8 @@ public String toString() StringBuilder result = new StringBuilder(super.toString()); result.append(" (name: "); result.append(name); + result.append(", type: "); + result.append(type); result.append(", isKey: "); result.append(isKey); result.append(')'); diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/DomainImpl.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/DomainImpl.java index 3376a6b..6252635 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/DomainImpl.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/DomainImpl.java @@ -1,5 +1,5 @@ /** - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl.erDsl.impl; diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/ERModelImpl.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/ERModelImpl.java index dbb949e..3c68289 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/ERModelImpl.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/ERModelImpl.java @@ -1,5 +1,5 @@ /** - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl.erDsl.impl; diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/EntityImpl.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/EntityImpl.java index 199c721..45ec8d2 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/EntityImpl.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/EntityImpl.java @@ -1,5 +1,5 @@ /** - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl.erDsl.impl; @@ -17,7 +17,6 @@ import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; import org.eclipse.emf.ecore.util.EObjectContainmentEList; -import org.eclipse.emf.ecore.util.EObjectResolvingEList; import org.eclipse.emf.ecore.util.InternalEList; import org.xtext.unipampa.erdsl.erDsl.Attribute; @@ -62,14 +61,14 @@ public class EntityImpl extends MinimalEObjectImpl.Container implements Entity protected String name = NAME_EDEFAULT; /** - * The cached value of the '{@link #getIs() Is}' reference list. + * The cached value of the '{@link #getIs() Is}' reference. * * * @see #getIs() * @generated * @ordered */ - protected EList is; + protected Entity is; /** * The cached value of the '{@link #getAttributes() Attributes}' containment reference list. @@ -133,15 +132,45 @@ public void setName(String newName) * @generated */ @Override - public EList getIs() + public Entity getIs() { - if (is == null) + if (is != null && is.eIsProxy()) { - is = new EObjectResolvingEList(Entity.class, this, ErDslPackage.ENTITY__IS); + InternalEObject oldIs = (InternalEObject)is; + is = (Entity)eResolveProxy(oldIs); + if (is != oldIs) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ErDslPackage.ENTITY__IS, oldIs, is)); + } } return is; } + /** + * + * + * @generated + */ + public Entity basicGetIs() + { + return is; + } + + /** + * + * + * @generated + */ + @Override + public void setIs(Entity newIs) + { + Entity oldIs = is; + is = newIs; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ErDslPackage.ENTITY__IS, oldIs, is)); + } + /** * * @@ -186,7 +215,8 @@ public Object eGet(int featureID, boolean resolve, boolean coreType) case ErDslPackage.ENTITY__NAME: return getName(); case ErDslPackage.ENTITY__IS: - return getIs(); + if (resolve) return getIs(); + return basicGetIs(); case ErDslPackage.ENTITY__ATTRIBUTES: return getAttributes(); } @@ -208,8 +238,7 @@ public void eSet(int featureID, Object newValue) setName((String)newValue); return; case ErDslPackage.ENTITY__IS: - getIs().clear(); - getIs().addAll((Collection)newValue); + setIs((Entity)newValue); return; case ErDslPackage.ENTITY__ATTRIBUTES: getAttributes().clear(); @@ -233,7 +262,7 @@ public void eUnset(int featureID) setName(NAME_EDEFAULT); return; case ErDslPackage.ENTITY__IS: - getIs().clear(); + setIs((Entity)null); return; case ErDslPackage.ENTITY__ATTRIBUTES: getAttributes().clear(); @@ -255,7 +284,7 @@ public boolean eIsSet(int featureID) case ErDslPackage.ENTITY__NAME: return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); case ErDslPackage.ENTITY__IS: - return is != null && !is.isEmpty(); + return is != null; case ErDslPackage.ENTITY__ATTRIBUTES: return attributes != null && !attributes.isEmpty(); } @@ -272,9 +301,12 @@ public String toString() { if (eIsProxy()) return super.toString(); - StringBuilder result = new StringBuilder(); - result.append(name); - return result.toString(); + StringBuilder result = new StringBuilder(super.toString()); +// result.append(" (name: "); +// result.append(name); +// result.append(')'); +// return result.toString(); + return name; } } //EntityImpl diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/ErDslFactoryImpl.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/ErDslFactoryImpl.java index d9d1b69..d5adcd7 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/ErDslFactoryImpl.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/ErDslFactoryImpl.java @@ -1,9 +1,10 @@ /** - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl.erDsl.impl; import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EDataType; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EPackage; @@ -76,6 +77,40 @@ public EObject create(EClass eClass) } } + /** + * + * + * @generated + */ + @Override + public Object createFromString(EDataType eDataType, String initialValue) + { + switch (eDataType.getClassifierID()) + { + case ErDslPackage.DATA_TYPE: + return createDataTypeFromString(eDataType, initialValue); + default: + throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); + } + } + + /** + * + * + * @generated + */ + @Override + public String convertToString(EDataType eDataType, Object instanceValue) + { + switch (eDataType.getClassifierID()) + { + case ErDslPackage.DATA_TYPE: + return convertDataTypeToString(eDataType, instanceValue); + default: + throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); + } + } + /** * * @@ -148,6 +183,28 @@ public RelationSide createRelationSide() return relationSide; } + /** + * + * + * @generated + */ + public DataType createDataTypeFromString(EDataType eDataType, String initialValue) + { + DataType result = DataType.get(initialValue); + if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); + return result; + } + + /** + * + * + * @generated + */ + public String convertDataTypeToString(EDataType eDataType, Object instanceValue) + { + return instanceValue == null ? null : instanceValue.toString(); + } + /** * * diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/ErDslPackageImpl.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/ErDslPackageImpl.java index 118e244..bc50cdb 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/ErDslPackageImpl.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/ErDslPackageImpl.java @@ -1,16 +1,18 @@ /** - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl.erDsl.impl; import org.eclipse.emf.ecore.EAttribute; import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EEnum; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.ecore.EReference; import org.eclipse.emf.ecore.impl.EPackageImpl; import org.xtext.unipampa.erdsl.erDsl.Attribute; +import org.xtext.unipampa.erdsl.erDsl.DataType; import org.xtext.unipampa.erdsl.erDsl.Domain; import org.xtext.unipampa.erdsl.erDsl.ERModel; import org.xtext.unipampa.erdsl.erDsl.Entity; @@ -69,6 +71,13 @@ public class ErDslPackageImpl extends EPackageImpl implements ErDslPackage */ private EClass relationSideEClass = null; + /** + * + * + * @generated + */ + private EEnum dataTypeEEnum = null; + /** * Creates an instance of the model Package, registered with * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package @@ -226,11 +235,22 @@ public EAttribute getAttribute_Name() * @generated */ @Override - public EAttribute getAttribute_IsKey() + public EAttribute getAttribute_Type() { return (EAttribute)attributeEClass.getEStructuralFeatures().get(1); } + /** + * + * + * @generated + */ + @Override + public EAttribute getAttribute_IsKey() + { + return (EAttribute)attributeEClass.getEStructuralFeatures().get(2); + } + /** * * @@ -363,6 +383,17 @@ public EReference getRelationSide_Target() return (EReference)relationSideEClass.getEStructuralFeatures().get(1); } + /** + * + * + * @generated + */ + @Override + public EEnum getDataType() + { + return dataTypeEEnum; + } + /** * * @@ -404,6 +435,7 @@ public void createPackageContents() attributeEClass = createEClass(ATTRIBUTE); createEAttribute(attributeEClass, ATTRIBUTE__NAME); + createEAttribute(attributeEClass, ATTRIBUTE__TYPE); createEAttribute(attributeEClass, ATTRIBUTE__IS_KEY); entityEClass = createEClass(ENTITY); @@ -420,6 +452,9 @@ public void createPackageContents() relationSideEClass = createEClass(RELATION_SIDE); createEAttribute(relationSideEClass, RELATION_SIDE__CARDINALITY); createEReference(relationSideEClass, RELATION_SIDE__TARGET); + + // Create enums + dataTypeEEnum = createEEnum(DATA_TYPE); } /** @@ -463,11 +498,12 @@ public void initializePackageContents() initEClass(attributeEClass, Attribute.class, "Attribute", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getAttribute_Name(), ecorePackage.getEString(), "name", null, 0, 1, Attribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getAttribute_Type(), this.getDataType(), "type", null, 0, 1, Attribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getAttribute_IsKey(), ecorePackage.getEBoolean(), "isKey", null, 0, 1, Attribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(entityEClass, Entity.class, "Entity", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getEntity_Name(), ecorePackage.getEString(), "name", null, 0, 1, Entity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getEntity_Is(), this.getEntity(), null, "is", null, 0, -1, Entity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getEntity_Is(), this.getEntity(), null, "is", null, 0, 1, Entity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getEntity_Attributes(), this.getAttribute(), null, "attributes", null, 0, -1, Entity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(relationEClass, Relation.class, "Relation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); @@ -477,9 +513,19 @@ public void initializePackageContents() initEReference(getRelation_Attributes(), this.getAttribute(), null, "attributes", null, 0, -1, Relation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(relationSideEClass, RelationSide.class, "RelationSide", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getRelationSide_Cardinality(), ecorePackage.getEString(), "Cardinality", null, 0, 1, RelationSide.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getRelationSide_Cardinality(), ecorePackage.getEString(), "cardinality", null, 0, 1, RelationSide.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getRelationSide_Target(), ecorePackage.getEObject(), null, "target", null, 0, 1, RelationSide.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + // Initialize enums and add enum literals + initEEnum(dataTypeEEnum, DataType.class, "DataType"); + addEEnumLiteral(dataTypeEEnum, DataType.INT); + addEEnumLiteral(dataTypeEEnum, DataType.DOUBLE); + addEEnumLiteral(dataTypeEEnum, DataType.MONEY); + addEEnumLiteral(dataTypeEEnum, DataType.STRING); + addEEnumLiteral(dataTypeEEnum, DataType.BOOLEAN); + addEEnumLiteral(dataTypeEEnum, DataType.DATETIME); + addEEnumLiteral(dataTypeEEnum, DataType.BLOB); + // Create resource createResource(eNS_URI); } diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/RelationImpl.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/RelationImpl.java index dce5481..75a4b1c 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/RelationImpl.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/RelationImpl.java @@ -1,5 +1,5 @@ /** - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl.erDsl.impl; @@ -381,9 +381,12 @@ public String toString() { if (eIsProxy()) return super.toString(); - StringBuilder result = new StringBuilder(); - result.append(name); - return result.toString(); + StringBuilder result = new StringBuilder(super.toString()); +// result.append(" (name: "); +// result.append(name); +// result.append(')'); +// return result.toString(); + return name; } } //RelationImpl diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/RelationSideImpl.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/RelationSideImpl.java index 6553445..eeae758 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/RelationSideImpl.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/impl/RelationSideImpl.java @@ -1,5 +1,5 @@ /** - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl.erDsl.impl; @@ -240,10 +240,11 @@ public String toString() if (eIsProxy()) return super.toString(); StringBuilder result = new StringBuilder(super.toString()); - result.append(" (Cardinality: "); - result.append(cardinality); - result.append(')'); - return result.toString(); +// result.append(" (cardinality: "); +// result.append(cardinality); +// result.append(')'); +// return result.toString(); + return cardinality; } } //RelationSideImpl diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/util/ErDslAdapterFactory.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/util/ErDslAdapterFactory.java index 8d52dac..61930a9 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/util/ErDslAdapterFactory.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/util/ErDslAdapterFactory.java @@ -1,5 +1,5 @@ /** - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl.erDsl.util; diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/util/ErDslSwitch.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/util/ErDslSwitch.java index cbbcc91..a0bec88 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/util/ErDslSwitch.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/erDsl/util/ErDslSwitch.java @@ -1,5 +1,5 @@ /** - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl.erDsl.util; diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/ErDslAntlrTokenFileProvider.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/ErDslAntlrTokenFileProvider.java index 4277685..75c03fe 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/ErDslAntlrTokenFileProvider.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/ErDslAntlrTokenFileProvider.java @@ -1,5 +1,5 @@ /* - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl.parser.antlr; diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/ErDslParser.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/ErDslParser.java index 405ff26..213848d 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/ErDslParser.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/ErDslParser.java @@ -1,5 +1,5 @@ /* - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl.parser.antlr; diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDsl.g b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDsl.g index 254c2fd..b63f8e6 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDsl.g +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDsl.g @@ -1,5 +1,5 @@ /* - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ grammar InternalErDsl; @@ -23,6 +23,7 @@ import org.eclipse.xtext.parser.*; import org.eclipse.xtext.parser.impl.*; import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.common.util.Enumerator; import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser; import org.eclipse.xtext.parser.antlr.XtextTokenStream; import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens; @@ -257,9 +258,28 @@ ruleAttribute returns [EObject current=null] ) ( ( - lv_isKey_1_0='isIdentifier' { - newLeafNode(lv_isKey_1_0, grammarAccess.getAttributeAccess().getIsKeyIsIdentifierKeyword_1_0()); + newCompositeNode(grammarAccess.getAttributeAccess().getTypeDataTypeEnumRuleCall_1_0()); + } + lv_type_1_0=ruleDataType + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getAttributeRule()); + } + set( + $current, + "type", + lv_type_1_0, + "org.xtext.unipampa.erdsl.ErDsl.DataType"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + ( + lv_isKey_2_0='isIdentifier' + { + newLeafNode(lv_isKey_2_0, grammarAccess.getAttributeAccess().getIsKeyIsIdentifierKeyword_2_0()); } { if ($current==null) { @@ -545,48 +565,48 @@ ruleRelationSide returns [EObject current=null] ( ( ( - lv_Cardinality_0_1='(0:1)' + lv_cardinality_0_1='(0:1)' { - newLeafNode(lv_Cardinality_0_1, grammarAccess.getRelationSideAccess().getCardinality01Keyword_0_0_0_0()); + newLeafNode(lv_cardinality_0_1, grammarAccess.getRelationSideAccess().getCardinality01Keyword_0_0_0_0()); } { if ($current==null) { $current = createModelElement(grammarAccess.getRelationSideRule()); } - setWithLastConsumed($current, "Cardinality", lv_Cardinality_0_1, null); + setWithLastConsumed($current, "cardinality", lv_cardinality_0_1, null); } | - lv_Cardinality_0_2='(1:1)' + lv_cardinality_0_2='(1:1)' { - newLeafNode(lv_Cardinality_0_2, grammarAccess.getRelationSideAccess().getCardinality11Keyword_0_0_0_1()); + newLeafNode(lv_cardinality_0_2, grammarAccess.getRelationSideAccess().getCardinality11Keyword_0_0_0_1()); } { if ($current==null) { $current = createModelElement(grammarAccess.getRelationSideRule()); } - setWithLastConsumed($current, "Cardinality", lv_Cardinality_0_2, null); + setWithLastConsumed($current, "cardinality", lv_cardinality_0_2, null); } | - lv_Cardinality_0_3='(0:N)' + lv_cardinality_0_3='(0:N)' { - newLeafNode(lv_Cardinality_0_3, grammarAccess.getRelationSideAccess().getCardinality0NKeyword_0_0_0_2()); + newLeafNode(lv_cardinality_0_3, grammarAccess.getRelationSideAccess().getCardinality0NKeyword_0_0_0_2()); } { if ($current==null) { $current = createModelElement(grammarAccess.getRelationSideRule()); } - setWithLastConsumed($current, "Cardinality", lv_Cardinality_0_3, null); + setWithLastConsumed($current, "cardinality", lv_cardinality_0_3, null); } | - lv_Cardinality_0_4='(1:N)' + lv_cardinality_0_4='(1:N)' { - newLeafNode(lv_Cardinality_0_4, grammarAccess.getRelationSideAccess().getCardinality1NKeyword_0_0_0_3()); + newLeafNode(lv_cardinality_0_4, grammarAccess.getRelationSideAccess().getCardinality1NKeyword_0_0_0_3()); } { if ($current==null) { $current = createModelElement(grammarAccess.getRelationSideRule()); } - setWithLastConsumed($current, "Cardinality", lv_Cardinality_0_4, null); + setWithLastConsumed($current, "cardinality", lv_cardinality_0_4, null); } ) ) @@ -622,6 +642,73 @@ ruleRelationSide returns [EObject current=null] ) ; +// Rule DataType +ruleDataType returns [Enumerator current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + enumLiteral_0='int' + { + $current = grammarAccess.getDataTypeAccess().getINTEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getDataTypeAccess().getINTEnumLiteralDeclaration_0()); + } + ) + | + ( + enumLiteral_1='double' + { + $current = grammarAccess.getDataTypeAccess().getDOUBLEEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_1, grammarAccess.getDataTypeAccess().getDOUBLEEnumLiteralDeclaration_1()); + } + ) + | + ( + enumLiteral_2='money' + { + $current = grammarAccess.getDataTypeAccess().getMONEYEnumLiteralDeclaration_2().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_2, grammarAccess.getDataTypeAccess().getMONEYEnumLiteralDeclaration_2()); + } + ) + | + ( + enumLiteral_3='string' + { + $current = grammarAccess.getDataTypeAccess().getSTRINGEnumLiteralDeclaration_3().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_3, grammarAccess.getDataTypeAccess().getSTRINGEnumLiteralDeclaration_3()); + } + ) + | + ( + enumLiteral_4='boolean' + { + $current = grammarAccess.getDataTypeAccess().getBOOLEANEnumLiteralDeclaration_4().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_4, grammarAccess.getDataTypeAccess().getBOOLEANEnumLiteralDeclaration_4()); + } + ) + | + ( + enumLiteral_5='datetime' + { + $current = grammarAccess.getDataTypeAccess().getDATETIMEEnumLiteralDeclaration_5().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_5, grammarAccess.getDataTypeAccess().getDATETIMEEnumLiteralDeclaration_5()); + } + ) + | + ( + enumLiteral_6='file' + { + $current = grammarAccess.getDataTypeAccess().getBLOBEnumLiteralDeclaration_6().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_6, grammarAccess.getDataTypeAccess().getBLOBEnumLiteralDeclaration_6()); + } + ) + ) +; + RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*; RULE_INT : ('0'..'9')+; diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDsl.tokens b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDsl.tokens index 61a7bc5..30c68d6 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDsl.tokens +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDsl.tokens @@ -9,9 +9,16 @@ 'Relationships'=15 '['=20 ']'=22 +'boolean'=31 +'datetime'=32 +'double'=28 +'file'=33 +'int'=27 'is'=18 'isIdentifier'=17 +'money'=29 'relates'=21 +'string'=30 '{'=13 '}'=14 RULE_ANY_OTHER=10 @@ -37,3 +44,10 @@ T__23=23 T__24=24 T__25=25 T__26=26 +T__27=27 +T__28=28 +T__29=29 +T__30=30 +T__31=31 +T__32=32 +T__33=33 diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslLexer.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslLexer.java index 3c4e7fd..bd6d845 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslLexer.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslLexer.java @@ -20,15 +20,22 @@ public class InternalErDslLexer extends Lexer { public static final int T__17=17; public static final int T__18=18; public static final int T__11=11; + public static final int T__33=33; public static final int T__12=12; public static final int T__13=13; public static final int T__14=14; public static final int EOF=-1; + public static final int T__30=30; + public static final int T__31=31; + public static final int T__32=32; public static final int RULE_ID=4; public static final int RULE_WS=9; public static final int RULE_ANY_OTHER=10; public static final int T__26=26; + public static final int T__27=27; + public static final int T__28=28; public static final int RULE_INT=5; + public static final int T__29=29; public static final int T__22=22; public static final int RULE_ML_COMMENT=7; public static final int T__23=23; @@ -380,15 +387,162 @@ public final void mT__26() throws RecognitionException { } // $ANTLR end "T__26" + // $ANTLR start "T__27" + public final void mT__27() throws RecognitionException { + try { + int _type = T__27; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalErDsl.g:27:7: ( 'int' ) + // InternalErDsl.g:27:9: 'int' + { + match("int"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__27" + + // $ANTLR start "T__28" + public final void mT__28() throws RecognitionException { + try { + int _type = T__28; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalErDsl.g:28:7: ( 'double' ) + // InternalErDsl.g:28:9: 'double' + { + match("double"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__28" + + // $ANTLR start "T__29" + public final void mT__29() throws RecognitionException { + try { + int _type = T__29; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalErDsl.g:29:7: ( 'money' ) + // InternalErDsl.g:29:9: 'money' + { + match("money"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__29" + + // $ANTLR start "T__30" + public final void mT__30() throws RecognitionException { + try { + int _type = T__30; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalErDsl.g:30:7: ( 'string' ) + // InternalErDsl.g:30:9: 'string' + { + match("string"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__30" + + // $ANTLR start "T__31" + public final void mT__31() throws RecognitionException { + try { + int _type = T__31; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalErDsl.g:31:7: ( 'boolean' ) + // InternalErDsl.g:31:9: 'boolean' + { + match("boolean"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__31" + + // $ANTLR start "T__32" + public final void mT__32() throws RecognitionException { + try { + int _type = T__32; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalErDsl.g:32:7: ( 'datetime' ) + // InternalErDsl.g:32:9: 'datetime' + { + match("datetime"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__32" + + // $ANTLR start "T__33" + public final void mT__33() throws RecognitionException { + try { + int _type = T__33; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalErDsl.g:33:7: ( 'file' ) + // InternalErDsl.g:33:9: 'file' + { + match("file"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__33" + // $ANTLR start "RULE_ID" public final void mRULE_ID() throws RecognitionException { try { int _type = RULE_ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDsl.g:625:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* ) - // InternalErDsl.g:625:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* + // InternalErDsl.g:712:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* ) + // InternalErDsl.g:712:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* { - // InternalErDsl.g:625:11: ( '^' )? + // InternalErDsl.g:712:11: ( '^' )? int alt1=2; int LA1_0 = input.LA(1); @@ -397,7 +551,7 @@ public final void mRULE_ID() throws RecognitionException { } switch (alt1) { case 1 : - // InternalErDsl.g:625:11: '^' + // InternalErDsl.g:712:11: '^' { match('^'); @@ -415,7 +569,7 @@ public final void mRULE_ID() throws RecognitionException { recover(mse); throw mse;} - // InternalErDsl.g:625:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* + // InternalErDsl.g:712:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* loop2: do { int alt2=2; @@ -464,10 +618,10 @@ public final void mRULE_INT() throws RecognitionException { try { int _type = RULE_INT; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDsl.g:627:10: ( ( '0' .. '9' )+ ) - // InternalErDsl.g:627:12: ( '0' .. '9' )+ + // InternalErDsl.g:714:10: ( ( '0' .. '9' )+ ) + // InternalErDsl.g:714:12: ( '0' .. '9' )+ { - // InternalErDsl.g:627:12: ( '0' .. '9' )+ + // InternalErDsl.g:714:12: ( '0' .. '9' )+ int cnt3=0; loop3: do { @@ -481,7 +635,7 @@ public final void mRULE_INT() throws RecognitionException { switch (alt3) { case 1 : - // InternalErDsl.g:627:13: '0' .. '9' + // InternalErDsl.g:714:13: '0' .. '9' { matchRange('0','9'); @@ -513,10 +667,10 @@ public final void mRULE_STRING() throws RecognitionException { try { int _type = RULE_STRING; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDsl.g:629:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) ) - // InternalErDsl.g:629:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) + // InternalErDsl.g:716:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) ) + // InternalErDsl.g:716:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) { - // InternalErDsl.g:629:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) + // InternalErDsl.g:716:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) int alt6=2; int LA6_0 = input.LA(1); @@ -534,10 +688,10 @@ else if ( (LA6_0=='\'') ) { } switch (alt6) { case 1 : - // InternalErDsl.g:629:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' + // InternalErDsl.g:716:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' { match('\"'); - // InternalErDsl.g:629:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* + // InternalErDsl.g:716:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* loop4: do { int alt4=3; @@ -553,7 +707,7 @@ else if ( ((LA4_0>='\u0000' && LA4_0<='!')||(LA4_0>='#' && LA4_0<='[')||(LA4_0>= switch (alt4) { case 1 : - // InternalErDsl.g:629:21: '\\\\' . + // InternalErDsl.g:716:21: '\\\\' . { match('\\'); matchAny(); @@ -561,7 +715,7 @@ else if ( ((LA4_0>='\u0000' && LA4_0<='!')||(LA4_0>='#' && LA4_0<='[')||(LA4_0>= } break; case 2 : - // InternalErDsl.g:629:28: ~ ( ( '\\\\' | '\"' ) ) + // InternalErDsl.g:716:28: ~ ( ( '\\\\' | '\"' ) ) { if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { input.consume(); @@ -586,10 +740,10 @@ else if ( ((LA4_0>='\u0000' && LA4_0<='!')||(LA4_0>='#' && LA4_0<='[')||(LA4_0>= } break; case 2 : - // InternalErDsl.g:629:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' + // InternalErDsl.g:716:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' { match('\''); - // InternalErDsl.g:629:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* + // InternalErDsl.g:716:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* loop5: do { int alt5=3; @@ -605,7 +759,7 @@ else if ( ((LA5_0>='\u0000' && LA5_0<='&')||(LA5_0>='(' && LA5_0<='[')||(LA5_0>= switch (alt5) { case 1 : - // InternalErDsl.g:629:54: '\\\\' . + // InternalErDsl.g:716:54: '\\\\' . { match('\\'); matchAny(); @@ -613,7 +767,7 @@ else if ( ((LA5_0>='\u0000' && LA5_0<='&')||(LA5_0>='(' && LA5_0<='[')||(LA5_0>= } break; case 2 : - // InternalErDsl.g:629:61: ~ ( ( '\\\\' | '\\'' ) ) + // InternalErDsl.g:716:61: ~ ( ( '\\\\' | '\\'' ) ) { if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { input.consume(); @@ -656,12 +810,12 @@ public final void mRULE_ML_COMMENT() throws RecognitionException { try { int _type = RULE_ML_COMMENT; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDsl.g:631:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) - // InternalErDsl.g:631:19: '/*' ( options {greedy=false; } : . )* '*/' + // InternalErDsl.g:718:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) + // InternalErDsl.g:718:19: '/*' ( options {greedy=false; } : . )* '*/' { match("/*"); - // InternalErDsl.g:631:24: ( options {greedy=false; } : . )* + // InternalErDsl.g:718:24: ( options {greedy=false; } : . )* loop7: do { int alt7=2; @@ -686,7 +840,7 @@ else if ( ((LA7_0>='\u0000' && LA7_0<=')')||(LA7_0>='+' && LA7_0<='\uFFFF')) ) { switch (alt7) { case 1 : - // InternalErDsl.g:631:52: . + // InternalErDsl.g:718:52: . { matchAny(); @@ -716,12 +870,12 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { try { int _type = RULE_SL_COMMENT; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDsl.g:633:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) - // InternalErDsl.g:633:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? + // InternalErDsl.g:720:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) + // InternalErDsl.g:720:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? { match("//"); - // InternalErDsl.g:633:24: (~ ( ( '\\n' | '\\r' ) ) )* + // InternalErDsl.g:720:24: (~ ( ( '\\n' | '\\r' ) ) )* loop8: do { int alt8=2; @@ -734,7 +888,7 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { switch (alt8) { case 1 : - // InternalErDsl.g:633:24: ~ ( ( '\\n' | '\\r' ) ) + // InternalErDsl.g:720:24: ~ ( ( '\\n' | '\\r' ) ) { if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) { input.consume(); @@ -754,7 +908,7 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { } } while (true); - // InternalErDsl.g:633:40: ( ( '\\r' )? '\\n' )? + // InternalErDsl.g:720:40: ( ( '\\r' )? '\\n' )? int alt10=2; int LA10_0 = input.LA(1); @@ -763,9 +917,9 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { } switch (alt10) { case 1 : - // InternalErDsl.g:633:41: ( '\\r' )? '\\n' + // InternalErDsl.g:720:41: ( '\\r' )? '\\n' { - // InternalErDsl.g:633:41: ( '\\r' )? + // InternalErDsl.g:720:41: ( '\\r' )? int alt9=2; int LA9_0 = input.LA(1); @@ -774,7 +928,7 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { } switch (alt9) { case 1 : - // InternalErDsl.g:633:41: '\\r' + // InternalErDsl.g:720:41: '\\r' { match('\r'); @@ -806,10 +960,10 @@ public final void mRULE_WS() throws RecognitionException { try { int _type = RULE_WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDsl.g:635:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) - // InternalErDsl.g:635:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + // InternalErDsl.g:722:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) + // InternalErDsl.g:722:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ { - // InternalErDsl.g:635:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + // InternalErDsl.g:722:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ int cnt11=0; loop11: do { @@ -863,8 +1017,8 @@ public final void mRULE_ANY_OTHER() throws RecognitionException { try { int _type = RULE_ANY_OTHER; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDsl.g:637:16: ( . ) - // InternalErDsl.g:637:18: . + // InternalErDsl.g:724:16: ( . ) + // InternalErDsl.g:724:18: . { matchAny(); @@ -879,8 +1033,8 @@ public final void mRULE_ANY_OTHER() throws RecognitionException { // $ANTLR end "RULE_ANY_OTHER" public void mTokens() throws RecognitionException { - // InternalErDsl.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER ) - int alt12=23; + // InternalErDsl.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER ) + int alt12=30; alt12 = dfa12.predict(input); switch (alt12) { case 1 : @@ -996,49 +1150,98 @@ public void mTokens() throws RecognitionException { } break; case 17 : - // InternalErDsl.g:1:106: RULE_ID + // InternalErDsl.g:1:106: T__27 { - mRULE_ID(); + mT__27(); } break; case 18 : - // InternalErDsl.g:1:114: RULE_INT + // InternalErDsl.g:1:112: T__28 { - mRULE_INT(); + mT__28(); } break; case 19 : - // InternalErDsl.g:1:123: RULE_STRING + // InternalErDsl.g:1:118: T__29 { - mRULE_STRING(); + mT__29(); } break; case 20 : - // InternalErDsl.g:1:135: RULE_ML_COMMENT + // InternalErDsl.g:1:124: T__30 { - mRULE_ML_COMMENT(); + mT__30(); } break; case 21 : - // InternalErDsl.g:1:151: RULE_SL_COMMENT + // InternalErDsl.g:1:130: T__31 { - mRULE_SL_COMMENT(); + mT__31(); } break; case 22 : - // InternalErDsl.g:1:167: RULE_WS + // InternalErDsl.g:1:136: T__32 { - mRULE_WS(); + mT__32(); } break; case 23 : - // InternalErDsl.g:1:175: RULE_ANY_OTHER + // InternalErDsl.g:1:142: T__33 + { + mT__33(); + + } + break; + case 24 : + // InternalErDsl.g:1:148: RULE_ID + { + mRULE_ID(); + + } + break; + case 25 : + // InternalErDsl.g:1:156: RULE_INT + { + mRULE_INT(); + + } + break; + case 26 : + // InternalErDsl.g:1:165: RULE_STRING + { + mRULE_STRING(); + + } + break; + case 27 : + // InternalErDsl.g:1:177: RULE_ML_COMMENT + { + mRULE_ML_COMMENT(); + + } + break; + case 28 : + // InternalErDsl.g:1:193: RULE_SL_COMMENT + { + mRULE_SL_COMMENT(); + + } + break; + case 29 : + // InternalErDsl.g:1:209: RULE_WS + { + mRULE_WS(); + + } + break; + case 30 : + // InternalErDsl.g:1:217: RULE_ANY_OTHER { mRULE_ANY_OTHER(); @@ -1052,95 +1255,81 @@ public void mTokens() throws RecognitionException { protected DFA12 dfa12 = new DFA12(this); static final String DFA12_eotS = - "\2\uffff\1\27\2\uffff\3\27\2\uffff\1\27\1\uffff\2\24\2\uffff\3\24\3\uffff\1\27\3\uffff\2\27\1\54\2\uffff\1\27\10\uffff\4\27\1\uffff\1\27\2\uffff\5\27\4\uffff\7\27\1\105\4\27\1\uffff\1\27\1\113\1\114\2\27\2\uffff\7\27\1\126\1\127\2\uffff"; + "\2\uffff\1\34\2\uffff\3\34\2\uffff\1\34\1\uffff\1\31\5\34\1\31\2\uffff\3\31\3\uffff\1\34\3\uffff\2\34\1\70\1\34\2\uffff\1\34\3\uffff\6\34\5\uffff\4\34\1\uffff\1\107\1\34\2\uffff\12\34\1\uffff\1\34\4\uffff\5\34\1\135\7\34\1\145\2\34\1\uffff\2\34\1\152\2\34\1\155\1\34\1\uffff\1\157\3\34\1\uffff\1\34\1\164\1\uffff\1\34\1\uffff\1\166\1\167\2\34\1\uffff\1\172\2\uffff\2\34\1\uffff\5\34\1\u0082\1\u0083\2\uffff"; static final String DFA12_eofS = - "\130\uffff"; + "\u0084\uffff"; static final String DFA12_minS = - "\1\0\1\uffff\1\156\2\uffff\1\145\1\157\1\163\2\uffff\1\145\1\uffff\1\60\1\101\2\uffff\2\0\1\52\3\uffff\1\164\3\uffff\1\154\1\155\1\60\2\uffff\1\154\1\uffff\2\72\5\uffff\1\151\2\141\1\144\1\uffff\1\141\2\61\2\164\1\151\1\145\1\164\4\uffff\2\151\2\156\2\145\1\157\1\60\1\164\2\163\1\156\1\uffff\1\151\2\60\1\163\1\146\2\uffff\1\150\2\151\1\145\1\160\1\162\1\163\2\60\2\uffff"; + "\1\0\1\uffff\1\156\2\uffff\1\145\1\157\1\156\2\uffff\1\145\1\uffff\1\60\1\141\1\157\1\164\1\157\1\151\1\101\2\uffff\2\0\1\52\3\uffff\1\164\3\uffff\1\154\1\155\1\60\1\164\2\uffff\1\154\1\uffff\2\72\1\165\1\164\1\156\1\162\1\157\1\154\5\uffff\1\151\2\141\1\144\1\uffff\1\60\1\141\2\61\1\142\2\145\1\151\1\154\1\145\2\164\1\151\1\145\1\uffff\1\164\4\uffff\1\154\1\164\1\171\1\156\1\145\1\60\2\151\2\156\2\145\1\151\1\60\1\147\1\141\1\uffff\1\145\1\157\1\60\1\164\1\163\1\60\1\155\1\uffff\1\60\1\156\1\163\1\156\1\uffff\1\151\1\60\1\uffff\1\145\1\uffff\2\60\1\163\1\146\1\uffff\1\60\2\uffff\1\150\1\151\1\uffff\1\151\1\145\1\160\1\162\1\163\2\60\2\uffff"; static final String DFA12_maxS = - "\1\uffff\1\uffff\1\156\2\uffff\1\145\1\157\1\163\2\uffff\1\145\1\uffff\1\61\1\172\2\uffff\2\uffff\1\57\3\uffff\1\164\3\uffff\1\154\1\155\1\172\2\uffff\1\154\1\uffff\2\72\5\uffff\1\151\2\141\1\144\1\uffff\1\141\2\116\2\164\1\151\1\145\1\164\4\uffff\2\151\2\156\2\145\1\157\1\172\1\164\2\163\1\156\1\uffff\1\151\2\172\1\163\1\146\2\uffff\1\150\2\151\1\145\1\160\1\162\1\163\2\172\2\uffff"; + "\1\uffff\1\uffff\1\156\2\uffff\1\145\1\157\1\163\2\uffff\1\145\1\uffff\1\61\2\157\1\164\1\157\1\151\1\172\2\uffff\2\uffff\1\57\3\uffff\1\164\3\uffff\1\154\1\155\1\172\1\164\2\uffff\1\154\1\uffff\2\72\1\165\1\164\1\156\1\162\1\157\1\154\5\uffff\1\151\2\141\1\144\1\uffff\1\172\1\141\2\116\1\142\2\145\1\151\1\154\1\145\2\164\1\151\1\145\1\uffff\1\164\4\uffff\1\154\1\164\1\171\1\156\1\145\1\172\2\151\2\156\2\145\1\151\1\172\1\147\1\141\1\uffff\1\145\1\157\1\172\1\164\1\163\1\172\1\155\1\uffff\1\172\1\156\1\163\1\156\1\uffff\1\151\1\172\1\uffff\1\145\1\uffff\2\172\1\163\1\146\1\uffff\1\172\2\uffff\1\150\1\151\1\uffff\1\151\1\145\1\160\1\162\1\163\2\172\2\uffff"; static final String DFA12_acceptS = - "\1\uffff\1\1\1\uffff\1\3\1\4\3\uffff\1\11\1\12\1\uffff\1\14\2\uffff\1\21\1\22\3\uffff\1\26\1\27\1\1\1\uffff\1\21\1\3\1\4\3\uffff\1\11\1\12\1\uffff\1\14\2\uffff\1\22\1\23\1\24\1\25\1\26\4\uffff\1\10\10\uffff\1\15\1\17\1\16\1\20\14\uffff\1\6\5\uffff\1\13\1\2\11\uffff\1\7\1\5"; + "\1\uffff\1\1\1\uffff\1\3\1\4\3\uffff\1\11\1\12\1\uffff\1\14\7\uffff\1\30\1\31\3\uffff\1\35\1\36\1\1\1\uffff\1\30\1\3\1\4\4\uffff\1\11\1\12\1\uffff\1\14\10\uffff\1\31\1\32\1\33\1\34\1\35\4\uffff\1\10\16\uffff\1\21\1\uffff\1\15\1\17\1\16\1\20\20\uffff\1\27\7\uffff\1\23\4\uffff\1\6\2\uffff\1\22\1\uffff\1\24\4\uffff\1\13\1\uffff\1\25\1\2\2\uffff\1\26\7\uffff\1\7\1\5"; static final String DFA12_specialS = - "\1\2\17\uffff\1\0\1\1\106\uffff}>"; + "\1\1\24\uffff\1\0\1\2\155\uffff}>"; static final String[] DFA12_transitionS = { - "\11\24\2\23\2\24\1\23\22\24\1\23\1\24\1\20\4\24\1\21\1\14\3\24\1\10\2\24\1\22\12\17\1\24\1\1\5\24\3\16\1\6\1\2\14\16\1\5\10\16\1\11\1\24\1\13\1\15\1\16\1\24\10\16\1\7\10\16\1\12\10\16\1\3\1\24\1\4\uff82\24", + "\11\31\2\30\2\31\1\30\22\31\1\30\1\31\1\25\4\31\1\26\1\14\3\31\1\10\2\31\1\27\12\24\1\31\1\1\5\31\3\23\1\6\1\2\14\23\1\5\10\23\1\11\1\31\1\13\1\22\1\23\1\31\1\23\1\20\1\23\1\15\1\23\1\21\2\23\1\7\3\23\1\16\4\23\1\12\1\17\7\23\1\3\1\31\1\4\uff82\31", "", - "\1\26", - "", - "", - "\1\32", "\1\33", - "\1\34", "", "", "\1\37", - "", - "\1\41\1\42", - "\32\27\4\uffff\1\27\1\uffff\32\27", - "", - "", - "\0\44", - "\0\44", - "\1\45\4\uffff\1\46", - "", + "\1\40", + "\1\42\4\uffff\1\41", "", "", - "\1\50", - "", + "\1\45", "", + "\1\47\1\50", + "\1\52\15\uffff\1\51", + "\1\53", + "\1\54", + "\1\55", + "\1\56", + "\32\34\4\uffff\1\34\1\uffff\32\34", "", - "\1\51", - "\1\52", - "\12\27\7\uffff\10\27\1\53\21\27\4\uffff\1\27\1\uffff\32\27", "", + "\0\60", + "\0\60", + "\1\61\4\uffff\1\62", "", - "\1\55", "", - "\1\56", - "\1\57", "", + "\1\64", "", "", "", + "\1\65", + "\1\66", + "\12\34\7\uffff\10\34\1\67\21\34\4\uffff\1\34\1\uffff\32\34", + "\1\71", "", - "\1\60", - "\1\61", - "\1\62", - "\1\63", "", - "\1\64", - "\1\65\34\uffff\1\66", - "\1\67\34\uffff\1\70", - "\1\71", "\1\72", + "", "\1\73", "\1\74", "\1\75", - "", - "", - "", - "", "\1\76", "\1\77", "\1\100", "\1\101", "\1\102", + "", + "", + "", + "", + "", "\1\103", "\1\104", - "\12\27\7\uffff\32\27\4\uffff\1\27\1\uffff\32\27", + "\1\105", "\1\106", - "\1\107", - "\1\110", - "\1\111", "", - "\1\112", - "\12\27\7\uffff\32\27\4\uffff\1\27\1\uffff\32\27", - "\12\27\7\uffff\32\27\4\uffff\1\27\1\uffff\32\27", + "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", + "\1\110", + "\1\111\34\uffff\1\112", + "\1\113\34\uffff\1\114", "\1\115", "\1\116", - "", - "", "\1\117", "\1\120", "\1\121", @@ -1148,8 +1337,66 @@ public void mTokens() throws RecognitionException { "\1\123", "\1\124", "\1\125", - "\12\27\7\uffff\32\27\4\uffff\1\27\1\uffff\32\27", - "\12\27\7\uffff\32\27\4\uffff\1\27\1\uffff\32\27", + "\1\126", + "", + "\1\127", + "", + "", + "", + "", + "\1\130", + "\1\131", + "\1\132", + "\1\133", + "\1\134", + "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", + "\1\136", + "\1\137", + "\1\140", + "\1\141", + "\1\142", + "\1\143", + "\1\144", + "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", + "\1\146", + "\1\147", + "", + "\1\150", + "\1\151", + "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", + "\1\153", + "\1\154", + "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", + "\1\156", + "", + "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", + "\1\160", + "\1\161", + "\1\162", + "", + "\1\163", + "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", + "", + "\1\165", + "", + "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", + "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", + "\1\170", + "\1\171", + "", + "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", + "", + "", + "\1\173", + "\1\174", + "", + "\1\175", + "\1\176", + "\1\177", + "\1\u0080", + "\1\u0081", + "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", + "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", "", "" }; @@ -1184,33 +1431,23 @@ public DFA12(BaseRecognizer recognizer) { this.transition = DFA12_transition; } public String getDescription() { - return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );"; + return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );"; } public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { IntStream input = _input; int _s = s; switch ( s ) { case 0 : - int LA12_16 = input.LA(1); + int LA12_21 = input.LA(1); s = -1; - if ( ((LA12_16>='\u0000' && LA12_16<='\uFFFF')) ) {s = 36;} + if ( ((LA12_21>='\u0000' && LA12_21<='\uFFFF')) ) {s = 48;} - else s = 20; + else s = 25; if ( s>=0 ) return s; break; case 1 : - int LA12_17 = input.LA(1); - - s = -1; - if ( ((LA12_17>='\u0000' && LA12_17<='\uFFFF')) ) {s = 36;} - - else s = 20; - - if ( s>=0 ) return s; - break; - case 2 : int LA12_0 = input.LA(1); s = -1; @@ -1238,21 +1475,41 @@ public int specialStateTransition(int s, IntStream _input) throws NoViableAltExc else if ( (LA12_0=='(') ) {s = 12;} - else if ( (LA12_0=='^') ) {s = 13;} + else if ( (LA12_0=='d') ) {s = 13;} - else if ( ((LA12_0>='A' && LA12_0<='C')||(LA12_0>='F' && LA12_0<='Q')||(LA12_0>='S' && LA12_0<='Z')||LA12_0=='_'||(LA12_0>='a' && LA12_0<='h')||(LA12_0>='j' && LA12_0<='q')||(LA12_0>='s' && LA12_0<='z')) ) {s = 14;} + else if ( (LA12_0=='m') ) {s = 14;} - else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 15;} + else if ( (LA12_0=='s') ) {s = 15;} - else if ( (LA12_0=='\"') ) {s = 16;} + else if ( (LA12_0=='b') ) {s = 16;} - else if ( (LA12_0=='\'') ) {s = 17;} + else if ( (LA12_0=='f') ) {s = 17;} - else if ( (LA12_0=='/') ) {s = 18;} + else if ( (LA12_0=='^') ) {s = 18;} - else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 19;} + else if ( ((LA12_0>='A' && LA12_0<='C')||(LA12_0>='F' && LA12_0<='Q')||(LA12_0>='S' && LA12_0<='Z')||LA12_0=='_'||LA12_0=='a'||LA12_0=='c'||LA12_0=='e'||(LA12_0>='g' && LA12_0<='h')||(LA12_0>='j' && LA12_0<='l')||(LA12_0>='n' && LA12_0<='q')||(LA12_0>='t' && LA12_0<='z')) ) {s = 19;} + + else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 20;} + + else if ( (LA12_0=='\"') ) {s = 21;} + + else if ( (LA12_0=='\'') ) {s = 22;} + + else if ( (LA12_0=='/') ) {s = 23;} + + else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 24;} + + else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||LA12_0=='!'||(LA12_0>='#' && LA12_0<='&')||(LA12_0>=')' && LA12_0<='+')||(LA12_0>='-' && LA12_0<='.')||LA12_0==':'||(LA12_0>='<' && LA12_0<='@')||LA12_0=='\\'||LA12_0=='`'||LA12_0=='|'||(LA12_0>='~' && LA12_0<='\uFFFF')) ) {s = 25;} + + if ( s>=0 ) return s; + break; + case 2 : + int LA12_22 = input.LA(1); + + s = -1; + if ( ((LA12_22>='\u0000' && LA12_22<='\uFFFF')) ) {s = 48;} - else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||LA12_0=='!'||(LA12_0>='#' && LA12_0<='&')||(LA12_0>=')' && LA12_0<='+')||(LA12_0>='-' && LA12_0<='.')||LA12_0==':'||(LA12_0>='<' && LA12_0<='@')||LA12_0=='\\'||LA12_0=='`'||LA12_0=='|'||(LA12_0>='~' && LA12_0<='\uFFFF')) ) {s = 20;} + else s = 25; if ( s>=0 ) return s; break; diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslParser.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslParser.java index e3bf731..dd37c07 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslParser.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslParser.java @@ -5,6 +5,7 @@ import org.eclipse.xtext.parser.impl.*; import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.common.util.Enumerator; import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser; import org.eclipse.xtext.parser.antlr.XtextTokenStream; import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens; @@ -21,7 +22,7 @@ @SuppressWarnings("all") public class InternalErDslParser extends AbstractInternalAntlrParser { public static final String[] tokenNames = new String[] { - "", "", "", "", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "';'", "'Entities'", "'{'", "'}'", "'Relationships'", "'Domain'", "'isIdentifier'", "'is'", "','", "'['", "'relates'", "']'", "'(0:1)'", "'(1:1)'", "'(0:N)'", "'(1:N)'" + "", "", "", "", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "';'", "'Entities'", "'{'", "'}'", "'Relationships'", "'Domain'", "'isIdentifier'", "'is'", "','", "'['", "'relates'", "']'", "'(0:1)'", "'(1:1)'", "'(0:N)'", "'(1:N)'", "'int'", "'double'", "'money'", "'string'", "'boolean'", "'datetime'", "'file'" }; public static final int RULE_STRING=6; public static final int RULE_SL_COMMENT=8; @@ -31,15 +32,22 @@ public class InternalErDslParser extends AbstractInternalAntlrParser { public static final int T__17=17; public static final int T__18=18; public static final int T__11=11; + public static final int T__33=33; public static final int T__12=12; public static final int T__13=13; public static final int T__14=14; public static final int EOF=-1; + public static final int T__30=30; + public static final int T__31=31; + public static final int T__32=32; public static final int RULE_ID=4; public static final int RULE_WS=9; public static final int RULE_ANY_OTHER=10; public static final int T__26=26; + public static final int T__27=27; + public static final int T__28=28; public static final int RULE_INT=5; + public static final int T__29=29; public static final int T__22=22; public static final int RULE_ML_COMMENT=7; public static final int T__23=23; @@ -88,7 +96,7 @@ protected ErDslGrammarAccess getGrammarAccess() { // $ANTLR start "entryRuleERModel" - // InternalErDsl.g:64:1: entryRuleERModel returns [EObject current=null] : iv_ruleERModel= ruleERModel EOF ; + // InternalErDsl.g:65:1: entryRuleERModel returns [EObject current=null] : iv_ruleERModel= ruleERModel EOF ; public final EObject entryRuleERModel() throws RecognitionException { EObject current = null; @@ -96,8 +104,8 @@ public final EObject entryRuleERModel() throws RecognitionException { try { - // InternalErDsl.g:64:48: (iv_ruleERModel= ruleERModel EOF ) - // InternalErDsl.g:65:2: iv_ruleERModel= ruleERModel EOF + // InternalErDsl.g:65:48: (iv_ruleERModel= ruleERModel EOF ) + // InternalErDsl.g:66:2: iv_ruleERModel= ruleERModel EOF { newCompositeNode(grammarAccess.getERModelRule()); pushFollow(FOLLOW_1); @@ -124,7 +132,7 @@ public final EObject entryRuleERModel() throws RecognitionException { // $ANTLR start "ruleERModel" - // InternalErDsl.g:71:1: ruleERModel returns [EObject current=null] : ( ( (lv_domain_0_0= ruleDomain ) ) otherlv_1= ';' (otherlv_2= 'Entities' otherlv_3= '{' ) ( (lv_entities_4_0= ruleEntity ) )+ (otherlv_5= '}' otherlv_6= ';' ) (otherlv_7= 'Relationships' otherlv_8= '{' ) ( (lv_relations_9_0= ruleRelation ) )* (otherlv_10= '}' otherlv_11= ';' ) ) ; + // InternalErDsl.g:72:1: ruleERModel returns [EObject current=null] : ( ( (lv_domain_0_0= ruleDomain ) ) otherlv_1= ';' (otherlv_2= 'Entities' otherlv_3= '{' ) ( (lv_entities_4_0= ruleEntity ) )+ (otherlv_5= '}' otherlv_6= ';' ) (otherlv_7= 'Relationships' otherlv_8= '{' ) ( (lv_relations_9_0= ruleRelation ) )* (otherlv_10= '}' otherlv_11= ';' ) ) ; public final EObject ruleERModel() throws RecognitionException { EObject current = null; @@ -148,17 +156,17 @@ public final EObject ruleERModel() throws RecognitionException { enterRule(); try { - // InternalErDsl.g:77:2: ( ( ( (lv_domain_0_0= ruleDomain ) ) otherlv_1= ';' (otherlv_2= 'Entities' otherlv_3= '{' ) ( (lv_entities_4_0= ruleEntity ) )+ (otherlv_5= '}' otherlv_6= ';' ) (otherlv_7= 'Relationships' otherlv_8= '{' ) ( (lv_relations_9_0= ruleRelation ) )* (otherlv_10= '}' otherlv_11= ';' ) ) ) - // InternalErDsl.g:78:2: ( ( (lv_domain_0_0= ruleDomain ) ) otherlv_1= ';' (otherlv_2= 'Entities' otherlv_3= '{' ) ( (lv_entities_4_0= ruleEntity ) )+ (otherlv_5= '}' otherlv_6= ';' ) (otherlv_7= 'Relationships' otherlv_8= '{' ) ( (lv_relations_9_0= ruleRelation ) )* (otherlv_10= '}' otherlv_11= ';' ) ) + // InternalErDsl.g:78:2: ( ( ( (lv_domain_0_0= ruleDomain ) ) otherlv_1= ';' (otherlv_2= 'Entities' otherlv_3= '{' ) ( (lv_entities_4_0= ruleEntity ) )+ (otherlv_5= '}' otherlv_6= ';' ) (otherlv_7= 'Relationships' otherlv_8= '{' ) ( (lv_relations_9_0= ruleRelation ) )* (otherlv_10= '}' otherlv_11= ';' ) ) ) + // InternalErDsl.g:79:2: ( ( (lv_domain_0_0= ruleDomain ) ) otherlv_1= ';' (otherlv_2= 'Entities' otherlv_3= '{' ) ( (lv_entities_4_0= ruleEntity ) )+ (otherlv_5= '}' otherlv_6= ';' ) (otherlv_7= 'Relationships' otherlv_8= '{' ) ( (lv_relations_9_0= ruleRelation ) )* (otherlv_10= '}' otherlv_11= ';' ) ) { - // InternalErDsl.g:78:2: ( ( (lv_domain_0_0= ruleDomain ) ) otherlv_1= ';' (otherlv_2= 'Entities' otherlv_3= '{' ) ( (lv_entities_4_0= ruleEntity ) )+ (otherlv_5= '}' otherlv_6= ';' ) (otherlv_7= 'Relationships' otherlv_8= '{' ) ( (lv_relations_9_0= ruleRelation ) )* (otherlv_10= '}' otherlv_11= ';' ) ) - // InternalErDsl.g:79:3: ( (lv_domain_0_0= ruleDomain ) ) otherlv_1= ';' (otherlv_2= 'Entities' otherlv_3= '{' ) ( (lv_entities_4_0= ruleEntity ) )+ (otherlv_5= '}' otherlv_6= ';' ) (otherlv_7= 'Relationships' otherlv_8= '{' ) ( (lv_relations_9_0= ruleRelation ) )* (otherlv_10= '}' otherlv_11= ';' ) + // InternalErDsl.g:79:2: ( ( (lv_domain_0_0= ruleDomain ) ) otherlv_1= ';' (otherlv_2= 'Entities' otherlv_3= '{' ) ( (lv_entities_4_0= ruleEntity ) )+ (otherlv_5= '}' otherlv_6= ';' ) (otherlv_7= 'Relationships' otherlv_8= '{' ) ( (lv_relations_9_0= ruleRelation ) )* (otherlv_10= '}' otherlv_11= ';' ) ) + // InternalErDsl.g:80:3: ( (lv_domain_0_0= ruleDomain ) ) otherlv_1= ';' (otherlv_2= 'Entities' otherlv_3= '{' ) ( (lv_entities_4_0= ruleEntity ) )+ (otherlv_5= '}' otherlv_6= ';' ) (otherlv_7= 'Relationships' otherlv_8= '{' ) ( (lv_relations_9_0= ruleRelation ) )* (otherlv_10= '}' otherlv_11= ';' ) { - // InternalErDsl.g:79:3: ( (lv_domain_0_0= ruleDomain ) ) - // InternalErDsl.g:80:4: (lv_domain_0_0= ruleDomain ) + // InternalErDsl.g:80:3: ( (lv_domain_0_0= ruleDomain ) ) + // InternalErDsl.g:81:4: (lv_domain_0_0= ruleDomain ) { - // InternalErDsl.g:80:4: (lv_domain_0_0= ruleDomain ) - // InternalErDsl.g:81:5: lv_domain_0_0= ruleDomain + // InternalErDsl.g:81:4: (lv_domain_0_0= ruleDomain ) + // InternalErDsl.g:82:5: lv_domain_0_0= ruleDomain { newCompositeNode(grammarAccess.getERModelAccess().getDomainDomainParserRuleCall_0_0()); @@ -189,8 +197,8 @@ public final EObject ruleERModel() throws RecognitionException { newLeafNode(otherlv_1, grammarAccess.getERModelAccess().getSemicolonKeyword_1()); - // InternalErDsl.g:102:3: (otherlv_2= 'Entities' otherlv_3= '{' ) - // InternalErDsl.g:103:4: otherlv_2= 'Entities' otherlv_3= '{' + // InternalErDsl.g:103:3: (otherlv_2= 'Entities' otherlv_3= '{' ) + // InternalErDsl.g:104:4: otherlv_2= 'Entities' otherlv_3= '{' { otherlv_2=(Token)match(input,12,FOLLOW_5); @@ -203,7 +211,7 @@ public final EObject ruleERModel() throws RecognitionException { } - // InternalErDsl.g:112:3: ( (lv_entities_4_0= ruleEntity ) )+ + // InternalErDsl.g:113:3: ( (lv_entities_4_0= ruleEntity ) )+ int cnt1=0; loop1: do { @@ -217,10 +225,10 @@ public final EObject ruleERModel() throws RecognitionException { switch (alt1) { case 1 : - // InternalErDsl.g:113:4: (lv_entities_4_0= ruleEntity ) + // InternalErDsl.g:114:4: (lv_entities_4_0= ruleEntity ) { - // InternalErDsl.g:113:4: (lv_entities_4_0= ruleEntity ) - // InternalErDsl.g:114:5: lv_entities_4_0= ruleEntity + // InternalErDsl.g:114:4: (lv_entities_4_0= ruleEntity ) + // InternalErDsl.g:115:5: lv_entities_4_0= ruleEntity { newCompositeNode(grammarAccess.getERModelAccess().getEntitiesEntityParserRuleCall_3_0()); @@ -257,8 +265,8 @@ public final EObject ruleERModel() throws RecognitionException { cnt1++; } while (true); - // InternalErDsl.g:131:3: (otherlv_5= '}' otherlv_6= ';' ) - // InternalErDsl.g:132:4: otherlv_5= '}' otherlv_6= ';' + // InternalErDsl.g:132:3: (otherlv_5= '}' otherlv_6= ';' ) + // InternalErDsl.g:133:4: otherlv_5= '}' otherlv_6= ';' { otherlv_5=(Token)match(input,14,FOLLOW_3); @@ -271,8 +279,8 @@ public final EObject ruleERModel() throws RecognitionException { } - // InternalErDsl.g:141:3: (otherlv_7= 'Relationships' otherlv_8= '{' ) - // InternalErDsl.g:142:4: otherlv_7= 'Relationships' otherlv_8= '{' + // InternalErDsl.g:142:3: (otherlv_7= 'Relationships' otherlv_8= '{' ) + // InternalErDsl.g:143:4: otherlv_7= 'Relationships' otherlv_8= '{' { otherlv_7=(Token)match(input,15,FOLLOW_5); @@ -285,7 +293,7 @@ public final EObject ruleERModel() throws RecognitionException { } - // InternalErDsl.g:151:3: ( (lv_relations_9_0= ruleRelation ) )* + // InternalErDsl.g:152:3: ( (lv_relations_9_0= ruleRelation ) )* loop2: do { int alt2=2; @@ -298,10 +306,10 @@ public final EObject ruleERModel() throws RecognitionException { switch (alt2) { case 1 : - // InternalErDsl.g:152:4: (lv_relations_9_0= ruleRelation ) + // InternalErDsl.g:153:4: (lv_relations_9_0= ruleRelation ) { - // InternalErDsl.g:152:4: (lv_relations_9_0= ruleRelation ) - // InternalErDsl.g:153:5: lv_relations_9_0= ruleRelation + // InternalErDsl.g:153:4: (lv_relations_9_0= ruleRelation ) + // InternalErDsl.g:154:5: lv_relations_9_0= ruleRelation { newCompositeNode(grammarAccess.getERModelAccess().getRelationsRelationParserRuleCall_6_0()); @@ -334,8 +342,8 @@ public final EObject ruleERModel() throws RecognitionException { } } while (true); - // InternalErDsl.g:170:3: (otherlv_10= '}' otherlv_11= ';' ) - // InternalErDsl.g:171:4: otherlv_10= '}' otherlv_11= ';' + // InternalErDsl.g:171:3: (otherlv_10= '}' otherlv_11= ';' ) + // InternalErDsl.g:172:4: otherlv_10= '}' otherlv_11= ';' { otherlv_10=(Token)match(input,14,FOLLOW_3); @@ -371,7 +379,7 @@ public final EObject ruleERModel() throws RecognitionException { // $ANTLR start "entryRuleDomain" - // InternalErDsl.g:184:1: entryRuleDomain returns [EObject current=null] : iv_ruleDomain= ruleDomain EOF ; + // InternalErDsl.g:185:1: entryRuleDomain returns [EObject current=null] : iv_ruleDomain= ruleDomain EOF ; public final EObject entryRuleDomain() throws RecognitionException { EObject current = null; @@ -379,8 +387,8 @@ public final EObject entryRuleDomain() throws RecognitionException { try { - // InternalErDsl.g:184:47: (iv_ruleDomain= ruleDomain EOF ) - // InternalErDsl.g:185:2: iv_ruleDomain= ruleDomain EOF + // InternalErDsl.g:185:47: (iv_ruleDomain= ruleDomain EOF ) + // InternalErDsl.g:186:2: iv_ruleDomain= ruleDomain EOF { newCompositeNode(grammarAccess.getDomainRule()); pushFollow(FOLLOW_1); @@ -407,7 +415,7 @@ public final EObject entryRuleDomain() throws RecognitionException { // $ANTLR start "ruleDomain" - // InternalErDsl.g:191:1: ruleDomain returns [EObject current=null] : (otherlv_0= 'Domain' ( (lv_name_1_0= RULE_ID ) ) ) ; + // InternalErDsl.g:192:1: ruleDomain returns [EObject current=null] : (otherlv_0= 'Domain' ( (lv_name_1_0= RULE_ID ) ) ) ; public final EObject ruleDomain() throws RecognitionException { EObject current = null; @@ -418,21 +426,21 @@ public final EObject ruleDomain() throws RecognitionException { enterRule(); try { - // InternalErDsl.g:197:2: ( (otherlv_0= 'Domain' ( (lv_name_1_0= RULE_ID ) ) ) ) - // InternalErDsl.g:198:2: (otherlv_0= 'Domain' ( (lv_name_1_0= RULE_ID ) ) ) + // InternalErDsl.g:198:2: ( (otherlv_0= 'Domain' ( (lv_name_1_0= RULE_ID ) ) ) ) + // InternalErDsl.g:199:2: (otherlv_0= 'Domain' ( (lv_name_1_0= RULE_ID ) ) ) { - // InternalErDsl.g:198:2: (otherlv_0= 'Domain' ( (lv_name_1_0= RULE_ID ) ) ) - // InternalErDsl.g:199:3: otherlv_0= 'Domain' ( (lv_name_1_0= RULE_ID ) ) + // InternalErDsl.g:199:2: (otherlv_0= 'Domain' ( (lv_name_1_0= RULE_ID ) ) ) + // InternalErDsl.g:200:3: otherlv_0= 'Domain' ( (lv_name_1_0= RULE_ID ) ) { otherlv_0=(Token)match(input,16,FOLLOW_6); newLeafNode(otherlv_0, grammarAccess.getDomainAccess().getDomainKeyword_0()); - // InternalErDsl.g:203:3: ( (lv_name_1_0= RULE_ID ) ) - // InternalErDsl.g:204:4: (lv_name_1_0= RULE_ID ) + // InternalErDsl.g:204:3: ( (lv_name_1_0= RULE_ID ) ) + // InternalErDsl.g:205:4: (lv_name_1_0= RULE_ID ) { - // InternalErDsl.g:204:4: (lv_name_1_0= RULE_ID ) - // InternalErDsl.g:205:5: lv_name_1_0= RULE_ID + // InternalErDsl.g:205:4: (lv_name_1_0= RULE_ID ) + // InternalErDsl.g:206:5: lv_name_1_0= RULE_ID { lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_2); @@ -477,7 +485,7 @@ public final EObject ruleDomain() throws RecognitionException { // $ANTLR start "entryRuleAttribute" - // InternalErDsl.g:225:1: entryRuleAttribute returns [EObject current=null] : iv_ruleAttribute= ruleAttribute EOF ; + // InternalErDsl.g:226:1: entryRuleAttribute returns [EObject current=null] : iv_ruleAttribute= ruleAttribute EOF ; public final EObject entryRuleAttribute() throws RecognitionException { EObject current = null; @@ -485,8 +493,8 @@ public final EObject entryRuleAttribute() throws RecognitionException { try { - // InternalErDsl.g:225:50: (iv_ruleAttribute= ruleAttribute EOF ) - // InternalErDsl.g:226:2: iv_ruleAttribute= ruleAttribute EOF + // InternalErDsl.g:226:50: (iv_ruleAttribute= ruleAttribute EOF ) + // InternalErDsl.g:227:2: iv_ruleAttribute= ruleAttribute EOF { newCompositeNode(grammarAccess.getAttributeRule()); pushFollow(FOLLOW_1); @@ -513,28 +521,30 @@ public final EObject entryRuleAttribute() throws RecognitionException { // $ANTLR start "ruleAttribute" - // InternalErDsl.g:232:1: ruleAttribute returns [EObject current=null] : ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_isKey_1_0= 'isIdentifier' ) )? ) ; + // InternalErDsl.g:233:1: ruleAttribute returns [EObject current=null] : ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_type_1_0= ruleDataType ) ) ( (lv_isKey_2_0= 'isIdentifier' ) )? ) ; public final EObject ruleAttribute() throws RecognitionException { EObject current = null; Token lv_name_0_0=null; - Token lv_isKey_1_0=null; + Token lv_isKey_2_0=null; + Enumerator lv_type_1_0 = null; + enterRule(); try { - // InternalErDsl.g:238:2: ( ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_isKey_1_0= 'isIdentifier' ) )? ) ) - // InternalErDsl.g:239:2: ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_isKey_1_0= 'isIdentifier' ) )? ) + // InternalErDsl.g:239:2: ( ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_type_1_0= ruleDataType ) ) ( (lv_isKey_2_0= 'isIdentifier' ) )? ) ) + // InternalErDsl.g:240:2: ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_type_1_0= ruleDataType ) ) ( (lv_isKey_2_0= 'isIdentifier' ) )? ) { - // InternalErDsl.g:239:2: ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_isKey_1_0= 'isIdentifier' ) )? ) - // InternalErDsl.g:240:3: ( (lv_name_0_0= RULE_ID ) ) ( (lv_isKey_1_0= 'isIdentifier' ) )? + // InternalErDsl.g:240:2: ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_type_1_0= ruleDataType ) ) ( (lv_isKey_2_0= 'isIdentifier' ) )? ) + // InternalErDsl.g:241:3: ( (lv_name_0_0= RULE_ID ) ) ( (lv_type_1_0= ruleDataType ) ) ( (lv_isKey_2_0= 'isIdentifier' ) )? { - // InternalErDsl.g:240:3: ( (lv_name_0_0= RULE_ID ) ) - // InternalErDsl.g:241:4: (lv_name_0_0= RULE_ID ) + // InternalErDsl.g:241:3: ( (lv_name_0_0= RULE_ID ) ) + // InternalErDsl.g:242:4: (lv_name_0_0= RULE_ID ) { - // InternalErDsl.g:241:4: (lv_name_0_0= RULE_ID ) - // InternalErDsl.g:242:5: lv_name_0_0= RULE_ID + // InternalErDsl.g:242:4: (lv_name_0_0= RULE_ID ) + // InternalErDsl.g:243:5: lv_name_0_0= RULE_ID { lv_name_0_0=(Token)match(input,RULE_ID,FOLLOW_10); @@ -556,7 +566,38 @@ public final EObject ruleAttribute() throws RecognitionException { } - // InternalErDsl.g:258:3: ( (lv_isKey_1_0= 'isIdentifier' ) )? + // InternalErDsl.g:259:3: ( (lv_type_1_0= ruleDataType ) ) + // InternalErDsl.g:260:4: (lv_type_1_0= ruleDataType ) + { + // InternalErDsl.g:260:4: (lv_type_1_0= ruleDataType ) + // InternalErDsl.g:261:5: lv_type_1_0= ruleDataType + { + + newCompositeNode(grammarAccess.getAttributeAccess().getTypeDataTypeEnumRuleCall_1_0()); + + pushFollow(FOLLOW_11); + lv_type_1_0=ruleDataType(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getAttributeRule()); + } + set( + current, + "type", + lv_type_1_0, + "org.xtext.unipampa.erdsl.ErDsl.DataType"); + afterParserOrEnumRuleCall(); + + + } + + + } + + // InternalErDsl.g:278:3: ( (lv_isKey_2_0= 'isIdentifier' ) )? int alt3=2; int LA3_0 = input.LA(1); @@ -565,14 +606,14 @@ public final EObject ruleAttribute() throws RecognitionException { } switch (alt3) { case 1 : - // InternalErDsl.g:259:4: (lv_isKey_1_0= 'isIdentifier' ) + // InternalErDsl.g:279:4: (lv_isKey_2_0= 'isIdentifier' ) { - // InternalErDsl.g:259:4: (lv_isKey_1_0= 'isIdentifier' ) - // InternalErDsl.g:260:5: lv_isKey_1_0= 'isIdentifier' + // InternalErDsl.g:279:4: (lv_isKey_2_0= 'isIdentifier' ) + // InternalErDsl.g:280:5: lv_isKey_2_0= 'isIdentifier' { - lv_isKey_1_0=(Token)match(input,17,FOLLOW_2); + lv_isKey_2_0=(Token)match(input,17,FOLLOW_2); - newLeafNode(lv_isKey_1_0, grammarAccess.getAttributeAccess().getIsKeyIsIdentifierKeyword_1_0()); + newLeafNode(lv_isKey_2_0, grammarAccess.getAttributeAccess().getIsKeyIsIdentifierKeyword_2_0()); if (current==null) { @@ -612,7 +653,7 @@ public final EObject ruleAttribute() throws RecognitionException { // $ANTLR start "entryRuleEntity" - // InternalErDsl.g:276:1: entryRuleEntity returns [EObject current=null] : iv_ruleEntity= ruleEntity EOF ; + // InternalErDsl.g:296:1: entryRuleEntity returns [EObject current=null] : iv_ruleEntity= ruleEntity EOF ; public final EObject entryRuleEntity() throws RecognitionException { EObject current = null; @@ -620,8 +661,8 @@ public final EObject entryRuleEntity() throws RecognitionException { try { - // InternalErDsl.g:276:47: (iv_ruleEntity= ruleEntity EOF ) - // InternalErDsl.g:277:2: iv_ruleEntity= ruleEntity EOF + // InternalErDsl.g:296:47: (iv_ruleEntity= ruleEntity EOF ) + // InternalErDsl.g:297:2: iv_ruleEntity= ruleEntity EOF { newCompositeNode(grammarAccess.getEntityRule()); pushFollow(FOLLOW_1); @@ -648,7 +689,7 @@ public final EObject entryRuleEntity() throws RecognitionException { // $ANTLR start "ruleEntity" - // InternalErDsl.g:283:1: ruleEntity returns [EObject current=null] : ( ( (lv_name_0_0= RULE_ID ) ) (otherlv_1= 'is' ( (otherlv_2= RULE_ID ) ) )* (otherlv_3= '{' ( (lv_attributes_4_0= ruleAttribute ) ) (otherlv_5= ',' ( (lv_attributes_6_0= ruleAttribute ) ) )* otherlv_7= '}' )? ) ; + // InternalErDsl.g:303:1: ruleEntity returns [EObject current=null] : ( ( (lv_name_0_0= RULE_ID ) ) (otherlv_1= 'is' ( (otherlv_2= RULE_ID ) ) )* (otherlv_3= '{' ( (lv_attributes_4_0= ruleAttribute ) ) (otherlv_5= ',' ( (lv_attributes_6_0= ruleAttribute ) ) )* otherlv_7= '}' )? ) ; public final EObject ruleEntity() throws RecognitionException { EObject current = null; @@ -667,19 +708,19 @@ public final EObject ruleEntity() throws RecognitionException { enterRule(); try { - // InternalErDsl.g:289:2: ( ( ( (lv_name_0_0= RULE_ID ) ) (otherlv_1= 'is' ( (otherlv_2= RULE_ID ) ) )* (otherlv_3= '{' ( (lv_attributes_4_0= ruleAttribute ) ) (otherlv_5= ',' ( (lv_attributes_6_0= ruleAttribute ) ) )* otherlv_7= '}' )? ) ) - // InternalErDsl.g:290:2: ( ( (lv_name_0_0= RULE_ID ) ) (otherlv_1= 'is' ( (otherlv_2= RULE_ID ) ) )* (otherlv_3= '{' ( (lv_attributes_4_0= ruleAttribute ) ) (otherlv_5= ',' ( (lv_attributes_6_0= ruleAttribute ) ) )* otherlv_7= '}' )? ) + // InternalErDsl.g:309:2: ( ( ( (lv_name_0_0= RULE_ID ) ) (otherlv_1= 'is' ( (otherlv_2= RULE_ID ) ) )* (otherlv_3= '{' ( (lv_attributes_4_0= ruleAttribute ) ) (otherlv_5= ',' ( (lv_attributes_6_0= ruleAttribute ) ) )* otherlv_7= '}' )? ) ) + // InternalErDsl.g:310:2: ( ( (lv_name_0_0= RULE_ID ) ) (otherlv_1= 'is' ( (otherlv_2= RULE_ID ) ) )* (otherlv_3= '{' ( (lv_attributes_4_0= ruleAttribute ) ) (otherlv_5= ',' ( (lv_attributes_6_0= ruleAttribute ) ) )* otherlv_7= '}' )? ) { - // InternalErDsl.g:290:2: ( ( (lv_name_0_0= RULE_ID ) ) (otherlv_1= 'is' ( (otherlv_2= RULE_ID ) ) )* (otherlv_3= '{' ( (lv_attributes_4_0= ruleAttribute ) ) (otherlv_5= ',' ( (lv_attributes_6_0= ruleAttribute ) ) )* otherlv_7= '}' )? ) - // InternalErDsl.g:291:3: ( (lv_name_0_0= RULE_ID ) ) (otherlv_1= 'is' ( (otherlv_2= RULE_ID ) ) )* (otherlv_3= '{' ( (lv_attributes_4_0= ruleAttribute ) ) (otherlv_5= ',' ( (lv_attributes_6_0= ruleAttribute ) ) )* otherlv_7= '}' )? + // InternalErDsl.g:310:2: ( ( (lv_name_0_0= RULE_ID ) ) (otherlv_1= 'is' ( (otherlv_2= RULE_ID ) ) )* (otherlv_3= '{' ( (lv_attributes_4_0= ruleAttribute ) ) (otherlv_5= ',' ( (lv_attributes_6_0= ruleAttribute ) ) )* otherlv_7= '}' )? ) + // InternalErDsl.g:311:3: ( (lv_name_0_0= RULE_ID ) ) (otherlv_1= 'is' ( (otherlv_2= RULE_ID ) ) )* (otherlv_3= '{' ( (lv_attributes_4_0= ruleAttribute ) ) (otherlv_5= ',' ( (lv_attributes_6_0= ruleAttribute ) ) )* otherlv_7= '}' )? { - // InternalErDsl.g:291:3: ( (lv_name_0_0= RULE_ID ) ) - // InternalErDsl.g:292:4: (lv_name_0_0= RULE_ID ) + // InternalErDsl.g:311:3: ( (lv_name_0_0= RULE_ID ) ) + // InternalErDsl.g:312:4: (lv_name_0_0= RULE_ID ) { - // InternalErDsl.g:292:4: (lv_name_0_0= RULE_ID ) - // InternalErDsl.g:293:5: lv_name_0_0= RULE_ID + // InternalErDsl.g:312:4: (lv_name_0_0= RULE_ID ) + // InternalErDsl.g:313:5: lv_name_0_0= RULE_ID { - lv_name_0_0=(Token)match(input,RULE_ID,FOLLOW_11); + lv_name_0_0=(Token)match(input,RULE_ID,FOLLOW_12); newLeafNode(lv_name_0_0, grammarAccess.getEntityAccess().getNameIDTerminalRuleCall_0_0()); @@ -699,7 +740,7 @@ public final EObject ruleEntity() throws RecognitionException { } - // InternalErDsl.g:309:3: (otherlv_1= 'is' ( (otherlv_2= RULE_ID ) ) )* + // InternalErDsl.g:329:3: (otherlv_1= 'is' ( (otherlv_2= RULE_ID ) ) )* loop4: do { int alt4=2; @@ -712,24 +753,24 @@ public final EObject ruleEntity() throws RecognitionException { switch (alt4) { case 1 : - // InternalErDsl.g:310:4: otherlv_1= 'is' ( (otherlv_2= RULE_ID ) ) + // InternalErDsl.g:330:4: otherlv_1= 'is' ( (otherlv_2= RULE_ID ) ) { otherlv_1=(Token)match(input,18,FOLLOW_6); newLeafNode(otherlv_1, grammarAccess.getEntityAccess().getIsKeyword_1_0()); - // InternalErDsl.g:314:4: ( (otherlv_2= RULE_ID ) ) - // InternalErDsl.g:315:5: (otherlv_2= RULE_ID ) + // InternalErDsl.g:334:4: ( (otherlv_2= RULE_ID ) ) + // InternalErDsl.g:335:5: (otherlv_2= RULE_ID ) { - // InternalErDsl.g:315:5: (otherlv_2= RULE_ID ) - // InternalErDsl.g:316:6: otherlv_2= RULE_ID + // InternalErDsl.g:335:5: (otherlv_2= RULE_ID ) + // InternalErDsl.g:336:6: otherlv_2= RULE_ID { if (current==null) { current = createModelElement(grammarAccess.getEntityRule()); } - otherlv_2=(Token)match(input,RULE_ID,FOLLOW_11); + otherlv_2=(Token)match(input,RULE_ID,FOLLOW_12); newLeafNode(otherlv_2, grammarAccess.getEntityAccess().getIsEntityCrossReference_1_1_0()); @@ -748,7 +789,7 @@ public final EObject ruleEntity() throws RecognitionException { } } while (true); - // InternalErDsl.g:328:3: (otherlv_3= '{' ( (lv_attributes_4_0= ruleAttribute ) ) (otherlv_5= ',' ( (lv_attributes_6_0= ruleAttribute ) ) )* otherlv_7= '}' )? + // InternalErDsl.g:348:3: (otherlv_3= '{' ( (lv_attributes_4_0= ruleAttribute ) ) (otherlv_5= ',' ( (lv_attributes_6_0= ruleAttribute ) ) )* otherlv_7= '}' )? int alt6=2; int LA6_0 = input.LA(1); @@ -757,22 +798,22 @@ public final EObject ruleEntity() throws RecognitionException { } switch (alt6) { case 1 : - // InternalErDsl.g:329:4: otherlv_3= '{' ( (lv_attributes_4_0= ruleAttribute ) ) (otherlv_5= ',' ( (lv_attributes_6_0= ruleAttribute ) ) )* otherlv_7= '}' + // InternalErDsl.g:349:4: otherlv_3= '{' ( (lv_attributes_4_0= ruleAttribute ) ) (otherlv_5= ',' ( (lv_attributes_6_0= ruleAttribute ) ) )* otherlv_7= '}' { otherlv_3=(Token)match(input,13,FOLLOW_6); newLeafNode(otherlv_3, grammarAccess.getEntityAccess().getLeftCurlyBracketKeyword_2_0()); - // InternalErDsl.g:333:4: ( (lv_attributes_4_0= ruleAttribute ) ) - // InternalErDsl.g:334:5: (lv_attributes_4_0= ruleAttribute ) + // InternalErDsl.g:353:4: ( (lv_attributes_4_0= ruleAttribute ) ) + // InternalErDsl.g:354:5: (lv_attributes_4_0= ruleAttribute ) { - // InternalErDsl.g:334:5: (lv_attributes_4_0= ruleAttribute ) - // InternalErDsl.g:335:6: lv_attributes_4_0= ruleAttribute + // InternalErDsl.g:354:5: (lv_attributes_4_0= ruleAttribute ) + // InternalErDsl.g:355:6: lv_attributes_4_0= ruleAttribute { newCompositeNode(grammarAccess.getEntityAccess().getAttributesAttributeParserRuleCall_2_1_0()); - pushFollow(FOLLOW_12); + pushFollow(FOLLOW_13); lv_attributes_4_0=ruleAttribute(); state._fsp--; @@ -794,7 +835,7 @@ public final EObject ruleEntity() throws RecognitionException { } - // InternalErDsl.g:352:4: (otherlv_5= ',' ( (lv_attributes_6_0= ruleAttribute ) ) )* + // InternalErDsl.g:372:4: (otherlv_5= ',' ( (lv_attributes_6_0= ruleAttribute ) ) )* loop5: do { int alt5=2; @@ -807,22 +848,22 @@ public final EObject ruleEntity() throws RecognitionException { switch (alt5) { case 1 : - // InternalErDsl.g:353:5: otherlv_5= ',' ( (lv_attributes_6_0= ruleAttribute ) ) + // InternalErDsl.g:373:5: otherlv_5= ',' ( (lv_attributes_6_0= ruleAttribute ) ) { otherlv_5=(Token)match(input,19,FOLLOW_6); newLeafNode(otherlv_5, grammarAccess.getEntityAccess().getCommaKeyword_2_2_0()); - // InternalErDsl.g:357:5: ( (lv_attributes_6_0= ruleAttribute ) ) - // InternalErDsl.g:358:6: (lv_attributes_6_0= ruleAttribute ) + // InternalErDsl.g:377:5: ( (lv_attributes_6_0= ruleAttribute ) ) + // InternalErDsl.g:378:6: (lv_attributes_6_0= ruleAttribute ) { - // InternalErDsl.g:358:6: (lv_attributes_6_0= ruleAttribute ) - // InternalErDsl.g:359:7: lv_attributes_6_0= ruleAttribute + // InternalErDsl.g:378:6: (lv_attributes_6_0= ruleAttribute ) + // InternalErDsl.g:379:7: lv_attributes_6_0= ruleAttribute { newCompositeNode(grammarAccess.getEntityAccess().getAttributesAttributeParserRuleCall_2_2_1_0()); - pushFollow(FOLLOW_12); + pushFollow(FOLLOW_13); lv_attributes_6_0=ruleAttribute(); state._fsp--; @@ -886,7 +927,7 @@ public final EObject ruleEntity() throws RecognitionException { // $ANTLR start "entryRuleRelation" - // InternalErDsl.g:386:1: entryRuleRelation returns [EObject current=null] : iv_ruleRelation= ruleRelation EOF ; + // InternalErDsl.g:406:1: entryRuleRelation returns [EObject current=null] : iv_ruleRelation= ruleRelation EOF ; public final EObject entryRuleRelation() throws RecognitionException { EObject current = null; @@ -894,8 +935,8 @@ public final EObject entryRuleRelation() throws RecognitionException { try { - // InternalErDsl.g:386:49: (iv_ruleRelation= ruleRelation EOF ) - // InternalErDsl.g:387:2: iv_ruleRelation= ruleRelation EOF + // InternalErDsl.g:406:49: (iv_ruleRelation= ruleRelation EOF ) + // InternalErDsl.g:407:2: iv_ruleRelation= ruleRelation EOF { newCompositeNode(grammarAccess.getRelationRule()); pushFollow(FOLLOW_1); @@ -922,7 +963,7 @@ public final EObject entryRuleRelation() throws RecognitionException { // $ANTLR start "ruleRelation" - // InternalErDsl.g:393:1: ruleRelation returns [EObject current=null] : ( ( (lv_name_0_0= RULE_ID ) )? (otherlv_1= '[' ( (lv_leftEnding_2_0= ruleRelationSide ) ) otherlv_3= 'relates' ( (lv_rightEnding_4_0= ruleRelationSide ) ) otherlv_5= ']' ) (otherlv_6= '{' ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= ',' ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= '}' )* ) ; + // InternalErDsl.g:413:1: ruleRelation returns [EObject current=null] : ( ( (lv_name_0_0= RULE_ID ) )? (otherlv_1= '[' ( (lv_leftEnding_2_0= ruleRelationSide ) ) otherlv_3= 'relates' ( (lv_rightEnding_4_0= ruleRelationSide ) ) otherlv_5= ']' ) (otherlv_6= '{' ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= ',' ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= '}' )* ) ; public final EObject ruleRelation() throws RecognitionException { EObject current = null; @@ -946,13 +987,13 @@ public final EObject ruleRelation() throws RecognitionException { enterRule(); try { - // InternalErDsl.g:399:2: ( ( ( (lv_name_0_0= RULE_ID ) )? (otherlv_1= '[' ( (lv_leftEnding_2_0= ruleRelationSide ) ) otherlv_3= 'relates' ( (lv_rightEnding_4_0= ruleRelationSide ) ) otherlv_5= ']' ) (otherlv_6= '{' ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= ',' ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= '}' )* ) ) - // InternalErDsl.g:400:2: ( ( (lv_name_0_0= RULE_ID ) )? (otherlv_1= '[' ( (lv_leftEnding_2_0= ruleRelationSide ) ) otherlv_3= 'relates' ( (lv_rightEnding_4_0= ruleRelationSide ) ) otherlv_5= ']' ) (otherlv_6= '{' ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= ',' ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= '}' )* ) + // InternalErDsl.g:419:2: ( ( ( (lv_name_0_0= RULE_ID ) )? (otherlv_1= '[' ( (lv_leftEnding_2_0= ruleRelationSide ) ) otherlv_3= 'relates' ( (lv_rightEnding_4_0= ruleRelationSide ) ) otherlv_5= ']' ) (otherlv_6= '{' ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= ',' ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= '}' )* ) ) + // InternalErDsl.g:420:2: ( ( (lv_name_0_0= RULE_ID ) )? (otherlv_1= '[' ( (lv_leftEnding_2_0= ruleRelationSide ) ) otherlv_3= 'relates' ( (lv_rightEnding_4_0= ruleRelationSide ) ) otherlv_5= ']' ) (otherlv_6= '{' ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= ',' ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= '}' )* ) { - // InternalErDsl.g:400:2: ( ( (lv_name_0_0= RULE_ID ) )? (otherlv_1= '[' ( (lv_leftEnding_2_0= ruleRelationSide ) ) otherlv_3= 'relates' ( (lv_rightEnding_4_0= ruleRelationSide ) ) otherlv_5= ']' ) (otherlv_6= '{' ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= ',' ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= '}' )* ) - // InternalErDsl.g:401:3: ( (lv_name_0_0= RULE_ID ) )? (otherlv_1= '[' ( (lv_leftEnding_2_0= ruleRelationSide ) ) otherlv_3= 'relates' ( (lv_rightEnding_4_0= ruleRelationSide ) ) otherlv_5= ']' ) (otherlv_6= '{' ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= ',' ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= '}' )* + // InternalErDsl.g:420:2: ( ( (lv_name_0_0= RULE_ID ) )? (otherlv_1= '[' ( (lv_leftEnding_2_0= ruleRelationSide ) ) otherlv_3= 'relates' ( (lv_rightEnding_4_0= ruleRelationSide ) ) otherlv_5= ']' ) (otherlv_6= '{' ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= ',' ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= '}' )* ) + // InternalErDsl.g:421:3: ( (lv_name_0_0= RULE_ID ) )? (otherlv_1= '[' ( (lv_leftEnding_2_0= ruleRelationSide ) ) otherlv_3= 'relates' ( (lv_rightEnding_4_0= ruleRelationSide ) ) otherlv_5= ']' ) (otherlv_6= '{' ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= ',' ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= '}' )* { - // InternalErDsl.g:401:3: ( (lv_name_0_0= RULE_ID ) )? + // InternalErDsl.g:421:3: ( (lv_name_0_0= RULE_ID ) )? int alt7=2; int LA7_0 = input.LA(1); @@ -961,12 +1002,12 @@ public final EObject ruleRelation() throws RecognitionException { } switch (alt7) { case 1 : - // InternalErDsl.g:402:4: (lv_name_0_0= RULE_ID ) + // InternalErDsl.g:422:4: (lv_name_0_0= RULE_ID ) { - // InternalErDsl.g:402:4: (lv_name_0_0= RULE_ID ) - // InternalErDsl.g:403:5: lv_name_0_0= RULE_ID + // InternalErDsl.g:422:4: (lv_name_0_0= RULE_ID ) + // InternalErDsl.g:423:5: lv_name_0_0= RULE_ID { - lv_name_0_0=(Token)match(input,RULE_ID,FOLLOW_13); + lv_name_0_0=(Token)match(input,RULE_ID,FOLLOW_14); newLeafNode(lv_name_0_0, grammarAccess.getRelationAccess().getNameIDTerminalRuleCall_0_0()); @@ -989,23 +1030,23 @@ public final EObject ruleRelation() throws RecognitionException { } - // InternalErDsl.g:419:3: (otherlv_1= '[' ( (lv_leftEnding_2_0= ruleRelationSide ) ) otherlv_3= 'relates' ( (lv_rightEnding_4_0= ruleRelationSide ) ) otherlv_5= ']' ) - // InternalErDsl.g:420:4: otherlv_1= '[' ( (lv_leftEnding_2_0= ruleRelationSide ) ) otherlv_3= 'relates' ( (lv_rightEnding_4_0= ruleRelationSide ) ) otherlv_5= ']' + // InternalErDsl.g:439:3: (otherlv_1= '[' ( (lv_leftEnding_2_0= ruleRelationSide ) ) otherlv_3= 'relates' ( (lv_rightEnding_4_0= ruleRelationSide ) ) otherlv_5= ']' ) + // InternalErDsl.g:440:4: otherlv_1= '[' ( (lv_leftEnding_2_0= ruleRelationSide ) ) otherlv_3= 'relates' ( (lv_rightEnding_4_0= ruleRelationSide ) ) otherlv_5= ']' { - otherlv_1=(Token)match(input,20,FOLLOW_14); + otherlv_1=(Token)match(input,20,FOLLOW_15); newLeafNode(otherlv_1, grammarAccess.getRelationAccess().getLeftSquareBracketKeyword_1_0()); - // InternalErDsl.g:424:4: ( (lv_leftEnding_2_0= ruleRelationSide ) ) - // InternalErDsl.g:425:5: (lv_leftEnding_2_0= ruleRelationSide ) + // InternalErDsl.g:444:4: ( (lv_leftEnding_2_0= ruleRelationSide ) ) + // InternalErDsl.g:445:5: (lv_leftEnding_2_0= ruleRelationSide ) { - // InternalErDsl.g:425:5: (lv_leftEnding_2_0= ruleRelationSide ) - // InternalErDsl.g:426:6: lv_leftEnding_2_0= ruleRelationSide + // InternalErDsl.g:445:5: (lv_leftEnding_2_0= ruleRelationSide ) + // InternalErDsl.g:446:6: lv_leftEnding_2_0= ruleRelationSide { newCompositeNode(grammarAccess.getRelationAccess().getLeftEndingRelationSideParserRuleCall_1_1_0()); - pushFollow(FOLLOW_15); + pushFollow(FOLLOW_16); lv_leftEnding_2_0=ruleRelationSide(); state._fsp--; @@ -1027,20 +1068,20 @@ public final EObject ruleRelation() throws RecognitionException { } - otherlv_3=(Token)match(input,21,FOLLOW_14); + otherlv_3=(Token)match(input,21,FOLLOW_15); newLeafNode(otherlv_3, grammarAccess.getRelationAccess().getRelatesKeyword_1_2()); - // InternalErDsl.g:447:4: ( (lv_rightEnding_4_0= ruleRelationSide ) ) - // InternalErDsl.g:448:5: (lv_rightEnding_4_0= ruleRelationSide ) + // InternalErDsl.g:467:4: ( (lv_rightEnding_4_0= ruleRelationSide ) ) + // InternalErDsl.g:468:5: (lv_rightEnding_4_0= ruleRelationSide ) { - // InternalErDsl.g:448:5: (lv_rightEnding_4_0= ruleRelationSide ) - // InternalErDsl.g:449:6: lv_rightEnding_4_0= ruleRelationSide + // InternalErDsl.g:468:5: (lv_rightEnding_4_0= ruleRelationSide ) + // InternalErDsl.g:469:6: lv_rightEnding_4_0= ruleRelationSide { newCompositeNode(grammarAccess.getRelationAccess().getRightEndingRelationSideParserRuleCall_1_3_0()); - pushFollow(FOLLOW_16); + pushFollow(FOLLOW_17); lv_rightEnding_4_0=ruleRelationSide(); state._fsp--; @@ -1062,14 +1103,14 @@ public final EObject ruleRelation() throws RecognitionException { } - otherlv_5=(Token)match(input,22,FOLLOW_17); + otherlv_5=(Token)match(input,22,FOLLOW_18); newLeafNode(otherlv_5, grammarAccess.getRelationAccess().getRightSquareBracketKeyword_1_4()); } - // InternalErDsl.g:471:3: (otherlv_6= '{' ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= ',' ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= '}' )* + // InternalErDsl.g:491:3: (otherlv_6= '{' ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= ',' ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= '}' )* loop9: do { int alt9=2; @@ -1082,22 +1123,22 @@ public final EObject ruleRelation() throws RecognitionException { switch (alt9) { case 1 : - // InternalErDsl.g:472:4: otherlv_6= '{' ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= ',' ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= '}' + // InternalErDsl.g:492:4: otherlv_6= '{' ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= ',' ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= '}' { otherlv_6=(Token)match(input,13,FOLLOW_6); newLeafNode(otherlv_6, grammarAccess.getRelationAccess().getLeftCurlyBracketKeyword_2_0()); - // InternalErDsl.g:476:4: ( (lv_attributes_7_0= ruleAttribute ) ) - // InternalErDsl.g:477:5: (lv_attributes_7_0= ruleAttribute ) + // InternalErDsl.g:496:4: ( (lv_attributes_7_0= ruleAttribute ) ) + // InternalErDsl.g:497:5: (lv_attributes_7_0= ruleAttribute ) { - // InternalErDsl.g:477:5: (lv_attributes_7_0= ruleAttribute ) - // InternalErDsl.g:478:6: lv_attributes_7_0= ruleAttribute + // InternalErDsl.g:497:5: (lv_attributes_7_0= ruleAttribute ) + // InternalErDsl.g:498:6: lv_attributes_7_0= ruleAttribute { newCompositeNode(grammarAccess.getRelationAccess().getAttributesAttributeParserRuleCall_2_1_0()); - pushFollow(FOLLOW_12); + pushFollow(FOLLOW_13); lv_attributes_7_0=ruleAttribute(); state._fsp--; @@ -1119,7 +1160,7 @@ public final EObject ruleRelation() throws RecognitionException { } - // InternalErDsl.g:495:4: (otherlv_8= ',' ( (lv_attributes_9_0= ruleAttribute ) ) )* + // InternalErDsl.g:515:4: (otherlv_8= ',' ( (lv_attributes_9_0= ruleAttribute ) ) )* loop8: do { int alt8=2; @@ -1132,22 +1173,22 @@ public final EObject ruleRelation() throws RecognitionException { switch (alt8) { case 1 : - // InternalErDsl.g:496:5: otherlv_8= ',' ( (lv_attributes_9_0= ruleAttribute ) ) + // InternalErDsl.g:516:5: otherlv_8= ',' ( (lv_attributes_9_0= ruleAttribute ) ) { otherlv_8=(Token)match(input,19,FOLLOW_6); newLeafNode(otherlv_8, grammarAccess.getRelationAccess().getCommaKeyword_2_2_0()); - // InternalErDsl.g:500:5: ( (lv_attributes_9_0= ruleAttribute ) ) - // InternalErDsl.g:501:6: (lv_attributes_9_0= ruleAttribute ) + // InternalErDsl.g:520:5: ( (lv_attributes_9_0= ruleAttribute ) ) + // InternalErDsl.g:521:6: (lv_attributes_9_0= ruleAttribute ) { - // InternalErDsl.g:501:6: (lv_attributes_9_0= ruleAttribute ) - // InternalErDsl.g:502:7: lv_attributes_9_0= ruleAttribute + // InternalErDsl.g:521:6: (lv_attributes_9_0= ruleAttribute ) + // InternalErDsl.g:522:7: lv_attributes_9_0= ruleAttribute { newCompositeNode(grammarAccess.getRelationAccess().getAttributesAttributeParserRuleCall_2_2_1_0()); - pushFollow(FOLLOW_12); + pushFollow(FOLLOW_13); lv_attributes_9_0=ruleAttribute(); state._fsp--; @@ -1178,7 +1219,7 @@ public final EObject ruleRelation() throws RecognitionException { } } while (true); - otherlv_10=(Token)match(input,14,FOLLOW_17); + otherlv_10=(Token)match(input,14,FOLLOW_18); newLeafNode(otherlv_10, grammarAccess.getRelationAccess().getRightCurlyBracketKeyword_2_3()); @@ -1214,7 +1255,7 @@ public final EObject ruleRelation() throws RecognitionException { // $ANTLR start "entryRuleRelationSide" - // InternalErDsl.g:529:1: entryRuleRelationSide returns [EObject current=null] : iv_ruleRelationSide= ruleRelationSide EOF ; + // InternalErDsl.g:549:1: entryRuleRelationSide returns [EObject current=null] : iv_ruleRelationSide= ruleRelationSide EOF ; public final EObject entryRuleRelationSide() throws RecognitionException { EObject current = null; @@ -1222,8 +1263,8 @@ public final EObject entryRuleRelationSide() throws RecognitionException { try { - // InternalErDsl.g:529:53: (iv_ruleRelationSide= ruleRelationSide EOF ) - // InternalErDsl.g:530:2: iv_ruleRelationSide= ruleRelationSide EOF + // InternalErDsl.g:549:53: (iv_ruleRelationSide= ruleRelationSide EOF ) + // InternalErDsl.g:550:2: iv_ruleRelationSide= ruleRelationSide EOF { newCompositeNode(grammarAccess.getRelationSideRule()); pushFollow(FOLLOW_1); @@ -1250,14 +1291,14 @@ public final EObject entryRuleRelationSide() throws RecognitionException { // $ANTLR start "ruleRelationSide" - // InternalErDsl.g:536:1: ruleRelationSide returns [EObject current=null] : ( ( ( ( (lv_Cardinality_0_1= '(0:1)' | lv_Cardinality_0_2= '(1:1)' | lv_Cardinality_0_3= '(0:N)' | lv_Cardinality_0_4= '(1:N)' ) ) ) ( (otherlv_1= RULE_ID ) ) ) | ( (otherlv_2= RULE_ID ) ) ) ; + // InternalErDsl.g:556:1: ruleRelationSide returns [EObject current=null] : ( ( ( ( (lv_cardinality_0_1= '(0:1)' | lv_cardinality_0_2= '(1:1)' | lv_cardinality_0_3= '(0:N)' | lv_cardinality_0_4= '(1:N)' ) ) ) ( (otherlv_1= RULE_ID ) ) ) | ( (otherlv_2= RULE_ID ) ) ) ; public final EObject ruleRelationSide() throws RecognitionException { EObject current = null; - Token lv_Cardinality_0_1=null; - Token lv_Cardinality_0_2=null; - Token lv_Cardinality_0_3=null; - Token lv_Cardinality_0_4=null; + Token lv_cardinality_0_1=null; + Token lv_cardinality_0_2=null; + Token lv_cardinality_0_3=null; + Token lv_cardinality_0_4=null; Token otherlv_1=null; Token otherlv_2=null; @@ -1265,10 +1306,10 @@ public final EObject ruleRelationSide() throws RecognitionException { enterRule(); try { - // InternalErDsl.g:542:2: ( ( ( ( ( (lv_Cardinality_0_1= '(0:1)' | lv_Cardinality_0_2= '(1:1)' | lv_Cardinality_0_3= '(0:N)' | lv_Cardinality_0_4= '(1:N)' ) ) ) ( (otherlv_1= RULE_ID ) ) ) | ( (otherlv_2= RULE_ID ) ) ) ) - // InternalErDsl.g:543:2: ( ( ( ( (lv_Cardinality_0_1= '(0:1)' | lv_Cardinality_0_2= '(1:1)' | lv_Cardinality_0_3= '(0:N)' | lv_Cardinality_0_4= '(1:N)' ) ) ) ( (otherlv_1= RULE_ID ) ) ) | ( (otherlv_2= RULE_ID ) ) ) + // InternalErDsl.g:562:2: ( ( ( ( ( (lv_cardinality_0_1= '(0:1)' | lv_cardinality_0_2= '(1:1)' | lv_cardinality_0_3= '(0:N)' | lv_cardinality_0_4= '(1:N)' ) ) ) ( (otherlv_1= RULE_ID ) ) ) | ( (otherlv_2= RULE_ID ) ) ) ) + // InternalErDsl.g:563:2: ( ( ( ( (lv_cardinality_0_1= '(0:1)' | lv_cardinality_0_2= '(1:1)' | lv_cardinality_0_3= '(0:N)' | lv_cardinality_0_4= '(1:N)' ) ) ) ( (otherlv_1= RULE_ID ) ) ) | ( (otherlv_2= RULE_ID ) ) ) { - // InternalErDsl.g:543:2: ( ( ( ( (lv_Cardinality_0_1= '(0:1)' | lv_Cardinality_0_2= '(1:1)' | lv_Cardinality_0_3= '(0:N)' | lv_Cardinality_0_4= '(1:N)' ) ) ) ( (otherlv_1= RULE_ID ) ) ) | ( (otherlv_2= RULE_ID ) ) ) + // InternalErDsl.g:563:2: ( ( ( ( (lv_cardinality_0_1= '(0:1)' | lv_cardinality_0_2= '(1:1)' | lv_cardinality_0_3= '(0:N)' | lv_cardinality_0_4= '(1:N)' ) ) ) ( (otherlv_1= RULE_ID ) ) ) | ( (otherlv_2= RULE_ID ) ) ) int alt11=2; int LA11_0 = input.LA(1); @@ -1286,18 +1327,18 @@ else if ( (LA11_0==RULE_ID) ) { } switch (alt11) { case 1 : - // InternalErDsl.g:544:3: ( ( ( (lv_Cardinality_0_1= '(0:1)' | lv_Cardinality_0_2= '(1:1)' | lv_Cardinality_0_3= '(0:N)' | lv_Cardinality_0_4= '(1:N)' ) ) ) ( (otherlv_1= RULE_ID ) ) ) + // InternalErDsl.g:564:3: ( ( ( (lv_cardinality_0_1= '(0:1)' | lv_cardinality_0_2= '(1:1)' | lv_cardinality_0_3= '(0:N)' | lv_cardinality_0_4= '(1:N)' ) ) ) ( (otherlv_1= RULE_ID ) ) ) { - // InternalErDsl.g:544:3: ( ( ( (lv_Cardinality_0_1= '(0:1)' | lv_Cardinality_0_2= '(1:1)' | lv_Cardinality_0_3= '(0:N)' | lv_Cardinality_0_4= '(1:N)' ) ) ) ( (otherlv_1= RULE_ID ) ) ) - // InternalErDsl.g:545:4: ( ( (lv_Cardinality_0_1= '(0:1)' | lv_Cardinality_0_2= '(1:1)' | lv_Cardinality_0_3= '(0:N)' | lv_Cardinality_0_4= '(1:N)' ) ) ) ( (otherlv_1= RULE_ID ) ) + // InternalErDsl.g:564:3: ( ( ( (lv_cardinality_0_1= '(0:1)' | lv_cardinality_0_2= '(1:1)' | lv_cardinality_0_3= '(0:N)' | lv_cardinality_0_4= '(1:N)' ) ) ) ( (otherlv_1= RULE_ID ) ) ) + // InternalErDsl.g:565:4: ( ( (lv_cardinality_0_1= '(0:1)' | lv_cardinality_0_2= '(1:1)' | lv_cardinality_0_3= '(0:N)' | lv_cardinality_0_4= '(1:N)' ) ) ) ( (otherlv_1= RULE_ID ) ) { - // InternalErDsl.g:545:4: ( ( (lv_Cardinality_0_1= '(0:1)' | lv_Cardinality_0_2= '(1:1)' | lv_Cardinality_0_3= '(0:N)' | lv_Cardinality_0_4= '(1:N)' ) ) ) - // InternalErDsl.g:546:5: ( (lv_Cardinality_0_1= '(0:1)' | lv_Cardinality_0_2= '(1:1)' | lv_Cardinality_0_3= '(0:N)' | lv_Cardinality_0_4= '(1:N)' ) ) + // InternalErDsl.g:565:4: ( ( (lv_cardinality_0_1= '(0:1)' | lv_cardinality_0_2= '(1:1)' | lv_cardinality_0_3= '(0:N)' | lv_cardinality_0_4= '(1:N)' ) ) ) + // InternalErDsl.g:566:5: ( (lv_cardinality_0_1= '(0:1)' | lv_cardinality_0_2= '(1:1)' | lv_cardinality_0_3= '(0:N)' | lv_cardinality_0_4= '(1:N)' ) ) { - // InternalErDsl.g:546:5: ( (lv_Cardinality_0_1= '(0:1)' | lv_Cardinality_0_2= '(1:1)' | lv_Cardinality_0_3= '(0:N)' | lv_Cardinality_0_4= '(1:N)' ) ) - // InternalErDsl.g:547:6: (lv_Cardinality_0_1= '(0:1)' | lv_Cardinality_0_2= '(1:1)' | lv_Cardinality_0_3= '(0:N)' | lv_Cardinality_0_4= '(1:N)' ) + // InternalErDsl.g:566:5: ( (lv_cardinality_0_1= '(0:1)' | lv_cardinality_0_2= '(1:1)' | lv_cardinality_0_3= '(0:N)' | lv_cardinality_0_4= '(1:N)' ) ) + // InternalErDsl.g:567:6: (lv_cardinality_0_1= '(0:1)' | lv_cardinality_0_2= '(1:1)' | lv_cardinality_0_3= '(0:N)' | lv_cardinality_0_4= '(1:N)' ) { - // InternalErDsl.g:547:6: (lv_Cardinality_0_1= '(0:1)' | lv_Cardinality_0_2= '(1:1)' | lv_Cardinality_0_3= '(0:N)' | lv_Cardinality_0_4= '(1:N)' ) + // InternalErDsl.g:567:6: (lv_cardinality_0_1= '(0:1)' | lv_cardinality_0_2= '(1:1)' | lv_cardinality_0_3= '(0:N)' | lv_cardinality_0_4= '(1:N)' ) int alt10=4; switch ( input.LA(1) ) { case 23: @@ -1329,65 +1370,65 @@ else if ( (LA11_0==RULE_ID) ) { switch (alt10) { case 1 : - // InternalErDsl.g:548:7: lv_Cardinality_0_1= '(0:1)' + // InternalErDsl.g:568:7: lv_cardinality_0_1= '(0:1)' { - lv_Cardinality_0_1=(Token)match(input,23,FOLLOW_6); + lv_cardinality_0_1=(Token)match(input,23,FOLLOW_6); - newLeafNode(lv_Cardinality_0_1, grammarAccess.getRelationSideAccess().getCardinality01Keyword_0_0_0_0()); + newLeafNode(lv_cardinality_0_1, grammarAccess.getRelationSideAccess().getCardinality01Keyword_0_0_0_0()); if (current==null) { current = createModelElement(grammarAccess.getRelationSideRule()); } - setWithLastConsumed(current, "Cardinality", lv_Cardinality_0_1, null); + setWithLastConsumed(current, "cardinality", lv_cardinality_0_1, null); } break; case 2 : - // InternalErDsl.g:559:7: lv_Cardinality_0_2= '(1:1)' + // InternalErDsl.g:579:7: lv_cardinality_0_2= '(1:1)' { - lv_Cardinality_0_2=(Token)match(input,24,FOLLOW_6); + lv_cardinality_0_2=(Token)match(input,24,FOLLOW_6); - newLeafNode(lv_Cardinality_0_2, grammarAccess.getRelationSideAccess().getCardinality11Keyword_0_0_0_1()); + newLeafNode(lv_cardinality_0_2, grammarAccess.getRelationSideAccess().getCardinality11Keyword_0_0_0_1()); if (current==null) { current = createModelElement(grammarAccess.getRelationSideRule()); } - setWithLastConsumed(current, "Cardinality", lv_Cardinality_0_2, null); + setWithLastConsumed(current, "cardinality", lv_cardinality_0_2, null); } break; case 3 : - // InternalErDsl.g:570:7: lv_Cardinality_0_3= '(0:N)' + // InternalErDsl.g:590:7: lv_cardinality_0_3= '(0:N)' { - lv_Cardinality_0_3=(Token)match(input,25,FOLLOW_6); + lv_cardinality_0_3=(Token)match(input,25,FOLLOW_6); - newLeafNode(lv_Cardinality_0_3, grammarAccess.getRelationSideAccess().getCardinality0NKeyword_0_0_0_2()); + newLeafNode(lv_cardinality_0_3, grammarAccess.getRelationSideAccess().getCardinality0NKeyword_0_0_0_2()); if (current==null) { current = createModelElement(grammarAccess.getRelationSideRule()); } - setWithLastConsumed(current, "Cardinality", lv_Cardinality_0_3, null); + setWithLastConsumed(current, "cardinality", lv_cardinality_0_3, null); } break; case 4 : - // InternalErDsl.g:581:7: lv_Cardinality_0_4= '(1:N)' + // InternalErDsl.g:601:7: lv_cardinality_0_4= '(1:N)' { - lv_Cardinality_0_4=(Token)match(input,26,FOLLOW_6); + lv_cardinality_0_4=(Token)match(input,26,FOLLOW_6); - newLeafNode(lv_Cardinality_0_4, grammarAccess.getRelationSideAccess().getCardinality1NKeyword_0_0_0_3()); + newLeafNode(lv_cardinality_0_4, grammarAccess.getRelationSideAccess().getCardinality1NKeyword_0_0_0_3()); if (current==null) { current = createModelElement(grammarAccess.getRelationSideRule()); } - setWithLastConsumed(current, "Cardinality", lv_Cardinality_0_4, null); + setWithLastConsumed(current, "cardinality", lv_cardinality_0_4, null); } @@ -1401,11 +1442,11 @@ else if ( (LA11_0==RULE_ID) ) { } - // InternalErDsl.g:594:4: ( (otherlv_1= RULE_ID ) ) - // InternalErDsl.g:595:5: (otherlv_1= RULE_ID ) + // InternalErDsl.g:614:4: ( (otherlv_1= RULE_ID ) ) + // InternalErDsl.g:615:5: (otherlv_1= RULE_ID ) { - // InternalErDsl.g:595:5: (otherlv_1= RULE_ID ) - // InternalErDsl.g:596:6: otherlv_1= RULE_ID + // InternalErDsl.g:615:5: (otherlv_1= RULE_ID ) + // InternalErDsl.g:616:6: otherlv_1= RULE_ID { if (current==null) { @@ -1429,13 +1470,13 @@ else if ( (LA11_0==RULE_ID) ) { } break; case 2 : - // InternalErDsl.g:609:3: ( (otherlv_2= RULE_ID ) ) + // InternalErDsl.g:629:3: ( (otherlv_2= RULE_ID ) ) { - // InternalErDsl.g:609:3: ( (otherlv_2= RULE_ID ) ) - // InternalErDsl.g:610:4: (otherlv_2= RULE_ID ) + // InternalErDsl.g:629:3: ( (otherlv_2= RULE_ID ) ) + // InternalErDsl.g:630:4: (otherlv_2= RULE_ID ) { - // InternalErDsl.g:610:4: (otherlv_2= RULE_ID ) - // InternalErDsl.g:611:5: otherlv_2= RULE_ID + // InternalErDsl.g:630:4: (otherlv_2= RULE_ID ) + // InternalErDsl.g:631:5: otherlv_2= RULE_ID { if (current==null) { @@ -1476,6 +1517,213 @@ else if ( (LA11_0==RULE_ID) ) { } // $ANTLR end "ruleRelationSide" + + // $ANTLR start "ruleDataType" + // InternalErDsl.g:646:1: ruleDataType returns [Enumerator current=null] : ( (enumLiteral_0= 'int' ) | (enumLiteral_1= 'double' ) | (enumLiteral_2= 'money' ) | (enumLiteral_3= 'string' ) | (enumLiteral_4= 'boolean' ) | (enumLiteral_5= 'datetime' ) | (enumLiteral_6= 'file' ) ) ; + public final Enumerator ruleDataType() throws RecognitionException { + Enumerator current = null; + + Token enumLiteral_0=null; + Token enumLiteral_1=null; + Token enumLiteral_2=null; + Token enumLiteral_3=null; + Token enumLiteral_4=null; + Token enumLiteral_5=null; + Token enumLiteral_6=null; + + + enterRule(); + + try { + // InternalErDsl.g:652:2: ( ( (enumLiteral_0= 'int' ) | (enumLiteral_1= 'double' ) | (enumLiteral_2= 'money' ) | (enumLiteral_3= 'string' ) | (enumLiteral_4= 'boolean' ) | (enumLiteral_5= 'datetime' ) | (enumLiteral_6= 'file' ) ) ) + // InternalErDsl.g:653:2: ( (enumLiteral_0= 'int' ) | (enumLiteral_1= 'double' ) | (enumLiteral_2= 'money' ) | (enumLiteral_3= 'string' ) | (enumLiteral_4= 'boolean' ) | (enumLiteral_5= 'datetime' ) | (enumLiteral_6= 'file' ) ) + { + // InternalErDsl.g:653:2: ( (enumLiteral_0= 'int' ) | (enumLiteral_1= 'double' ) | (enumLiteral_2= 'money' ) | (enumLiteral_3= 'string' ) | (enumLiteral_4= 'boolean' ) | (enumLiteral_5= 'datetime' ) | (enumLiteral_6= 'file' ) ) + int alt12=7; + switch ( input.LA(1) ) { + case 27: + { + alt12=1; + } + break; + case 28: + { + alt12=2; + } + break; + case 29: + { + alt12=3; + } + break; + case 30: + { + alt12=4; + } + break; + case 31: + { + alt12=5; + } + break; + case 32: + { + alt12=6; + } + break; + case 33: + { + alt12=7; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 12, 0, input); + + throw nvae; + } + + switch (alt12) { + case 1 : + // InternalErDsl.g:654:3: (enumLiteral_0= 'int' ) + { + // InternalErDsl.g:654:3: (enumLiteral_0= 'int' ) + // InternalErDsl.g:655:4: enumLiteral_0= 'int' + { + enumLiteral_0=(Token)match(input,27,FOLLOW_2); + + current = grammarAccess.getDataTypeAccess().getINTEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getDataTypeAccess().getINTEnumLiteralDeclaration_0()); + + + } + + + } + break; + case 2 : + // InternalErDsl.g:662:3: (enumLiteral_1= 'double' ) + { + // InternalErDsl.g:662:3: (enumLiteral_1= 'double' ) + // InternalErDsl.g:663:4: enumLiteral_1= 'double' + { + enumLiteral_1=(Token)match(input,28,FOLLOW_2); + + current = grammarAccess.getDataTypeAccess().getDOUBLEEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_1, grammarAccess.getDataTypeAccess().getDOUBLEEnumLiteralDeclaration_1()); + + + } + + + } + break; + case 3 : + // InternalErDsl.g:670:3: (enumLiteral_2= 'money' ) + { + // InternalErDsl.g:670:3: (enumLiteral_2= 'money' ) + // InternalErDsl.g:671:4: enumLiteral_2= 'money' + { + enumLiteral_2=(Token)match(input,29,FOLLOW_2); + + current = grammarAccess.getDataTypeAccess().getMONEYEnumLiteralDeclaration_2().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_2, grammarAccess.getDataTypeAccess().getMONEYEnumLiteralDeclaration_2()); + + + } + + + } + break; + case 4 : + // InternalErDsl.g:678:3: (enumLiteral_3= 'string' ) + { + // InternalErDsl.g:678:3: (enumLiteral_3= 'string' ) + // InternalErDsl.g:679:4: enumLiteral_3= 'string' + { + enumLiteral_3=(Token)match(input,30,FOLLOW_2); + + current = grammarAccess.getDataTypeAccess().getSTRINGEnumLiteralDeclaration_3().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_3, grammarAccess.getDataTypeAccess().getSTRINGEnumLiteralDeclaration_3()); + + + } + + + } + break; + case 5 : + // InternalErDsl.g:686:3: (enumLiteral_4= 'boolean' ) + { + // InternalErDsl.g:686:3: (enumLiteral_4= 'boolean' ) + // InternalErDsl.g:687:4: enumLiteral_4= 'boolean' + { + enumLiteral_4=(Token)match(input,31,FOLLOW_2); + + current = grammarAccess.getDataTypeAccess().getBOOLEANEnumLiteralDeclaration_4().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_4, grammarAccess.getDataTypeAccess().getBOOLEANEnumLiteralDeclaration_4()); + + + } + + + } + break; + case 6 : + // InternalErDsl.g:694:3: (enumLiteral_5= 'datetime' ) + { + // InternalErDsl.g:694:3: (enumLiteral_5= 'datetime' ) + // InternalErDsl.g:695:4: enumLiteral_5= 'datetime' + { + enumLiteral_5=(Token)match(input,32,FOLLOW_2); + + current = grammarAccess.getDataTypeAccess().getDATETIMEEnumLiteralDeclaration_5().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_5, grammarAccess.getDataTypeAccess().getDATETIMEEnumLiteralDeclaration_5()); + + + } + + + } + break; + case 7 : + // InternalErDsl.g:702:3: (enumLiteral_6= 'file' ) + { + // InternalErDsl.g:702:3: (enumLiteral_6= 'file' ) + // InternalErDsl.g:703:4: enumLiteral_6= 'file' + { + enumLiteral_6=(Token)match(input,33,FOLLOW_2); + + current = grammarAccess.getDataTypeAccess().getBLOBEnumLiteralDeclaration_6().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_6, grammarAccess.getDataTypeAccess().getBLOBEnumLiteralDeclaration_6()); + + + } + + + } + break; + + } + + + } + + + leaveRule(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleDataType" + // Delegated rules @@ -1490,13 +1738,14 @@ else if ( (LA11_0==RULE_ID) ) { public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000004010L}); public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000008000L}); public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000104010L}); - public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000020002L}); - public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000042002L}); - public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000084000L}); - public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000007800010L}); - public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000200000L}); - public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000000400000L}); - public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000002002L}); + public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x00000003F8000000L}); + public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000020002L}); + public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000042002L}); + public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000084000L}); + public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000007800010L}); + public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000000200000L}); + public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000400000L}); + public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000000002002L}); } \ No newline at end of file diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/scoping/AbstractErDslScopeProvider.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/scoping/AbstractErDslScopeProvider.java index 6a24054..26a3512 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/scoping/AbstractErDslScopeProvider.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/scoping/AbstractErDslScopeProvider.java @@ -1,5 +1,5 @@ /* - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl.scoping; diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/serializer/ErDslSemanticSequencer.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/serializer/ErDslSemanticSequencer.java index 04a7a33..ed34e77 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/serializer/ErDslSemanticSequencer.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/serializer/ErDslSemanticSequencer.java @@ -1,5 +1,5 @@ /* - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl.serializer; @@ -65,7 +65,7 @@ public void sequence(ISerializationContext context, EObject semanticObject) { * Attribute returns Attribute * * Constraint: - * (name=ID isKey?='isIdentifier'?) + * (name=ID type=DataType isKey?='isIdentifier'?) */ protected void sequence_Attribute(ISerializationContext context, Attribute semanticObject) { genericSequencer.createSequence(context, semanticObject); @@ -107,7 +107,7 @@ protected void sequence_ERModel(ISerializationContext context, ERModel semanticO * Entity returns Entity * * Constraint: - * (name=ID is+=[Entity|ID]* (attributes+=Attribute attributes+=Attribute*)?) + * (name=ID is=[Entity|ID]* (attributes+=Attribute attributes+=Attribute*)?) */ protected void sequence_Entity(ISerializationContext context, Entity semanticObject) { genericSequencer.createSequence(context, semanticObject); @@ -119,7 +119,7 @@ protected void sequence_Entity(ISerializationContext context, Entity semanticObj * RelationSide returns RelationSide * * Constraint: - * (((Cardinality='(0:1)' | Cardinality='(1:1)' | Cardinality='(0:N)' | Cardinality='(1:N)') target=[Entity|ID]) | target=[Relation|ID]) + * (((cardinality='(0:1)' | cardinality='(1:1)' | cardinality='(0:N)' | cardinality='(1:N)') target=[Entity|ID]) | target=[Relation|ID]) */ protected void sequence_RelationSide(ISerializationContext context, RelationSide semanticObject) { genericSequencer.createSequence(context, semanticObject); diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/serializer/ErDslSyntacticSequencer.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/serializer/ErDslSyntacticSequencer.java index 646d059..7390ae9 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/serializer/ErDslSyntacticSequencer.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/serializer/ErDslSyntacticSequencer.java @@ -1,5 +1,5 @@ /* - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl.serializer; diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess.java index b5cbdf4..abf6ba9 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess.java @@ -1,5 +1,5 @@ /* - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl.services; @@ -9,6 +9,8 @@ import org.eclipse.xtext.Alternatives; import org.eclipse.xtext.Assignment; import org.eclipse.xtext.CrossReference; +import org.eclipse.xtext.EnumLiteralDeclaration; +import org.eclipse.xtext.EnumRule; import org.eclipse.xtext.Grammar; import org.eclipse.xtext.GrammarUtil; import org.eclipse.xtext.Group; @@ -17,6 +19,7 @@ import org.eclipse.xtext.RuleCall; import org.eclipse.xtext.TerminalRule; import org.eclipse.xtext.common.services.TerminalsGrammarAccess; +import org.eclipse.xtext.service.AbstractElementFinder.AbstractEnumRuleElementFinder; import org.eclipse.xtext.service.AbstractElementFinder.AbstractGrammarElementFinder; import org.eclipse.xtext.service.GrammarProvider; @@ -62,7 +65,7 @@ public class ERModelElements extends AbstractParserRuleElementFinder { //';' public Keyword getSemicolonKeyword_1() { return cSemicolonKeyword_1; } - //'Entities' '{' + //('Entities' '{') public Group getGroup_2() { return cGroup_2; } //'Entities' @@ -77,7 +80,7 @@ public class ERModelElements extends AbstractParserRuleElementFinder { //Entity public RuleCall getEntitiesEntityParserRuleCall_3_0() { return cEntitiesEntityParserRuleCall_3_0; } - //'}' ';' + //('}' ';') public Group getGroup_4() { return cGroup_4; } //'}' @@ -86,7 +89,7 @@ public class ERModelElements extends AbstractParserRuleElementFinder { //';' public Keyword getSemicolonKeyword_4_1() { return cSemicolonKeyword_4_1; } - //'Relationships' '{' + //('Relationships' '{') public Group getGroup_5() { return cGroup_5; } //'Relationships' @@ -101,7 +104,7 @@ public class ERModelElements extends AbstractParserRuleElementFinder { //Relation public RuleCall getRelationsRelationParserRuleCall_6_0() { return cRelationsRelationParserRuleCall_6_0; } - //'}' ';' + //('}' ';') public Group getGroup_7() { return cGroup_7; } //'}' @@ -138,14 +141,16 @@ public class AttributeElements extends AbstractParserRuleElementFinder { private final Group cGroup = (Group)rule.eContents().get(1); private final Assignment cNameAssignment_0 = (Assignment)cGroup.eContents().get(0); private final RuleCall cNameIDTerminalRuleCall_0_0 = (RuleCall)cNameAssignment_0.eContents().get(0); - private final Assignment cIsKeyAssignment_1 = (Assignment)cGroup.eContents().get(1); - private final Keyword cIsKeyIsIdentifierKeyword_1_0 = (Keyword)cIsKeyAssignment_1.eContents().get(0); + private final Assignment cTypeAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cTypeDataTypeEnumRuleCall_1_0 = (RuleCall)cTypeAssignment_1.eContents().get(0); + private final Assignment cIsKeyAssignment_2 = (Assignment)cGroup.eContents().get(2); + private final Keyword cIsKeyIsIdentifierKeyword_2_0 = (Keyword)cIsKeyAssignment_2.eContents().get(0); //Attribute: - // name=ID isKey?='isIdentifier'?; + // name=ID type=DataType isKey?='isIdentifier'?; @Override public ParserRule getRule() { return rule; } - //name=ID isKey?='isIdentifier'? + //name=ID type=DataType isKey?='isIdentifier'? public Group getGroup() { return cGroup; } //name=ID @@ -154,11 +159,17 @@ public class AttributeElements extends AbstractParserRuleElementFinder { //ID public RuleCall getNameIDTerminalRuleCall_0_0() { return cNameIDTerminalRuleCall_0_0; } + //type=DataType + public Assignment getTypeAssignment_1() { return cTypeAssignment_1; } + + //DataType + public RuleCall getTypeDataTypeEnumRuleCall_1_0() { return cTypeDataTypeEnumRuleCall_1_0; } + //isKey?='isIdentifier'? - public Assignment getIsKeyAssignment_1() { return cIsKeyAssignment_1; } + public Assignment getIsKeyAssignment_2() { return cIsKeyAssignment_2; } //'isIdentifier' - public Keyword getIsKeyIsIdentifierKeyword_1_0() { return cIsKeyIsIdentifierKeyword_1_0; } + public Keyword getIsKeyIsIdentifierKeyword_2_0() { return cIsKeyIsIdentifierKeyword_2_0; } } public class EntityElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.xtext.unipampa.erdsl.ErDsl.Entity"); @@ -181,10 +192,10 @@ public class EntityElements extends AbstractParserRuleElementFinder { private final Keyword cRightCurlyBracketKeyword_2_3 = (Keyword)cGroup_2.eContents().get(3); //Entity: - // name=ID ('is' is+=[Entity])* ('{' attributes+=Attribute (',' attributes+=Attribute)* '}')?; + // name=ID ('is' is=[Entity])* ('{' attributes+=Attribute (',' attributes+=Attribute)* '}')?; @Override public ParserRule getRule() { return rule; } - //name=ID ('is' is+=[Entity])* ('{' attributes+=Attribute (',' attributes+=Attribute)* '}')? + //name=ID ('is' is=[Entity])* ('{' attributes+=Attribute (',' attributes+=Attribute)* '}')? public Group getGroup() { return cGroup; } //name=ID @@ -193,13 +204,13 @@ public class EntityElements extends AbstractParserRuleElementFinder { //ID public RuleCall getNameIDTerminalRuleCall_0_0() { return cNameIDTerminalRuleCall_0_0; } - //('is' is+=[Entity])* + //('is' is=[Entity])* public Group getGroup_1() { return cGroup_1; } //'is' public Keyword getIsKeyword_1_0() { return cIsKeyword_1_0; } - //is+=[Entity] + //is=[Entity] public Assignment getIsAssignment_1_1() { return cIsAssignment_1_1; } //[Entity] @@ -259,8 +270,9 @@ public class RelationElements extends AbstractParserRuleElementFinder { private final Keyword cRightCurlyBracketKeyword_2_3 = (Keyword)cGroup_2.eContents().get(3); //Relation: - // name=ID? ('[' leftEnding=RelationSide 'relates' rightEnding=RelationSide ']') ('{' - // attributes+=Attribute (',' attributes+=Attribute)* '}')*; + // name=ID? ('[' leftEnding=RelationSide + // 'relates' + // rightEnding=RelationSide ']') ('{' attributes+=Attribute (',' attributes+=Attribute)* '}')*; @Override public ParserRule getRule() { return rule; } //name=ID? ('[' leftEnding=RelationSide 'relates' rightEnding=RelationSide ']') ('{' attributes+=Attribute (',' @@ -273,7 +285,7 @@ public class RelationElements extends AbstractParserRuleElementFinder { //ID public RuleCall getNameIDTerminalRuleCall_0_0() { return cNameIDTerminalRuleCall_0_0; } - //'[' leftEnding=RelationSide 'relates' rightEnding=RelationSide ']' + //('[' leftEnding=RelationSide 'relates' rightEnding=RelationSide ']') public Group getGroup_1() { return cGroup_1; } //'[' @@ -342,16 +354,16 @@ public class RelationSideElements extends AbstractParserRuleElementFinder { private final RuleCall cTargetRelationIDTerminalRuleCall_1_0_1 = (RuleCall)cTargetRelationCrossReference_1_0.eContents().get(1); //RelationSide: - // Cardinality=('(0:1)' | '(1:1)' | '(0:N)' | '(1:N)') target=[Entity] | target=[Relation]; + // cardinality=('(0:1)' | '(1:1)' | '(0:N)' | '(1:N)') target=[Entity] | target=[Relation]; @Override public ParserRule getRule() { return rule; } - //Cardinality=('(0:1)' | '(1:1)' | '(0:N)' | '(1:N)') target=[Entity] | target=[Relation] + //cardinality=('(0:1)' | '(1:1)' | '(0:N)' | '(1:N)') target=[Entity] | target=[Relation] public Alternatives getAlternatives() { return cAlternatives; } - //Cardinality=('(0:1)' | '(1:1)' | '(0:N)' | '(1:N)') target=[Entity] + //cardinality=('(0:1)' | '(1:1)' | '(0:N)' | '(1:N)') target=[Entity] public Group getGroup_0() { return cGroup_0; } - //Cardinality=('(0:1)' | '(1:1)' | '(0:N)' | '(1:N)') + //cardinality=('(0:1)' | '(1:1)' | '(0:N)' | '(1:N)') public Assignment getCardinalityAssignment_0_0() { return cCardinalityAssignment_0_0; } //('(0:1)' | '(1:1)' | '(0:N)' | '(1:N)') @@ -388,6 +400,76 @@ public class RelationSideElements extends AbstractParserRuleElementFinder { public RuleCall getTargetRelationIDTerminalRuleCall_1_0_1() { return cTargetRelationIDTerminalRuleCall_1_0_1; } } + public class DataTypeElements extends AbstractEnumRuleElementFinder { + private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.xtext.unipampa.erdsl.ErDsl.DataType"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final EnumLiteralDeclaration cINTEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0); + private final Keyword cINTIntKeyword_0_0 = (Keyword)cINTEnumLiteralDeclaration_0.eContents().get(0); + private final EnumLiteralDeclaration cDOUBLEEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1); + private final Keyword cDOUBLEDoubleKeyword_1_0 = (Keyword)cDOUBLEEnumLiteralDeclaration_1.eContents().get(0); + private final EnumLiteralDeclaration cMONEYEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2); + private final Keyword cMONEYMoneyKeyword_2_0 = (Keyword)cMONEYEnumLiteralDeclaration_2.eContents().get(0); + private final EnumLiteralDeclaration cSTRINGEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3); + private final Keyword cSTRINGStringKeyword_3_0 = (Keyword)cSTRINGEnumLiteralDeclaration_3.eContents().get(0); + private final EnumLiteralDeclaration cBOOLEANEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4); + private final Keyword cBOOLEANBooleanKeyword_4_0 = (Keyword)cBOOLEANEnumLiteralDeclaration_4.eContents().get(0); + private final EnumLiteralDeclaration cDATETIMEEnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5); + private final Keyword cDATETIMEDatetimeKeyword_5_0 = (Keyword)cDATETIMEEnumLiteralDeclaration_5.eContents().get(0); + private final EnumLiteralDeclaration cBLOBEnumLiteralDeclaration_6 = (EnumLiteralDeclaration)cAlternatives.eContents().get(6); + private final Keyword cBLOBFileKeyword_6_0 = (Keyword)cBLOBEnumLiteralDeclaration_6.eContents().get(0); + + //enum DataType: + // INT='int' | DOUBLE='double' | + // MONEY='money' | STRING='string' | + // BOOLEAN='boolean' | DATETIME='datetime' | + // BLOB='file'; + public EnumRule getRule() { return rule; } + + //INT='int' | DOUBLE='double' | MONEY='money' | STRING='string' | BOOLEAN='boolean' | DATETIME='datetime' | BLOB='file' + public Alternatives getAlternatives() { return cAlternatives; } + + //INT='int' + public EnumLiteralDeclaration getINTEnumLiteralDeclaration_0() { return cINTEnumLiteralDeclaration_0; } + + //'int' + public Keyword getINTIntKeyword_0_0() { return cINTIntKeyword_0_0; } + + //DOUBLE='double' + public EnumLiteralDeclaration getDOUBLEEnumLiteralDeclaration_1() { return cDOUBLEEnumLiteralDeclaration_1; } + + //'double' + public Keyword getDOUBLEDoubleKeyword_1_0() { return cDOUBLEDoubleKeyword_1_0; } + + //MONEY='money' + public EnumLiteralDeclaration getMONEYEnumLiteralDeclaration_2() { return cMONEYEnumLiteralDeclaration_2; } + + //'money' + public Keyword getMONEYMoneyKeyword_2_0() { return cMONEYMoneyKeyword_2_0; } + + //STRING='string' + public EnumLiteralDeclaration getSTRINGEnumLiteralDeclaration_3() { return cSTRINGEnumLiteralDeclaration_3; } + + //'string' + public Keyword getSTRINGStringKeyword_3_0() { return cSTRINGStringKeyword_3_0; } + + //BOOLEAN='boolean' + public EnumLiteralDeclaration getBOOLEANEnumLiteralDeclaration_4() { return cBOOLEANEnumLiteralDeclaration_4; } + + //'boolean' + public Keyword getBOOLEANBooleanKeyword_4_0() { return cBOOLEANBooleanKeyword_4_0; } + + //DATETIME='datetime' + public EnumLiteralDeclaration getDATETIMEEnumLiteralDeclaration_5() { return cDATETIMEEnumLiteralDeclaration_5; } + + //'datetime' + public Keyword getDATETIMEDatetimeKeyword_5_0() { return cDATETIMEDatetimeKeyword_5_0; } + + //BLOB='file' + public EnumLiteralDeclaration getBLOBEnumLiteralDeclaration_6() { return cBLOBEnumLiteralDeclaration_6; } + + //'file' + public Keyword getBLOBFileKeyword_6_0() { return cBLOBFileKeyword_6_0; } + } private final ERModelElements pERModel; private final DomainElements pDomain; @@ -395,6 +477,7 @@ public class RelationSideElements extends AbstractParserRuleElementFinder { private final EntityElements pEntity; private final RelationElements pRelation; private final RelationSideElements pRelationSide; + private final DataTypeElements eDataType; private final Grammar grammar; @@ -411,6 +494,7 @@ public ErDslGrammarAccess(GrammarProvider grammarProvider, this.pEntity = new EntityElements(); this.pRelation = new RelationElements(); this.pRelationSide = new RelationSideElements(); + this.eDataType = new DataTypeElements(); } protected Grammar internalFindGrammar(GrammarProvider grammarProvider) { @@ -461,7 +545,7 @@ public ParserRule getDomainRule() { } //Attribute: - // name=ID isKey?='isIdentifier'?; + // name=ID type=DataType isKey?='isIdentifier'?; public AttributeElements getAttributeAccess() { return pAttribute; } @@ -471,7 +555,7 @@ public ParserRule getAttributeRule() { } //Entity: - // name=ID ('is' is+=[Entity])* ('{' attributes+=Attribute (',' attributes+=Attribute)* '}')?; + // name=ID ('is' is=[Entity])* ('{' attributes+=Attribute (',' attributes+=Attribute)* '}')?; public EntityElements getEntityAccess() { return pEntity; } @@ -481,8 +565,9 @@ public ParserRule getEntityRule() { } //Relation: - // name=ID? ('[' leftEnding=RelationSide 'relates' rightEnding=RelationSide ']') ('{' - // attributes+=Attribute (',' attributes+=Attribute)* '}')*; + // name=ID? ('[' leftEnding=RelationSide + // 'relates' + // rightEnding=RelationSide ']') ('{' attributes+=Attribute (',' attributes+=Attribute)* '}')*; public RelationElements getRelationAccess() { return pRelation; } @@ -492,7 +577,7 @@ public ParserRule getRelationRule() { } //RelationSide: - // Cardinality=('(0:1)' | '(1:1)' | '(0:N)' | '(1:N)') target=[Entity] | target=[Relation]; + // cardinality=('(0:1)' | '(1:1)' | '(0:N)' | '(1:N)') target=[Entity] | target=[Relation]; public RelationSideElements getRelationSideAccess() { return pRelationSide; } @@ -501,6 +586,19 @@ public ParserRule getRelationSideRule() { return getRelationSideAccess().getRule(); } + //enum DataType: + // INT='int' | DOUBLE='double' | + // MONEY='money' | STRING='string' | + // BOOLEAN='boolean' | DATETIME='datetime' | + // BLOB='file'; + public DataTypeElements getDataTypeAccess() { + return eDataType; + } + + public EnumRule getDataTypeRule() { + return getDataTypeAccess().getRule(); + } + //terminal ID: // '^'? ('a'..'z' | 'A'..'Z' | '_') ('a'..'z' | 'A'..'Z' | '_' | '0'..'9')*; public TerminalRule getIDRule() { diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/validation/AbstractErDslValidator.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/validation/AbstractErDslValidator.java index 95ba879..433d39d 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/validation/AbstractErDslValidator.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/validation/AbstractErDslValidator.java @@ -1,5 +1,5 @@ /* - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl.validation; diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/validation/ErDslConfigurableIssueCodesProvider.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/validation/ErDslConfigurableIssueCodesProvider.java index 7c31744..e3f8d10 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/validation/ErDslConfigurableIssueCodesProvider.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/validation/ErDslConfigurableIssueCodesProvider.java @@ -1,5 +1,5 @@ /* - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.xtext.unipampa.erdsl.validation; diff --git a/org.xtext.unipampa.erdsl/src/org/xtext/unipampa/erdsl/ErDsl.xtext b/org.xtext.unipampa.erdsl/src/org/xtext/unipampa/erdsl/ErDsl.xtext index b58a315..47a55d9 100644 --- a/org.xtext.unipampa.erdsl/src/org/xtext/unipampa/erdsl/ErDsl.xtext +++ b/org.xtext.unipampa.erdsl/src/org/xtext/unipampa/erdsl/ErDsl.xtext @@ -6,60 +6,26 @@ ERModel: domain=Domain ';' ('Entities' '{') entities+=Entity+ ('}' ';') ('Relationships' '{') relations+=Relation* ('}' ';'); - Domain: 'Domain' name=ID; - Attribute: - name=ID (isKey?='isIdentifier')?; - - + name=ID type=DataType (isKey?='isIdentifier')?; Entity: - name=ID ('is' is+=[Entity])* - ('{' attributes+=Attribute (',' attributes+=Attribute)* '}')?; - + name=ID ('is' is=[Entity])* + ('{' attributes+=Attribute + (',' attributes+=Attribute)* '}')?; Relation: - (name=ID)? ('[' leftEnding=RelationSide 'relates' rightEnding=RelationSide ']') ('{' - attributes+=Attribute (',' attributes+=Attribute)* '}')*; - - + (name=ID)? ('[' leftEnding=RelationSide + 'relates' + rightEnding=RelationSide ']') + ('{' attributes+=Attribute + (',' attributes+=Attribute)* '}')*; RelationSide: - Cardinality=('(0:1)' | '(1:1)' | '(0:N)' | '(1:N)') target=[Entity] | target=[Relation]; - - -//grammar org.xtext.unipampa.erdsl.ErDsl with org.eclipse.xtext.common.Terminals -// -//generate erDsl "http://www.xtext.org/unipampa/erdsl/ErDsl" -// -//ERModel: -// domain=Domain ';' -// ('Entities{') entities+=Entity+ ('};') -// ('Relationships{') relations+=Relation* ('};'); -// -//Domain: -// 'Domain' name=ID; -// -//Attribute: -// name=ID ':' type=DataType (isKey?='isIdentifier')?; -// -//enum DataType: -// INT='int' | DOUBLE='double' | MONEY='money' | STRING='string' | BOOLEAN='boolean' | DATETIME='datetime' | BLOB='file'; -// -//Entity: -// name=ID ('is' is+=[Entity])* -// ('{' attributes+=Attribute (',' attributes+=Attribute)* '}')?; -// -//Relation: -// (name=ID)? ('[' leftEnding=RelationSide 'relates' rightEnding=RelationSide ']') ('{' -// attributes+=Attribute (',' attributes+=Attribute)* '}')*; -// -// -//RelationSide: -// Cardinality=('(0:1)' | '(1:1)' | '(0:N)' | '(1:N)') target=[Entity] | target=[Relation]; -// -//RelationSide: -// ((minimalCardinality?='zero')?) maximumCardinality=CardinalityType target=[Entity] | target=[Relation]; -// -//enum CardinalityType: -// One='one' | Many='many'; + cardinality=('(0:1)' | '(1:1)' | '(0:N)' | '(1:N)') + target=[Entity] | target=[Relation]; +enum DataType: + INT='int' | DOUBLE='double' | + MONEY='money' | STRING='string' | + BOOLEAN='boolean' | DATETIME='datetime' | + BLOB='file'; \ No newline at end of file diff --git a/org.xtext.unipampa.erdsl/src/org/xtext/unipampa/erdsl/generator/ErDslGenerator.xtend b/org.xtext.unipampa.erdsl/src/org/xtext/unipampa/erdsl/generator/ErDslGenerator.xtend index dcdd069..75faaed 100644 --- a/org.xtext.unipampa.erdsl/src/org/xtext/unipampa/erdsl/generator/ErDslGenerator.xtend +++ b/org.xtext.unipampa.erdsl/src/org/xtext/unipampa/erdsl/generator/ErDslGenerator.xtend @@ -16,415 +16,145 @@ import org.xtext.unipampa.erdsl.erDsl.ERModel */ class ErDslGenerator extends AbstractGenerator { + override void doGenerate(Resource resource, IFileSystemAccess2 fsa, IGeneratorContext context) { -// fsa.generateFile('greetings.txt', 'People to greet: ' + -// resource.allContents -// .filter(Greeting) -// .map[name] -// .join(', ')) -val modeloER = resource.contents.get(0) as ERModel - fsa.generateFile('LogicalSchema_'+modeloER.domain.name+'.html', + val modeloER = resource.contents.get(0) as ERModel fsa.generateFile('LogicalSchema_'+modeloER.domain.name+'.html', ''' - - - -

DOMÍNIO


-«modeloER.domain.name» -

TABELAS LÓGICAS


-«FOR entity : modeloER.entities SEPARATOR ')
' AFTER ')
' »«entity.name» ( - «FOR parent : entity.is»«IF entity.is !== null»«FOR chavePai : parent.attributes»«IF chavePai.isIsKey»«chavePai.name»* [Referência para: «parent.name»], «ENDIF»«ENDFOR»«ENDIF»«ENDFOR» - «FOR attribute : entity.attributes SEPARATOR ', '» - «IF attribute.isIsKey»«attribute.name»*«ELSE»«attribute.name»«ENDIF»«ENDFOR» -«««############################################################################################################################################ -«««############################################################################################################################################ -««« AQUI SE RESOLVEM OS RELACIONAMENTOS BINÁRIOS UM PARA MUITOS E MUITOS PARA UM -«««############################################################################################################################################ -«««############################################################################################################################################ - «FOR relationAux : modeloER.relations» - «IF (relationAux.leftEnding.cardinality == "(0:1)" || relationAux.leftEnding.cardinality == "(1:1)") && (relationAux.rightEnding.cardinality == "(0:N)" || relationAux.rightEnding.cardinality == "(1:N)")» - «FOR entityAux : modeloER.entities» - «IF (entityAux.name.equalsIgnoreCase(relationAux.rightEnding.target.toString)) && (entityAux.name.equalsIgnoreCase(entity.name.toString))» - «FOR entityMapeada : modeloER.entities» - «IF (entityMapeada.name.equalsIgnoreCase(relationAux.leftEnding.target.toString))» - «FOR attributeAux : entityMapeada.attributes SEPARATOR ','» - «IF attributeAux.isIsKey»«attributeAux.name»«ENDIF» - «ENDFOR» - «FOR entityMapeadaPai : entityMapeada.is» - «FOR atributoPai: entityMapeadaPai.attributes SEPARATOR ','» - «IF atributoPai.isIsKey» - «atributoPai.name»«entityMapeada.name» - «ENDIF» - «ENDFOR» - «ENDFOR» - «IF relationAux.attributes !== null» - «FOR relationMapeada : relationAux.attributes SEPARATOR ','»«relationMapeada.name»«ENDFOR» - «ENDIF» - «ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ENDIF» - «IF (relationAux.leftEnding.cardinality == "(0:N)" || relationAux.leftEnding.cardinality == "(1:N)") && (relationAux.rightEnding.cardinality == "(0:1)" || relationAux.rightEnding.cardinality == "(1:1)")» - «FOR entityAux : modeloER.entities» - «IF (entityAux.name.equalsIgnoreCase(relationAux.leftEnding.target.toString)) && (entityAux.name.equalsIgnoreCase(entity.name.toString))» - «FOR entityMapeada : modeloER.entities» - «IF (entityMapeada.name.equalsIgnoreCase(relationAux.rightEnding.target.toString))» - «FOR attributeAux : entityMapeada.attributes SEPARATOR ','» - «IF attributeAux.isIsKey», «attributeAux.name»«ENDIF» - «ENDFOR» - «FOR entityMapeadaPai : entityMapeada.is» - «FOR atributoPai: entityMapeadaPai.attributes SEPARATOR ','» - «IF atributoPai.isIsKey» - «atributoPai.name»«entityMapeada.name» - «ENDIF» - «ENDFOR» - «ENDFOR» - «IF relationAux.attributes !== null» - «FOR relationMapeada : relationAux.attributes SEPARATOR ','»«relationMapeada.name» - «ENDFOR» - «ENDIF» - «ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» -«««############################################################################################################################################ -«««############################################################################################################################################ -««« AQUI SE RESOLVEM OS RELACIONAMENTOS BINÁRIOS 0:1 && 1:1 || 1:1 && 0:1 (ADIÇÃO DE COLUNA) -«««############################################################################################################################################ -«««############################################################################################################################################ - «FOR relationAux : modeloER.relations» - «IF (relationAux.leftEnding.cardinality == "(0:1)" && relationAux.rightEnding.cardinality == "(1:1)")» - «FOR entityAux : modeloER.entities» - «IF (relationAux.leftEnding.target.toString.equalsIgnoreCase(relationAux.rightEnding.target.toString)) && (entityAux.name.equalsIgnoreCase(relationAux.rightEnding.target.toString)) && (entityAux.name.equalsIgnoreCase(entity.name.toString))» - «relationAux.name» - «ELSEIF (entityAux.name.equalsIgnoreCase(relationAux.rightEnding.target.toString)) && (entityAux.name.equalsIgnoreCase(entity.name.toString))» - «FOR entityMapeada : modeloER.entities» - «IF (entityMapeada.name.equalsIgnoreCase(relationAux.leftEnding.target.toString))» - «FOR attributeAux : entityMapeada.attributes SEPARATOR ','» - «IF attributeAux.isIsKey»«attributeAux.name» - «ENDIF» - «ENDFOR» - «FOR entityMapeadaPai : entityMapeada.is» - «FOR atributoPai: entityMapeadaPai.attributes SEPARATOR ','» - «IF atributoPai.isIsKey» «atributoPai.name»«entityMapeada.name» - «ENDIF» - «ENDFOR» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ELSEIF (relationAux.leftEnding.cardinality == "(1:1)" && relationAux.rightEnding.cardinality == "(0:1)")» - «FOR entityAux : modeloER.entities» - «IF (relationAux.leftEnding.target.toString.equalsIgnoreCase(relationAux.rightEnding.target.toString)) && (entityAux.name.equalsIgnoreCase(relationAux.rightEnding.target.toString)) && (entityAux.name.equalsIgnoreCase(entity.name.toString))» - «relationAux.name» - «ELSEIF (entityAux.name.equalsIgnoreCase(relationAux.leftEnding.target.toString)) && (entityAux.name.equalsIgnoreCase(entity.name.toString))» - «FOR entityMapeada : modeloER.entities» - «IF (entityMapeada.name.equalsIgnoreCase(relationAux.rightEnding.target.toString))» - «FOR attributeAux : entityMapeada.attributes SEPARATOR ','» - «IF attributeAux.isIsKey», «attributeAux.name» - «ENDIF» - «ENDFOR» - «FOR entityMapeadaPai : entityMapeada.is» - «FOR atributoPai: entityMapeadaPai.attributes SEPARATOR ','» - «IF atributoPai.isIsKey» «atributoPai.name»«entityMapeada.name» - «ENDIF» - «ENDFOR» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ELSEIF (relationAux.leftEnding.cardinality == "(0:1)" && relationAux.rightEnding.cardinality == "(0:1)")» - «FOR entityAux : modeloER.entities» - «IF (relationAux.leftEnding.target.toString.equalsIgnoreCase(relationAux.rightEnding.target.toString)) && (entityAux.name.equalsIgnoreCase(relationAux.rightEnding.target.toString)) && (entityAux.name.equalsIgnoreCase(entity.name.toString))» - «relationAux.name» - «ELSEIF (entityAux.name.equalsIgnoreCase(relationAux.rightEnding.target.toString)) && (entityAux.name.equalsIgnoreCase(entity.name.toString))» - «FOR entityMapeada : modeloER.entities» - «IF (entityMapeada.name.equalsIgnoreCase(relationAux.leftEnding.target.toString))» - «FOR attributeAux : entityMapeada.attributes» - «IF attributeAux.isIsKey», «attributeAux.name» - «ENDIF» - «ENDFOR» - «FOR entityMapeadaPai : entityMapeada.is» - «FOR atributoPai: entityMapeadaPai.attributes» - «IF atributoPai.isIsKey», «atributoPai.name»«entityMapeada.name» - «ENDIF» - «ENDFOR» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ELSEIF (relationAux.leftEnding.cardinality == "(1:1)" && relationAux.rightEnding.cardinality == "(1:1)")» - «FOR entityAux : modeloER.entities» - «IF (relationAux.leftEnding.target.toString.equalsIgnoreCase(relationAux.rightEnding.target.toString)) && (entityAux.name.equalsIgnoreCase(relationAux.rightEnding.target.toString)) && (entityAux.name.equalsIgnoreCase(entity.name.toString))» - «relationAux.name» - «ELSEIF (entityAux.name.equalsIgnoreCase(relationAux.rightEnding.target.toString)) && (entityAux.name.equalsIgnoreCase(entity.name.toString))» - «FOR entityMapeada : modeloER.entities» - «IF (entityMapeada.name.equalsIgnoreCase(relationAux.leftEnding.target.toString))» - «FOR attributeAux : entityMapeada.attributes» - «IF attributeAux.isIsKey», «attributeAux.name» - «ENDIF» - «ENDFOR» - «FOR entityMapeadaPai : entityMapeada.is» - «FOR atributoPai: entityMapeadaPai.attributes» - «IF atributoPai.isIsKey», «atributoPai.name»«entityMapeada.name» - «ENDIF» - «ENDFOR» - «ENDFOR» - «ENDIF» - «ENDFOR» + + + + ERtext Logical schema + + + + +
+

ERtext Logical schema

+
+ «/** + * + * Display of the modeled domain (database name) + * + */» +
+

Domain

+

«modeloER.domain.name.toUpperCase»

+
+ «/** + * + * Display of modeled entities (tables) + * + */» +
+

Entities

+

+ «FOR entity : modeloER.entities SEPARATOR " )

" AFTER ")
"» + «entity.name.toUpperCase» ( + «/** + * + * Verification and display of primary (PK) and, at the same time, foreign (FK) + * keys from generalizations / specializations + * 1- Checks for a reference to a parent entity + * 2- If it exists, the key that references the parent is written being primary and foreign at the same time + * + */» + «IF !(entity.is === null)» + «FOR aux : modeloER.entities» + «IF aux.name.equalsIgnoreCase(entity.is.toString)» + «aux.name»*, «ENDIF» «ENDFOR» «ENDIF» + + «FOR attribute : entity.attributes SEPARATOR ", "» + «IF attribute.isIsKey» + «attribute.name»* + «ELSEIF !attribute.isIsKey» + «attribute.name» + «ENDIF» + «ENDFOR» + + «/** + * + * + * + */» + «ENDFOR» -«ENDFOR» -«««############################################################################################################################################ -«««############################################################################################################################################ -««« AQUI SE RESOLVEM OS RELACIONAMENTOS BINÁRIOS MUITOS PARA MUITOS -«««############################################################################################################################################ -«««############################################################################################################################################ -«FOR relationAux : modeloER.relations SEPARATOR ')
'AFTER '
'» - «IF ((relationAux.leftEnding.cardinality == "(0:N)" || relationAux.leftEnding.cardinality == "(1:N)") - && (relationAux.rightEnding.cardinality == "(0:N)" || relationAux.rightEnding.cardinality == "(1:N)"))» - «IF (relationAux.name == '' || relationAux.name === null) » -«relationAux.leftEnding.target»«relationAux.rightEnding.target» ( - «FOR entityAux : modeloER.entities» - «IF entityAux.name.equalsIgnoreCase(relationAux.leftEnding.target.toString)» - «FOR atributoAux : entityAux.attributes» - «IF atributoAux.isIsKey»«atributoAux.name»*!«ENDIF» - «ENDFOR» - «FOR parent : entityAux.is» - «IF entityAux.is !== null» - «FOR chavePai : parent.attributes» - «IF chavePai.isIsKey»«chavePai.name»«relationAux.leftEnding.target.toString»*@«ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ENDIF» - «IF entityAux.name.equalsIgnoreCase(relationAux.rightEnding.target.toString)» - «FOR atributoAux : entityAux.attributes» - «IF atributoAux.isIsKey»«atributoAux.name»*#«ENDIF» - «ENDFOR» - «FOR parent : entityAux.is» - «IF entityAux.is !== null» - «FOR chavePai : parent.attributes» - «IF chavePai.isIsKey»«chavePai.name»«relationAux.rightEnding.target.toString»*$«ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ELSE» -«relationAux.name» ( - «FOR entityAux : modeloER.entities» - «IF entityAux.name.equalsIgnoreCase(relationAux.leftEnding.target.toString)» - «FOR atributoAux : entityAux.attributes» - «IF atributoAux.isIsKey»«atributoAux.name»*«ENDIF» - «ENDFOR» - «FOR parent : entityAux.is» - «IF entityAux.is !== null» - «FOR chavePai : parent.attributes» - «IF chavePai.isIsKey»«chavePai.name»«relationAux.leftEnding.target.toString»*«ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ENDIF» - «IF entityAux.name.equalsIgnoreCase(relationAux.rightEnding.target.toString)» - «FOR atributoAux : entityAux.attributes» - «IF atributoAux.isIsKey»«atributoAux.name»*«ENDIF» - «ENDFOR» - «FOR parent : entityAux.is» - «IF entityAux.is !== null» - «FOR chavePai : parent.attributes» - «IF chavePai.isIsKey»«chavePai.name»«relationAux.leftEnding.target.toString»*«ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ENDIF» - «IF (relationAux.attributes !== null)» - «FOR atributoRelacaoMuitosParaMuitos : relationAux.attributes SEPARATOR ','»«atributoRelacaoMuitosParaMuitos.name» - «IF atributoRelacaoMuitosParaMuitos.isIsKey»*«ENDIF» - «ENDFOR» - «ENDIF» - «ENDIF» -«ENDFOR» -«««############################################################################################################################################ -«««############################################################################################################################################ -««« AQUI SE RESOLVEM OS RELACIONAMENTOS TERNÁRIOS -«««############################################################################################################################################ -«««############################################################################################################################################ -«««############################################################################################################################################ -«««############################################################################################################################################ -««« MAPEAMENTO DAS REFERÊNCIAS DERIVADAS DOS RELACIONAMENTOS -«««############################################################################################################################################ -«««############################################################################################################################################ -

CHAVES REFERENCIAIS


-«FOR relation : modeloER.relations» -«««############################################################################################################################################ -«««############################################################################################################################################ -««« MAPEAMENTO DE RELAÇÃO 0:1 || 1:1 PARA 0:N || 1:N -«««############################################################################################################################################ -«««############################################################################################################################################ - «IF ((relation.leftEnding.cardinality == "(0:1)" || relation.leftEnding.cardinality == "(1:1)") && (relation.rightEnding.cardinality == "(0:N)" || relation.rightEnding.cardinality == "(1:N)"))» - «FOR entity : modeloER.entities» - «IF entity.name.equalsIgnoreCase(relation.leftEnding.target.toString)» - «FOR attribute : entity.attributes» - «IF attribute.isIsKey» -
Atributo "«attribute.name»" EM "«relation.rightEnding.target.toString»" REFERENCIA "«relation.leftEnding.target.toString»" - «ENDIF» - «ENDFOR» - «FOR parent : entity.is» - «IF entity.is !== null» - «FOR chavePai : parent.attributes» - «IF chavePai.isIsKey» -
Atributo "«chavePai.name»«relation.leftEnding.target.toString»" EM "«relation.rightEnding.target.toString»" REFERENCIA "«parent.name»" + «/** + * + * Formation of entities from relations N:N + * 1- Checks if there is a name for the relationship, if it does not exist, the name of the two associated entities is concatenated + * 2- The primary keys of the associated entities are allocated and become primary and foreign at the same time + * 3- If the relationship has attributes they are written at the end + * + */» + «FOR relation : modeloER.relations» + «IF ((relation.leftEnding.cardinality.equalsIgnoreCase('(0:N)') || relation.leftEnding.cardinality.equalsIgnoreCase('(1:N)')) + && + (relation.rightEnding.cardinality.equalsIgnoreCase('(0:N)') || relation.rightEnding.cardinality.equalsIgnoreCase('(1:N)')))» + + «IF relation.name.nullOrEmpty» +
«relation.leftEnding.target.toString.toUpperCase»«relation.rightEnding.target.toString.toUpperCase» ( + «ELSEIF !relation.name.nullOrEmpty» +
«relation.name.toUpperCase» ( + «ENDIF» + + «FOR entity : modeloER.entities» + «IF relation.leftEnding.target.toString.equalsIgnoreCase(entity.name)» + «FOR attribute : entity.attributes» + «IF attribute.isIsKey» + «attribute.name»*, «ENDIF» «ENDFOR» «ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ELSEIF ((relation.leftEnding.cardinality == "(0:N)" || relation.leftEnding.cardinality == "(1:N)") && (relation.rightEnding.cardinality == "(0:1)" || relation.rightEnding.cardinality == "(1:1)"))» - «FOR entity : modeloER.entities» - «IF entity.name.equalsIgnoreCase(relation.rightEnding.target.toString)» + + «IF relation.rightEnding.target.toString.equalsIgnoreCase(entity.name)» «FOR attribute : entity.attributes» - «IF attribute.isIsKey» -
Atributo "«attribute.name»" EM "«relation.leftEnding.target.toString»" REFERENCIA "«relation.rightEnding.target.toString»" - «ENDIF» - «ENDFOR» - «FOR parent : entity.is» - «IF entity.is !== null» - «FOR chavePai : parent.attributes» - «IF chavePai.isIsKey» -
Atributo "«chavePai.name»«relation.rightEnding.target.toString»" EM "«relation.leftEnding.target.toString»" REFERENCIA "«parent.name»" - «ENDIF» - «ENDFOR» + «IF attribute.isIsKey» + «attribute.name»* «ENDIF» «ENDFOR» + «ENDIF» + «ENDFOR» + + «FOR attribute : relation.attributes» + «IF !attribute.name.nullOrEmpty» + , «attribute.name» «ENDIF» «ENDFOR» - «ENDIF» -«««############################################################################################################################################ -«««############################################################################################################################################ -««« MAPEAMENTO DE RELAÇÃO 0:N ou 1:N PARA 0:1 ou 1:1 -«««############################################################################################################################################ -«««############################################################################################################################################ - «IF (relation.leftEnding.cardinality == "(0:N)" || relation.leftEnding.cardinality == "(1:N)") && (relation.rightEnding.cardinality == "(0:1)" || relation.rightEnding.cardinality == "(1:1)")» - «FOR entity : modeloER.entities» - «IF entity.name.equalsIgnoreCase(relation.rightEnding.target.toString) && (relation.leftEnding.target.toString != relation.rightEnding.target.toString)» - «FOR attribute : entity.attributes» - «IF attribute.isIsKey» -
Atributo "«attribute.name»" EM "«relation.leftEnding.target.toString»" REFERENCIA "«relation.rightEnding.target.toString»"«ENDIF» - «ENDFOR» + )
+ «ENDIF» «ENDFOR» - «ENDIF» - «IF (relation.leftEnding.cardinality == "(0:N)" || relation.leftEnding.cardinality == "(1:N)") && (relation.rightEnding.cardinality == "(0:N)" || relation.rightEnding.cardinality == "(1:N)")» - «FOR entity : modeloER.entities» - «IF entity.name.equalsIgnoreCase(relation.leftEnding.target.toString)» - «FOR attribute : entity.attributes» - «IF attribute.isIsKey» - «IF (relation.name !== null && relation.name !== '')» -
Atributo "«attribute.name»" EM "«relation.name»" REFERENCIA "«relation.leftEnding.target.toString»" - «ELSE» -
Atributo "«attribute.name»" EM "«relation.leftEnding.target.toString»«relation.rightEnding.target.toString»" REFERENCIA "«relation.leftEnding.target.toString»" - «ENDIF» - «ENDIF» - «ENDFOR» - «ENDIF» -«««############################################################################################################################################ -«««############################################################################################################################################ -««« MAPEAMENTO DE ENTIDADE DA ESQUERDA EM RELACIONAMENTO MUITOS PARA MUITOS COM E SEM IDENTIFICADOR NA RELAÇÃO -«««############################################################################################################################################ -«««############################################################################################################################################ - «IF entity.name.equalsIgnoreCase(relation.rightEnding.target.toString)» - «FOR attribute : entity.attributes» - «IF attribute.isIsKey» - «IF (relation.name !== null && relation.name !== '')» -
Atributo "«attribute.name»" EM "«relation.name»" REFERENCIA "«relation.rightEnding.target.toString»" - «ELSE» -
Atributo "«attribute.name»" EM "«relation.leftEnding.target.toString»«relation.rightEnding.target.toString»" REFERENCIA "«relation.rightEnding.target.toString»" - «ENDIF» - «ENDIF» - «ENDFOR» - «FOR parent : entity.is» - «IF entity.is !== null» - «FOR chavePai : parent.attributes SEPARATOR ', '» - «IF chavePai.isIsKey» - «IF (relation.name !== null && relation.name !== '')» -
Atributo "«chavePai.name»«relation.leftEnding.target.toString»" EM "«relation.name»" REFERENCIA "«parent.name.toString»" -
Atributo "«chavePai.name»«relation.rightEnding.target.toString»" EM "«relation.name»" REFERENCIA "«parent.name.toString»" - «ELSE» -
Atributo "«chavePai.name»«relation.leftEnding.target.toString»" EM "«relation.leftEnding.target.toString»«relation.rightEnding.target.toString»" REFERENCIA "«parent.name.toString»" -
Atributo "«chavePai.name»«relation.rightEnding.target.toString»" EM "«relation.leftEnding.target.toString»«relation.rightEnding.target.toString»" REFERENCIA "«parent.name.toString»" - «ENDIF» - «ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ENDIF» -«««############################################################################################################################################ -«««############################################################################################################################################ -««« MAPEAMENTO DE AUTORELACIONAMENTO -«««############################################################################################################################################ -«««############################################################################################################################################ - «IF (relation.leftEnding.cardinality == "(0:1)" || relation.leftEnding.cardinality == "(1:1)") && (relation.rightEnding.cardinality == "(0:1)" || relation.rightEnding.cardinality == "(1:1)")» - «FOR entity : modeloER.entities» - «IF entity.name.equalsIgnoreCase(relation.leftEnding.target.toString) && entity.name.equalsIgnoreCase(relation.rightEnding.target.toString)» - «FOR attribute : entity.attributes» - «IF attribute.isIsKey» -
Atributo "«relation.name»" EM "«relation.leftEnding.target.toString»" REFERENCIA "«relation.rightEnding.target.toString»" - «ENDIF» - «ENDFOR» - «FOR parent : entity.is» - «IF entity.is !== null» - «FOR chavePai : parent.attributes» - «IF chavePai.isIsKey» -
Atributo "«relation.name»" EM "«relation.rightEnding.target.toString»" REFERENCIA "«parent.name»" - «ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ELSEIF entity.name.equalsIgnoreCase(relation.leftEnding.target.toString) && !(entity.name.equalsIgnoreCase(relation.rightEnding.target.toString))» - «FOR attribute : entity.attributes» - «IF attribute.isIsKey» - «IF relation.name === null || relation.name == ''» -
Atributo "«attribute.name»" EM "«relation.rightEnding.target.toString»" REFERENCIA "«relation.leftEnding.target.toString»" - «ELSE» -
Atributo "«attribute.name»" EM "«relation.rightEnding.target.toString»" REFERENCIA "«relation.leftEnding.target.toString»" - «ENDIF» - «ENDIF» - «ENDFOR» - «FOR parent : entity.is» - «IF entity.is !== null» - «FOR chavePai : parent.attributes» - «IF chavePai.isIsKey» -
Atributo "«chavePai.name»«relation.leftEnding.target»" EM "«relation.rightEnding.target.toString»" REFERENCIA "«parent.name»" - «ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ENDIF» - «ENDFOR» - «ENDIF» -«ENDFOR» -«««

RELAÇÕES MODELADAS

-««««FOR relation : modeloER.relations» -«««
[«relation.name»] «relation.leftEnding.cardinality» «relation.leftEnding.target» relates «relation.rightEnding.target» «relation.rightEnding.cardinality» -««««ENDFOR» -««« -««« - ''' +

+
+ «/** + * + * Display of inferred references through modeled relationships (foreign keys) + * + */» +
+

References

+

+ «FOR relation : modeloER.relations SEPARATOR "

"» + «relation.name» >>> «relation.leftEnding.cardinality.toString» «relation.leftEnding.target» relates «relation.rightEnding.target.toString» «relation.rightEnding.cardinality» + «ENDFOR» +

+
+ + + ''' ) } + } diff --git a/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/.ErDslRuntimeModule.xtendbin b/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/.ErDslRuntimeModule.xtendbin index be79612..79e54a7 100644 Binary files a/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/.ErDslRuntimeModule.xtendbin and b/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/.ErDslRuntimeModule.xtendbin differ diff --git a/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/.ErDslStandaloneSetup.xtendbin b/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/.ErDslStandaloneSetup.xtendbin index 894b918..2235eb5 100644 Binary files a/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/.ErDslStandaloneSetup.xtendbin and b/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/.ErDslStandaloneSetup.xtendbin differ diff --git a/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/.ErDslGenerator.java._trace b/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/.ErDslGenerator.java._trace index 7121335..841ad84 100644 Binary files a/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/.ErDslGenerator.java._trace and b/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/.ErDslGenerator.java._trace differ diff --git a/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/.ErDslGenerator.xtendbin b/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/.ErDslGenerator.xtendbin index 3be60ca..8459d4d 100644 Binary files a/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/.ErDslGenerator.xtendbin and b/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/.ErDslGenerator.xtendbin differ diff --git a/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/ErDslGenerator.java b/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/ErDslGenerator.java index 1841e45..c6680f3 100644 --- a/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/ErDslGenerator.java +++ b/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/ErDslGenerator.java @@ -3,7 +3,6 @@ */ package org.xtext.unipampa.erdsl.generator; -import com.google.common.base.Objects; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.resource.Resource; @@ -11,6 +10,7 @@ import org.eclipse.xtext.generator.AbstractGenerator; import org.eclipse.xtext.generator.IFileSystemAccess2; import org.eclipse.xtext.generator.IGeneratorContext; +import org.eclipse.xtext.xbase.lib.StringExtensions; import org.xtext.unipampa.erdsl.erDsl.Attribute; import org.xtext.unipampa.erdsl.erDsl.ERModel; import org.xtext.unipampa.erdsl.erDsl.Entity; @@ -35,14 +35,66 @@ public void doGenerate(final Resource resource, final IFileSystemAccess2 fsa, fi _builder.newLine(); _builder.append(""); _builder.newLine(); + _builder.append(""); + _builder.newLine(); + _builder.append("\t"); + _builder.append("ERtext Logical schema"); + _builder.newLine(); + _builder.append("\t"); + _builder.append(""); + _builder.newLine(); + _builder.append("\t"); + _builder.append(""); + _builder.newLine(); + _builder.append(""); + _builder.newLine(); _builder.append(" "); _builder.newLine(); - _builder.append("

DOMÍNIO


"); + _builder.append("
"); + _builder.newLine(); + _builder.append("

ERtext Logical schema

"); + _builder.newLine(); + _builder.append("
"); + _builder.newLine(); + _builder.newLine(); + _builder.append("
"); _builder.newLine(); - String _name_1 = modeloER.getDomain().getName(); - _builder.append(_name_1); + _builder.append("

Domain

"); + _builder.newLine(); + _builder.append("

"); + String _upperCase = modeloER.getDomain().getName().toUpperCase(); + _builder.append(_upperCase); + _builder.append("

"); _builder.newLineIfNotEmpty(); - _builder.append("

TABELAS LÓGICAS


\t\t\t"); + _builder.append("
"); + _builder.newLine(); + _builder.newLine(); + _builder.append("
"); + _builder.newLine(); + _builder.append("

Entities

"); + _builder.newLine(); + _builder.append("

"); _builder.newLine(); { EList _entities = modeloER.getEntities(); @@ -51,1311 +103,218 @@ public void doGenerate(final Resource resource, final IFileSystemAccess2 fsa, fi if (!_hasElements) { _hasElements = true; } else { - _builder.appendImmediate(")
", ""); + _builder.appendImmediate(" )

", ""); } - String _name_2 = entity.getName(); - _builder.append(_name_2); + String _upperCase_1 = entity.getName().toUpperCase(); + _builder.append(_upperCase_1); _builder.append(" ("); _builder.newLineIfNotEmpty(); - _builder.append("\t"); + _builder.newLine(); { - EList _is = entity.getIs(); - for(final Entity parent : _is) { + Entity _is = entity.getIs(); + boolean _tripleEquals = (_is == null); + boolean _not = (!_tripleEquals); + if (_not) { { - EList _is_1 = entity.getIs(); - boolean _tripleNotEquals = (_is_1 != null); - if (_tripleNotEquals) { + EList _entities_1 = modeloER.getEntities(); + for(final Entity aux : _entities_1) { { - EList _attributes = parent.getAttributes(); - for(final Attribute chavePai : _attributes) { - { - boolean _isIsKey = chavePai.isIsKey(); - if (_isIsKey) { - _builder.append(""); - String _name_3 = chavePai.getName(); - _builder.append(_name_3, "\t"); - _builder.append("* [Referência para: "); - String _name_4 = parent.getName(); - _builder.append(_name_4, "\t"); - _builder.append("], "); - } - } + boolean _equalsIgnoreCase = aux.getName().equalsIgnoreCase(entity.getIs().toString()); + if (_equalsIgnoreCase) { + _builder.append(""); + String _name_1 = aux.getName(); + _builder.append(_name_1); + _builder.append("*, "); + _builder.newLineIfNotEmpty(); } } } } } } - _builder.newLineIfNotEmpty(); + _builder.append("\t"); + _builder.newLine(); { - EList _attributes_1 = entity.getAttributes(); + EList _attributes = entity.getAttributes(); boolean _hasElements_1 = false; - for(final Attribute attribute : _attributes_1) { + for(final Attribute attribute : _attributes) { if (!_hasElements_1) { _hasElements_1 = true; } else { - _builder.appendImmediate(", ", "\t"); + _builder.appendImmediate(", ", ""); } - _builder.append("\t"); { - boolean _isIsKey_1 = attribute.isIsKey(); - if (_isIsKey_1) { + boolean _isIsKey = attribute.isIsKey(); + if (_isIsKey) { _builder.append(""); - String _name_5 = attribute.getName(); - _builder.append(_name_5, "\t"); + String _name_2 = attribute.getName(); + _builder.append(_name_2); _builder.append("*"); + _builder.newLineIfNotEmpty(); } else { - String _name_6 = attribute.getName(); - _builder.append(_name_6, "\t"); - } - } - } - } - _builder.newLineIfNotEmpty(); - { - EList _relations = modeloER.getRelations(); - for(final Relation relationAux : _relations) { - { - if (((Objects.equal(relationAux.getLeftEnding().getCardinality(), "(0:1)") || Objects.equal(relationAux.getLeftEnding().getCardinality(), "(1:1)")) && (Objects.equal(relationAux.getRightEnding().getCardinality(), "(0:N)") || Objects.equal(relationAux.getRightEnding().getCardinality(), "(1:N)")))) { - { - EList _entities_1 = modeloER.getEntities(); - for(final Entity entityAux : _entities_1) { - { - if ((entityAux.getName().equalsIgnoreCase(relationAux.getRightEnding().getTarget().toString()) && entityAux.getName().equalsIgnoreCase(entity.getName().toString()))) { - { - EList _entities_2 = modeloER.getEntities(); - for(final Entity entityMapeada : _entities_2) { - { - boolean _equalsIgnoreCase = entityMapeada.getName().equalsIgnoreCase(relationAux.getLeftEnding().getTarget().toString()); - if (_equalsIgnoreCase) { - { - EList _attributes_2 = entityMapeada.getAttributes(); - boolean _hasElements_2 = false; - for(final Attribute attributeAux : _attributes_2) { - if (!_hasElements_2) { - _hasElements_2 = true; - } else { - _builder.appendImmediate(",", ""); - } - { - boolean _isIsKey_2 = attributeAux.isIsKey(); - if (_isIsKey_2) { - String _name_7 = attributeAux.getName(); - _builder.append(_name_7); - } - } - _builder.newLineIfNotEmpty(); - } - } - { - EList _is_2 = entityMapeada.getIs(); - for(final Entity entityMapeadaPai : _is_2) { - { - EList _attributes_3 = entityMapeadaPai.getAttributes(); - boolean _hasElements_3 = false; - for(final Attribute atributoPai : _attributes_3) { - if (!_hasElements_3) { - _hasElements_3 = true; - } else { - _builder.appendImmediate(",", ""); - } - { - boolean _isIsKey_3 = atributoPai.isIsKey(); - if (_isIsKey_3) { - String _name_8 = atributoPai.getName(); - _builder.append(_name_8); - String _name_9 = entityMapeada.getName(); - _builder.append(_name_9); - _builder.newLineIfNotEmpty(); - } - } - } - } - } - } - { - EList _attributes_4 = relationAux.getAttributes(); - boolean _tripleNotEquals_1 = (_attributes_4 != null); - if (_tripleNotEquals_1) { - { - EList _attributes_5 = relationAux.getAttributes(); - boolean _hasElements_4 = false; - for(final Attribute relationMapeada : _attributes_5) { - if (!_hasElements_4) { - _hasElements_4 = true; - } else { - _builder.appendImmediate(",", ""); - } - String _name_10 = relationMapeada.getName(); - _builder.append(_name_10); - } - } - _builder.newLineIfNotEmpty(); - } - } - } - } - } - } - } - } - } - } - } - } - { - if (((Objects.equal(relationAux.getLeftEnding().getCardinality(), "(0:N)") || Objects.equal(relationAux.getLeftEnding().getCardinality(), "(1:N)")) && (Objects.equal(relationAux.getRightEnding().getCardinality(), "(0:1)") || Objects.equal(relationAux.getRightEnding().getCardinality(), "(1:1)")))) { - { - EList _entities_3 = modeloER.getEntities(); - for(final Entity entityAux_1 : _entities_3) { - { - if ((entityAux_1.getName().equalsIgnoreCase(relationAux.getLeftEnding().getTarget().toString()) && entityAux_1.getName().equalsIgnoreCase(entity.getName().toString()))) { - { - EList _entities_4 = modeloER.getEntities(); - for(final Entity entityMapeada_1 : _entities_4) { - { - boolean _equalsIgnoreCase_1 = entityMapeada_1.getName().equalsIgnoreCase(relationAux.getRightEnding().getTarget().toString()); - if (_equalsIgnoreCase_1) { - { - EList _attributes_6 = entityMapeada_1.getAttributes(); - boolean _hasElements_5 = false; - for(final Attribute attributeAux_1 : _attributes_6) { - if (!_hasElements_5) { - _hasElements_5 = true; - } else { - _builder.appendImmediate(",", ""); - } - { - boolean _isIsKey_4 = attributeAux_1.isIsKey(); - if (_isIsKey_4) { - _builder.append(", "); - String _name_11 = attributeAux_1.getName(); - _builder.append(_name_11); - } - } - _builder.newLineIfNotEmpty(); - } - } - { - EList _is_3 = entityMapeada_1.getIs(); - for(final Entity entityMapeadaPai_1 : _is_3) { - { - EList _attributes_7 = entityMapeadaPai_1.getAttributes(); - boolean _hasElements_6 = false; - for(final Attribute atributoPai_1 : _attributes_7) { - if (!_hasElements_6) { - _hasElements_6 = true; - } else { - _builder.appendImmediate(",", ""); - } - { - boolean _isIsKey_5 = atributoPai_1.isIsKey(); - if (_isIsKey_5) { - String _name_12 = atributoPai_1.getName(); - _builder.append(_name_12); - String _name_13 = entityMapeada_1.getName(); - _builder.append(_name_13); - _builder.newLineIfNotEmpty(); - } - } - } - } - } - } - { - EList _attributes_8 = relationAux.getAttributes(); - boolean _tripleNotEquals_2 = (_attributes_8 != null); - if (_tripleNotEquals_2) { - { - EList _attributes_9 = relationAux.getAttributes(); - boolean _hasElements_7 = false; - for(final Attribute relationMapeada_1 : _attributes_9) { - if (!_hasElements_7) { - _hasElements_7 = true; - } else { - _builder.appendImmediate(",", ""); - } - String _name_14 = relationMapeada_1.getName(); - _builder.append(_name_14); - _builder.append(" "); - _builder.newLineIfNotEmpty(); - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - { - EList _relations_1 = modeloER.getRelations(); - for(final Relation relationAux_1 : _relations_1) { - { - if ((Objects.equal(relationAux_1.getLeftEnding().getCardinality(), "(0:1)") && Objects.equal(relationAux_1.getRightEnding().getCardinality(), "(1:1)"))) { - { - EList _entities_5 = modeloER.getEntities(); - for(final Entity entityAux_2 : _entities_5) { - { - if (((relationAux_1.getLeftEnding().getTarget().toString().equalsIgnoreCase(relationAux_1.getRightEnding().getTarget().toString()) && entityAux_2.getName().equalsIgnoreCase(relationAux_1.getRightEnding().getTarget().toString())) && entityAux_2.getName().equalsIgnoreCase(entity.getName().toString()))) { - String _name_15 = relationAux_1.getName(); - _builder.append(_name_15); - _builder.newLineIfNotEmpty(); - } else { - if ((entityAux_2.getName().equalsIgnoreCase(relationAux_1.getRightEnding().getTarget().toString()) && entityAux_2.getName().equalsIgnoreCase(entity.getName().toString()))) { - { - EList _entities_6 = modeloER.getEntities(); - for(final Entity entityMapeada_2 : _entities_6) { - { - boolean _equalsIgnoreCase_2 = entityMapeada_2.getName().equalsIgnoreCase(relationAux_1.getLeftEnding().getTarget().toString()); - if (_equalsIgnoreCase_2) { - { - EList _attributes_10 = entityMapeada_2.getAttributes(); - boolean _hasElements_8 = false; - for(final Attribute attributeAux_2 : _attributes_10) { - if (!_hasElements_8) { - _hasElements_8 = true; - } else { - _builder.appendImmediate(",", ""); - } - { - boolean _isIsKey_6 = attributeAux_2.isIsKey(); - if (_isIsKey_6) { - String _name_16 = attributeAux_2.getName(); - _builder.append(_name_16); - _builder.newLineIfNotEmpty(); - } - } - } - } - { - EList _is_4 = entityMapeada_2.getIs(); - for(final Entity entityMapeadaPai_2 : _is_4) { - { - EList _attributes_11 = entityMapeadaPai_2.getAttributes(); - boolean _hasElements_9 = false; - for(final Attribute atributoPai_2 : _attributes_11) { - if (!_hasElements_9) { - _hasElements_9 = true; - } else { - _builder.appendImmediate(",", ""); - } - { - boolean _isIsKey_7 = atributoPai_2.isIsKey(); - if (_isIsKey_7) { - _builder.append(" "); - String _name_17 = atributoPai_2.getName(); - _builder.append(_name_17); - String _name_18 = entityMapeada_2.getName(); - _builder.append(_name_18); - _builder.newLineIfNotEmpty(); - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } else { - if ((Objects.equal(relationAux_1.getLeftEnding().getCardinality(), "(1:1)") && Objects.equal(relationAux_1.getRightEnding().getCardinality(), "(0:1)"))) { - { - EList _entities_7 = modeloER.getEntities(); - for(final Entity entityAux_3 : _entities_7) { - { - if (((relationAux_1.getLeftEnding().getTarget().toString().equalsIgnoreCase(relationAux_1.getRightEnding().getTarget().toString()) && entityAux_3.getName().equalsIgnoreCase(relationAux_1.getRightEnding().getTarget().toString())) && entityAux_3.getName().equalsIgnoreCase(entity.getName().toString()))) { - String _name_19 = relationAux_1.getName(); - _builder.append(_name_19); - _builder.newLineIfNotEmpty(); - } else { - if ((entityAux_3.getName().equalsIgnoreCase(relationAux_1.getLeftEnding().getTarget().toString()) && entityAux_3.getName().equalsIgnoreCase(entity.getName().toString()))) { - { - EList _entities_8 = modeloER.getEntities(); - for(final Entity entityMapeada_3 : _entities_8) { - { - boolean _equalsIgnoreCase_3 = entityMapeada_3.getName().equalsIgnoreCase(relationAux_1.getRightEnding().getTarget().toString()); - if (_equalsIgnoreCase_3) { - { - EList _attributes_12 = entityMapeada_3.getAttributes(); - boolean _hasElements_10 = false; - for(final Attribute attributeAux_3 : _attributes_12) { - if (!_hasElements_10) { - _hasElements_10 = true; - } else { - _builder.appendImmediate(",", ""); - } - { - boolean _isIsKey_8 = attributeAux_3.isIsKey(); - if (_isIsKey_8) { - _builder.append(", "); - String _name_20 = attributeAux_3.getName(); - _builder.append(_name_20); - _builder.newLineIfNotEmpty(); - } - } - } - } - { - EList _is_5 = entityMapeada_3.getIs(); - for(final Entity entityMapeadaPai_3 : _is_5) { - { - EList _attributes_13 = entityMapeadaPai_3.getAttributes(); - boolean _hasElements_11 = false; - for(final Attribute atributoPai_3 : _attributes_13) { - if (!_hasElements_11) { - _hasElements_11 = true; - } else { - _builder.appendImmediate(",", "\t"); - } - _builder.append("\t"); - { - boolean _isIsKey_9 = atributoPai_3.isIsKey(); - if (_isIsKey_9) { - _builder.append(" "); - String _name_21 = atributoPai_3.getName(); - _builder.append(_name_21, "\t"); - String _name_22 = entityMapeada_3.getName(); - _builder.append(_name_22, "\t"); - _builder.newLineIfNotEmpty(); - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } else { - if ((Objects.equal(relationAux_1.getLeftEnding().getCardinality(), "(0:1)") && Objects.equal(relationAux_1.getRightEnding().getCardinality(), "(0:1)"))) { - { - EList _entities_9 = modeloER.getEntities(); - for(final Entity entityAux_4 : _entities_9) { - { - if (((relationAux_1.getLeftEnding().getTarget().toString().equalsIgnoreCase(relationAux_1.getRightEnding().getTarget().toString()) && entityAux_4.getName().equalsIgnoreCase(relationAux_1.getRightEnding().getTarget().toString())) && entityAux_4.getName().equalsIgnoreCase(entity.getName().toString()))) { - String _name_23 = relationAux_1.getName(); - _builder.append(_name_23); - _builder.newLineIfNotEmpty(); - } else { - if ((entityAux_4.getName().equalsIgnoreCase(relationAux_1.getRightEnding().getTarget().toString()) && entityAux_4.getName().equalsIgnoreCase(entity.getName().toString()))) { - { - EList _entities_10 = modeloER.getEntities(); - for(final Entity entityMapeada_4 : _entities_10) { - { - boolean _equalsIgnoreCase_4 = entityMapeada_4.getName().equalsIgnoreCase(relationAux_1.getLeftEnding().getTarget().toString()); - if (_equalsIgnoreCase_4) { - { - EList _attributes_14 = entityMapeada_4.getAttributes(); - for(final Attribute attributeAux_4 : _attributes_14) { - { - boolean _isIsKey_10 = attributeAux_4.isIsKey(); - if (_isIsKey_10) { - _builder.append(", "); - String _name_24 = attributeAux_4.getName(); - _builder.append(_name_24); - _builder.newLineIfNotEmpty(); - } - } - } - } - { - EList _is_6 = entityMapeada_4.getIs(); - for(final Entity entityMapeadaPai_4 : _is_6) { - { - EList _attributes_15 = entityMapeadaPai_4.getAttributes(); - for(final Attribute atributoPai_4 : _attributes_15) { - { - boolean _isIsKey_11 = atributoPai_4.isIsKey(); - if (_isIsKey_11) { - _builder.append(", "); - String _name_25 = atributoPai_4.getName(); - _builder.append(_name_25); - String _name_26 = entityMapeada_4.getName(); - _builder.append(_name_26); - _builder.newLineIfNotEmpty(); - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } else { - if ((Objects.equal(relationAux_1.getLeftEnding().getCardinality(), "(1:1)") && Objects.equal(relationAux_1.getRightEnding().getCardinality(), "(1:1)"))) { - { - EList _entities_11 = modeloER.getEntities(); - for(final Entity entityAux_5 : _entities_11) { - { - if (((relationAux_1.getLeftEnding().getTarget().toString().equalsIgnoreCase(relationAux_1.getRightEnding().getTarget().toString()) && entityAux_5.getName().equalsIgnoreCase(relationAux_1.getRightEnding().getTarget().toString())) && entityAux_5.getName().equalsIgnoreCase(entity.getName().toString()))) { - String _name_27 = relationAux_1.getName(); - _builder.append(_name_27); - _builder.newLineIfNotEmpty(); - } else { - if ((entityAux_5.getName().equalsIgnoreCase(relationAux_1.getRightEnding().getTarget().toString()) && entityAux_5.getName().equalsIgnoreCase(entity.getName().toString()))) { - { - EList _entities_12 = modeloER.getEntities(); - for(final Entity entityMapeada_5 : _entities_12) { - { - boolean _equalsIgnoreCase_5 = entityMapeada_5.getName().equalsIgnoreCase(relationAux_1.getLeftEnding().getTarget().toString()); - if (_equalsIgnoreCase_5) { - { - EList _attributes_16 = entityMapeada_5.getAttributes(); - for(final Attribute attributeAux_5 : _attributes_16) { - { - boolean _isIsKey_12 = attributeAux_5.isIsKey(); - if (_isIsKey_12) { - _builder.append(", "); - String _name_28 = attributeAux_5.getName(); - _builder.append(_name_28); - _builder.newLineIfNotEmpty(); - } - } - } - } - { - EList _is_7 = entityMapeada_5.getIs(); - for(final Entity entityMapeadaPai_5 : _is_7) { - { - EList _attributes_17 = entityMapeadaPai_5.getAttributes(); - for(final Attribute atributoPai_5 : _attributes_17) { - { - boolean _isIsKey_13 = atributoPai_5.isIsKey(); - if (_isIsKey_13) { - _builder.append(", "); - String _name_29 = atributoPai_5.getName(); - _builder.append(_name_29); - String _name_30 = entityMapeada_5.getName(); - _builder.append(_name_30); - _builder.newLineIfNotEmpty(); - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } + boolean _isIsKey_1 = attribute.isIsKey(); + boolean _not_1 = (!_isIsKey_1); + if (_not_1) { + String _name_3 = attribute.getName(); + _builder.append(_name_3); + _builder.newLineIfNotEmpty(); } } } } } + _builder.newLine(); + _builder.newLine(); + _builder.newLine(); } if (_hasElements) { _builder.append(")
"); } } + _builder.newLine(); { - EList _relations_2 = modeloER.getRelations(); - boolean _hasElements_12 = false; - for(final Relation relationAux_2 : _relations_2) { - if (!_hasElements_12) { - _hasElements_12 = true; - } else { - _builder.appendImmediate(")
", ""); - } + EList _relations = modeloER.getRelations(); + for(final Relation relation : _relations) { { - if (((Objects.equal(relationAux_2.getLeftEnding().getCardinality(), "(0:N)") || Objects.equal(relationAux_2.getLeftEnding().getCardinality(), "(1:N)")) && (Objects.equal(relationAux_2.getRightEnding().getCardinality(), "(0:N)") || Objects.equal(relationAux_2.getRightEnding().getCardinality(), "(1:N)")))) { + if (((relation.getLeftEnding().getCardinality().equalsIgnoreCase("(0:N)") || relation.getLeftEnding().getCardinality().equalsIgnoreCase("(1:N)")) && (relation.getRightEnding().getCardinality().equalsIgnoreCase("(0:N)") || relation.getRightEnding().getCardinality().equalsIgnoreCase("(1:N)")))) { + _builder.newLine(); { - if ((Objects.equal(relationAux_2.getName(), "") || (relationAux_2.getName() == null))) { - EObject _target = relationAux_2.getLeftEnding().getTarget(); - _builder.append(_target); - EObject _target_1 = relationAux_2.getRightEnding().getTarget(); - _builder.append(_target_1); + boolean _isNullOrEmpty = StringExtensions.isNullOrEmpty(relation.getName()); + if (_isNullOrEmpty) { + _builder.append("
"); + String _upperCase_2 = relation.getLeftEnding().getTarget().toString().toUpperCase(); + _builder.append(_upperCase_2); + String _upperCase_3 = relation.getRightEnding().getTarget().toString().toUpperCase(); + _builder.append(_upperCase_3); _builder.append(" ("); _builder.newLineIfNotEmpty(); + } else { + boolean _isNullOrEmpty_1 = StringExtensions.isNullOrEmpty(relation.getName()); + boolean _not_2 = (!_isNullOrEmpty_1); + if (_not_2) { + _builder.append("
"); + String _upperCase_4 = relation.getName().toUpperCase(); + _builder.append(_upperCase_4); + _builder.append(" ("); + _builder.newLineIfNotEmpty(); + } + } + } + _builder.newLine(); + { + EList _entities_2 = modeloER.getEntities(); + for(final Entity entity_1 : _entities_2) { { - EList _entities_13 = modeloER.getEntities(); - for(final Entity entityAux_6 : _entities_13) { - { - boolean _equalsIgnoreCase_6 = entityAux_6.getName().equalsIgnoreCase(relationAux_2.getLeftEnding().getTarget().toString()); - if (_equalsIgnoreCase_6) { - { - EList _attributes_18 = entityAux_6.getAttributes(); - for(final Attribute atributoAux : _attributes_18) { - _builder.append("\t"); - { - boolean _isIsKey_14 = atributoAux.isIsKey(); - if (_isIsKey_14) { - _builder.append(""); - String _name_31 = atributoAux.getName(); - _builder.append(_name_31, "\t"); - _builder.append("*!"); - } - } - _builder.newLineIfNotEmpty(); - } - } - { - EList _is_8 = entityAux_6.getIs(); - for(final Entity parent_1 : _is_8) { - { - EList _is_9 = entityAux_6.getIs(); - boolean _tripleNotEquals_3 = (_is_9 != null); - if (_tripleNotEquals_3) { - { - EList _attributes_19 = parent_1.getAttributes(); - for(final Attribute chavePai_1 : _attributes_19) { - _builder.append("\t"); - { - boolean _isIsKey_15 = chavePai_1.isIsKey(); - if (_isIsKey_15) { - _builder.append(""); - String _name_32 = chavePai_1.getName(); - _builder.append(_name_32, "\t"); - String _string = relationAux_2.getLeftEnding().getTarget().toString(); - _builder.append(_string, "\t"); - _builder.append("*@"); - } - } - _builder.newLineIfNotEmpty(); - } - } - } - } - } - } - } - } + boolean _equalsIgnoreCase_1 = relation.getLeftEnding().getTarget().toString().equalsIgnoreCase(entity_1.getName()); + if (_equalsIgnoreCase_1) { { - boolean _equalsIgnoreCase_7 = entityAux_6.getName().equalsIgnoreCase(relationAux_2.getRightEnding().getTarget().toString()); - if (_equalsIgnoreCase_7) { + EList _attributes_1 = entity_1.getAttributes(); + for(final Attribute attribute_1 : _attributes_1) { { - EList _attributes_20 = entityAux_6.getAttributes(); - for(final Attribute atributoAux_1 : _attributes_20) { - _builder.append("\t"); - { - boolean _isIsKey_16 = atributoAux_1.isIsKey(); - if (_isIsKey_16) { - _builder.append(""); - String _name_33 = atributoAux_1.getName(); - _builder.append(_name_33, "\t"); - _builder.append("*#"); - } - } + boolean _isIsKey_2 = attribute_1.isIsKey(); + if (_isIsKey_2) { + _builder.append(""); + String _name_4 = attribute_1.getName(); + _builder.append(_name_4); + _builder.append("*,"); _builder.newLineIfNotEmpty(); } } - { - EList _is_10 = entityAux_6.getIs(); - for(final Entity parent_2 : _is_10) { - { - EList _is_11 = entityAux_6.getIs(); - boolean _tripleNotEquals_4 = (_is_11 != null); - if (_tripleNotEquals_4) { - { - EList _attributes_21 = parent_2.getAttributes(); - for(final Attribute chavePai_2 : _attributes_21) { - _builder.append("\t"); - { - boolean _isIsKey_17 = chavePai_2.isIsKey(); - if (_isIsKey_17) { - _builder.append(""); - String _name_34 = chavePai_2.getName(); - _builder.append(_name_34, "\t"); - String _string_1 = relationAux_2.getRightEnding().getTarget().toString(); - _builder.append(_string_1, "\t"); - _builder.append("*$"); - } - } - _builder.newLineIfNotEmpty(); - } - } - } - } - } - } } } } } - } else { - String _name_35 = relationAux_2.getName(); - _builder.append(_name_35); - _builder.append(" ("); - _builder.newLineIfNotEmpty(); + _builder.newLine(); { - EList _entities_14 = modeloER.getEntities(); - for(final Entity entityAux_7 : _entities_14) { + boolean _equalsIgnoreCase_2 = relation.getRightEnding().getTarget().toString().equalsIgnoreCase(entity_1.getName()); + if (_equalsIgnoreCase_2) { { - boolean _equalsIgnoreCase_8 = entityAux_7.getName().equalsIgnoreCase(relationAux_2.getLeftEnding().getTarget().toString()); - if (_equalsIgnoreCase_8) { + EList _attributes_2 = entity_1.getAttributes(); + for(final Attribute attribute_2 : _attributes_2) { { - EList _attributes_22 = entityAux_7.getAttributes(); - for(final Attribute atributoAux_2 : _attributes_22) { - _builder.append("\t"); - { - boolean _isIsKey_18 = atributoAux_2.isIsKey(); - if (_isIsKey_18) { - _builder.append(""); - String _name_36 = atributoAux_2.getName(); - _builder.append(_name_36, "\t"); - _builder.append("*"); - } - } + boolean _isIsKey_3 = attribute_2.isIsKey(); + if (_isIsKey_3) { + _builder.append(""); + String _name_5 = attribute_2.getName(); + _builder.append(_name_5); + _builder.append("*"); _builder.newLineIfNotEmpty(); } } - { - EList _is_12 = entityAux_7.getIs(); - for(final Entity parent_3 : _is_12) { - { - EList _is_13 = entityAux_7.getIs(); - boolean _tripleNotEquals_5 = (_is_13 != null); - if (_tripleNotEquals_5) { - { - EList _attributes_23 = parent_3.getAttributes(); - for(final Attribute chavePai_3 : _attributes_23) { - _builder.append("\t"); - { - boolean _isIsKey_19 = chavePai_3.isIsKey(); - if (_isIsKey_19) { - _builder.append(""); - String _name_37 = chavePai_3.getName(); - _builder.append(_name_37, "\t"); - String _string_2 = relationAux_2.getLeftEnding().getTarget().toString(); - _builder.append(_string_2, "\t"); - _builder.append("*"); - } - } - _builder.newLineIfNotEmpty(); - } - } - } - } - } - } - } - } - { - boolean _equalsIgnoreCase_9 = entityAux_7.getName().equalsIgnoreCase(relationAux_2.getRightEnding().getTarget().toString()); - if (_equalsIgnoreCase_9) { - { - EList _attributes_24 = entityAux_7.getAttributes(); - for(final Attribute atributoAux_3 : _attributes_24) { - _builder.append("\t"); - { - boolean _isIsKey_20 = atributoAux_3.isIsKey(); - if (_isIsKey_20) { - _builder.append(""); - String _name_38 = atributoAux_3.getName(); - _builder.append(_name_38, "\t"); - _builder.append("*"); - } - } - _builder.newLineIfNotEmpty(); - } - } - { - EList _is_14 = entityAux_7.getIs(); - for(final Entity parent_4 : _is_14) { - { - EList _is_15 = entityAux_7.getIs(); - boolean _tripleNotEquals_6 = (_is_15 != null); - if (_tripleNotEquals_6) { - { - EList _attributes_25 = parent_4.getAttributes(); - for(final Attribute chavePai_4 : _attributes_25) { - _builder.append("\t"); - { - boolean _isIsKey_21 = chavePai_4.isIsKey(); - if (_isIsKey_21) { - _builder.append(""); - String _name_39 = chavePai_4.getName(); - _builder.append(_name_39, "\t"); - String _string_3 = relationAux_2.getLeftEnding().getTarget().toString(); - _builder.append(_string_3, "\t"); - _builder.append("*"); - } - } - _builder.newLineIfNotEmpty(); - } - } - } - } - } - } } } } } } } + _builder.newLine(); { - EList _attributes_26 = relationAux_2.getAttributes(); - boolean _tripleNotEquals_7 = (_attributes_26 != null); - if (_tripleNotEquals_7) { + EList _attributes_3 = relation.getAttributes(); + for(final Attribute attribute_3 : _attributes_3) { { - EList _attributes_27 = relationAux_2.getAttributes(); - boolean _hasElements_13 = false; - for(final Attribute atributoRelacaoMuitosParaMuitos : _attributes_27) { - if (!_hasElements_13) { - _hasElements_13 = true; - } else { - _builder.appendImmediate(",", ""); - } - String _name_40 = atributoRelacaoMuitosParaMuitos.getName(); - _builder.append(_name_40); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - { - boolean _isIsKey_22 = atributoRelacaoMuitosParaMuitos.isIsKey(); - if (_isIsKey_22) { - _builder.append("*"); - } - } + boolean _isNullOrEmpty_2 = StringExtensions.isNullOrEmpty(attribute_3.getName()); + boolean _not_3 = (!_isNullOrEmpty_2); + if (_not_3) { + _builder.append(", "); + String _name_6 = attribute_3.getName(); + _builder.append(_name_6); _builder.newLineIfNotEmpty(); } } } } + _builder.append(")
"); + _builder.newLine(); + _builder.newLine(); } } } - if (_hasElements_12) { - _builder.append("
"); - } } - _builder.append("

CHAVES REFERENCIAIS


"); + _builder.append("

"); + _builder.newLine(); + _builder.append("
"); + _builder.newLine(); + _builder.newLine(); + _builder.append("
"); + _builder.newLine(); + _builder.append("

References

"); + _builder.newLine(); + _builder.append("

"); _builder.newLine(); { - EList _relations_3 = modeloER.getRelations(); - for(final Relation relation : _relations_3) { - { - if (((Objects.equal(relation.getLeftEnding().getCardinality(), "(0:1)") || Objects.equal(relation.getLeftEnding().getCardinality(), "(1:1)")) && (Objects.equal(relation.getRightEnding().getCardinality(), "(0:N)") || Objects.equal(relation.getRightEnding().getCardinality(), "(1:N)")))) { - { - EList _entities_15 = modeloER.getEntities(); - for(final Entity entity_1 : _entities_15) { - { - boolean _equalsIgnoreCase_10 = entity_1.getName().equalsIgnoreCase(relation.getLeftEnding().getTarget().toString()); - if (_equalsIgnoreCase_10) { - { - EList _attributes_28 = entity_1.getAttributes(); - for(final Attribute attribute_1 : _attributes_28) { - { - boolean _isIsKey_23 = attribute_1.isIsKey(); - if (_isIsKey_23) { - _builder.append("
Atributo \""); - String _name_41 = attribute_1.getName(); - _builder.append(_name_41); - _builder.append("\" EM \""); - String _string_4 = relation.getRightEnding().getTarget().toString(); - _builder.append(_string_4); - _builder.append("\" REFERENCIA \""); - String _string_5 = relation.getLeftEnding().getTarget().toString(); - _builder.append(_string_5); - _builder.append("\""); - _builder.newLineIfNotEmpty(); - } - } - } - } - { - EList _is_16 = entity_1.getIs(); - for(final Entity parent_5 : _is_16) { - { - EList _is_17 = entity_1.getIs(); - boolean _tripleNotEquals_8 = (_is_17 != null); - if (_tripleNotEquals_8) { - { - EList _attributes_29 = parent_5.getAttributes(); - for(final Attribute chavePai_5 : _attributes_29) { - { - boolean _isIsKey_24 = chavePai_5.isIsKey(); - if (_isIsKey_24) { - _builder.append("
Atributo \""); - String _name_42 = chavePai_5.getName(); - _builder.append(_name_42); - String _string_6 = relation.getLeftEnding().getTarget().toString(); - _builder.append(_string_6); - _builder.append("\" EM \""); - String _string_7 = relation.getRightEnding().getTarget().toString(); - _builder.append(_string_7); - _builder.append("\" REFERENCIA \""); - String _name_43 = parent_5.getName(); - _builder.append(_name_43); - _builder.append("\""); - _builder.newLineIfNotEmpty(); - } - } - } - } - } - } - } - } - } - } - } - } - } else { - if (((Objects.equal(relation.getLeftEnding().getCardinality(), "(0:N)") || Objects.equal(relation.getLeftEnding().getCardinality(), "(1:N)")) && (Objects.equal(relation.getRightEnding().getCardinality(), "(0:1)") || Objects.equal(relation.getRightEnding().getCardinality(), "(1:1)")))) { - { - EList _entities_16 = modeloER.getEntities(); - for(final Entity entity_2 : _entities_16) { - { - boolean _equalsIgnoreCase_11 = entity_2.getName().equalsIgnoreCase(relation.getRightEnding().getTarget().toString()); - if (_equalsIgnoreCase_11) { - { - EList _attributes_30 = entity_2.getAttributes(); - for(final Attribute attribute_2 : _attributes_30) { - { - boolean _isIsKey_25 = attribute_2.isIsKey(); - if (_isIsKey_25) { - _builder.append("
Atributo \""); - String _name_44 = attribute_2.getName(); - _builder.append(_name_44); - _builder.append("\" EM \""); - String _string_8 = relation.getLeftEnding().getTarget().toString(); - _builder.append(_string_8); - _builder.append("\" REFERENCIA \""); - String _string_9 = relation.getRightEnding().getTarget().toString(); - _builder.append(_string_9); - _builder.append("\""); - _builder.newLineIfNotEmpty(); - } - } - } - } - { - EList _is_18 = entity_2.getIs(); - for(final Entity parent_6 : _is_18) { - { - EList _is_19 = entity_2.getIs(); - boolean _tripleNotEquals_9 = (_is_19 != null); - if (_tripleNotEquals_9) { - { - EList _attributes_31 = parent_6.getAttributes(); - for(final Attribute chavePai_6 : _attributes_31) { - { - boolean _isIsKey_26 = chavePai_6.isIsKey(); - if (_isIsKey_26) { - _builder.append("
Atributo \""); - String _name_45 = chavePai_6.getName(); - _builder.append(_name_45); - String _string_10 = relation.getRightEnding().getTarget().toString(); - _builder.append(_string_10); - _builder.append("\" EM \""); - String _string_11 = relation.getLeftEnding().getTarget().toString(); - _builder.append(_string_11); - _builder.append("\" REFERENCIA \""); - String _name_46 = parent_6.getName(); - _builder.append(_name_46); - _builder.append("\""); - _builder.newLineIfNotEmpty(); - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - { - if (((Objects.equal(relation.getLeftEnding().getCardinality(), "(0:N)") || Objects.equal(relation.getLeftEnding().getCardinality(), "(1:N)")) && (Objects.equal(relation.getRightEnding().getCardinality(), "(0:1)") || Objects.equal(relation.getRightEnding().getCardinality(), "(1:1)")))) { - { - EList _entities_17 = modeloER.getEntities(); - for(final Entity entity_3 : _entities_17) { - { - if ((entity_3.getName().equalsIgnoreCase(relation.getRightEnding().getTarget().toString()) && (!Objects.equal(relation.getLeftEnding().getTarget().toString(), relation.getRightEnding().getTarget().toString())))) { - { - EList _attributes_32 = entity_3.getAttributes(); - for(final Attribute attribute_3 : _attributes_32) { - { - boolean _isIsKey_27 = attribute_3.isIsKey(); - if (_isIsKey_27) { - _builder.append("
Atributo \""); - String _name_47 = attribute_3.getName(); - _builder.append(_name_47); - _builder.append("\" EM \""); - String _string_12 = relation.getLeftEnding().getTarget().toString(); - _builder.append(_string_12); - _builder.append("\" REFERENCIA \""); - String _string_13 = relation.getRightEnding().getTarget().toString(); - _builder.append(_string_13); - _builder.append("\""); - } - } - _builder.newLineIfNotEmpty(); - } - } - } - } - } - } - } - } - { - if (((Objects.equal(relation.getLeftEnding().getCardinality(), "(0:N)") || Objects.equal(relation.getLeftEnding().getCardinality(), "(1:N)")) && (Objects.equal(relation.getRightEnding().getCardinality(), "(0:N)") || Objects.equal(relation.getRightEnding().getCardinality(), "(1:N)")))) { - { - EList _entities_18 = modeloER.getEntities(); - for(final Entity entity_4 : _entities_18) { - { - boolean _equalsIgnoreCase_12 = entity_4.getName().equalsIgnoreCase(relation.getLeftEnding().getTarget().toString()); - if (_equalsIgnoreCase_12) { - { - EList _attributes_33 = entity_4.getAttributes(); - for(final Attribute attribute_4 : _attributes_33) { - { - boolean _isIsKey_28 = attribute_4.isIsKey(); - if (_isIsKey_28) { - { - if (((relation.getName() != null) && (relation.getName() != ""))) { - _builder.append("
Atributo \""); - String _name_48 = attribute_4.getName(); - _builder.append(_name_48); - _builder.append("\" EM \""); - String _name_49 = relation.getName(); - _builder.append(_name_49); - _builder.append("\" REFERENCIA \""); - String _string_14 = relation.getLeftEnding().getTarget().toString(); - _builder.append(_string_14); - _builder.append("\""); - _builder.newLineIfNotEmpty(); - } else { - _builder.append("
Atributo \""); - String _name_50 = attribute_4.getName(); - _builder.append(_name_50); - _builder.append("\" EM \""); - String _string_15 = relation.getLeftEnding().getTarget().toString(); - _builder.append(_string_15); - String _string_16 = relation.getRightEnding().getTarget().toString(); - _builder.append(_string_16); - _builder.append("\" REFERENCIA \""); - String _string_17 = relation.getLeftEnding().getTarget().toString(); - _builder.append(_string_17); - _builder.append("\""); - _builder.newLineIfNotEmpty(); - } - } - } - } - } - } - } - } - { - boolean _equalsIgnoreCase_13 = entity_4.getName().equalsIgnoreCase(relation.getRightEnding().getTarget().toString()); - if (_equalsIgnoreCase_13) { - { - EList _attributes_34 = entity_4.getAttributes(); - for(final Attribute attribute_5 : _attributes_34) { - { - boolean _isIsKey_29 = attribute_5.isIsKey(); - if (_isIsKey_29) { - { - if (((relation.getName() != null) && (relation.getName() != ""))) { - _builder.append("
Atributo \""); - String _name_51 = attribute_5.getName(); - _builder.append(_name_51); - _builder.append("\" EM \""); - String _name_52 = relation.getName(); - _builder.append(_name_52); - _builder.append("\" REFERENCIA \""); - String _string_18 = relation.getRightEnding().getTarget().toString(); - _builder.append(_string_18); - _builder.append("\""); - _builder.newLineIfNotEmpty(); - } else { - _builder.append("
Atributo \""); - String _name_53 = attribute_5.getName(); - _builder.append(_name_53); - _builder.append("\" EM \""); - String _string_19 = relation.getLeftEnding().getTarget().toString(); - _builder.append(_string_19); - String _string_20 = relation.getRightEnding().getTarget().toString(); - _builder.append(_string_20); - _builder.append("\" REFERENCIA \""); - String _string_21 = relation.getRightEnding().getTarget().toString(); - _builder.append(_string_21); - _builder.append("\""); - _builder.newLineIfNotEmpty(); - } - } - } - } - } - } - { - EList _is_20 = entity_4.getIs(); - for(final Entity parent_7 : _is_20) { - { - EList _is_21 = entity_4.getIs(); - boolean _tripleNotEquals_10 = (_is_21 != null); - if (_tripleNotEquals_10) { - { - EList _attributes_35 = parent_7.getAttributes(); - boolean _hasElements_14 = false; - for(final Attribute chavePai_7 : _attributes_35) { - if (!_hasElements_14) { - _hasElements_14 = true; - } else { - _builder.appendImmediate(", ", ""); - } - { - boolean _isIsKey_30 = chavePai_7.isIsKey(); - if (_isIsKey_30) { - { - if (((relation.getName() != null) && (relation.getName() != ""))) { - _builder.append("
Atributo \""); - String _name_54 = chavePai_7.getName(); - _builder.append(_name_54); - String _string_22 = relation.getLeftEnding().getTarget().toString(); - _builder.append(_string_22); - _builder.append("\" EM \""); - String _name_55 = relation.getName(); - _builder.append(_name_55); - _builder.append("\" REFERENCIA \""); - String _string_23 = parent_7.getName().toString(); - _builder.append(_string_23); - _builder.append("\""); - _builder.newLineIfNotEmpty(); - _builder.append("
Atributo \""); - String _name_56 = chavePai_7.getName(); - _builder.append(_name_56); - String _string_24 = relation.getRightEnding().getTarget().toString(); - _builder.append(_string_24); - _builder.append("\" EM \""); - String _name_57 = relation.getName(); - _builder.append(_name_57); - _builder.append("\" REFERENCIA \""); - String _string_25 = parent_7.getName().toString(); - _builder.append(_string_25); - _builder.append("\""); - _builder.newLineIfNotEmpty(); - } else { - _builder.append("
Atributo \""); - String _name_58 = chavePai_7.getName(); - _builder.append(_name_58); - String _string_26 = relation.getLeftEnding().getTarget().toString(); - _builder.append(_string_26); - _builder.append("\" EM \""); - String _string_27 = relation.getLeftEnding().getTarget().toString(); - _builder.append(_string_27); - String _string_28 = relation.getRightEnding().getTarget().toString(); - _builder.append(_string_28); - _builder.append("\" REFERENCIA \""); - String _string_29 = parent_7.getName().toString(); - _builder.append(_string_29); - _builder.append("\""); - _builder.newLineIfNotEmpty(); - _builder.append("
Atributo \""); - String _name_59 = chavePai_7.getName(); - _builder.append(_name_59); - String _string_30 = relation.getRightEnding().getTarget().toString(); - _builder.append(_string_30); - _builder.append("\" EM \""); - String _string_31 = relation.getLeftEnding().getTarget().toString(); - _builder.append(_string_31); - String _string_32 = relation.getRightEnding().getTarget().toString(); - _builder.append(_string_32); - _builder.append("\" REFERENCIA \""); - String _string_33 = parent_7.getName().toString(); - _builder.append(_string_33); - _builder.append("\""); - _builder.newLineIfNotEmpty(); - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - { - if (((Objects.equal(relation.getLeftEnding().getCardinality(), "(0:1)") || Objects.equal(relation.getLeftEnding().getCardinality(), "(1:1)")) && (Objects.equal(relation.getRightEnding().getCardinality(), "(0:1)") || Objects.equal(relation.getRightEnding().getCardinality(), "(1:1)")))) { - { - EList _entities_19 = modeloER.getEntities(); - for(final Entity entity_5 : _entities_19) { - { - if ((entity_5.getName().equalsIgnoreCase(relation.getLeftEnding().getTarget().toString()) && entity_5.getName().equalsIgnoreCase(relation.getRightEnding().getTarget().toString()))) { - { - EList _attributes_36 = entity_5.getAttributes(); - for(final Attribute attribute_6 : _attributes_36) { - { - boolean _isIsKey_31 = attribute_6.isIsKey(); - if (_isIsKey_31) { - _builder.append("
Atributo \""); - String _name_60 = relation.getName(); - _builder.append(_name_60); - _builder.append("\" EM \""); - String _string_34 = relation.getLeftEnding().getTarget().toString(); - _builder.append(_string_34); - _builder.append("\" REFERENCIA \""); - String _string_35 = relation.getRightEnding().getTarget().toString(); - _builder.append(_string_35); - _builder.append("\""); - _builder.newLineIfNotEmpty(); - } - } - } - } - { - EList _is_22 = entity_5.getIs(); - for(final Entity parent_8 : _is_22) { - { - EList _is_23 = entity_5.getIs(); - boolean _tripleNotEquals_11 = (_is_23 != null); - if (_tripleNotEquals_11) { - { - EList _attributes_37 = parent_8.getAttributes(); - for(final Attribute chavePai_8 : _attributes_37) { - { - boolean _isIsKey_32 = chavePai_8.isIsKey(); - if (_isIsKey_32) { - _builder.append("
Atributo \""); - String _name_61 = relation.getName(); - _builder.append(_name_61); - _builder.append("\" EM \""); - String _string_36 = relation.getRightEnding().getTarget().toString(); - _builder.append(_string_36); - _builder.append("\" REFERENCIA \""); - String _name_62 = parent_8.getName(); - _builder.append(_name_62); - _builder.append("\""); - _builder.newLineIfNotEmpty(); - } - } - } - } - } - } - } - } - } else { - if ((entity_5.getName().equalsIgnoreCase(relation.getLeftEnding().getTarget().toString()) && (!entity_5.getName().equalsIgnoreCase(relation.getRightEnding().getTarget().toString())))) { - { - EList _attributes_38 = entity_5.getAttributes(); - for(final Attribute attribute_7 : _attributes_38) { - { - boolean _isIsKey_33 = attribute_7.isIsKey(); - if (_isIsKey_33) { - { - if (((relation.getName() == null) || Objects.equal(relation.getName(), ""))) { - _builder.append("
Atributo \""); - String _name_63 = attribute_7.getName(); - _builder.append(_name_63); - _builder.append("\" EM \""); - String _string_37 = relation.getRightEnding().getTarget().toString(); - _builder.append(_string_37); - _builder.append("\" REFERENCIA \""); - String _string_38 = relation.getLeftEnding().getTarget().toString(); - _builder.append(_string_38); - _builder.append("\""); - _builder.newLineIfNotEmpty(); - } else { - _builder.append("
Atributo \""); - String _name_64 = attribute_7.getName(); - _builder.append(_name_64); - _builder.append("\" EM \""); - String _string_39 = relation.getRightEnding().getTarget().toString(); - _builder.append(_string_39); - _builder.append("\" REFERENCIA \""); - String _string_40 = relation.getLeftEnding().getTarget().toString(); - _builder.append(_string_40); - _builder.append("\""); - _builder.newLineIfNotEmpty(); - } - } - } - } - } - } - { - EList _is_24 = entity_5.getIs(); - for(final Entity parent_9 : _is_24) { - { - EList _is_25 = entity_5.getIs(); - boolean _tripleNotEquals_12 = (_is_25 != null); - if (_tripleNotEquals_12) { - { - EList _attributes_39 = parent_9.getAttributes(); - for(final Attribute chavePai_9 : _attributes_39) { - { - boolean _isIsKey_34 = chavePai_9.isIsKey(); - if (_isIsKey_34) { - _builder.append("
Atributo \""); - String _name_65 = chavePai_9.getName(); - _builder.append(_name_65); - EObject _target_2 = relation.getLeftEnding().getTarget(); - _builder.append(_target_2); - _builder.append("\" EM \""); - String _string_41 = relation.getRightEnding().getTarget().toString(); - _builder.append(_string_41); - _builder.append("\" REFERENCIA \""); - String _name_66 = parent_9.getName(); - _builder.append(_name_66); - _builder.append("\""); - _builder.newLineIfNotEmpty(); - } - } - } - } - } - } - } - } - } - } - } - } - } - } + EList _relations_1 = modeloER.getRelations(); + boolean _hasElements_2 = false; + for(final Relation relation_1 : _relations_1) { + if (!_hasElements_2) { + _hasElements_2 = true; + } else { + _builder.appendImmediate("

", ""); } + String _name_7 = relation_1.getName(); + _builder.append(_name_7); + _builder.append(" >>> "); + String _string = relation_1.getLeftEnding().getCardinality().toString(); + _builder.append(_string); + _builder.append(" "); + EObject _target = relation_1.getLeftEnding().getTarget(); + _builder.append(_target); + _builder.append(" relates "); + String _string_1 = relation_1.getRightEnding().getTarget().toString(); + _builder.append(_string_1); + _builder.append(" "); + String _cardinality = relation_1.getRightEnding().getCardinality(); + _builder.append(_cardinality); + _builder.newLineIfNotEmpty(); } } + _builder.append("

"); + _builder.newLine(); + _builder.append("
"); + _builder.newLine(); + _builder.append(""); + _builder.newLine(); + _builder.append(""); + _builder.newLine(); fsa.generateFile(_plus_1, _builder); } } diff --git a/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/scoping/.ErDslScopeProvider.xtendbin b/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/scoping/.ErDslScopeProvider.xtendbin index 43e12be..11f116c 100644 Binary files a/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/scoping/.ErDslScopeProvider.xtendbin and b/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/scoping/.ErDslScopeProvider.xtendbin differ diff --git a/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/validation/.ErDslValidator.xtendbin b/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/validation/.ErDslValidator.xtendbin index d697d2b..f1356d5 100644 Binary files a/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/validation/.ErDslValidator.xtendbin and b/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/validation/.ErDslValidator.xtendbin differ