From 47cb59cf5e2c186df7bd00adcae65280566689c2 Mon Sep 17 00:00:00 2001 From: JonnathanRiquelmo Date: Wed, 8 Sep 2021 01:12:02 -0300 Subject: [PATCH] Project Update - Complete rewrite of the HTML generator - Code improvement - Bug fixes --- .../erdsl/ide/.ErDslIdeModule.xtendbin | Bin 1643 -> 1643 bytes .../erdsl/ide/.ErDslIdeSetup.xtendbin | Bin 2433 -> 2433 bytes .../antlr/internal/InternalErDslParser.class | Bin 67792 -> 68010 bytes .../antlr/internal/InternalErDslParser.g | 11 +- .../antlr/internal/InternalErDslParser.tokens | 57 +- .../lexer/InternalErDslLexer$DFA12.class | Bin 3823 -> 3833 bytes .../antlr/lexer/InternalErDslLexer.class | Bin 38819 -> 39922 bytes .../antlr/lexer/InternalErDslLexer.g | 2 + .../antlr/lexer/InternalErDslLexer.tokens | 57 +- .../antlr/internal/InternalErDslParser.g | 11 +- .../antlr/internal/InternalErDslParser.java | 1826 ++++++----- .../antlr/internal/InternalErDslParser.tokens | 57 +- .../antlr/lexer/InternalErDslLexer.g | 2 + .../antlr/lexer/InternalErDslLexer.java | 589 ++-- .../antlr/lexer/InternalErDslLexer.tokens | 57 +- .../erdsl/ide/.ErDslIdeModule.xtendbin | Bin 1643 -> 1643 bytes .../erdsl/ide/.ErDslIdeSetup.xtendbin | Bin 2433 -> 2433 bytes .../unipampa/erdsl/ui/.ErDslUiModule.xtendbin | Bin 2287 -> 2287 bytes .../.ErDslProposalProvider.xtendbin | Bin 1743 -> 1743 bytes .../AbstractErDslProposalProvider.class | Bin 5481 -> 5481 bytes .../.ErDslDescriptionLabelProvider.xtendbin | Bin 1919 -> 1919 bytes .../ui/labeling/.ErDslLabelProvider.xtendbin | Bin 2357 -> 2357 bytes .../.ErDslOutlineTreeProvider.xtendbin | Bin 1773 -> 1773 bytes .../quickfix/.ErDslQuickfixProvider.xtendbin | Bin 1738 -> 1738 bytes .../.ErDslFileTemplateProvider.xtendbin | Bin 4327 -> 4327 bytes .../.ErDslProjectTemplateProvider.xtendbin | Bin 6901 -> 6901 bytes .../AbstractErDslProposalProvider.java | 1 + .../unipampa/erdsl/ui/.ErDslUiModule.xtendbin | Bin 2287 -> 2287 bytes .../.ErDslProposalProvider.xtendbin | Bin 1743 -> 1743 bytes .../.ErDslDescriptionLabelProvider.xtendbin | Bin 1919 -> 1919 bytes .../ui/labeling/.ErDslLabelProvider.xtendbin | Bin 2357 -> 2357 bytes .../.ErDslOutlineTreeProvider.xtendbin | Bin 1773 -> 1773 bytes .../quickfix/.ErDslQuickfixProvider.xtendbin | Bin 1738 -> 1738 bytes .../.ErDslFileTemplateProvider.xtendbin | Bin 4327 -> 4327 bytes .../.ErDslProjectTemplateProvider.xtendbin | Bin 6901 -> 6901 bytes .../erdsl/.ErDslRuntimeModule.xtendbin | Bin 1664 -> 1664 bytes .../erdsl/.ErDslStandaloneSetup.xtendbin | Bin 1937 -> 1937 bytes .../bin/org/xtext/unipampa/erdsl/ErDsl.xtext | 3 +- .../org/xtext/unipampa/erdsl/ErDsl.xtextbin | Bin 3692 -> 3706 bytes .../generator/.ErDslGenerator.java._trace | Bin 165452 -> 3591 bytes .../erdsl/generator/.ErDslGenerator.xtendbin | Bin 22935 -> 4068 bytes .../generator/.HtmlFileGenerator.java._trace | Bin 38447 -> 103229 bytes .../generator/.HtmlFileGenerator.xtendbin | Bin 11346 -> 19124 bytes .../generator/.MysqlFileGenerator.xtendbin | Bin 24514 -> 24514 bytes .../generator/.PlantUmlFileGenerator.xtendbin | Bin 7352 -> 7352 bytes .../.PostgresqlFileGenerator.java._trace | Bin 152065 -> 152053 bytes .../.PostgresqlFileGenerator.xtendbin | Bin 24979 -> 24978 bytes .../erdsl/generator/ErDslGenerator.class | Bin 69596 -> 3129 bytes .../erdsl/generator/HtmlFileGenerator.class | Bin 24178 -> 57415 bytes .../generator/PostgresqlFileGenerator.class | Bin 67295 -> 67261 bytes .../antlr/internal/InternalErDslParser.class | Bin 26498 -> 26763 bytes .../antlr/internal/InternalErDslParser.g | 15 +- .../antlr/internal/InternalErDslParser.tokens | 57 +- .../lexer/InternalErDslLexer$DFA12.class | Bin 3768 -> 3778 bytes .../antlr/lexer/InternalErDslLexer.class | Bin 38737 -> 39840 bytes .../parser/antlr/lexer/InternalErDslLexer.g | 2 + .../antlr/lexer/InternalErDslLexer.tokens | 57 +- .../scoping/.ErDslScopeProvider.xtendbin | Bin 3599 -> 3599 bytes ...ErDslGrammarAccess$AttributeElements.class | Bin 2990 -> 2990 bytes .../ErDslGrammarAccess$DataTypeElements.class | Bin 4334 -> 4334 bytes .../ErDslGrammarAccess$DomainElements.class | Bin 2485 -> 2485 bytes .../ErDslGrammarAccess$ERModelElements.class | Bin 6674 -> 6863 bytes .../ErDslGrammarAccess$EntityElements.class | Bin 5978 -> 5978 bytes .../ErDslGrammarAccess$RelationElements.class | Bin 5191 -> 5191 bytes ...ammarAccess$RelationSideLeftElements.class | Bin 4509 -> 4509 bytes ...mmarAccess$RelationSideRightElements.class | Bin 4513 -> 4513 bytes .../erdsl/services/ErDslGrammarAccess.class | Bin 7087 -> 7087 bytes .../erdsl/validation/.ErDslValidator.xtendbin | Bin 4012 -> 4012 bytes .../org/xtext/unipampa/erdsl/ErDsl.xtextbin | Bin 3692 -> 3706 bytes .../erdsl/erDsl/impl/RelationImpl.java | 2 +- .../antlr/internal/InternalErDslParser.g | 15 +- .../antlr/internal/InternalErDslParser.java | 575 ++-- .../antlr/internal/InternalErDslParser.tokens | 57 +- .../parser/antlr/lexer/InternalErDslLexer.g | 2 + .../antlr/lexer/InternalErDslLexer.java | 589 ++-- .../antlr/lexer/InternalErDslLexer.tokens | 57 +- .../serializer/ErDslSemanticSequencer.java | 2 +- .../erdsl/services/ErDslGrammarAccess.java | 22 +- .../src/org/xtext/unipampa/erdsl/ErDsl.xtext | 3 +- .../erdsl/generator/ErDslGenerator.xtend | 761 +---- .../erdsl/generator/HtmlFileGenerator.xtend | 608 +++- .../generator/PostgresqlFileGenerator.xtend | 3 +- .../erdsl/.ErDslRuntimeModule.xtendbin | Bin 1664 -> 1664 bytes .../erdsl/.ErDslStandaloneSetup.xtendbin | Bin 1937 -> 1937 bytes .../generator/.ErDslGenerator.java._trace | Bin 165452 -> 3591 bytes .../erdsl/generator/.ErDslGenerator.xtendbin | Bin 22935 -> 4068 bytes .../generator/.HtmlFileGenerator.java._trace | Bin 38447 -> 103229 bytes .../generator/.HtmlFileGenerator.xtendbin | Bin 11346 -> 19124 bytes .../generator/.MysqlFileGenerator.xtendbin | Bin 24514 -> 24514 bytes .../generator/.PlantUmlFileGenerator.xtendbin | Bin 7352 -> 7352 bytes .../.PostgresqlFileGenerator.java._trace | Bin 152065 -> 152053 bytes .../.PostgresqlFileGenerator.xtendbin | Bin 24979 -> 24978 bytes .../erdsl/generator/ErDslGenerator.java | 2896 ----------------- .../erdsl/generator/HtmlFileGenerator.java | 1879 +++++++++-- .../generator/PostgresqlFileGenerator.java | 5 +- .../scoping/.ErDslScopeProvider.xtendbin | Bin 3599 -> 3599 bytes .../erdsl/validation/.ErDslValidator.xtendbin | Bin 4012 -> 4012 bytes 97 files changed, 4239 insertions(+), 6041 deletions(-) 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 94ecff7a041897ec2a8de5a84f9db10e4bfa3d11..8522fb1ea59c5f510fc7d3f2fc5177a9fa61a3b2 100644 GIT binary patch delta 64 zcmaFO^O}b@z?+#xgn@&DgW>T)wT-;&Ow2%fvp7=#gptMK$OsadypGizOut~Y2h&ls(T%+9Ow2%fvp7=#gptMK$OsadypGizOut~Y2h&OBN9T 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 ff8c72fd39bacea78a075aae94576895428c0573..6cf4a2ae8d161d7db567c49899186ce46441cd33 100644 GIT binary patch literal 68010 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 E12i*IHvj+t literal 67792 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 F{|Blm$nF3D diff --git a/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.g b/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.g index 615a183..cb8a843 100644 --- a/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.g +++ b/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.g @@ -50,6 +50,7 @@ import org.xtext.unipampa.erdsl.services.ErDslGrammarAccess; tokenNameToValue.put("Domain", "'Domain'"); tokenNameToValue.put("Double", "'double'"); tokenNameToValue.put("String", "'string'"); + tokenNameToValue.put("Diagram", "'Diagram'"); tokenNameToValue.put("Boolean", "'boolean'"); tokenNameToValue.put("Relates", "'relates'"); tokenNameToValue.put("Entities", "'Entities'"); @@ -298,9 +299,15 @@ rule__ERModel__TargetGeneratorAlternatives_0_1_0 ) | ( - { before(grammarAccess.getERModelAccess().getTargetGeneratorAllKeyword_0_1_0_3()); } + { before(grammarAccess.getERModelAccess().getTargetGeneratorDiagramKeyword_0_1_0_3()); } + Diagram + { after(grammarAccess.getERModelAccess().getTargetGeneratorDiagramKeyword_0_1_0_3()); } + ) + | + ( + { before(grammarAccess.getERModelAccess().getTargetGeneratorAllKeyword_0_1_0_4()); } All - { after(grammarAccess.getERModelAccess().getTargetGeneratorAllKeyword_0_1_0_3()); } + { after(grammarAccess.getERModelAccess().getTargetGeneratorAllKeyword_0_1_0_4()); } ) ; finally { diff --git a/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.tokens b/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.tokens index 0f8e2ab..5e30ce7 100644 --- a/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.tokens +++ b/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.tokens @@ -1,39 +1,40 @@ -'(0:1)'=20 -'(0:N)'=21 -'(1:1)'=22 -'(1:N)'=23 -','=30 -';'=31 -'All'=27 -'Domain'=17 +'(0:1)'=21 +'(0:N)'=22 +'(1:1)'=23 +'(1:N)'=24 +','=31 +';'=32 +'All'=28 +'Diagram'=15 +'Domain'=18 'Entities'=12 'Generate'=13 'LogicalSchema'=8 -'MySQL'=24 +'MySQL'=25 'PostgreSQL'=11 'Relationships'=9 -'['=32 -']'=33 -'boolean'=15 +'['=33 +']'=34 +'boolean'=16 'datetime'=14 -'double'=18 -'file'=26 -'int'=28 -'is'=29 +'double'=19 +'file'=27 +'int'=29 +'is'=30 'isIdentifier'=10 -'money'=25 +'money'=26 'partial/disjoint'=5 'partial/overlapped'=4 -'relates'=16 -'string'=19 +'relates'=17 +'string'=20 'total/disjoint'=7 'total/overlapped'=6 -'{'=34 -'}'=35 -RULE_ANY_OTHER=42 -RULE_ID=36 -RULE_INT=37 -RULE_ML_COMMENT=39 -RULE_SL_COMMENT=40 -RULE_STRING=38 -RULE_WS=41 +'{'=35 +'}'=36 +RULE_ANY_OTHER=43 +RULE_ID=37 +RULE_INT=38 +RULE_ML_COMMENT=40 +RULE_SL_COMMENT=41 +RULE_STRING=39 +RULE_WS=42 diff --git a/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/lexer/InternalErDslLexer$DFA12.class b/org.xtext.unipampa.erdsl.ide/bin/org/xtext/unipampa/erdsl/ide/contentassist/antlr/lexer/InternalErDslLexer$DFA12.class index f472e92140d2b948e5972cfc87cff01207813ae0..2fb3e4048a262328328456f556f938a90b2503e4 100644 GIT binary patch delta 287 zcmWN|PbhjFQ^JMzfvAW{TKNOW)K_f) delta 279 zcmWN|&nts*90&0C=lh+*b9g(*iB>3T?c$&;WjU~oVJO7JYFRAWTEkj?g`_8Gd4yz= zmgHBfCpkHhgPV(-`~fap9V}k=*N^kdS^U)!v`YHUesDB7Ts|1|qnrU$vJ=(pLLGx} zu^Wx-K{I>dWe6SYv#N}C8L%ddxOl7=qh37rx8c?+gHRko8HZ8Bk^dNmn`3C@INBJ2 zk5Pm;iGIcqe@3+kEYdXyJB!fT!6 Pl}_#|NjPdW}e;I*(smrnX-GkFa7n{ z6GU{LxYb31DLFSUBVk%WXj(zSkedI0|=}cW^a-sCB%!&D-qGV+{p)r{Sxp}8d zF0&}11eFMrmY9{r#K}xnQf^Lu0WLZum^C@1A=7aTYIB{ZVjNI*Ha`c^EbVgMsSNGi9tWYpV9`iBz z2WDoBD@dI*IhYsfo)=7?5Gs&I>LB94P*$)YlrLe7goFF^9GToh!um`x{eyW0nI~Qh z^CCO0QEUB;;fkd&Kk*H}$dqpJN(*uywjmW<&> zCG`&Fg!0fR5?iPZm4l?od0EpV+O8h1+_PUV?Ku9Bkg|!$!n=@A4Ubs%R zm(%QhIGSniF>2~KigRYjv&z-vUDxogYh~C@$H1QDyz5qmzd|M_RH8VzYqbvNF1e3) ztykB#uYtYy@vi%M*8?(Xy{4vOJc4T?;K0!xyz2?xwNvdcDel-*gMz5qr{~J};r-c} zIoLmjxfeegu+CUYNE1&Jzmh!n4~G>}u}^$@8y_u&>|5T_uV z$bE6jK+zFLQ$!zGGdPlnL=w4&ir<2hMNgcQ$lY;XvS`TzfU#GllY}&S7Nt87;eqn< z*pniQiclJ2%1|PXB*4WHm9|XZ&USBM$B<|Bz#09J6Pe~9(HBQjkW+bn0;eh;xm4Fq zm3dHm?6Z6D08T0@VK1$PeRXjGC#y72<~s$OTv%i5VzZXV*vgbO%>vv`Imz*z+x6s6F=Cxjc!}i%K|F zn_*vFjN?pIc{7k+CN`N;Hcv!ef}F3-uq)QGi5pB$4^1pU-HvCvzr2hY$JMz82vmz} zt266xU3Er7ZltbU$A4n1x?GRza|3RuS|GNfJYLO^uAc*3fh(%>tNP@gD(V`QxUx!1 zV_n57&pvgn7*&FD$~DDwS4n`kc&Mrg##85hVRTLr{8pNWqybyzd zyVfH#y9+emj#!Wv%*lu9=H@`G0>e*MD~M;Yo}srJj%dX@#ukUca(OVRWJhosy6eaa zMHf;kZ|ELQ%mO-`;qn4TXN-e#G7FGRtx@A4=!cVX$AnyT8O}LTP7RvNw7?xFVnrOs z`mv$8s_1cCmAzUVm&e{}p32zgbHs5uc5@{*P*E1U5ORo0tg#7~fpk=^a*r0*G1RhbJzNGw5>02&%dz>$^sbbc@0U%}2qwR!zCDmO)oZR9m6i1}%`NjzV<| zx<;l^Pc?4cYBGLN*r4lVy!t9$eS@x-sDVNa47!2Qvo&COWZLF?eYL7uT$#de> zIq?Q9k*JA6O$=I!n&zh5%%J5m2MKPON^@nrMPY+(lV`M0XS6Wrc8OXl)Y71pj8Ph` zh80#*y%H#c6spxU=uWiclXE*5v`(JTQ56jx;d+VASErwE&<2URDAdKEdnD?rP*;QQ zm8hFS-3+>4qC|xf4SJ9%&Qnts9GzYFn21Z;*r11H{2nTP4}%_&sHZ|b4ca16FNJy; zv`wPk3iUSVF^Miv=mLWtmz9#ND)>T0sG_hzPsn%|sdyI|^rS?66zXHpE)awJ8uX0x zQw(}e9_^=&_A}@OiTW$l-=LQy8lcbsgIrJ&A@XG|Zq6P$IkLPHeD`WW0-2yo(LmC(&?)h8y&WM3*RZ zi9w%9G(w>f27MvXr3zhY(0++VDm2oduO%9#&?tkxktnE8(4g;NG(0*^8eF>Cmu}EO zxo?cx7gGB|2K^|{8mrJ)gMOAML!k_VevxRLLgNfNBGGt-#vAmTL=zO6V9*~DWhs

RkQ)rrjZUbn#LemYX6VObBW*S^YqFD;f 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

aP&g-yo=eKv4gLpdN#u{>9VrIN>s#d9|+b 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 IKD_e(0r=;uW&i*H literal 38819 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

}v0 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", "", "", "", "PartialOverlapped", "PartialDisjoint", "TotalOverlapped", "TotalDisjoint", "LogicalSchema", "Relationships", "IsIdentifier", "PostgreSQL", "Entities", "Generate", "Datetime", "Boolean", "Relates", "Domain", "Double", "String", "LeftParenthesisDigitZeroColonDigitOneRightParenthesis", "N", "LeftParenthesisDigitOneColonDigitOneRightParenthesis", "N_1", "MySQL", "Money", "File", "All", "Int", "Is", "Comma", "Semicolon", "LeftSquareBracket", "RightSquareBracket", "LeftCurlyBracket", "RightCurlyBracket", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER" + "", "", "", "", "PartialOverlapped", "PartialDisjoint", "TotalOverlapped", "TotalDisjoint", "LogicalSchema", "Relationships", "IsIdentifier", "PostgreSQL", "Entities", "Generate", "Datetime", "Diagram", "Boolean", "Relates", "Domain", "Double", "String", "LeftParenthesisDigitZeroColonDigitOneRightParenthesis", "N", "LeftParenthesisDigitOneColonDigitOneRightParenthesis", "N_1", "MySQL", "Money", "File", "All", "Int", "Is", "Comma", "Semicolon", "LeftSquareBracket", "RightSquareBracket", "LeftCurlyBracket", "RightCurlyBracket", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER" }; - public static final int All=27; - public static final int N_1=23; + public static final int All=28; + public static final int N_1=24; public static final int PostgreSQL=11; - public static final int PartialDisjoint=5; - public static final int Is=29; - public static final int RULE_STRING=38; - public static final int String=19; - public static final int LeftParenthesisDigitZeroColonDigitOneRightParenthesis=20; - public static final int N=21; - public static final int Int=28; - public static final int RULE_SL_COMMENT=40; + public static final int String=20; public static final int TotalOverlapped=6; - public static final int Money=25; - public static final int Comma=30; + public static final int MySQL=25; + public static final int Boolean=16; + public static final int RightSquareBracket=34; + public static final int Relates=17; + public static final int RULE_ID=37; + public static final int PartialOverlapped=4; + public static final int LogicalSchema=8; + public static final int IsIdentifier=10; + public static final int Double=19; + public static final int RULE_INT=38; + public static final int RULE_ML_COMMENT=40; + public static final int LeftSquareBracket=33; + public static final int Domain=18; + public static final int File=27; + public static final int PartialDisjoint=5; + public static final int Is=30; + public static final int RULE_STRING=39; + public static final int LeftParenthesisDigitZeroColonDigitOneRightParenthesis=21; + public static final int N=22; + public static final int Int=29; + public static final int RULE_SL_COMMENT=41; + public static final int Money=26; + public static final int Comma=31; public static final int Relationships=9; public static final int Generate=13; - public static final int MySQL=24; - public static final int RightCurlyBracket=35; - public static final int Boolean=15; + public static final int RightCurlyBracket=36; public static final int EOF=-1; public static final int TotalDisjoint=7; - public static final int RightSquareBracket=33; public static final int Datetime=14; - public static final int Relates=16; - public static final int RULE_ID=36; - public static final int RULE_WS=41; - public static final int LeftCurlyBracket=34; - public static final int PartialOverlapped=4; - public static final int LogicalSchema=8; - public static final int RULE_ANY_OTHER=42; - public static final int IsIdentifier=10; - public static final int Double=18; + public static final int RULE_WS=42; + public static final int LeftCurlyBracket=35; + public static final int RULE_ANY_OTHER=43; public static final int Entities=12; - public static final int LeftParenthesisDigitOneColonDigitOneRightParenthesis=22; - public static final int Semicolon=31; - public static final int RULE_INT=37; - public static final int RULE_ML_COMMENT=39; - public static final int LeftSquareBracket=32; - public static final int Domain=17; - public static final int File=26; + public static final int Diagram=15; + public static final int LeftParenthesisDigitOneColonDigitOneRightParenthesis=23; + public static final int Semicolon=32; // delegates // delegators @@ -107,6 +108,7 @@ public InternalErDslParser(TokenStream input, RecognizerSharedState state) { tokenNameToValue.put("Domain", "'Domain'"); tokenNameToValue.put("Double", "'double'"); tokenNameToValue.put("String", "'string'"); + tokenNameToValue.put("Diagram", "'Diagram'"); tokenNameToValue.put("Boolean", "'boolean'"); tokenNameToValue.put("Relates", "'relates'"); tokenNameToValue.put("Entities", "'Entities'"); @@ -142,11 +144,11 @@ protected String getValueForTokenName(String tokenName) { // $ANTLR start "entryRuleERModel" - // InternalErDslParser.g:87:1: entryRuleERModel : ruleERModel EOF ; + // InternalErDslParser.g:88:1: entryRuleERModel : ruleERModel EOF ; public final void entryRuleERModel() throws RecognitionException { try { - // InternalErDslParser.g:88:1: ( ruleERModel EOF ) - // InternalErDslParser.g:89:1: ruleERModel EOF + // InternalErDslParser.g:89:1: ( ruleERModel EOF ) + // InternalErDslParser.g:90:1: ruleERModel EOF { before(grammarAccess.getERModelRule()); pushFollow(FOLLOW_1); @@ -172,21 +174,21 @@ public final void entryRuleERModel() throws RecognitionException { // $ANTLR start "ruleERModel" - // InternalErDslParser.g:96:1: ruleERModel : ( ( rule__ERModel__Group__0 ) ) ; + // InternalErDslParser.g:97:1: ruleERModel : ( ( rule__ERModel__Group__0 ) ) ; public final void ruleERModel() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:100:2: ( ( ( rule__ERModel__Group__0 ) ) ) - // InternalErDslParser.g:101:2: ( ( rule__ERModel__Group__0 ) ) + // InternalErDslParser.g:101:2: ( ( ( rule__ERModel__Group__0 ) ) ) + // InternalErDslParser.g:102:2: ( ( rule__ERModel__Group__0 ) ) { - // InternalErDslParser.g:101:2: ( ( rule__ERModel__Group__0 ) ) - // InternalErDslParser.g:102:3: ( rule__ERModel__Group__0 ) + // InternalErDslParser.g:102:2: ( ( rule__ERModel__Group__0 ) ) + // InternalErDslParser.g:103:3: ( rule__ERModel__Group__0 ) { before(grammarAccess.getERModelAccess().getGroup()); - // InternalErDslParser.g:103:3: ( rule__ERModel__Group__0 ) - // InternalErDslParser.g:103:4: rule__ERModel__Group__0 + // InternalErDslParser.g:104:3: ( rule__ERModel__Group__0 ) + // InternalErDslParser.g:104:4: rule__ERModel__Group__0 { pushFollow(FOLLOW_2); rule__ERModel__Group__0(); @@ -219,11 +221,11 @@ public final void ruleERModel() throws RecognitionException { // $ANTLR start "entryRuleDomain" - // InternalErDslParser.g:112:1: entryRuleDomain : ruleDomain EOF ; + // InternalErDslParser.g:113:1: entryRuleDomain : ruleDomain EOF ; public final void entryRuleDomain() throws RecognitionException { try { - // InternalErDslParser.g:113:1: ( ruleDomain EOF ) - // InternalErDslParser.g:114:1: ruleDomain EOF + // InternalErDslParser.g:114:1: ( ruleDomain EOF ) + // InternalErDslParser.g:115:1: ruleDomain EOF { before(grammarAccess.getDomainRule()); pushFollow(FOLLOW_1); @@ -249,21 +251,21 @@ public final void entryRuleDomain() throws RecognitionException { // $ANTLR start "ruleDomain" - // InternalErDslParser.g:121:1: ruleDomain : ( ( rule__Domain__Group__0 ) ) ; + // InternalErDslParser.g:122:1: ruleDomain : ( ( rule__Domain__Group__0 ) ) ; public final void ruleDomain() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:125:2: ( ( ( rule__Domain__Group__0 ) ) ) - // InternalErDslParser.g:126:2: ( ( rule__Domain__Group__0 ) ) + // InternalErDslParser.g:126:2: ( ( ( rule__Domain__Group__0 ) ) ) + // InternalErDslParser.g:127:2: ( ( rule__Domain__Group__0 ) ) { - // InternalErDslParser.g:126:2: ( ( rule__Domain__Group__0 ) ) - // InternalErDslParser.g:127:3: ( rule__Domain__Group__0 ) + // InternalErDslParser.g:127:2: ( ( rule__Domain__Group__0 ) ) + // InternalErDslParser.g:128:3: ( rule__Domain__Group__0 ) { before(grammarAccess.getDomainAccess().getGroup()); - // InternalErDslParser.g:128:3: ( rule__Domain__Group__0 ) - // InternalErDslParser.g:128:4: rule__Domain__Group__0 + // InternalErDslParser.g:129:3: ( rule__Domain__Group__0 ) + // InternalErDslParser.g:129:4: rule__Domain__Group__0 { pushFollow(FOLLOW_2); rule__Domain__Group__0(); @@ -296,11 +298,11 @@ public final void ruleDomain() throws RecognitionException { // $ANTLR start "entryRuleAttribute" - // InternalErDslParser.g:137:1: entryRuleAttribute : ruleAttribute EOF ; + // InternalErDslParser.g:138:1: entryRuleAttribute : ruleAttribute EOF ; public final void entryRuleAttribute() throws RecognitionException { try { - // InternalErDslParser.g:138:1: ( ruleAttribute EOF ) - // InternalErDslParser.g:139:1: ruleAttribute EOF + // InternalErDslParser.g:139:1: ( ruleAttribute EOF ) + // InternalErDslParser.g:140:1: ruleAttribute EOF { before(grammarAccess.getAttributeRule()); pushFollow(FOLLOW_1); @@ -326,21 +328,21 @@ public final void entryRuleAttribute() throws RecognitionException { // $ANTLR start "ruleAttribute" - // InternalErDslParser.g:146:1: ruleAttribute : ( ( rule__Attribute__Group__0 ) ) ; + // InternalErDslParser.g:147:1: ruleAttribute : ( ( rule__Attribute__Group__0 ) ) ; public final void ruleAttribute() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:150:2: ( ( ( rule__Attribute__Group__0 ) ) ) - // InternalErDslParser.g:151:2: ( ( rule__Attribute__Group__0 ) ) + // InternalErDslParser.g:151:2: ( ( ( rule__Attribute__Group__0 ) ) ) + // InternalErDslParser.g:152:2: ( ( rule__Attribute__Group__0 ) ) { - // InternalErDslParser.g:151:2: ( ( rule__Attribute__Group__0 ) ) - // InternalErDslParser.g:152:3: ( rule__Attribute__Group__0 ) + // InternalErDslParser.g:152:2: ( ( rule__Attribute__Group__0 ) ) + // InternalErDslParser.g:153:3: ( rule__Attribute__Group__0 ) { before(grammarAccess.getAttributeAccess().getGroup()); - // InternalErDslParser.g:153:3: ( rule__Attribute__Group__0 ) - // InternalErDslParser.g:153:4: rule__Attribute__Group__0 + // InternalErDslParser.g:154:3: ( rule__Attribute__Group__0 ) + // InternalErDslParser.g:154:4: rule__Attribute__Group__0 { pushFollow(FOLLOW_2); rule__Attribute__Group__0(); @@ -373,11 +375,11 @@ public final void ruleAttribute() throws RecognitionException { // $ANTLR start "entryRuleEntity" - // InternalErDslParser.g:162:1: entryRuleEntity : ruleEntity EOF ; + // InternalErDslParser.g:163:1: entryRuleEntity : ruleEntity EOF ; public final void entryRuleEntity() throws RecognitionException { try { - // InternalErDslParser.g:163:1: ( ruleEntity EOF ) - // InternalErDslParser.g:164:1: ruleEntity EOF + // InternalErDslParser.g:164:1: ( ruleEntity EOF ) + // InternalErDslParser.g:165:1: ruleEntity EOF { before(grammarAccess.getEntityRule()); pushFollow(FOLLOW_1); @@ -403,21 +405,21 @@ public final void entryRuleEntity() throws RecognitionException { // $ANTLR start "ruleEntity" - // InternalErDslParser.g:171:1: ruleEntity : ( ( rule__Entity__Group__0 ) ) ; + // InternalErDslParser.g:172:1: ruleEntity : ( ( rule__Entity__Group__0 ) ) ; public final void ruleEntity() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:175:2: ( ( ( rule__Entity__Group__0 ) ) ) - // InternalErDslParser.g:176:2: ( ( rule__Entity__Group__0 ) ) + // InternalErDslParser.g:176:2: ( ( ( rule__Entity__Group__0 ) ) ) + // InternalErDslParser.g:177:2: ( ( rule__Entity__Group__0 ) ) { - // InternalErDslParser.g:176:2: ( ( rule__Entity__Group__0 ) ) - // InternalErDslParser.g:177:3: ( rule__Entity__Group__0 ) + // InternalErDslParser.g:177:2: ( ( rule__Entity__Group__0 ) ) + // InternalErDslParser.g:178:3: ( rule__Entity__Group__0 ) { before(grammarAccess.getEntityAccess().getGroup()); - // InternalErDslParser.g:178:3: ( rule__Entity__Group__0 ) - // InternalErDslParser.g:178:4: rule__Entity__Group__0 + // InternalErDslParser.g:179:3: ( rule__Entity__Group__0 ) + // InternalErDslParser.g:179:4: rule__Entity__Group__0 { pushFollow(FOLLOW_2); rule__Entity__Group__0(); @@ -450,11 +452,11 @@ public final void ruleEntity() throws RecognitionException { // $ANTLR start "entryRuleRelation" - // InternalErDslParser.g:187:1: entryRuleRelation : ruleRelation EOF ; + // InternalErDslParser.g:188:1: entryRuleRelation : ruleRelation EOF ; public final void entryRuleRelation() throws RecognitionException { try { - // InternalErDslParser.g:188:1: ( ruleRelation EOF ) - // InternalErDslParser.g:189:1: ruleRelation EOF + // InternalErDslParser.g:189:1: ( ruleRelation EOF ) + // InternalErDslParser.g:190:1: ruleRelation EOF { before(grammarAccess.getRelationRule()); pushFollow(FOLLOW_1); @@ -480,21 +482,21 @@ public final void entryRuleRelation() throws RecognitionException { // $ANTLR start "ruleRelation" - // InternalErDslParser.g:196:1: ruleRelation : ( ( rule__Relation__Group__0 ) ) ; + // InternalErDslParser.g:197:1: ruleRelation : ( ( rule__Relation__Group__0 ) ) ; public final void ruleRelation() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:200:2: ( ( ( rule__Relation__Group__0 ) ) ) - // InternalErDslParser.g:201:2: ( ( rule__Relation__Group__0 ) ) + // InternalErDslParser.g:201:2: ( ( ( rule__Relation__Group__0 ) ) ) + // InternalErDslParser.g:202:2: ( ( rule__Relation__Group__0 ) ) { - // InternalErDslParser.g:201:2: ( ( rule__Relation__Group__0 ) ) - // InternalErDslParser.g:202:3: ( rule__Relation__Group__0 ) + // InternalErDslParser.g:202:2: ( ( rule__Relation__Group__0 ) ) + // InternalErDslParser.g:203:3: ( rule__Relation__Group__0 ) { before(grammarAccess.getRelationAccess().getGroup()); - // InternalErDslParser.g:203:3: ( rule__Relation__Group__0 ) - // InternalErDslParser.g:203:4: rule__Relation__Group__0 + // InternalErDslParser.g:204:3: ( rule__Relation__Group__0 ) + // InternalErDslParser.g:204:4: rule__Relation__Group__0 { pushFollow(FOLLOW_2); rule__Relation__Group__0(); @@ -527,11 +529,11 @@ public final void ruleRelation() throws RecognitionException { // $ANTLR start "entryRuleRelationSideRight" - // InternalErDslParser.g:212:1: entryRuleRelationSideRight : ruleRelationSideRight EOF ; + // InternalErDslParser.g:213:1: entryRuleRelationSideRight : ruleRelationSideRight EOF ; public final void entryRuleRelationSideRight() throws RecognitionException { try { - // InternalErDslParser.g:213:1: ( ruleRelationSideRight EOF ) - // InternalErDslParser.g:214:1: ruleRelationSideRight EOF + // InternalErDslParser.g:214:1: ( ruleRelationSideRight EOF ) + // InternalErDslParser.g:215:1: ruleRelationSideRight EOF { before(grammarAccess.getRelationSideRightRule()); pushFollow(FOLLOW_1); @@ -557,21 +559,21 @@ public final void entryRuleRelationSideRight() throws RecognitionException { // $ANTLR start "ruleRelationSideRight" - // InternalErDslParser.g:221:1: ruleRelationSideRight : ( ( rule__RelationSideRight__Alternatives ) ) ; + // InternalErDslParser.g:222:1: ruleRelationSideRight : ( ( rule__RelationSideRight__Alternatives ) ) ; public final void ruleRelationSideRight() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:225:2: ( ( ( rule__RelationSideRight__Alternatives ) ) ) - // InternalErDslParser.g:226:2: ( ( rule__RelationSideRight__Alternatives ) ) + // InternalErDslParser.g:226:2: ( ( ( rule__RelationSideRight__Alternatives ) ) ) + // InternalErDslParser.g:227:2: ( ( rule__RelationSideRight__Alternatives ) ) { - // InternalErDslParser.g:226:2: ( ( rule__RelationSideRight__Alternatives ) ) - // InternalErDslParser.g:227:3: ( rule__RelationSideRight__Alternatives ) + // InternalErDslParser.g:227:2: ( ( rule__RelationSideRight__Alternatives ) ) + // InternalErDslParser.g:228:3: ( rule__RelationSideRight__Alternatives ) { before(grammarAccess.getRelationSideRightAccess().getAlternatives()); - // InternalErDslParser.g:228:3: ( rule__RelationSideRight__Alternatives ) - // InternalErDslParser.g:228:4: rule__RelationSideRight__Alternatives + // InternalErDslParser.g:229:3: ( rule__RelationSideRight__Alternatives ) + // InternalErDslParser.g:229:4: rule__RelationSideRight__Alternatives { pushFollow(FOLLOW_2); rule__RelationSideRight__Alternatives(); @@ -604,11 +606,11 @@ public final void ruleRelationSideRight() throws RecognitionException { // $ANTLR start "entryRuleRelationSideLeft" - // InternalErDslParser.g:237:1: entryRuleRelationSideLeft : ruleRelationSideLeft EOF ; + // InternalErDslParser.g:238:1: entryRuleRelationSideLeft : ruleRelationSideLeft EOF ; public final void entryRuleRelationSideLeft() throws RecognitionException { try { - // InternalErDslParser.g:238:1: ( ruleRelationSideLeft EOF ) - // InternalErDslParser.g:239:1: ruleRelationSideLeft EOF + // InternalErDslParser.g:239:1: ( ruleRelationSideLeft EOF ) + // InternalErDslParser.g:240:1: ruleRelationSideLeft EOF { before(grammarAccess.getRelationSideLeftRule()); pushFollow(FOLLOW_1); @@ -634,21 +636,21 @@ public final void entryRuleRelationSideLeft() throws RecognitionException { // $ANTLR start "ruleRelationSideLeft" - // InternalErDslParser.g:246:1: ruleRelationSideLeft : ( ( rule__RelationSideLeft__Alternatives ) ) ; + // InternalErDslParser.g:247:1: ruleRelationSideLeft : ( ( rule__RelationSideLeft__Alternatives ) ) ; public final void ruleRelationSideLeft() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:250:2: ( ( ( rule__RelationSideLeft__Alternatives ) ) ) - // InternalErDslParser.g:251:2: ( ( rule__RelationSideLeft__Alternatives ) ) + // InternalErDslParser.g:251:2: ( ( ( rule__RelationSideLeft__Alternatives ) ) ) + // InternalErDslParser.g:252:2: ( ( rule__RelationSideLeft__Alternatives ) ) { - // InternalErDslParser.g:251:2: ( ( rule__RelationSideLeft__Alternatives ) ) - // InternalErDslParser.g:252:3: ( rule__RelationSideLeft__Alternatives ) + // InternalErDslParser.g:252:2: ( ( rule__RelationSideLeft__Alternatives ) ) + // InternalErDslParser.g:253:3: ( rule__RelationSideLeft__Alternatives ) { before(grammarAccess.getRelationSideLeftAccess().getAlternatives()); - // InternalErDslParser.g:253:3: ( rule__RelationSideLeft__Alternatives ) - // InternalErDslParser.g:253:4: rule__RelationSideLeft__Alternatives + // InternalErDslParser.g:254:3: ( rule__RelationSideLeft__Alternatives ) + // InternalErDslParser.g:254:4: rule__RelationSideLeft__Alternatives { pushFollow(FOLLOW_2); rule__RelationSideLeft__Alternatives(); @@ -681,21 +683,21 @@ public final void ruleRelationSideLeft() throws RecognitionException { // $ANTLR start "ruleDataType" - // InternalErDslParser.g:262:1: ruleDataType : ( ( rule__DataType__Alternatives ) ) ; + // InternalErDslParser.g:263:1: ruleDataType : ( ( rule__DataType__Alternatives ) ) ; public final void ruleDataType() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:266:1: ( ( ( rule__DataType__Alternatives ) ) ) - // InternalErDslParser.g:267:2: ( ( rule__DataType__Alternatives ) ) + // InternalErDslParser.g:267:1: ( ( ( rule__DataType__Alternatives ) ) ) + // InternalErDslParser.g:268:2: ( ( rule__DataType__Alternatives ) ) { - // InternalErDslParser.g:267:2: ( ( rule__DataType__Alternatives ) ) - // InternalErDslParser.g:268:3: ( rule__DataType__Alternatives ) + // InternalErDslParser.g:268:2: ( ( rule__DataType__Alternatives ) ) + // InternalErDslParser.g:269:3: ( rule__DataType__Alternatives ) { before(grammarAccess.getDataTypeAccess().getAlternatives()); - // InternalErDslParser.g:269:3: ( rule__DataType__Alternatives ) - // InternalErDslParser.g:269:4: rule__DataType__Alternatives + // InternalErDslParser.g:270:3: ( rule__DataType__Alternatives ) + // InternalErDslParser.g:270:4: rule__DataType__Alternatives { pushFollow(FOLLOW_2); rule__DataType__Alternatives(); @@ -728,14 +730,14 @@ public final void ruleDataType() throws RecognitionException { // $ANTLR start "rule__ERModel__TargetGeneratorAlternatives_0_1_0" - // InternalErDslParser.g:277:1: rule__ERModel__TargetGeneratorAlternatives_0_1_0 : ( ( LogicalSchema ) | ( PostgreSQL ) | ( MySQL ) | ( All ) ); + // InternalErDslParser.g:278:1: rule__ERModel__TargetGeneratorAlternatives_0_1_0 : ( ( LogicalSchema ) | ( PostgreSQL ) | ( MySQL ) | ( Diagram ) | ( All ) ); public final void rule__ERModel__TargetGeneratorAlternatives_0_1_0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:281:1: ( ( LogicalSchema ) | ( PostgreSQL ) | ( MySQL ) | ( All ) ) - int alt1=4; + // InternalErDslParser.g:282:1: ( ( LogicalSchema ) | ( PostgreSQL ) | ( MySQL ) | ( Diagram ) | ( All ) ) + int alt1=5; switch ( input.LA(1) ) { case LogicalSchema: { @@ -752,11 +754,16 @@ public final void rule__ERModel__TargetGeneratorAlternatives_0_1_0() throws Reco alt1=3; } break; - case All: + case Diagram: { alt1=4; } break; + case All: + { + alt1=5; + } + break; default: NoViableAltException nvae = new NoViableAltException("", 1, 0, input); @@ -766,10 +773,10 @@ public final void rule__ERModel__TargetGeneratorAlternatives_0_1_0() throws Reco switch (alt1) { case 1 : - // InternalErDslParser.g:282:2: ( LogicalSchema ) + // InternalErDslParser.g:283:2: ( LogicalSchema ) { - // InternalErDslParser.g:282:2: ( LogicalSchema ) - // InternalErDslParser.g:283:3: LogicalSchema + // InternalErDslParser.g:283:2: ( LogicalSchema ) + // InternalErDslParser.g:284:3: LogicalSchema { before(grammarAccess.getERModelAccess().getTargetGeneratorLogicalSchemaKeyword_0_1_0_0()); match(input,LogicalSchema,FOLLOW_2); @@ -781,10 +788,10 @@ public final void rule__ERModel__TargetGeneratorAlternatives_0_1_0() throws Reco } break; case 2 : - // InternalErDslParser.g:288:2: ( PostgreSQL ) + // InternalErDslParser.g:289:2: ( PostgreSQL ) { - // InternalErDslParser.g:288:2: ( PostgreSQL ) - // InternalErDslParser.g:289:3: PostgreSQL + // InternalErDslParser.g:289:2: ( PostgreSQL ) + // InternalErDslParser.g:290:3: PostgreSQL { before(grammarAccess.getERModelAccess().getTargetGeneratorPostgreSQLKeyword_0_1_0_1()); match(input,PostgreSQL,FOLLOW_2); @@ -796,10 +803,10 @@ public final void rule__ERModel__TargetGeneratorAlternatives_0_1_0() throws Reco } break; case 3 : - // InternalErDslParser.g:294:2: ( MySQL ) + // InternalErDslParser.g:295:2: ( MySQL ) { - // InternalErDslParser.g:294:2: ( MySQL ) - // InternalErDslParser.g:295:3: MySQL + // InternalErDslParser.g:295:2: ( MySQL ) + // InternalErDslParser.g:296:3: MySQL { before(grammarAccess.getERModelAccess().getTargetGeneratorMySQLKeyword_0_1_0_2()); match(input,MySQL,FOLLOW_2); @@ -811,14 +818,29 @@ public final void rule__ERModel__TargetGeneratorAlternatives_0_1_0() throws Reco } break; case 4 : - // InternalErDslParser.g:300:2: ( All ) + // InternalErDslParser.g:301:2: ( Diagram ) + { + // InternalErDslParser.g:301:2: ( Diagram ) + // InternalErDslParser.g:302:3: Diagram + { + before(grammarAccess.getERModelAccess().getTargetGeneratorDiagramKeyword_0_1_0_3()); + match(input,Diagram,FOLLOW_2); + after(grammarAccess.getERModelAccess().getTargetGeneratorDiagramKeyword_0_1_0_3()); + + } + + + } + break; + case 5 : + // InternalErDslParser.g:307:2: ( All ) { - // InternalErDslParser.g:300:2: ( All ) - // InternalErDslParser.g:301:3: All + // InternalErDslParser.g:307:2: ( All ) + // InternalErDslParser.g:308:3: All { - before(grammarAccess.getERModelAccess().getTargetGeneratorAllKeyword_0_1_0_3()); + before(grammarAccess.getERModelAccess().getTargetGeneratorAllKeyword_0_1_0_4()); match(input,All,FOLLOW_2); - after(grammarAccess.getERModelAccess().getTargetGeneratorAllKeyword_0_1_0_3()); + after(grammarAccess.getERModelAccess().getTargetGeneratorAllKeyword_0_1_0_4()); } @@ -843,13 +865,13 @@ public final void rule__ERModel__TargetGeneratorAlternatives_0_1_0() throws Reco // $ANTLR start "rule__Entity__GeneralizationAlternatives_1_1_0" - // InternalErDslParser.g:310:1: rule__Entity__GeneralizationAlternatives_1_1_0 : ( ( TotalDisjoint ) | ( TotalOverlapped ) | ( PartialDisjoint ) | ( PartialOverlapped ) ); + // InternalErDslParser.g:317:1: rule__Entity__GeneralizationAlternatives_1_1_0 : ( ( TotalDisjoint ) | ( TotalOverlapped ) | ( PartialDisjoint ) | ( PartialOverlapped ) ); public final void rule__Entity__GeneralizationAlternatives_1_1_0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:314:1: ( ( TotalDisjoint ) | ( TotalOverlapped ) | ( PartialDisjoint ) | ( PartialOverlapped ) ) + // InternalErDslParser.g:321:1: ( ( TotalDisjoint ) | ( TotalOverlapped ) | ( PartialDisjoint ) | ( PartialOverlapped ) ) int alt2=4; switch ( input.LA(1) ) { case TotalDisjoint: @@ -881,10 +903,10 @@ public final void rule__Entity__GeneralizationAlternatives_1_1_0() throws Recogn switch (alt2) { case 1 : - // InternalErDslParser.g:315:2: ( TotalDisjoint ) + // InternalErDslParser.g:322:2: ( TotalDisjoint ) { - // InternalErDslParser.g:315:2: ( TotalDisjoint ) - // InternalErDslParser.g:316:3: TotalDisjoint + // InternalErDslParser.g:322:2: ( TotalDisjoint ) + // InternalErDslParser.g:323:3: TotalDisjoint { before(grammarAccess.getEntityAccess().getGeneralizationTotalDisjointKeyword_1_1_0_0()); match(input,TotalDisjoint,FOLLOW_2); @@ -896,10 +918,10 @@ public final void rule__Entity__GeneralizationAlternatives_1_1_0() throws Recogn } break; case 2 : - // InternalErDslParser.g:321:2: ( TotalOverlapped ) + // InternalErDslParser.g:328:2: ( TotalOverlapped ) { - // InternalErDslParser.g:321:2: ( TotalOverlapped ) - // InternalErDslParser.g:322:3: TotalOverlapped + // InternalErDslParser.g:328:2: ( TotalOverlapped ) + // InternalErDslParser.g:329:3: TotalOverlapped { before(grammarAccess.getEntityAccess().getGeneralizationTotalOverlappedKeyword_1_1_0_1()); match(input,TotalOverlapped,FOLLOW_2); @@ -911,10 +933,10 @@ public final void rule__Entity__GeneralizationAlternatives_1_1_0() throws Recogn } break; case 3 : - // InternalErDslParser.g:327:2: ( PartialDisjoint ) + // InternalErDslParser.g:334:2: ( PartialDisjoint ) { - // InternalErDslParser.g:327:2: ( PartialDisjoint ) - // InternalErDslParser.g:328:3: PartialDisjoint + // InternalErDslParser.g:334:2: ( PartialDisjoint ) + // InternalErDslParser.g:335:3: PartialDisjoint { before(grammarAccess.getEntityAccess().getGeneralizationPartialDisjointKeyword_1_1_0_2()); match(input,PartialDisjoint,FOLLOW_2); @@ -926,10 +948,10 @@ public final void rule__Entity__GeneralizationAlternatives_1_1_0() throws Recogn } break; case 4 : - // InternalErDslParser.g:333:2: ( PartialOverlapped ) + // InternalErDslParser.g:340:2: ( PartialOverlapped ) { - // InternalErDslParser.g:333:2: ( PartialOverlapped ) - // InternalErDslParser.g:334:3: PartialOverlapped + // InternalErDslParser.g:340:2: ( PartialOverlapped ) + // InternalErDslParser.g:341:3: PartialOverlapped { before(grammarAccess.getEntityAccess().getGeneralizationPartialOverlappedKeyword_1_1_0_3()); match(input,PartialOverlapped,FOLLOW_2); @@ -958,13 +980,13 @@ public final void rule__Entity__GeneralizationAlternatives_1_1_0() throws Recogn // $ANTLR start "rule__RelationSideRight__Alternatives" - // InternalErDslParser.g:343:1: rule__RelationSideRight__Alternatives : ( ( ( rule__RelationSideRight__Group_0__0 ) ) | ( ( rule__RelationSideRight__TargetAssignment_1 ) ) ); + // InternalErDslParser.g:350:1: rule__RelationSideRight__Alternatives : ( ( ( rule__RelationSideRight__Group_0__0 ) ) | ( ( rule__RelationSideRight__TargetAssignment_1 ) ) ); public final void rule__RelationSideRight__Alternatives() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:347:1: ( ( ( rule__RelationSideRight__Group_0__0 ) ) | ( ( rule__RelationSideRight__TargetAssignment_1 ) ) ) + // InternalErDslParser.g:354:1: ( ( ( rule__RelationSideRight__Group_0__0 ) ) | ( ( rule__RelationSideRight__TargetAssignment_1 ) ) ) int alt3=2; int LA3_0 = input.LA(1); @@ -982,14 +1004,14 @@ else if ( (LA3_0==RULE_ID) ) { } switch (alt3) { case 1 : - // InternalErDslParser.g:348:2: ( ( rule__RelationSideRight__Group_0__0 ) ) + // InternalErDslParser.g:355:2: ( ( rule__RelationSideRight__Group_0__0 ) ) { - // InternalErDslParser.g:348:2: ( ( rule__RelationSideRight__Group_0__0 ) ) - // InternalErDslParser.g:349:3: ( rule__RelationSideRight__Group_0__0 ) + // InternalErDslParser.g:355:2: ( ( rule__RelationSideRight__Group_0__0 ) ) + // InternalErDslParser.g:356:3: ( rule__RelationSideRight__Group_0__0 ) { before(grammarAccess.getRelationSideRightAccess().getGroup_0()); - // InternalErDslParser.g:350:3: ( rule__RelationSideRight__Group_0__0 ) - // InternalErDslParser.g:350:4: rule__RelationSideRight__Group_0__0 + // InternalErDslParser.g:357:3: ( rule__RelationSideRight__Group_0__0 ) + // InternalErDslParser.g:357:4: rule__RelationSideRight__Group_0__0 { pushFollow(FOLLOW_2); rule__RelationSideRight__Group_0__0(); @@ -1007,14 +1029,14 @@ else if ( (LA3_0==RULE_ID) ) { } break; case 2 : - // InternalErDslParser.g:354:2: ( ( rule__RelationSideRight__TargetAssignment_1 ) ) + // InternalErDslParser.g:361:2: ( ( rule__RelationSideRight__TargetAssignment_1 ) ) { - // InternalErDslParser.g:354:2: ( ( rule__RelationSideRight__TargetAssignment_1 ) ) - // InternalErDslParser.g:355:3: ( rule__RelationSideRight__TargetAssignment_1 ) + // InternalErDslParser.g:361:2: ( ( rule__RelationSideRight__TargetAssignment_1 ) ) + // InternalErDslParser.g:362:3: ( rule__RelationSideRight__TargetAssignment_1 ) { before(grammarAccess.getRelationSideRightAccess().getTargetAssignment_1()); - // InternalErDslParser.g:356:3: ( rule__RelationSideRight__TargetAssignment_1 ) - // InternalErDslParser.g:356:4: rule__RelationSideRight__TargetAssignment_1 + // InternalErDslParser.g:363:3: ( rule__RelationSideRight__TargetAssignment_1 ) + // InternalErDslParser.g:363:4: rule__RelationSideRight__TargetAssignment_1 { pushFollow(FOLLOW_2); rule__RelationSideRight__TargetAssignment_1(); @@ -1049,13 +1071,13 @@ else if ( (LA3_0==RULE_ID) ) { // $ANTLR start "rule__RelationSideRight__CardinalityAlternatives_0_0_0" - // InternalErDslParser.g:364:1: rule__RelationSideRight__CardinalityAlternatives_0_0_0 : ( ( LeftParenthesisDigitZeroColonDigitOneRightParenthesis ) | ( LeftParenthesisDigitOneColonDigitOneRightParenthesis ) | ( N ) | ( N_1 ) ); + // InternalErDslParser.g:371:1: rule__RelationSideRight__CardinalityAlternatives_0_0_0 : ( ( LeftParenthesisDigitZeroColonDigitOneRightParenthesis ) | ( LeftParenthesisDigitOneColonDigitOneRightParenthesis ) | ( N ) | ( N_1 ) ); public final void rule__RelationSideRight__CardinalityAlternatives_0_0_0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:368:1: ( ( LeftParenthesisDigitZeroColonDigitOneRightParenthesis ) | ( LeftParenthesisDigitOneColonDigitOneRightParenthesis ) | ( N ) | ( N_1 ) ) + // InternalErDslParser.g:375:1: ( ( LeftParenthesisDigitZeroColonDigitOneRightParenthesis ) | ( LeftParenthesisDigitOneColonDigitOneRightParenthesis ) | ( N ) | ( N_1 ) ) int alt4=4; switch ( input.LA(1) ) { case LeftParenthesisDigitZeroColonDigitOneRightParenthesis: @@ -1087,10 +1109,10 @@ public final void rule__RelationSideRight__CardinalityAlternatives_0_0_0() throw switch (alt4) { case 1 : - // InternalErDslParser.g:369:2: ( LeftParenthesisDigitZeroColonDigitOneRightParenthesis ) + // InternalErDslParser.g:376:2: ( LeftParenthesisDigitZeroColonDigitOneRightParenthesis ) { - // InternalErDslParser.g:369:2: ( LeftParenthesisDigitZeroColonDigitOneRightParenthesis ) - // InternalErDslParser.g:370:3: LeftParenthesisDigitZeroColonDigitOneRightParenthesis + // InternalErDslParser.g:376:2: ( LeftParenthesisDigitZeroColonDigitOneRightParenthesis ) + // InternalErDslParser.g:377:3: LeftParenthesisDigitZeroColonDigitOneRightParenthesis { before(grammarAccess.getRelationSideRightAccess().getCardinality01Keyword_0_0_0_0()); match(input,LeftParenthesisDigitZeroColonDigitOneRightParenthesis,FOLLOW_2); @@ -1102,10 +1124,10 @@ public final void rule__RelationSideRight__CardinalityAlternatives_0_0_0() throw } break; case 2 : - // InternalErDslParser.g:375:2: ( LeftParenthesisDigitOneColonDigitOneRightParenthesis ) + // InternalErDslParser.g:382:2: ( LeftParenthesisDigitOneColonDigitOneRightParenthesis ) { - // InternalErDslParser.g:375:2: ( LeftParenthesisDigitOneColonDigitOneRightParenthesis ) - // InternalErDslParser.g:376:3: LeftParenthesisDigitOneColonDigitOneRightParenthesis + // InternalErDslParser.g:382:2: ( LeftParenthesisDigitOneColonDigitOneRightParenthesis ) + // InternalErDslParser.g:383:3: LeftParenthesisDigitOneColonDigitOneRightParenthesis { before(grammarAccess.getRelationSideRightAccess().getCardinality11Keyword_0_0_0_1()); match(input,LeftParenthesisDigitOneColonDigitOneRightParenthesis,FOLLOW_2); @@ -1117,10 +1139,10 @@ public final void rule__RelationSideRight__CardinalityAlternatives_0_0_0() throw } break; case 3 : - // InternalErDslParser.g:381:2: ( N ) + // InternalErDslParser.g:388:2: ( N ) { - // InternalErDslParser.g:381:2: ( N ) - // InternalErDslParser.g:382:3: N + // InternalErDslParser.g:388:2: ( N ) + // InternalErDslParser.g:389:3: N { before(grammarAccess.getRelationSideRightAccess().getCardinality0NKeyword_0_0_0_2()); match(input,N,FOLLOW_2); @@ -1132,10 +1154,10 @@ public final void rule__RelationSideRight__CardinalityAlternatives_0_0_0() throw } break; case 4 : - // InternalErDslParser.g:387:2: ( N_1 ) + // InternalErDslParser.g:394:2: ( N_1 ) { - // InternalErDslParser.g:387:2: ( N_1 ) - // InternalErDslParser.g:388:3: N_1 + // InternalErDslParser.g:394:2: ( N_1 ) + // InternalErDslParser.g:395:3: N_1 { before(grammarAccess.getRelationSideRightAccess().getCardinality1NKeyword_0_0_0_3()); match(input,N_1,FOLLOW_2); @@ -1164,13 +1186,13 @@ public final void rule__RelationSideRight__CardinalityAlternatives_0_0_0() throw // $ANTLR start "rule__RelationSideLeft__Alternatives" - // InternalErDslParser.g:397:1: rule__RelationSideLeft__Alternatives : ( ( ( rule__RelationSideLeft__TargetAssignment_0 ) ) | ( ( rule__RelationSideLeft__Group_1__0 ) ) ); + // InternalErDslParser.g:404:1: rule__RelationSideLeft__Alternatives : ( ( ( rule__RelationSideLeft__TargetAssignment_0 ) ) | ( ( rule__RelationSideLeft__Group_1__0 ) ) ); public final void rule__RelationSideLeft__Alternatives() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:401:1: ( ( ( rule__RelationSideLeft__TargetAssignment_0 ) ) | ( ( rule__RelationSideLeft__Group_1__0 ) ) ) + // InternalErDslParser.g:408:1: ( ( ( rule__RelationSideLeft__TargetAssignment_0 ) ) | ( ( rule__RelationSideLeft__Group_1__0 ) ) ) int alt5=2; int LA5_0 = input.LA(1); @@ -1198,14 +1220,14 @@ else if ( ((LA5_1>=LeftParenthesisDigitZeroColonDigitOneRightParenthesis && LA5_ } switch (alt5) { case 1 : - // InternalErDslParser.g:402:2: ( ( rule__RelationSideLeft__TargetAssignment_0 ) ) + // InternalErDslParser.g:409:2: ( ( rule__RelationSideLeft__TargetAssignment_0 ) ) { - // InternalErDslParser.g:402:2: ( ( rule__RelationSideLeft__TargetAssignment_0 ) ) - // InternalErDslParser.g:403:3: ( rule__RelationSideLeft__TargetAssignment_0 ) + // InternalErDslParser.g:409:2: ( ( rule__RelationSideLeft__TargetAssignment_0 ) ) + // InternalErDslParser.g:410:3: ( rule__RelationSideLeft__TargetAssignment_0 ) { before(grammarAccess.getRelationSideLeftAccess().getTargetAssignment_0()); - // InternalErDslParser.g:404:3: ( rule__RelationSideLeft__TargetAssignment_0 ) - // InternalErDslParser.g:404:4: rule__RelationSideLeft__TargetAssignment_0 + // InternalErDslParser.g:411:3: ( rule__RelationSideLeft__TargetAssignment_0 ) + // InternalErDslParser.g:411:4: rule__RelationSideLeft__TargetAssignment_0 { pushFollow(FOLLOW_2); rule__RelationSideLeft__TargetAssignment_0(); @@ -1223,14 +1245,14 @@ else if ( ((LA5_1>=LeftParenthesisDigitZeroColonDigitOneRightParenthesis && LA5_ } break; case 2 : - // InternalErDslParser.g:408:2: ( ( rule__RelationSideLeft__Group_1__0 ) ) + // InternalErDslParser.g:415:2: ( ( rule__RelationSideLeft__Group_1__0 ) ) { - // InternalErDslParser.g:408:2: ( ( rule__RelationSideLeft__Group_1__0 ) ) - // InternalErDslParser.g:409:3: ( rule__RelationSideLeft__Group_1__0 ) + // InternalErDslParser.g:415:2: ( ( rule__RelationSideLeft__Group_1__0 ) ) + // InternalErDslParser.g:416:3: ( rule__RelationSideLeft__Group_1__0 ) { before(grammarAccess.getRelationSideLeftAccess().getGroup_1()); - // InternalErDslParser.g:410:3: ( rule__RelationSideLeft__Group_1__0 ) - // InternalErDslParser.g:410:4: rule__RelationSideLeft__Group_1__0 + // InternalErDslParser.g:417:3: ( rule__RelationSideLeft__Group_1__0 ) + // InternalErDslParser.g:417:4: rule__RelationSideLeft__Group_1__0 { pushFollow(FOLLOW_2); rule__RelationSideLeft__Group_1__0(); @@ -1265,13 +1287,13 @@ else if ( ((LA5_1>=LeftParenthesisDigitZeroColonDigitOneRightParenthesis && LA5_ // $ANTLR start "rule__RelationSideLeft__CardinalityAlternatives_1_1_0" - // InternalErDslParser.g:418:1: rule__RelationSideLeft__CardinalityAlternatives_1_1_0 : ( ( LeftParenthesisDigitZeroColonDigitOneRightParenthesis ) | ( LeftParenthesisDigitOneColonDigitOneRightParenthesis ) | ( N ) | ( N_1 ) ); + // InternalErDslParser.g:425:1: rule__RelationSideLeft__CardinalityAlternatives_1_1_0 : ( ( LeftParenthesisDigitZeroColonDigitOneRightParenthesis ) | ( LeftParenthesisDigitOneColonDigitOneRightParenthesis ) | ( N ) | ( N_1 ) ); public final void rule__RelationSideLeft__CardinalityAlternatives_1_1_0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:422:1: ( ( LeftParenthesisDigitZeroColonDigitOneRightParenthesis ) | ( LeftParenthesisDigitOneColonDigitOneRightParenthesis ) | ( N ) | ( N_1 ) ) + // InternalErDslParser.g:429:1: ( ( LeftParenthesisDigitZeroColonDigitOneRightParenthesis ) | ( LeftParenthesisDigitOneColonDigitOneRightParenthesis ) | ( N ) | ( N_1 ) ) int alt6=4; switch ( input.LA(1) ) { case LeftParenthesisDigitZeroColonDigitOneRightParenthesis: @@ -1303,10 +1325,10 @@ public final void rule__RelationSideLeft__CardinalityAlternatives_1_1_0() throws switch (alt6) { case 1 : - // InternalErDslParser.g:423:2: ( LeftParenthesisDigitZeroColonDigitOneRightParenthesis ) + // InternalErDslParser.g:430:2: ( LeftParenthesisDigitZeroColonDigitOneRightParenthesis ) { - // InternalErDslParser.g:423:2: ( LeftParenthesisDigitZeroColonDigitOneRightParenthesis ) - // InternalErDslParser.g:424:3: LeftParenthesisDigitZeroColonDigitOneRightParenthesis + // InternalErDslParser.g:430:2: ( LeftParenthesisDigitZeroColonDigitOneRightParenthesis ) + // InternalErDslParser.g:431:3: LeftParenthesisDigitZeroColonDigitOneRightParenthesis { before(grammarAccess.getRelationSideLeftAccess().getCardinality01Keyword_1_1_0_0()); match(input,LeftParenthesisDigitZeroColonDigitOneRightParenthesis,FOLLOW_2); @@ -1318,10 +1340,10 @@ public final void rule__RelationSideLeft__CardinalityAlternatives_1_1_0() throws } break; case 2 : - // InternalErDslParser.g:429:2: ( LeftParenthesisDigitOneColonDigitOneRightParenthesis ) + // InternalErDslParser.g:436:2: ( LeftParenthesisDigitOneColonDigitOneRightParenthesis ) { - // InternalErDslParser.g:429:2: ( LeftParenthesisDigitOneColonDigitOneRightParenthesis ) - // InternalErDslParser.g:430:3: LeftParenthesisDigitOneColonDigitOneRightParenthesis + // InternalErDslParser.g:436:2: ( LeftParenthesisDigitOneColonDigitOneRightParenthesis ) + // InternalErDslParser.g:437:3: LeftParenthesisDigitOneColonDigitOneRightParenthesis { before(grammarAccess.getRelationSideLeftAccess().getCardinality11Keyword_1_1_0_1()); match(input,LeftParenthesisDigitOneColonDigitOneRightParenthesis,FOLLOW_2); @@ -1333,10 +1355,10 @@ public final void rule__RelationSideLeft__CardinalityAlternatives_1_1_0() throws } break; case 3 : - // InternalErDslParser.g:435:2: ( N ) + // InternalErDslParser.g:442:2: ( N ) { - // InternalErDslParser.g:435:2: ( N ) - // InternalErDslParser.g:436:3: N + // InternalErDslParser.g:442:2: ( N ) + // InternalErDslParser.g:443:3: N { before(grammarAccess.getRelationSideLeftAccess().getCardinality0NKeyword_1_1_0_2()); match(input,N,FOLLOW_2); @@ -1348,10 +1370,10 @@ public final void rule__RelationSideLeft__CardinalityAlternatives_1_1_0() throws } break; case 4 : - // InternalErDslParser.g:441:2: ( N_1 ) + // InternalErDslParser.g:448:2: ( N_1 ) { - // InternalErDslParser.g:441:2: ( N_1 ) - // InternalErDslParser.g:442:3: N_1 + // InternalErDslParser.g:448:2: ( N_1 ) + // InternalErDslParser.g:449:3: N_1 { before(grammarAccess.getRelationSideLeftAccess().getCardinality1NKeyword_1_1_0_3()); match(input,N_1,FOLLOW_2); @@ -1380,13 +1402,13 @@ public final void rule__RelationSideLeft__CardinalityAlternatives_1_1_0() throws // $ANTLR start "rule__DataType__Alternatives" - // InternalErDslParser.g:451:1: rule__DataType__Alternatives : ( ( ( Int ) ) | ( ( Double ) ) | ( ( Money ) ) | ( ( String ) ) | ( ( Boolean ) ) | ( ( Datetime ) ) | ( ( File ) ) ); + // InternalErDslParser.g:458:1: rule__DataType__Alternatives : ( ( ( Int ) ) | ( ( Double ) ) | ( ( Money ) ) | ( ( String ) ) | ( ( Boolean ) ) | ( ( Datetime ) ) | ( ( File ) ) ); public final void rule__DataType__Alternatives() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:455:1: ( ( ( Int ) ) | ( ( Double ) ) | ( ( Money ) ) | ( ( String ) ) | ( ( Boolean ) ) | ( ( Datetime ) ) | ( ( File ) ) ) + // InternalErDslParser.g:462:1: ( ( ( Int ) ) | ( ( Double ) ) | ( ( Money ) ) | ( ( String ) ) | ( ( Boolean ) ) | ( ( Datetime ) ) | ( ( File ) ) ) int alt7=7; switch ( input.LA(1) ) { case Int: @@ -1433,14 +1455,14 @@ public final void rule__DataType__Alternatives() throws RecognitionException { switch (alt7) { case 1 : - // InternalErDslParser.g:456:2: ( ( Int ) ) + // InternalErDslParser.g:463:2: ( ( Int ) ) { - // InternalErDslParser.g:456:2: ( ( Int ) ) - // InternalErDslParser.g:457:3: ( Int ) + // InternalErDslParser.g:463:2: ( ( Int ) ) + // InternalErDslParser.g:464:3: ( Int ) { before(grammarAccess.getDataTypeAccess().getINTEnumLiteralDeclaration_0()); - // InternalErDslParser.g:458:3: ( Int ) - // InternalErDslParser.g:458:4: Int + // InternalErDslParser.g:465:3: ( Int ) + // InternalErDslParser.g:465:4: Int { match(input,Int,FOLLOW_2); @@ -1454,14 +1476,14 @@ public final void rule__DataType__Alternatives() throws RecognitionException { } break; case 2 : - // InternalErDslParser.g:462:2: ( ( Double ) ) + // InternalErDslParser.g:469:2: ( ( Double ) ) { - // InternalErDslParser.g:462:2: ( ( Double ) ) - // InternalErDslParser.g:463:3: ( Double ) + // InternalErDslParser.g:469:2: ( ( Double ) ) + // InternalErDslParser.g:470:3: ( Double ) { before(grammarAccess.getDataTypeAccess().getDOUBLEEnumLiteralDeclaration_1()); - // InternalErDslParser.g:464:3: ( Double ) - // InternalErDslParser.g:464:4: Double + // InternalErDslParser.g:471:3: ( Double ) + // InternalErDslParser.g:471:4: Double { match(input,Double,FOLLOW_2); @@ -1475,14 +1497,14 @@ public final void rule__DataType__Alternatives() throws RecognitionException { } break; case 3 : - // InternalErDslParser.g:468:2: ( ( Money ) ) + // InternalErDslParser.g:475:2: ( ( Money ) ) { - // InternalErDslParser.g:468:2: ( ( Money ) ) - // InternalErDslParser.g:469:3: ( Money ) + // InternalErDslParser.g:475:2: ( ( Money ) ) + // InternalErDslParser.g:476:3: ( Money ) { before(grammarAccess.getDataTypeAccess().getMONEYEnumLiteralDeclaration_2()); - // InternalErDslParser.g:470:3: ( Money ) - // InternalErDslParser.g:470:4: Money + // InternalErDslParser.g:477:3: ( Money ) + // InternalErDslParser.g:477:4: Money { match(input,Money,FOLLOW_2); @@ -1496,14 +1518,14 @@ public final void rule__DataType__Alternatives() throws RecognitionException { } break; case 4 : - // InternalErDslParser.g:474:2: ( ( String ) ) + // InternalErDslParser.g:481:2: ( ( String ) ) { - // InternalErDslParser.g:474:2: ( ( String ) ) - // InternalErDslParser.g:475:3: ( String ) + // InternalErDslParser.g:481:2: ( ( String ) ) + // InternalErDslParser.g:482:3: ( String ) { before(grammarAccess.getDataTypeAccess().getSTRINGEnumLiteralDeclaration_3()); - // InternalErDslParser.g:476:3: ( String ) - // InternalErDslParser.g:476:4: String + // InternalErDslParser.g:483:3: ( String ) + // InternalErDslParser.g:483:4: String { match(input,String,FOLLOW_2); @@ -1517,14 +1539,14 @@ public final void rule__DataType__Alternatives() throws RecognitionException { } break; case 5 : - // InternalErDslParser.g:480:2: ( ( Boolean ) ) + // InternalErDslParser.g:487:2: ( ( Boolean ) ) { - // InternalErDslParser.g:480:2: ( ( Boolean ) ) - // InternalErDslParser.g:481:3: ( Boolean ) + // InternalErDslParser.g:487:2: ( ( Boolean ) ) + // InternalErDslParser.g:488:3: ( Boolean ) { before(grammarAccess.getDataTypeAccess().getBOOLEANEnumLiteralDeclaration_4()); - // InternalErDslParser.g:482:3: ( Boolean ) - // InternalErDslParser.g:482:4: Boolean + // InternalErDslParser.g:489:3: ( Boolean ) + // InternalErDslParser.g:489:4: Boolean { match(input,Boolean,FOLLOW_2); @@ -1538,14 +1560,14 @@ public final void rule__DataType__Alternatives() throws RecognitionException { } break; case 6 : - // InternalErDslParser.g:486:2: ( ( Datetime ) ) + // InternalErDslParser.g:493:2: ( ( Datetime ) ) { - // InternalErDslParser.g:486:2: ( ( Datetime ) ) - // InternalErDslParser.g:487:3: ( Datetime ) + // InternalErDslParser.g:493:2: ( ( Datetime ) ) + // InternalErDslParser.g:494:3: ( Datetime ) { before(grammarAccess.getDataTypeAccess().getDATETIMEEnumLiteralDeclaration_5()); - // InternalErDslParser.g:488:3: ( Datetime ) - // InternalErDslParser.g:488:4: Datetime + // InternalErDslParser.g:495:3: ( Datetime ) + // InternalErDslParser.g:495:4: Datetime { match(input,Datetime,FOLLOW_2); @@ -1559,14 +1581,14 @@ public final void rule__DataType__Alternatives() throws RecognitionException { } break; case 7 : - // InternalErDslParser.g:492:2: ( ( File ) ) + // InternalErDslParser.g:499:2: ( ( File ) ) { - // InternalErDslParser.g:492:2: ( ( File ) ) - // InternalErDslParser.g:493:3: ( File ) + // InternalErDslParser.g:499:2: ( ( File ) ) + // InternalErDslParser.g:500:3: ( File ) { before(grammarAccess.getDataTypeAccess().getBLOBEnumLiteralDeclaration_6()); - // InternalErDslParser.g:494:3: ( File ) - // InternalErDslParser.g:494:4: File + // InternalErDslParser.g:501:3: ( File ) + // InternalErDslParser.g:501:4: File { match(input,File,FOLLOW_2); @@ -1597,14 +1619,14 @@ public final void rule__DataType__Alternatives() throws RecognitionException { // $ANTLR start "rule__ERModel__Group__0" - // InternalErDslParser.g:502:1: rule__ERModel__Group__0 : rule__ERModel__Group__0__Impl rule__ERModel__Group__1 ; + // InternalErDslParser.g:509: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 { - // InternalErDslParser.g:506:1: ( rule__ERModel__Group__0__Impl rule__ERModel__Group__1 ) - // InternalErDslParser.g:507:2: rule__ERModel__Group__0__Impl rule__ERModel__Group__1 + // InternalErDslParser.g:513:1: ( rule__ERModel__Group__0__Impl rule__ERModel__Group__1 ) + // InternalErDslParser.g:514:2: rule__ERModel__Group__0__Impl rule__ERModel__Group__1 { pushFollow(FOLLOW_3); rule__ERModel__Group__0__Impl(); @@ -1635,20 +1657,20 @@ public final void rule__ERModel__Group__0() throws RecognitionException { // $ANTLR start "rule__ERModel__Group__0__Impl" - // InternalErDslParser.g:514:1: rule__ERModel__Group__0__Impl : ( ( rule__ERModel__Group_0__0 )? ) ; + // InternalErDslParser.g:521:1: rule__ERModel__Group__0__Impl : ( ( rule__ERModel__Group_0__0 )? ) ; public final void rule__ERModel__Group__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:518:1: ( ( ( rule__ERModel__Group_0__0 )? ) ) - // InternalErDslParser.g:519:1: ( ( rule__ERModel__Group_0__0 )? ) + // InternalErDslParser.g:525:1: ( ( ( rule__ERModel__Group_0__0 )? ) ) + // InternalErDslParser.g:526:1: ( ( rule__ERModel__Group_0__0 )? ) { - // InternalErDslParser.g:519:1: ( ( rule__ERModel__Group_0__0 )? ) - // InternalErDslParser.g:520:2: ( rule__ERModel__Group_0__0 )? + // InternalErDslParser.g:526:1: ( ( rule__ERModel__Group_0__0 )? ) + // InternalErDslParser.g:527:2: ( rule__ERModel__Group_0__0 )? { before(grammarAccess.getERModelAccess().getGroup_0()); - // InternalErDslParser.g:521:2: ( rule__ERModel__Group_0__0 )? + // InternalErDslParser.g:528:2: ( rule__ERModel__Group_0__0 )? int alt8=2; int LA8_0 = input.LA(1); @@ -1657,7 +1679,7 @@ public final void rule__ERModel__Group__0__Impl() throws RecognitionException { } switch (alt8) { case 1 : - // InternalErDslParser.g:521:3: rule__ERModel__Group_0__0 + // InternalErDslParser.g:528:3: rule__ERModel__Group_0__0 { pushFollow(FOLLOW_2); rule__ERModel__Group_0__0(); @@ -1693,14 +1715,14 @@ public final void rule__ERModel__Group__0__Impl() throws RecognitionException { // $ANTLR start "rule__ERModel__Group__1" - // InternalErDslParser.g:529:1: rule__ERModel__Group__1 : rule__ERModel__Group__1__Impl rule__ERModel__Group__2 ; + // InternalErDslParser.g:536: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 { - // InternalErDslParser.g:533:1: ( rule__ERModel__Group__1__Impl rule__ERModel__Group__2 ) - // InternalErDslParser.g:534:2: rule__ERModel__Group__1__Impl rule__ERModel__Group__2 + // InternalErDslParser.g:540:1: ( rule__ERModel__Group__1__Impl rule__ERModel__Group__2 ) + // InternalErDslParser.g:541:2: rule__ERModel__Group__1__Impl rule__ERModel__Group__2 { pushFollow(FOLLOW_4); rule__ERModel__Group__1__Impl(); @@ -1731,21 +1753,21 @@ public final void rule__ERModel__Group__1() throws RecognitionException { // $ANTLR start "rule__ERModel__Group__1__Impl" - // InternalErDslParser.g:541:1: rule__ERModel__Group__1__Impl : ( ( rule__ERModel__DomainAssignment_1 ) ) ; + // InternalErDslParser.g:548:1: rule__ERModel__Group__1__Impl : ( ( rule__ERModel__DomainAssignment_1 ) ) ; public final void rule__ERModel__Group__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:545:1: ( ( ( rule__ERModel__DomainAssignment_1 ) ) ) - // InternalErDslParser.g:546:1: ( ( rule__ERModel__DomainAssignment_1 ) ) + // InternalErDslParser.g:552:1: ( ( ( rule__ERModel__DomainAssignment_1 ) ) ) + // InternalErDslParser.g:553:1: ( ( rule__ERModel__DomainAssignment_1 ) ) { - // InternalErDslParser.g:546:1: ( ( rule__ERModel__DomainAssignment_1 ) ) - // InternalErDslParser.g:547:2: ( rule__ERModel__DomainAssignment_1 ) + // InternalErDslParser.g:553:1: ( ( rule__ERModel__DomainAssignment_1 ) ) + // InternalErDslParser.g:554:2: ( rule__ERModel__DomainAssignment_1 ) { before(grammarAccess.getERModelAccess().getDomainAssignment_1()); - // InternalErDslParser.g:548:2: ( rule__ERModel__DomainAssignment_1 ) - // InternalErDslParser.g:548:3: rule__ERModel__DomainAssignment_1 + // InternalErDslParser.g:555:2: ( rule__ERModel__DomainAssignment_1 ) + // InternalErDslParser.g:555:3: rule__ERModel__DomainAssignment_1 { pushFollow(FOLLOW_2); rule__ERModel__DomainAssignment_1(); @@ -1778,14 +1800,14 @@ public final void rule__ERModel__Group__1__Impl() throws RecognitionException { // $ANTLR start "rule__ERModel__Group__2" - // InternalErDslParser.g:556:1: rule__ERModel__Group__2 : rule__ERModel__Group__2__Impl rule__ERModel__Group__3 ; + // InternalErDslParser.g:563: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 { - // InternalErDslParser.g:560:1: ( rule__ERModel__Group__2__Impl rule__ERModel__Group__3 ) - // InternalErDslParser.g:561:2: rule__ERModel__Group__2__Impl rule__ERModel__Group__3 + // InternalErDslParser.g:567:1: ( rule__ERModel__Group__2__Impl rule__ERModel__Group__3 ) + // InternalErDslParser.g:568:2: rule__ERModel__Group__2__Impl rule__ERModel__Group__3 { pushFollow(FOLLOW_5); rule__ERModel__Group__2__Impl(); @@ -1816,17 +1838,17 @@ public final void rule__ERModel__Group__2() throws RecognitionException { // $ANTLR start "rule__ERModel__Group__2__Impl" - // InternalErDslParser.g:568:1: rule__ERModel__Group__2__Impl : ( Semicolon ) ; + // InternalErDslParser.g:575:1: rule__ERModel__Group__2__Impl : ( Semicolon ) ; public final void rule__ERModel__Group__2__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:572:1: ( ( Semicolon ) ) - // InternalErDslParser.g:573:1: ( Semicolon ) + // InternalErDslParser.g:579:1: ( ( Semicolon ) ) + // InternalErDslParser.g:580:1: ( Semicolon ) { - // InternalErDslParser.g:573:1: ( Semicolon ) - // InternalErDslParser.g:574:2: Semicolon + // InternalErDslParser.g:580:1: ( Semicolon ) + // InternalErDslParser.g:581:2: Semicolon { before(grammarAccess.getERModelAccess().getSemicolonKeyword_2()); match(input,Semicolon,FOLLOW_2); @@ -1853,14 +1875,14 @@ public final void rule__ERModel__Group__2__Impl() throws RecognitionException { // $ANTLR start "rule__ERModel__Group__3" - // InternalErDslParser.g:583:1: rule__ERModel__Group__3 : rule__ERModel__Group__3__Impl rule__ERModel__Group__4 ; + // InternalErDslParser.g:590: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 { - // InternalErDslParser.g:587:1: ( rule__ERModel__Group__3__Impl rule__ERModel__Group__4 ) - // InternalErDslParser.g:588:2: rule__ERModel__Group__3__Impl rule__ERModel__Group__4 + // InternalErDslParser.g:594:1: ( rule__ERModel__Group__3__Impl rule__ERModel__Group__4 ) + // InternalErDslParser.g:595:2: rule__ERModel__Group__3__Impl rule__ERModel__Group__4 { pushFollow(FOLLOW_6); rule__ERModel__Group__3__Impl(); @@ -1891,21 +1913,21 @@ public final void rule__ERModel__Group__3() throws RecognitionException { // $ANTLR start "rule__ERModel__Group__3__Impl" - // InternalErDslParser.g:595:1: rule__ERModel__Group__3__Impl : ( ( rule__ERModel__Group_3__0 ) ) ; + // InternalErDslParser.g:602:1: rule__ERModel__Group__3__Impl : ( ( rule__ERModel__Group_3__0 ) ) ; public final void rule__ERModel__Group__3__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:599:1: ( ( ( rule__ERModel__Group_3__0 ) ) ) - // InternalErDslParser.g:600:1: ( ( rule__ERModel__Group_3__0 ) ) + // InternalErDslParser.g:606:1: ( ( ( rule__ERModel__Group_3__0 ) ) ) + // InternalErDslParser.g:607:1: ( ( rule__ERModel__Group_3__0 ) ) { - // InternalErDslParser.g:600:1: ( ( rule__ERModel__Group_3__0 ) ) - // InternalErDslParser.g:601:2: ( rule__ERModel__Group_3__0 ) + // InternalErDslParser.g:607:1: ( ( rule__ERModel__Group_3__0 ) ) + // InternalErDslParser.g:608:2: ( rule__ERModel__Group_3__0 ) { before(grammarAccess.getERModelAccess().getGroup_3()); - // InternalErDslParser.g:602:2: ( rule__ERModel__Group_3__0 ) - // InternalErDslParser.g:602:3: rule__ERModel__Group_3__0 + // InternalErDslParser.g:609:2: ( rule__ERModel__Group_3__0 ) + // InternalErDslParser.g:609:3: rule__ERModel__Group_3__0 { pushFollow(FOLLOW_2); rule__ERModel__Group_3__0(); @@ -1938,14 +1960,14 @@ public final void rule__ERModel__Group__3__Impl() throws RecognitionException { // $ANTLR start "rule__ERModel__Group__4" - // InternalErDslParser.g:610:1: rule__ERModel__Group__4 : rule__ERModel__Group__4__Impl rule__ERModel__Group__5 ; + // InternalErDslParser.g:617: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 { - // InternalErDslParser.g:614:1: ( rule__ERModel__Group__4__Impl rule__ERModel__Group__5 ) - // InternalErDslParser.g:615:2: rule__ERModel__Group__4__Impl rule__ERModel__Group__5 + // InternalErDslParser.g:621:1: ( rule__ERModel__Group__4__Impl rule__ERModel__Group__5 ) + // InternalErDslParser.g:622:2: rule__ERModel__Group__4__Impl rule__ERModel__Group__5 { pushFollow(FOLLOW_7); rule__ERModel__Group__4__Impl(); @@ -1976,24 +1998,24 @@ public final void rule__ERModel__Group__4() throws RecognitionException { // $ANTLR start "rule__ERModel__Group__4__Impl" - // InternalErDslParser.g:622:1: rule__ERModel__Group__4__Impl : ( ( ( rule__ERModel__EntitiesAssignment_4 ) ) ( ( rule__ERModel__EntitiesAssignment_4 )* ) ) ; + // InternalErDslParser.g:629:1: rule__ERModel__Group__4__Impl : ( ( ( rule__ERModel__EntitiesAssignment_4 ) ) ( ( rule__ERModel__EntitiesAssignment_4 )* ) ) ; public final void rule__ERModel__Group__4__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:626:1: ( ( ( ( rule__ERModel__EntitiesAssignment_4 ) ) ( ( rule__ERModel__EntitiesAssignment_4 )* ) ) ) - // InternalErDslParser.g:627:1: ( ( ( rule__ERModel__EntitiesAssignment_4 ) ) ( ( rule__ERModel__EntitiesAssignment_4 )* ) ) + // InternalErDslParser.g:633:1: ( ( ( ( rule__ERModel__EntitiesAssignment_4 ) ) ( ( rule__ERModel__EntitiesAssignment_4 )* ) ) ) + // InternalErDslParser.g:634:1: ( ( ( rule__ERModel__EntitiesAssignment_4 ) ) ( ( rule__ERModel__EntitiesAssignment_4 )* ) ) { - // InternalErDslParser.g:627:1: ( ( ( rule__ERModel__EntitiesAssignment_4 ) ) ( ( rule__ERModel__EntitiesAssignment_4 )* ) ) - // InternalErDslParser.g:628:2: ( ( rule__ERModel__EntitiesAssignment_4 ) ) ( ( rule__ERModel__EntitiesAssignment_4 )* ) + // InternalErDslParser.g:634:1: ( ( ( rule__ERModel__EntitiesAssignment_4 ) ) ( ( rule__ERModel__EntitiesAssignment_4 )* ) ) + // InternalErDslParser.g:635:2: ( ( rule__ERModel__EntitiesAssignment_4 ) ) ( ( rule__ERModel__EntitiesAssignment_4 )* ) { - // InternalErDslParser.g:628:2: ( ( rule__ERModel__EntitiesAssignment_4 ) ) - // InternalErDslParser.g:629:3: ( rule__ERModel__EntitiesAssignment_4 ) + // InternalErDslParser.g:635:2: ( ( rule__ERModel__EntitiesAssignment_4 ) ) + // InternalErDslParser.g:636:3: ( rule__ERModel__EntitiesAssignment_4 ) { before(grammarAccess.getERModelAccess().getEntitiesAssignment_4()); - // InternalErDslParser.g:630:3: ( rule__ERModel__EntitiesAssignment_4 ) - // InternalErDslParser.g:630:4: rule__ERModel__EntitiesAssignment_4 + // InternalErDslParser.g:637:3: ( rule__ERModel__EntitiesAssignment_4 ) + // InternalErDslParser.g:637:4: rule__ERModel__EntitiesAssignment_4 { pushFollow(FOLLOW_8); rule__ERModel__EntitiesAssignment_4(); @@ -2007,11 +2029,11 @@ public final void rule__ERModel__Group__4__Impl() throws RecognitionException { } - // InternalErDslParser.g:633:2: ( ( rule__ERModel__EntitiesAssignment_4 )* ) - // InternalErDslParser.g:634:3: ( rule__ERModel__EntitiesAssignment_4 )* + // InternalErDslParser.g:640:2: ( ( rule__ERModel__EntitiesAssignment_4 )* ) + // InternalErDslParser.g:641:3: ( rule__ERModel__EntitiesAssignment_4 )* { before(grammarAccess.getERModelAccess().getEntitiesAssignment_4()); - // InternalErDslParser.g:635:3: ( rule__ERModel__EntitiesAssignment_4 )* + // InternalErDslParser.g:642:3: ( rule__ERModel__EntitiesAssignment_4 )* loop9: do { int alt9=2; @@ -2024,7 +2046,7 @@ public final void rule__ERModel__Group__4__Impl() throws RecognitionException { switch (alt9) { case 1 : - // InternalErDslParser.g:635:4: rule__ERModel__EntitiesAssignment_4 + // InternalErDslParser.g:642:4: rule__ERModel__EntitiesAssignment_4 { pushFollow(FOLLOW_8); rule__ERModel__EntitiesAssignment_4(); @@ -2066,14 +2088,14 @@ public final void rule__ERModel__Group__4__Impl() throws RecognitionException { // $ANTLR start "rule__ERModel__Group__5" - // InternalErDslParser.g:644:1: rule__ERModel__Group__5 : rule__ERModel__Group__5__Impl rule__ERModel__Group__6 ; + // InternalErDslParser.g:651: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 { - // InternalErDslParser.g:648:1: ( rule__ERModel__Group__5__Impl rule__ERModel__Group__6 ) - // InternalErDslParser.g:649:2: rule__ERModel__Group__5__Impl rule__ERModel__Group__6 + // InternalErDslParser.g:655:1: ( rule__ERModel__Group__5__Impl rule__ERModel__Group__6 ) + // InternalErDslParser.g:656:2: rule__ERModel__Group__5__Impl rule__ERModel__Group__6 { pushFollow(FOLLOW_9); rule__ERModel__Group__5__Impl(); @@ -2104,21 +2126,21 @@ public final void rule__ERModel__Group__5() throws RecognitionException { // $ANTLR start "rule__ERModel__Group__5__Impl" - // InternalErDslParser.g:656:1: rule__ERModel__Group__5__Impl : ( ( rule__ERModel__Group_5__0 ) ) ; + // InternalErDslParser.g:663: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 { - // InternalErDslParser.g:660:1: ( ( ( rule__ERModel__Group_5__0 ) ) ) - // InternalErDslParser.g:661:1: ( ( rule__ERModel__Group_5__0 ) ) + // InternalErDslParser.g:667:1: ( ( ( rule__ERModel__Group_5__0 ) ) ) + // InternalErDslParser.g:668:1: ( ( rule__ERModel__Group_5__0 ) ) { - // InternalErDslParser.g:661:1: ( ( rule__ERModel__Group_5__0 ) ) - // InternalErDslParser.g:662:2: ( rule__ERModel__Group_5__0 ) + // InternalErDslParser.g:668:1: ( ( rule__ERModel__Group_5__0 ) ) + // InternalErDslParser.g:669:2: ( rule__ERModel__Group_5__0 ) { before(grammarAccess.getERModelAccess().getGroup_5()); - // InternalErDslParser.g:663:2: ( rule__ERModel__Group_5__0 ) - // InternalErDslParser.g:663:3: rule__ERModel__Group_5__0 + // InternalErDslParser.g:670:2: ( rule__ERModel__Group_5__0 ) + // InternalErDslParser.g:670:3: rule__ERModel__Group_5__0 { pushFollow(FOLLOW_2); rule__ERModel__Group_5__0(); @@ -2151,14 +2173,14 @@ public final void rule__ERModel__Group__5__Impl() throws RecognitionException { // $ANTLR start "rule__ERModel__Group__6" - // InternalErDslParser.g:671:1: rule__ERModel__Group__6 : rule__ERModel__Group__6__Impl rule__ERModel__Group__7 ; + // InternalErDslParser.g:678: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 { - // InternalErDslParser.g:675:1: ( rule__ERModel__Group__6__Impl rule__ERModel__Group__7 ) - // InternalErDslParser.g:676:2: rule__ERModel__Group__6__Impl rule__ERModel__Group__7 + // InternalErDslParser.g:682:1: ( rule__ERModel__Group__6__Impl rule__ERModel__Group__7 ) + // InternalErDslParser.g:683:2: rule__ERModel__Group__6__Impl rule__ERModel__Group__7 { pushFollow(FOLLOW_10); rule__ERModel__Group__6__Impl(); @@ -2189,21 +2211,21 @@ public final void rule__ERModel__Group__6() throws RecognitionException { // $ANTLR start "rule__ERModel__Group__6__Impl" - // InternalErDslParser.g:683:1: rule__ERModel__Group__6__Impl : ( ( rule__ERModel__Group_6__0 ) ) ; + // InternalErDslParser.g:690:1: rule__ERModel__Group__6__Impl : ( ( rule__ERModel__Group_6__0 ) ) ; public final void rule__ERModel__Group__6__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:687:1: ( ( ( rule__ERModel__Group_6__0 ) ) ) - // InternalErDslParser.g:688:1: ( ( rule__ERModel__Group_6__0 ) ) + // InternalErDslParser.g:694:1: ( ( ( rule__ERModel__Group_6__0 ) ) ) + // InternalErDslParser.g:695:1: ( ( rule__ERModel__Group_6__0 ) ) { - // InternalErDslParser.g:688:1: ( ( rule__ERModel__Group_6__0 ) ) - // InternalErDslParser.g:689:2: ( rule__ERModel__Group_6__0 ) + // InternalErDslParser.g:695:1: ( ( rule__ERModel__Group_6__0 ) ) + // InternalErDslParser.g:696:2: ( rule__ERModel__Group_6__0 ) { before(grammarAccess.getERModelAccess().getGroup_6()); - // InternalErDslParser.g:690:2: ( rule__ERModel__Group_6__0 ) - // InternalErDslParser.g:690:3: rule__ERModel__Group_6__0 + // InternalErDslParser.g:697:2: ( rule__ERModel__Group_6__0 ) + // InternalErDslParser.g:697:3: rule__ERModel__Group_6__0 { pushFollow(FOLLOW_2); rule__ERModel__Group_6__0(); @@ -2236,14 +2258,14 @@ public final void rule__ERModel__Group__6__Impl() throws RecognitionException { // $ANTLR start "rule__ERModel__Group__7" - // InternalErDslParser.g:698:1: rule__ERModel__Group__7 : rule__ERModel__Group__7__Impl rule__ERModel__Group__8 ; + // InternalErDslParser.g:705:1: rule__ERModel__Group__7 : rule__ERModel__Group__7__Impl rule__ERModel__Group__8 ; public final void rule__ERModel__Group__7() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:702:1: ( rule__ERModel__Group__7__Impl rule__ERModel__Group__8 ) - // InternalErDslParser.g:703:2: rule__ERModel__Group__7__Impl rule__ERModel__Group__8 + // InternalErDslParser.g:709:1: ( rule__ERModel__Group__7__Impl rule__ERModel__Group__8 ) + // InternalErDslParser.g:710:2: rule__ERModel__Group__7__Impl rule__ERModel__Group__8 { pushFollow(FOLLOW_10); rule__ERModel__Group__7__Impl(); @@ -2274,20 +2296,20 @@ public final void rule__ERModel__Group__7() throws RecognitionException { // $ANTLR start "rule__ERModel__Group__7__Impl" - // InternalErDslParser.g:710:1: rule__ERModel__Group__7__Impl : ( ( rule__ERModel__RelationsAssignment_7 )* ) ; + // InternalErDslParser.g:717:1: rule__ERModel__Group__7__Impl : ( ( rule__ERModel__RelationsAssignment_7 )* ) ; public final void rule__ERModel__Group__7__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:714:1: ( ( ( rule__ERModel__RelationsAssignment_7 )* ) ) - // InternalErDslParser.g:715:1: ( ( rule__ERModel__RelationsAssignment_7 )* ) + // InternalErDslParser.g:721:1: ( ( ( rule__ERModel__RelationsAssignment_7 )* ) ) + // InternalErDslParser.g:722:1: ( ( rule__ERModel__RelationsAssignment_7 )* ) { - // InternalErDslParser.g:715:1: ( ( rule__ERModel__RelationsAssignment_7 )* ) - // InternalErDslParser.g:716:2: ( rule__ERModel__RelationsAssignment_7 )* + // InternalErDslParser.g:722:1: ( ( rule__ERModel__RelationsAssignment_7 )* ) + // InternalErDslParser.g:723:2: ( rule__ERModel__RelationsAssignment_7 )* { before(grammarAccess.getERModelAccess().getRelationsAssignment_7()); - // InternalErDslParser.g:717:2: ( rule__ERModel__RelationsAssignment_7 )* + // InternalErDslParser.g:724:2: ( rule__ERModel__RelationsAssignment_7 )* loop10: do { int alt10=2; @@ -2300,7 +2322,7 @@ public final void rule__ERModel__Group__7__Impl() throws RecognitionException { switch (alt10) { case 1 : - // InternalErDslParser.g:717:3: rule__ERModel__RelationsAssignment_7 + // InternalErDslParser.g:724:3: rule__ERModel__RelationsAssignment_7 { pushFollow(FOLLOW_11); rule__ERModel__RelationsAssignment_7(); @@ -2339,14 +2361,14 @@ public final void rule__ERModel__Group__7__Impl() throws RecognitionException { // $ANTLR start "rule__ERModel__Group__8" - // InternalErDslParser.g:725:1: rule__ERModel__Group__8 : rule__ERModel__Group__8__Impl ; + // InternalErDslParser.g:732:1: rule__ERModel__Group__8 : rule__ERModel__Group__8__Impl ; public final void rule__ERModel__Group__8() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:729:1: ( rule__ERModel__Group__8__Impl ) - // InternalErDslParser.g:730:2: rule__ERModel__Group__8__Impl + // InternalErDslParser.g:736:1: ( rule__ERModel__Group__8__Impl ) + // InternalErDslParser.g:737:2: rule__ERModel__Group__8__Impl { pushFollow(FOLLOW_2); rule__ERModel__Group__8__Impl(); @@ -2372,21 +2394,21 @@ public final void rule__ERModel__Group__8() throws RecognitionException { // $ANTLR start "rule__ERModel__Group__8__Impl" - // InternalErDslParser.g:736:1: rule__ERModel__Group__8__Impl : ( ( rule__ERModel__Group_8__0 ) ) ; + // InternalErDslParser.g:743:1: rule__ERModel__Group__8__Impl : ( ( rule__ERModel__Group_8__0 ) ) ; public final void rule__ERModel__Group__8__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:740:1: ( ( ( rule__ERModel__Group_8__0 ) ) ) - // InternalErDslParser.g:741:1: ( ( rule__ERModel__Group_8__0 ) ) + // InternalErDslParser.g:747:1: ( ( ( rule__ERModel__Group_8__0 ) ) ) + // InternalErDslParser.g:748:1: ( ( rule__ERModel__Group_8__0 ) ) { - // InternalErDslParser.g:741:1: ( ( rule__ERModel__Group_8__0 ) ) - // InternalErDslParser.g:742:2: ( rule__ERModel__Group_8__0 ) + // InternalErDslParser.g:748:1: ( ( rule__ERModel__Group_8__0 ) ) + // InternalErDslParser.g:749:2: ( rule__ERModel__Group_8__0 ) { before(grammarAccess.getERModelAccess().getGroup_8()); - // InternalErDslParser.g:743:2: ( rule__ERModel__Group_8__0 ) - // InternalErDslParser.g:743:3: rule__ERModel__Group_8__0 + // InternalErDslParser.g:750:2: ( rule__ERModel__Group_8__0 ) + // InternalErDslParser.g:750:3: rule__ERModel__Group_8__0 { pushFollow(FOLLOW_2); rule__ERModel__Group_8__0(); @@ -2419,14 +2441,14 @@ public final void rule__ERModel__Group__8__Impl() throws RecognitionException { // $ANTLR start "rule__ERModel__Group_0__0" - // InternalErDslParser.g:752:1: rule__ERModel__Group_0__0 : rule__ERModel__Group_0__0__Impl rule__ERModel__Group_0__1 ; + // InternalErDslParser.g:759:1: rule__ERModel__Group_0__0 : rule__ERModel__Group_0__0__Impl rule__ERModel__Group_0__1 ; public final void rule__ERModel__Group_0__0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:756:1: ( rule__ERModel__Group_0__0__Impl rule__ERModel__Group_0__1 ) - // InternalErDslParser.g:757:2: rule__ERModel__Group_0__0__Impl rule__ERModel__Group_0__1 + // InternalErDslParser.g:763:1: ( rule__ERModel__Group_0__0__Impl rule__ERModel__Group_0__1 ) + // InternalErDslParser.g:764:2: rule__ERModel__Group_0__0__Impl rule__ERModel__Group_0__1 { pushFollow(FOLLOW_12); rule__ERModel__Group_0__0__Impl(); @@ -2457,17 +2479,17 @@ public final void rule__ERModel__Group_0__0() throws RecognitionException { // $ANTLR start "rule__ERModel__Group_0__0__Impl" - // InternalErDslParser.g:764:1: rule__ERModel__Group_0__0__Impl : ( Generate ) ; + // InternalErDslParser.g:771:1: rule__ERModel__Group_0__0__Impl : ( Generate ) ; public final void rule__ERModel__Group_0__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:768:1: ( ( Generate ) ) - // InternalErDslParser.g:769:1: ( Generate ) + // InternalErDslParser.g:775:1: ( ( Generate ) ) + // InternalErDslParser.g:776:1: ( Generate ) { - // InternalErDslParser.g:769:1: ( Generate ) - // InternalErDslParser.g:770:2: Generate + // InternalErDslParser.g:776:1: ( Generate ) + // InternalErDslParser.g:777:2: Generate { before(grammarAccess.getERModelAccess().getGenerateKeyword_0_0()); match(input,Generate,FOLLOW_2); @@ -2494,14 +2516,14 @@ public final void rule__ERModel__Group_0__0__Impl() throws RecognitionException // $ANTLR start "rule__ERModel__Group_0__1" - // InternalErDslParser.g:779:1: rule__ERModel__Group_0__1 : rule__ERModel__Group_0__1__Impl rule__ERModel__Group_0__2 ; + // InternalErDslParser.g:786:1: rule__ERModel__Group_0__1 : rule__ERModel__Group_0__1__Impl rule__ERModel__Group_0__2 ; public final void rule__ERModel__Group_0__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:783:1: ( rule__ERModel__Group_0__1__Impl rule__ERModel__Group_0__2 ) - // InternalErDslParser.g:784:2: rule__ERModel__Group_0__1__Impl rule__ERModel__Group_0__2 + // InternalErDslParser.g:790:1: ( rule__ERModel__Group_0__1__Impl rule__ERModel__Group_0__2 ) + // InternalErDslParser.g:791:2: rule__ERModel__Group_0__1__Impl rule__ERModel__Group_0__2 { pushFollow(FOLLOW_4); rule__ERModel__Group_0__1__Impl(); @@ -2532,21 +2554,21 @@ public final void rule__ERModel__Group_0__1() throws RecognitionException { // $ANTLR start "rule__ERModel__Group_0__1__Impl" - // InternalErDslParser.g:791:1: rule__ERModel__Group_0__1__Impl : ( ( rule__ERModel__TargetGeneratorAssignment_0_1 ) ) ; + // InternalErDslParser.g:798:1: rule__ERModel__Group_0__1__Impl : ( ( rule__ERModel__TargetGeneratorAssignment_0_1 ) ) ; public final void rule__ERModel__Group_0__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:795:1: ( ( ( rule__ERModel__TargetGeneratorAssignment_0_1 ) ) ) - // InternalErDslParser.g:796:1: ( ( rule__ERModel__TargetGeneratorAssignment_0_1 ) ) + // InternalErDslParser.g:802:1: ( ( ( rule__ERModel__TargetGeneratorAssignment_0_1 ) ) ) + // InternalErDslParser.g:803:1: ( ( rule__ERModel__TargetGeneratorAssignment_0_1 ) ) { - // InternalErDslParser.g:796:1: ( ( rule__ERModel__TargetGeneratorAssignment_0_1 ) ) - // InternalErDslParser.g:797:2: ( rule__ERModel__TargetGeneratorAssignment_0_1 ) + // InternalErDslParser.g:803:1: ( ( rule__ERModel__TargetGeneratorAssignment_0_1 ) ) + // InternalErDslParser.g:804:2: ( rule__ERModel__TargetGeneratorAssignment_0_1 ) { before(grammarAccess.getERModelAccess().getTargetGeneratorAssignment_0_1()); - // InternalErDslParser.g:798:2: ( rule__ERModel__TargetGeneratorAssignment_0_1 ) - // InternalErDslParser.g:798:3: rule__ERModel__TargetGeneratorAssignment_0_1 + // InternalErDslParser.g:805:2: ( rule__ERModel__TargetGeneratorAssignment_0_1 ) + // InternalErDslParser.g:805:3: rule__ERModel__TargetGeneratorAssignment_0_1 { pushFollow(FOLLOW_2); rule__ERModel__TargetGeneratorAssignment_0_1(); @@ -2579,14 +2601,14 @@ public final void rule__ERModel__Group_0__1__Impl() throws RecognitionException // $ANTLR start "rule__ERModel__Group_0__2" - // InternalErDslParser.g:806:1: rule__ERModel__Group_0__2 : rule__ERModel__Group_0__2__Impl ; + // InternalErDslParser.g:813:1: rule__ERModel__Group_0__2 : rule__ERModel__Group_0__2__Impl ; public final void rule__ERModel__Group_0__2() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:810:1: ( rule__ERModel__Group_0__2__Impl ) - // InternalErDslParser.g:811:2: rule__ERModel__Group_0__2__Impl + // InternalErDslParser.g:817:1: ( rule__ERModel__Group_0__2__Impl ) + // InternalErDslParser.g:818:2: rule__ERModel__Group_0__2__Impl { pushFollow(FOLLOW_2); rule__ERModel__Group_0__2__Impl(); @@ -2612,17 +2634,17 @@ public final void rule__ERModel__Group_0__2() throws RecognitionException { // $ANTLR start "rule__ERModel__Group_0__2__Impl" - // InternalErDslParser.g:817:1: rule__ERModel__Group_0__2__Impl : ( Semicolon ) ; + // InternalErDslParser.g:824:1: rule__ERModel__Group_0__2__Impl : ( Semicolon ) ; public final void rule__ERModel__Group_0__2__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:821:1: ( ( Semicolon ) ) - // InternalErDslParser.g:822:1: ( Semicolon ) + // InternalErDslParser.g:828:1: ( ( Semicolon ) ) + // InternalErDslParser.g:829:1: ( Semicolon ) { - // InternalErDslParser.g:822:1: ( Semicolon ) - // InternalErDslParser.g:823:2: Semicolon + // InternalErDslParser.g:829:1: ( Semicolon ) + // InternalErDslParser.g:830:2: Semicolon { before(grammarAccess.getERModelAccess().getSemicolonKeyword_0_2()); match(input,Semicolon,FOLLOW_2); @@ -2649,14 +2671,14 @@ public final void rule__ERModel__Group_0__2__Impl() throws RecognitionException // $ANTLR start "rule__ERModel__Group_3__0" - // InternalErDslParser.g:833:1: rule__ERModel__Group_3__0 : rule__ERModel__Group_3__0__Impl rule__ERModel__Group_3__1 ; + // InternalErDslParser.g:840:1: rule__ERModel__Group_3__0 : rule__ERModel__Group_3__0__Impl rule__ERModel__Group_3__1 ; public final void rule__ERModel__Group_3__0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:837:1: ( rule__ERModel__Group_3__0__Impl rule__ERModel__Group_3__1 ) - // InternalErDslParser.g:838:2: rule__ERModel__Group_3__0__Impl rule__ERModel__Group_3__1 + // InternalErDslParser.g:844:1: ( rule__ERModel__Group_3__0__Impl rule__ERModel__Group_3__1 ) + // InternalErDslParser.g:845:2: rule__ERModel__Group_3__0__Impl rule__ERModel__Group_3__1 { pushFollow(FOLLOW_13); rule__ERModel__Group_3__0__Impl(); @@ -2687,17 +2709,17 @@ public final void rule__ERModel__Group_3__0() throws RecognitionException { // $ANTLR start "rule__ERModel__Group_3__0__Impl" - // InternalErDslParser.g:845:1: rule__ERModel__Group_3__0__Impl : ( Entities ) ; + // InternalErDslParser.g:852:1: rule__ERModel__Group_3__0__Impl : ( Entities ) ; public final void rule__ERModel__Group_3__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:849:1: ( ( Entities ) ) - // InternalErDslParser.g:850:1: ( Entities ) + // InternalErDslParser.g:856:1: ( ( Entities ) ) + // InternalErDslParser.g:857:1: ( Entities ) { - // InternalErDslParser.g:850:1: ( Entities ) - // InternalErDslParser.g:851:2: Entities + // InternalErDslParser.g:857:1: ( Entities ) + // InternalErDslParser.g:858:2: Entities { before(grammarAccess.getERModelAccess().getEntitiesKeyword_3_0()); match(input,Entities,FOLLOW_2); @@ -2724,14 +2746,14 @@ public final void rule__ERModel__Group_3__0__Impl() throws RecognitionException // $ANTLR start "rule__ERModel__Group_3__1" - // InternalErDslParser.g:860:1: rule__ERModel__Group_3__1 : rule__ERModel__Group_3__1__Impl ; + // InternalErDslParser.g:867:1: rule__ERModel__Group_3__1 : rule__ERModel__Group_3__1__Impl ; public final void rule__ERModel__Group_3__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:864:1: ( rule__ERModel__Group_3__1__Impl ) - // InternalErDslParser.g:865:2: rule__ERModel__Group_3__1__Impl + // InternalErDslParser.g:871:1: ( rule__ERModel__Group_3__1__Impl ) + // InternalErDslParser.g:872:2: rule__ERModel__Group_3__1__Impl { pushFollow(FOLLOW_2); rule__ERModel__Group_3__1__Impl(); @@ -2757,17 +2779,17 @@ public final void rule__ERModel__Group_3__1() throws RecognitionException { // $ANTLR start "rule__ERModel__Group_3__1__Impl" - // InternalErDslParser.g:871:1: rule__ERModel__Group_3__1__Impl : ( LeftCurlyBracket ) ; + // InternalErDslParser.g:878:1: rule__ERModel__Group_3__1__Impl : ( LeftCurlyBracket ) ; public final void rule__ERModel__Group_3__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:875:1: ( ( LeftCurlyBracket ) ) - // InternalErDslParser.g:876:1: ( LeftCurlyBracket ) + // InternalErDslParser.g:882:1: ( ( LeftCurlyBracket ) ) + // InternalErDslParser.g:883:1: ( LeftCurlyBracket ) { - // InternalErDslParser.g:876:1: ( LeftCurlyBracket ) - // InternalErDslParser.g:877:2: LeftCurlyBracket + // InternalErDslParser.g:883:1: ( LeftCurlyBracket ) + // InternalErDslParser.g:884:2: LeftCurlyBracket { before(grammarAccess.getERModelAccess().getLeftCurlyBracketKeyword_3_1()); match(input,LeftCurlyBracket,FOLLOW_2); @@ -2794,14 +2816,14 @@ public final void rule__ERModel__Group_3__1__Impl() throws RecognitionException // $ANTLR start "rule__ERModel__Group_5__0" - // InternalErDslParser.g:887:1: rule__ERModel__Group_5__0 : rule__ERModel__Group_5__0__Impl rule__ERModel__Group_5__1 ; + // InternalErDslParser.g:894: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 { - // InternalErDslParser.g:891:1: ( rule__ERModel__Group_5__0__Impl rule__ERModel__Group_5__1 ) - // InternalErDslParser.g:892:2: rule__ERModel__Group_5__0__Impl rule__ERModel__Group_5__1 + // InternalErDslParser.g:898:1: ( rule__ERModel__Group_5__0__Impl rule__ERModel__Group_5__1 ) + // InternalErDslParser.g:899:2: rule__ERModel__Group_5__0__Impl rule__ERModel__Group_5__1 { pushFollow(FOLLOW_4); rule__ERModel__Group_5__0__Impl(); @@ -2832,17 +2854,17 @@ public final void rule__ERModel__Group_5__0() throws RecognitionException { // $ANTLR start "rule__ERModel__Group_5__0__Impl" - // InternalErDslParser.g:899:1: rule__ERModel__Group_5__0__Impl : ( RightCurlyBracket ) ; + // InternalErDslParser.g:906:1: rule__ERModel__Group_5__0__Impl : ( RightCurlyBracket ) ; public final void rule__ERModel__Group_5__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:903:1: ( ( RightCurlyBracket ) ) - // InternalErDslParser.g:904:1: ( RightCurlyBracket ) + // InternalErDslParser.g:910:1: ( ( RightCurlyBracket ) ) + // InternalErDslParser.g:911:1: ( RightCurlyBracket ) { - // InternalErDslParser.g:904:1: ( RightCurlyBracket ) - // InternalErDslParser.g:905:2: RightCurlyBracket + // InternalErDslParser.g:911:1: ( RightCurlyBracket ) + // InternalErDslParser.g:912:2: RightCurlyBracket { before(grammarAccess.getERModelAccess().getRightCurlyBracketKeyword_5_0()); match(input,RightCurlyBracket,FOLLOW_2); @@ -2869,14 +2891,14 @@ public final void rule__ERModel__Group_5__0__Impl() throws RecognitionException // $ANTLR start "rule__ERModel__Group_5__1" - // InternalErDslParser.g:914:1: rule__ERModel__Group_5__1 : rule__ERModel__Group_5__1__Impl ; + // InternalErDslParser.g:921: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 { - // InternalErDslParser.g:918:1: ( rule__ERModel__Group_5__1__Impl ) - // InternalErDslParser.g:919:2: rule__ERModel__Group_5__1__Impl + // InternalErDslParser.g:925:1: ( rule__ERModel__Group_5__1__Impl ) + // InternalErDslParser.g:926:2: rule__ERModel__Group_5__1__Impl { pushFollow(FOLLOW_2); rule__ERModel__Group_5__1__Impl(); @@ -2902,17 +2924,17 @@ public final void rule__ERModel__Group_5__1() throws RecognitionException { // $ANTLR start "rule__ERModel__Group_5__1__Impl" - // InternalErDslParser.g:925:1: rule__ERModel__Group_5__1__Impl : ( Semicolon ) ; + // InternalErDslParser.g:932:1: rule__ERModel__Group_5__1__Impl : ( Semicolon ) ; public final void rule__ERModel__Group_5__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:929:1: ( ( Semicolon ) ) - // InternalErDslParser.g:930:1: ( Semicolon ) + // InternalErDslParser.g:936:1: ( ( Semicolon ) ) + // InternalErDslParser.g:937:1: ( Semicolon ) { - // InternalErDslParser.g:930:1: ( Semicolon ) - // InternalErDslParser.g:931:2: Semicolon + // InternalErDslParser.g:937:1: ( Semicolon ) + // InternalErDslParser.g:938:2: Semicolon { before(grammarAccess.getERModelAccess().getSemicolonKeyword_5_1()); match(input,Semicolon,FOLLOW_2); @@ -2939,14 +2961,14 @@ public final void rule__ERModel__Group_5__1__Impl() throws RecognitionException // $ANTLR start "rule__ERModel__Group_6__0" - // InternalErDslParser.g:941:1: rule__ERModel__Group_6__0 : rule__ERModel__Group_6__0__Impl rule__ERModel__Group_6__1 ; + // InternalErDslParser.g:948:1: rule__ERModel__Group_6__0 : rule__ERModel__Group_6__0__Impl rule__ERModel__Group_6__1 ; public final void rule__ERModel__Group_6__0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:945:1: ( rule__ERModel__Group_6__0__Impl rule__ERModel__Group_6__1 ) - // InternalErDslParser.g:946:2: rule__ERModel__Group_6__0__Impl rule__ERModel__Group_6__1 + // InternalErDslParser.g:952:1: ( rule__ERModel__Group_6__0__Impl rule__ERModel__Group_6__1 ) + // InternalErDslParser.g:953:2: rule__ERModel__Group_6__0__Impl rule__ERModel__Group_6__1 { pushFollow(FOLLOW_13); rule__ERModel__Group_6__0__Impl(); @@ -2977,17 +2999,17 @@ public final void rule__ERModel__Group_6__0() throws RecognitionException { // $ANTLR start "rule__ERModel__Group_6__0__Impl" - // InternalErDslParser.g:953:1: rule__ERModel__Group_6__0__Impl : ( Relationships ) ; + // InternalErDslParser.g:960:1: rule__ERModel__Group_6__0__Impl : ( Relationships ) ; public final void rule__ERModel__Group_6__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:957:1: ( ( Relationships ) ) - // InternalErDslParser.g:958:1: ( Relationships ) + // InternalErDslParser.g:964:1: ( ( Relationships ) ) + // InternalErDslParser.g:965:1: ( Relationships ) { - // InternalErDslParser.g:958:1: ( Relationships ) - // InternalErDslParser.g:959:2: Relationships + // InternalErDslParser.g:965:1: ( Relationships ) + // InternalErDslParser.g:966:2: Relationships { before(grammarAccess.getERModelAccess().getRelationshipsKeyword_6_0()); match(input,Relationships,FOLLOW_2); @@ -3014,14 +3036,14 @@ public final void rule__ERModel__Group_6__0__Impl() throws RecognitionException // $ANTLR start "rule__ERModel__Group_6__1" - // InternalErDslParser.g:968:1: rule__ERModel__Group_6__1 : rule__ERModel__Group_6__1__Impl ; + // InternalErDslParser.g:975:1: rule__ERModel__Group_6__1 : rule__ERModel__Group_6__1__Impl ; public final void rule__ERModel__Group_6__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:972:1: ( rule__ERModel__Group_6__1__Impl ) - // InternalErDslParser.g:973:2: rule__ERModel__Group_6__1__Impl + // InternalErDslParser.g:979:1: ( rule__ERModel__Group_6__1__Impl ) + // InternalErDslParser.g:980:2: rule__ERModel__Group_6__1__Impl { pushFollow(FOLLOW_2); rule__ERModel__Group_6__1__Impl(); @@ -3047,17 +3069,17 @@ public final void rule__ERModel__Group_6__1() throws RecognitionException { // $ANTLR start "rule__ERModel__Group_6__1__Impl" - // InternalErDslParser.g:979:1: rule__ERModel__Group_6__1__Impl : ( LeftCurlyBracket ) ; + // InternalErDslParser.g:986:1: rule__ERModel__Group_6__1__Impl : ( LeftCurlyBracket ) ; public final void rule__ERModel__Group_6__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:983:1: ( ( LeftCurlyBracket ) ) - // InternalErDslParser.g:984:1: ( LeftCurlyBracket ) + // InternalErDslParser.g:990:1: ( ( LeftCurlyBracket ) ) + // InternalErDslParser.g:991:1: ( LeftCurlyBracket ) { - // InternalErDslParser.g:984:1: ( LeftCurlyBracket ) - // InternalErDslParser.g:985:2: LeftCurlyBracket + // InternalErDslParser.g:991:1: ( LeftCurlyBracket ) + // InternalErDslParser.g:992:2: LeftCurlyBracket { before(grammarAccess.getERModelAccess().getLeftCurlyBracketKeyword_6_1()); match(input,LeftCurlyBracket,FOLLOW_2); @@ -3084,14 +3106,14 @@ public final void rule__ERModel__Group_6__1__Impl() throws RecognitionException // $ANTLR start "rule__ERModel__Group_8__0" - // InternalErDslParser.g:995:1: rule__ERModel__Group_8__0 : rule__ERModel__Group_8__0__Impl rule__ERModel__Group_8__1 ; + // InternalErDslParser.g:1002:1: rule__ERModel__Group_8__0 : rule__ERModel__Group_8__0__Impl rule__ERModel__Group_8__1 ; public final void rule__ERModel__Group_8__0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:999:1: ( rule__ERModel__Group_8__0__Impl rule__ERModel__Group_8__1 ) - // InternalErDslParser.g:1000:2: rule__ERModel__Group_8__0__Impl rule__ERModel__Group_8__1 + // InternalErDslParser.g:1006:1: ( rule__ERModel__Group_8__0__Impl rule__ERModel__Group_8__1 ) + // InternalErDslParser.g:1007:2: rule__ERModel__Group_8__0__Impl rule__ERModel__Group_8__1 { pushFollow(FOLLOW_4); rule__ERModel__Group_8__0__Impl(); @@ -3122,17 +3144,17 @@ public final void rule__ERModel__Group_8__0() throws RecognitionException { // $ANTLR start "rule__ERModel__Group_8__0__Impl" - // InternalErDslParser.g:1007:1: rule__ERModel__Group_8__0__Impl : ( RightCurlyBracket ) ; + // InternalErDslParser.g:1014:1: rule__ERModel__Group_8__0__Impl : ( RightCurlyBracket ) ; public final void rule__ERModel__Group_8__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1011:1: ( ( RightCurlyBracket ) ) - // InternalErDslParser.g:1012:1: ( RightCurlyBracket ) + // InternalErDslParser.g:1018:1: ( ( RightCurlyBracket ) ) + // InternalErDslParser.g:1019:1: ( RightCurlyBracket ) { - // InternalErDslParser.g:1012:1: ( RightCurlyBracket ) - // InternalErDslParser.g:1013:2: RightCurlyBracket + // InternalErDslParser.g:1019:1: ( RightCurlyBracket ) + // InternalErDslParser.g:1020:2: RightCurlyBracket { before(grammarAccess.getERModelAccess().getRightCurlyBracketKeyword_8_0()); match(input,RightCurlyBracket,FOLLOW_2); @@ -3159,14 +3181,14 @@ public final void rule__ERModel__Group_8__0__Impl() throws RecognitionException // $ANTLR start "rule__ERModel__Group_8__1" - // InternalErDslParser.g:1022:1: rule__ERModel__Group_8__1 : rule__ERModel__Group_8__1__Impl ; + // InternalErDslParser.g:1029:1: rule__ERModel__Group_8__1 : rule__ERModel__Group_8__1__Impl ; public final void rule__ERModel__Group_8__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1026:1: ( rule__ERModel__Group_8__1__Impl ) - // InternalErDslParser.g:1027:2: rule__ERModel__Group_8__1__Impl + // InternalErDslParser.g:1033:1: ( rule__ERModel__Group_8__1__Impl ) + // InternalErDslParser.g:1034:2: rule__ERModel__Group_8__1__Impl { pushFollow(FOLLOW_2); rule__ERModel__Group_8__1__Impl(); @@ -3192,17 +3214,17 @@ public final void rule__ERModel__Group_8__1() throws RecognitionException { // $ANTLR start "rule__ERModel__Group_8__1__Impl" - // InternalErDslParser.g:1033:1: rule__ERModel__Group_8__1__Impl : ( Semicolon ) ; + // InternalErDslParser.g:1040:1: rule__ERModel__Group_8__1__Impl : ( Semicolon ) ; public final void rule__ERModel__Group_8__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1037:1: ( ( Semicolon ) ) - // InternalErDslParser.g:1038:1: ( Semicolon ) + // InternalErDslParser.g:1044:1: ( ( Semicolon ) ) + // InternalErDslParser.g:1045:1: ( Semicolon ) { - // InternalErDslParser.g:1038:1: ( Semicolon ) - // InternalErDslParser.g:1039:2: Semicolon + // InternalErDslParser.g:1045:1: ( Semicolon ) + // InternalErDslParser.g:1046:2: Semicolon { before(grammarAccess.getERModelAccess().getSemicolonKeyword_8_1()); match(input,Semicolon,FOLLOW_2); @@ -3229,14 +3251,14 @@ public final void rule__ERModel__Group_8__1__Impl() throws RecognitionException // $ANTLR start "rule__Domain__Group__0" - // InternalErDslParser.g:1049:1: rule__Domain__Group__0 : rule__Domain__Group__0__Impl rule__Domain__Group__1 ; + // InternalErDslParser.g:1056: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 { - // InternalErDslParser.g:1053:1: ( rule__Domain__Group__0__Impl rule__Domain__Group__1 ) - // InternalErDslParser.g:1054:2: rule__Domain__Group__0__Impl rule__Domain__Group__1 + // InternalErDslParser.g:1060:1: ( rule__Domain__Group__0__Impl rule__Domain__Group__1 ) + // InternalErDslParser.g:1061:2: rule__Domain__Group__0__Impl rule__Domain__Group__1 { pushFollow(FOLLOW_6); rule__Domain__Group__0__Impl(); @@ -3267,17 +3289,17 @@ public final void rule__Domain__Group__0() throws RecognitionException { // $ANTLR start "rule__Domain__Group__0__Impl" - // InternalErDslParser.g:1061:1: rule__Domain__Group__0__Impl : ( Domain ) ; + // InternalErDslParser.g:1068:1: rule__Domain__Group__0__Impl : ( Domain ) ; public final void rule__Domain__Group__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1065:1: ( ( Domain ) ) - // InternalErDslParser.g:1066:1: ( Domain ) + // InternalErDslParser.g:1072:1: ( ( Domain ) ) + // InternalErDslParser.g:1073:1: ( Domain ) { - // InternalErDslParser.g:1066:1: ( Domain ) - // InternalErDslParser.g:1067:2: Domain + // InternalErDslParser.g:1073:1: ( Domain ) + // InternalErDslParser.g:1074:2: Domain { before(grammarAccess.getDomainAccess().getDomainKeyword_0()); match(input,Domain,FOLLOW_2); @@ -3304,14 +3326,14 @@ public final void rule__Domain__Group__0__Impl() throws RecognitionException { // $ANTLR start "rule__Domain__Group__1" - // InternalErDslParser.g:1076:1: rule__Domain__Group__1 : rule__Domain__Group__1__Impl ; + // InternalErDslParser.g:1083:1: rule__Domain__Group__1 : rule__Domain__Group__1__Impl ; public final void rule__Domain__Group__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1080:1: ( rule__Domain__Group__1__Impl ) - // InternalErDslParser.g:1081:2: rule__Domain__Group__1__Impl + // InternalErDslParser.g:1087:1: ( rule__Domain__Group__1__Impl ) + // InternalErDslParser.g:1088:2: rule__Domain__Group__1__Impl { pushFollow(FOLLOW_2); rule__Domain__Group__1__Impl(); @@ -3337,21 +3359,21 @@ public final void rule__Domain__Group__1() throws RecognitionException { // $ANTLR start "rule__Domain__Group__1__Impl" - // InternalErDslParser.g:1087:1: rule__Domain__Group__1__Impl : ( ( rule__Domain__NameAssignment_1 ) ) ; + // InternalErDslParser.g:1094:1: rule__Domain__Group__1__Impl : ( ( rule__Domain__NameAssignment_1 ) ) ; public final void rule__Domain__Group__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1091:1: ( ( ( rule__Domain__NameAssignment_1 ) ) ) - // InternalErDslParser.g:1092:1: ( ( rule__Domain__NameAssignment_1 ) ) + // InternalErDslParser.g:1098:1: ( ( ( rule__Domain__NameAssignment_1 ) ) ) + // InternalErDslParser.g:1099:1: ( ( rule__Domain__NameAssignment_1 ) ) { - // InternalErDslParser.g:1092:1: ( ( rule__Domain__NameAssignment_1 ) ) - // InternalErDslParser.g:1093:2: ( rule__Domain__NameAssignment_1 ) + // InternalErDslParser.g:1099:1: ( ( rule__Domain__NameAssignment_1 ) ) + // InternalErDslParser.g:1100:2: ( rule__Domain__NameAssignment_1 ) { before(grammarAccess.getDomainAccess().getNameAssignment_1()); - // InternalErDslParser.g:1094:2: ( rule__Domain__NameAssignment_1 ) - // InternalErDslParser.g:1094:3: rule__Domain__NameAssignment_1 + // InternalErDslParser.g:1101:2: ( rule__Domain__NameAssignment_1 ) + // InternalErDslParser.g:1101:3: rule__Domain__NameAssignment_1 { pushFollow(FOLLOW_2); rule__Domain__NameAssignment_1(); @@ -3384,14 +3406,14 @@ public final void rule__Domain__Group__1__Impl() throws RecognitionException { // $ANTLR start "rule__Attribute__Group__0" - // InternalErDslParser.g:1103:1: rule__Attribute__Group__0 : rule__Attribute__Group__0__Impl rule__Attribute__Group__1 ; + // InternalErDslParser.g:1110: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 { - // InternalErDslParser.g:1107:1: ( rule__Attribute__Group__0__Impl rule__Attribute__Group__1 ) - // InternalErDslParser.g:1108:2: rule__Attribute__Group__0__Impl rule__Attribute__Group__1 + // InternalErDslParser.g:1114:1: ( rule__Attribute__Group__0__Impl rule__Attribute__Group__1 ) + // InternalErDslParser.g:1115:2: rule__Attribute__Group__0__Impl rule__Attribute__Group__1 { pushFollow(FOLLOW_14); rule__Attribute__Group__0__Impl(); @@ -3422,21 +3444,21 @@ public final void rule__Attribute__Group__0() throws RecognitionException { // $ANTLR start "rule__Attribute__Group__0__Impl" - // InternalErDslParser.g:1115:1: rule__Attribute__Group__0__Impl : ( ( rule__Attribute__NameAssignment_0 ) ) ; + // InternalErDslParser.g:1122:1: rule__Attribute__Group__0__Impl : ( ( rule__Attribute__NameAssignment_0 ) ) ; public final void rule__Attribute__Group__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1119:1: ( ( ( rule__Attribute__NameAssignment_0 ) ) ) - // InternalErDslParser.g:1120:1: ( ( rule__Attribute__NameAssignment_0 ) ) + // InternalErDslParser.g:1126:1: ( ( ( rule__Attribute__NameAssignment_0 ) ) ) + // InternalErDslParser.g:1127:1: ( ( rule__Attribute__NameAssignment_0 ) ) { - // InternalErDslParser.g:1120:1: ( ( rule__Attribute__NameAssignment_0 ) ) - // InternalErDslParser.g:1121:2: ( rule__Attribute__NameAssignment_0 ) + // InternalErDslParser.g:1127:1: ( ( rule__Attribute__NameAssignment_0 ) ) + // InternalErDslParser.g:1128:2: ( rule__Attribute__NameAssignment_0 ) { before(grammarAccess.getAttributeAccess().getNameAssignment_0()); - // InternalErDslParser.g:1122:2: ( rule__Attribute__NameAssignment_0 ) - // InternalErDslParser.g:1122:3: rule__Attribute__NameAssignment_0 + // InternalErDslParser.g:1129:2: ( rule__Attribute__NameAssignment_0 ) + // InternalErDslParser.g:1129:3: rule__Attribute__NameAssignment_0 { pushFollow(FOLLOW_2); rule__Attribute__NameAssignment_0(); @@ -3469,14 +3491,14 @@ public final void rule__Attribute__Group__0__Impl() throws RecognitionException // $ANTLR start "rule__Attribute__Group__1" - // InternalErDslParser.g:1130:1: rule__Attribute__Group__1 : rule__Attribute__Group__1__Impl rule__Attribute__Group__2 ; + // InternalErDslParser.g:1137: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 { - // InternalErDslParser.g:1134:1: ( rule__Attribute__Group__1__Impl rule__Attribute__Group__2 ) - // InternalErDslParser.g:1135:2: rule__Attribute__Group__1__Impl rule__Attribute__Group__2 + // InternalErDslParser.g:1141:1: ( rule__Attribute__Group__1__Impl rule__Attribute__Group__2 ) + // InternalErDslParser.g:1142:2: rule__Attribute__Group__1__Impl rule__Attribute__Group__2 { pushFollow(FOLLOW_15); rule__Attribute__Group__1__Impl(); @@ -3507,21 +3529,21 @@ public final void rule__Attribute__Group__1() throws RecognitionException { // $ANTLR start "rule__Attribute__Group__1__Impl" - // InternalErDslParser.g:1142:1: rule__Attribute__Group__1__Impl : ( ( rule__Attribute__TypeAssignment_1 ) ) ; + // InternalErDslParser.g:1149:1: rule__Attribute__Group__1__Impl : ( ( rule__Attribute__TypeAssignment_1 ) ) ; public final void rule__Attribute__Group__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1146:1: ( ( ( rule__Attribute__TypeAssignment_1 ) ) ) - // InternalErDslParser.g:1147:1: ( ( rule__Attribute__TypeAssignment_1 ) ) + // InternalErDslParser.g:1153:1: ( ( ( rule__Attribute__TypeAssignment_1 ) ) ) + // InternalErDslParser.g:1154:1: ( ( rule__Attribute__TypeAssignment_1 ) ) { - // InternalErDslParser.g:1147:1: ( ( rule__Attribute__TypeAssignment_1 ) ) - // InternalErDslParser.g:1148:2: ( rule__Attribute__TypeAssignment_1 ) + // InternalErDslParser.g:1154:1: ( ( rule__Attribute__TypeAssignment_1 ) ) + // InternalErDslParser.g:1155:2: ( rule__Attribute__TypeAssignment_1 ) { before(grammarAccess.getAttributeAccess().getTypeAssignment_1()); - // InternalErDslParser.g:1149:2: ( rule__Attribute__TypeAssignment_1 ) - // InternalErDslParser.g:1149:3: rule__Attribute__TypeAssignment_1 + // InternalErDslParser.g:1156:2: ( rule__Attribute__TypeAssignment_1 ) + // InternalErDslParser.g:1156:3: rule__Attribute__TypeAssignment_1 { pushFollow(FOLLOW_2); rule__Attribute__TypeAssignment_1(); @@ -3554,14 +3576,14 @@ public final void rule__Attribute__Group__1__Impl() throws RecognitionException // $ANTLR start "rule__Attribute__Group__2" - // InternalErDslParser.g:1157:1: rule__Attribute__Group__2 : rule__Attribute__Group__2__Impl ; + // InternalErDslParser.g:1164:1: rule__Attribute__Group__2 : rule__Attribute__Group__2__Impl ; public final void rule__Attribute__Group__2() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1161:1: ( rule__Attribute__Group__2__Impl ) - // InternalErDslParser.g:1162:2: rule__Attribute__Group__2__Impl + // InternalErDslParser.g:1168:1: ( rule__Attribute__Group__2__Impl ) + // InternalErDslParser.g:1169:2: rule__Attribute__Group__2__Impl { pushFollow(FOLLOW_2); rule__Attribute__Group__2__Impl(); @@ -3587,20 +3609,20 @@ public final void rule__Attribute__Group__2() throws RecognitionException { // $ANTLR start "rule__Attribute__Group__2__Impl" - // InternalErDslParser.g:1168:1: rule__Attribute__Group__2__Impl : ( ( rule__Attribute__IsKeyAssignment_2 )? ) ; + // InternalErDslParser.g:1175:1: rule__Attribute__Group__2__Impl : ( ( rule__Attribute__IsKeyAssignment_2 )? ) ; public final void rule__Attribute__Group__2__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1172:1: ( ( ( rule__Attribute__IsKeyAssignment_2 )? ) ) - // InternalErDslParser.g:1173:1: ( ( rule__Attribute__IsKeyAssignment_2 )? ) + // InternalErDslParser.g:1179:1: ( ( ( rule__Attribute__IsKeyAssignment_2 )? ) ) + // InternalErDslParser.g:1180:1: ( ( rule__Attribute__IsKeyAssignment_2 )? ) { - // InternalErDslParser.g:1173:1: ( ( rule__Attribute__IsKeyAssignment_2 )? ) - // InternalErDslParser.g:1174:2: ( rule__Attribute__IsKeyAssignment_2 )? + // InternalErDslParser.g:1180:1: ( ( rule__Attribute__IsKeyAssignment_2 )? ) + // InternalErDslParser.g:1181:2: ( rule__Attribute__IsKeyAssignment_2 )? { before(grammarAccess.getAttributeAccess().getIsKeyAssignment_2()); - // InternalErDslParser.g:1175:2: ( rule__Attribute__IsKeyAssignment_2 )? + // InternalErDslParser.g:1182:2: ( rule__Attribute__IsKeyAssignment_2 )? int alt11=2; int LA11_0 = input.LA(1); @@ -3609,7 +3631,7 @@ public final void rule__Attribute__Group__2__Impl() throws RecognitionException } switch (alt11) { case 1 : - // InternalErDslParser.g:1175:3: rule__Attribute__IsKeyAssignment_2 + // InternalErDslParser.g:1182:3: rule__Attribute__IsKeyAssignment_2 { pushFollow(FOLLOW_2); rule__Attribute__IsKeyAssignment_2(); @@ -3645,14 +3667,14 @@ public final void rule__Attribute__Group__2__Impl() throws RecognitionException // $ANTLR start "rule__Entity__Group__0" - // InternalErDslParser.g:1184:1: rule__Entity__Group__0 : rule__Entity__Group__0__Impl rule__Entity__Group__1 ; + // InternalErDslParser.g:1191: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 { - // InternalErDslParser.g:1188:1: ( rule__Entity__Group__0__Impl rule__Entity__Group__1 ) - // InternalErDslParser.g:1189:2: rule__Entity__Group__0__Impl rule__Entity__Group__1 + // InternalErDslParser.g:1195:1: ( rule__Entity__Group__0__Impl rule__Entity__Group__1 ) + // InternalErDslParser.g:1196:2: rule__Entity__Group__0__Impl rule__Entity__Group__1 { pushFollow(FOLLOW_16); rule__Entity__Group__0__Impl(); @@ -3683,21 +3705,21 @@ public final void rule__Entity__Group__0() throws RecognitionException { // $ANTLR start "rule__Entity__Group__0__Impl" - // InternalErDslParser.g:1196:1: rule__Entity__Group__0__Impl : ( ( rule__Entity__NameAssignment_0 ) ) ; + // InternalErDslParser.g:1203:1: rule__Entity__Group__0__Impl : ( ( rule__Entity__NameAssignment_0 ) ) ; public final void rule__Entity__Group__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1200:1: ( ( ( rule__Entity__NameAssignment_0 ) ) ) - // InternalErDslParser.g:1201:1: ( ( rule__Entity__NameAssignment_0 ) ) + // InternalErDslParser.g:1207:1: ( ( ( rule__Entity__NameAssignment_0 ) ) ) + // InternalErDslParser.g:1208:1: ( ( rule__Entity__NameAssignment_0 ) ) { - // InternalErDslParser.g:1201:1: ( ( rule__Entity__NameAssignment_0 ) ) - // InternalErDslParser.g:1202:2: ( rule__Entity__NameAssignment_0 ) + // InternalErDslParser.g:1208:1: ( ( rule__Entity__NameAssignment_0 ) ) + // InternalErDslParser.g:1209:2: ( rule__Entity__NameAssignment_0 ) { before(grammarAccess.getEntityAccess().getNameAssignment_0()); - // InternalErDslParser.g:1203:2: ( rule__Entity__NameAssignment_0 ) - // InternalErDslParser.g:1203:3: rule__Entity__NameAssignment_0 + // InternalErDslParser.g:1210:2: ( rule__Entity__NameAssignment_0 ) + // InternalErDslParser.g:1210:3: rule__Entity__NameAssignment_0 { pushFollow(FOLLOW_2); rule__Entity__NameAssignment_0(); @@ -3730,14 +3752,14 @@ public final void rule__Entity__Group__0__Impl() throws RecognitionException { // $ANTLR start "rule__Entity__Group__1" - // InternalErDslParser.g:1211:1: rule__Entity__Group__1 : rule__Entity__Group__1__Impl rule__Entity__Group__2 ; + // InternalErDslParser.g:1218: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 { - // InternalErDslParser.g:1215:1: ( rule__Entity__Group__1__Impl rule__Entity__Group__2 ) - // InternalErDslParser.g:1216:2: rule__Entity__Group__1__Impl rule__Entity__Group__2 + // InternalErDslParser.g:1222:1: ( rule__Entity__Group__1__Impl rule__Entity__Group__2 ) + // InternalErDslParser.g:1223:2: rule__Entity__Group__1__Impl rule__Entity__Group__2 { pushFollow(FOLLOW_16); rule__Entity__Group__1__Impl(); @@ -3768,20 +3790,20 @@ public final void rule__Entity__Group__1() throws RecognitionException { // $ANTLR start "rule__Entity__Group__1__Impl" - // InternalErDslParser.g:1223:1: rule__Entity__Group__1__Impl : ( ( rule__Entity__Group_1__0 )? ) ; + // InternalErDslParser.g:1230: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 { - // InternalErDslParser.g:1227:1: ( ( ( rule__Entity__Group_1__0 )? ) ) - // InternalErDslParser.g:1228:1: ( ( rule__Entity__Group_1__0 )? ) + // InternalErDslParser.g:1234:1: ( ( ( rule__Entity__Group_1__0 )? ) ) + // InternalErDslParser.g:1235:1: ( ( rule__Entity__Group_1__0 )? ) { - // InternalErDslParser.g:1228:1: ( ( rule__Entity__Group_1__0 )? ) - // InternalErDslParser.g:1229:2: ( rule__Entity__Group_1__0 )? + // InternalErDslParser.g:1235:1: ( ( rule__Entity__Group_1__0 )? ) + // InternalErDslParser.g:1236:2: ( rule__Entity__Group_1__0 )? { before(grammarAccess.getEntityAccess().getGroup_1()); - // InternalErDslParser.g:1230:2: ( rule__Entity__Group_1__0 )? + // InternalErDslParser.g:1237:2: ( rule__Entity__Group_1__0 )? int alt12=2; int LA12_0 = input.LA(1); @@ -3790,7 +3812,7 @@ public final void rule__Entity__Group__1__Impl() throws RecognitionException { } switch (alt12) { case 1 : - // InternalErDslParser.g:1230:3: rule__Entity__Group_1__0 + // InternalErDslParser.g:1237:3: rule__Entity__Group_1__0 { pushFollow(FOLLOW_2); rule__Entity__Group_1__0(); @@ -3826,14 +3848,14 @@ public final void rule__Entity__Group__1__Impl() throws RecognitionException { // $ANTLR start "rule__Entity__Group__2" - // InternalErDslParser.g:1238:1: rule__Entity__Group__2 : rule__Entity__Group__2__Impl ; + // InternalErDslParser.g:1245:1: rule__Entity__Group__2 : rule__Entity__Group__2__Impl ; public final void rule__Entity__Group__2() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1242:1: ( rule__Entity__Group__2__Impl ) - // InternalErDslParser.g:1243:2: rule__Entity__Group__2__Impl + // InternalErDslParser.g:1249:1: ( rule__Entity__Group__2__Impl ) + // InternalErDslParser.g:1250:2: rule__Entity__Group__2__Impl { pushFollow(FOLLOW_2); rule__Entity__Group__2__Impl(); @@ -3859,20 +3881,20 @@ public final void rule__Entity__Group__2() throws RecognitionException { // $ANTLR start "rule__Entity__Group__2__Impl" - // InternalErDslParser.g:1249:1: rule__Entity__Group__2__Impl : ( ( rule__Entity__Group_2__0 )? ) ; + // InternalErDslParser.g:1256: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 { - // InternalErDslParser.g:1253:1: ( ( ( rule__Entity__Group_2__0 )? ) ) - // InternalErDslParser.g:1254:1: ( ( rule__Entity__Group_2__0 )? ) + // InternalErDslParser.g:1260:1: ( ( ( rule__Entity__Group_2__0 )? ) ) + // InternalErDslParser.g:1261:1: ( ( rule__Entity__Group_2__0 )? ) { - // InternalErDslParser.g:1254:1: ( ( rule__Entity__Group_2__0 )? ) - // InternalErDslParser.g:1255:2: ( rule__Entity__Group_2__0 )? + // InternalErDslParser.g:1261:1: ( ( rule__Entity__Group_2__0 )? ) + // InternalErDslParser.g:1262:2: ( rule__Entity__Group_2__0 )? { before(grammarAccess.getEntityAccess().getGroup_2()); - // InternalErDslParser.g:1256:2: ( rule__Entity__Group_2__0 )? + // InternalErDslParser.g:1263:2: ( rule__Entity__Group_2__0 )? int alt13=2; int LA13_0 = input.LA(1); @@ -3881,7 +3903,7 @@ public final void rule__Entity__Group__2__Impl() throws RecognitionException { } switch (alt13) { case 1 : - // InternalErDslParser.g:1256:3: rule__Entity__Group_2__0 + // InternalErDslParser.g:1263:3: rule__Entity__Group_2__0 { pushFollow(FOLLOW_2); rule__Entity__Group_2__0(); @@ -3917,14 +3939,14 @@ public final void rule__Entity__Group__2__Impl() throws RecognitionException { // $ANTLR start "rule__Entity__Group_1__0" - // InternalErDslParser.g:1265:1: rule__Entity__Group_1__0 : rule__Entity__Group_1__0__Impl rule__Entity__Group_1__1 ; + // InternalErDslParser.g:1272: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 { - // InternalErDslParser.g:1269:1: ( rule__Entity__Group_1__0__Impl rule__Entity__Group_1__1 ) - // InternalErDslParser.g:1270:2: rule__Entity__Group_1__0__Impl rule__Entity__Group_1__1 + // InternalErDslParser.g:1276:1: ( rule__Entity__Group_1__0__Impl rule__Entity__Group_1__1 ) + // InternalErDslParser.g:1277:2: rule__Entity__Group_1__0__Impl rule__Entity__Group_1__1 { pushFollow(FOLLOW_17); rule__Entity__Group_1__0__Impl(); @@ -3955,17 +3977,17 @@ public final void rule__Entity__Group_1__0() throws RecognitionException { // $ANTLR start "rule__Entity__Group_1__0__Impl" - // InternalErDslParser.g:1277:1: rule__Entity__Group_1__0__Impl : ( Is ) ; + // InternalErDslParser.g:1284:1: rule__Entity__Group_1__0__Impl : ( Is ) ; public final void rule__Entity__Group_1__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1281:1: ( ( Is ) ) - // InternalErDslParser.g:1282:1: ( Is ) + // InternalErDslParser.g:1288:1: ( ( Is ) ) + // InternalErDslParser.g:1289:1: ( Is ) { - // InternalErDslParser.g:1282:1: ( Is ) - // InternalErDslParser.g:1283:2: Is + // InternalErDslParser.g:1289:1: ( Is ) + // InternalErDslParser.g:1290:2: Is { before(grammarAccess.getEntityAccess().getIsKeyword_1_0()); match(input,Is,FOLLOW_2); @@ -3992,14 +4014,14 @@ public final void rule__Entity__Group_1__0__Impl() throws RecognitionException { // $ANTLR start "rule__Entity__Group_1__1" - // InternalErDslParser.g:1292:1: rule__Entity__Group_1__1 : rule__Entity__Group_1__1__Impl rule__Entity__Group_1__2 ; + // InternalErDslParser.g:1299:1: rule__Entity__Group_1__1 : rule__Entity__Group_1__1__Impl rule__Entity__Group_1__2 ; public final void rule__Entity__Group_1__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1296:1: ( rule__Entity__Group_1__1__Impl rule__Entity__Group_1__2 ) - // InternalErDslParser.g:1297:2: rule__Entity__Group_1__1__Impl rule__Entity__Group_1__2 + // InternalErDslParser.g:1303:1: ( rule__Entity__Group_1__1__Impl rule__Entity__Group_1__2 ) + // InternalErDslParser.g:1304:2: rule__Entity__Group_1__1__Impl rule__Entity__Group_1__2 { pushFollow(FOLLOW_6); rule__Entity__Group_1__1__Impl(); @@ -4030,21 +4052,21 @@ public final void rule__Entity__Group_1__1() throws RecognitionException { // $ANTLR start "rule__Entity__Group_1__1__Impl" - // InternalErDslParser.g:1304:1: rule__Entity__Group_1__1__Impl : ( ( rule__Entity__GeneralizationAssignment_1_1 ) ) ; + // InternalErDslParser.g:1311:1: rule__Entity__Group_1__1__Impl : ( ( rule__Entity__GeneralizationAssignment_1_1 ) ) ; public final void rule__Entity__Group_1__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1308:1: ( ( ( rule__Entity__GeneralizationAssignment_1_1 ) ) ) - // InternalErDslParser.g:1309:1: ( ( rule__Entity__GeneralizationAssignment_1_1 ) ) + // InternalErDslParser.g:1315:1: ( ( ( rule__Entity__GeneralizationAssignment_1_1 ) ) ) + // InternalErDslParser.g:1316:1: ( ( rule__Entity__GeneralizationAssignment_1_1 ) ) { - // InternalErDslParser.g:1309:1: ( ( rule__Entity__GeneralizationAssignment_1_1 ) ) - // InternalErDslParser.g:1310:2: ( rule__Entity__GeneralizationAssignment_1_1 ) + // InternalErDslParser.g:1316:1: ( ( rule__Entity__GeneralizationAssignment_1_1 ) ) + // InternalErDslParser.g:1317:2: ( rule__Entity__GeneralizationAssignment_1_1 ) { before(grammarAccess.getEntityAccess().getGeneralizationAssignment_1_1()); - // InternalErDslParser.g:1311:2: ( rule__Entity__GeneralizationAssignment_1_1 ) - // InternalErDslParser.g:1311:3: rule__Entity__GeneralizationAssignment_1_1 + // InternalErDslParser.g:1318:2: ( rule__Entity__GeneralizationAssignment_1_1 ) + // InternalErDslParser.g:1318:3: rule__Entity__GeneralizationAssignment_1_1 { pushFollow(FOLLOW_2); rule__Entity__GeneralizationAssignment_1_1(); @@ -4077,14 +4099,14 @@ public final void rule__Entity__Group_1__1__Impl() throws RecognitionException { // $ANTLR start "rule__Entity__Group_1__2" - // InternalErDslParser.g:1319:1: rule__Entity__Group_1__2 : rule__Entity__Group_1__2__Impl ; + // InternalErDslParser.g:1326:1: rule__Entity__Group_1__2 : rule__Entity__Group_1__2__Impl ; public final void rule__Entity__Group_1__2() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1323:1: ( rule__Entity__Group_1__2__Impl ) - // InternalErDslParser.g:1324:2: rule__Entity__Group_1__2__Impl + // InternalErDslParser.g:1330:1: ( rule__Entity__Group_1__2__Impl ) + // InternalErDslParser.g:1331:2: rule__Entity__Group_1__2__Impl { pushFollow(FOLLOW_2); rule__Entity__Group_1__2__Impl(); @@ -4110,21 +4132,21 @@ public final void rule__Entity__Group_1__2() throws RecognitionException { // $ANTLR start "rule__Entity__Group_1__2__Impl" - // InternalErDslParser.g:1330:1: rule__Entity__Group_1__2__Impl : ( ( rule__Entity__IsAssignment_1_2 ) ) ; + // InternalErDslParser.g:1337:1: rule__Entity__Group_1__2__Impl : ( ( rule__Entity__IsAssignment_1_2 ) ) ; public final void rule__Entity__Group_1__2__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1334:1: ( ( ( rule__Entity__IsAssignment_1_2 ) ) ) - // InternalErDslParser.g:1335:1: ( ( rule__Entity__IsAssignment_1_2 ) ) + // InternalErDslParser.g:1341:1: ( ( ( rule__Entity__IsAssignment_1_2 ) ) ) + // InternalErDslParser.g:1342:1: ( ( rule__Entity__IsAssignment_1_2 ) ) { - // InternalErDslParser.g:1335:1: ( ( rule__Entity__IsAssignment_1_2 ) ) - // InternalErDslParser.g:1336:2: ( rule__Entity__IsAssignment_1_2 ) + // InternalErDslParser.g:1342:1: ( ( rule__Entity__IsAssignment_1_2 ) ) + // InternalErDslParser.g:1343:2: ( rule__Entity__IsAssignment_1_2 ) { before(grammarAccess.getEntityAccess().getIsAssignment_1_2()); - // InternalErDslParser.g:1337:2: ( rule__Entity__IsAssignment_1_2 ) - // InternalErDslParser.g:1337:3: rule__Entity__IsAssignment_1_2 + // InternalErDslParser.g:1344:2: ( rule__Entity__IsAssignment_1_2 ) + // InternalErDslParser.g:1344:3: rule__Entity__IsAssignment_1_2 { pushFollow(FOLLOW_2); rule__Entity__IsAssignment_1_2(); @@ -4157,14 +4179,14 @@ public final void rule__Entity__Group_1__2__Impl() throws RecognitionException { // $ANTLR start "rule__Entity__Group_2__0" - // InternalErDslParser.g:1346:1: rule__Entity__Group_2__0 : rule__Entity__Group_2__0__Impl rule__Entity__Group_2__1 ; + // InternalErDslParser.g:1353: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 { - // InternalErDslParser.g:1350:1: ( rule__Entity__Group_2__0__Impl rule__Entity__Group_2__1 ) - // InternalErDslParser.g:1351:2: rule__Entity__Group_2__0__Impl rule__Entity__Group_2__1 + // InternalErDslParser.g:1357:1: ( rule__Entity__Group_2__0__Impl rule__Entity__Group_2__1 ) + // InternalErDslParser.g:1358:2: rule__Entity__Group_2__0__Impl rule__Entity__Group_2__1 { pushFollow(FOLLOW_6); rule__Entity__Group_2__0__Impl(); @@ -4195,17 +4217,17 @@ public final void rule__Entity__Group_2__0() throws RecognitionException { // $ANTLR start "rule__Entity__Group_2__0__Impl" - // InternalErDslParser.g:1358:1: rule__Entity__Group_2__0__Impl : ( LeftCurlyBracket ) ; + // InternalErDslParser.g:1365:1: rule__Entity__Group_2__0__Impl : ( LeftCurlyBracket ) ; public final void rule__Entity__Group_2__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1362:1: ( ( LeftCurlyBracket ) ) - // InternalErDslParser.g:1363:1: ( LeftCurlyBracket ) + // InternalErDslParser.g:1369:1: ( ( LeftCurlyBracket ) ) + // InternalErDslParser.g:1370:1: ( LeftCurlyBracket ) { - // InternalErDslParser.g:1363:1: ( LeftCurlyBracket ) - // InternalErDslParser.g:1364:2: LeftCurlyBracket + // InternalErDslParser.g:1370:1: ( LeftCurlyBracket ) + // InternalErDslParser.g:1371:2: LeftCurlyBracket { before(grammarAccess.getEntityAccess().getLeftCurlyBracketKeyword_2_0()); match(input,LeftCurlyBracket,FOLLOW_2); @@ -4232,14 +4254,14 @@ public final void rule__Entity__Group_2__0__Impl() throws RecognitionException { // $ANTLR start "rule__Entity__Group_2__1" - // InternalErDslParser.g:1373:1: rule__Entity__Group_2__1 : rule__Entity__Group_2__1__Impl rule__Entity__Group_2__2 ; + // InternalErDslParser.g:1380: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 { - // InternalErDslParser.g:1377:1: ( rule__Entity__Group_2__1__Impl rule__Entity__Group_2__2 ) - // InternalErDslParser.g:1378:2: rule__Entity__Group_2__1__Impl rule__Entity__Group_2__2 + // InternalErDslParser.g:1384:1: ( rule__Entity__Group_2__1__Impl rule__Entity__Group_2__2 ) + // InternalErDslParser.g:1385:2: rule__Entity__Group_2__1__Impl rule__Entity__Group_2__2 { pushFollow(FOLLOW_18); rule__Entity__Group_2__1__Impl(); @@ -4270,21 +4292,21 @@ public final void rule__Entity__Group_2__1() throws RecognitionException { // $ANTLR start "rule__Entity__Group_2__1__Impl" - // InternalErDslParser.g:1385:1: rule__Entity__Group_2__1__Impl : ( ( rule__Entity__AttributesAssignment_2_1 ) ) ; + // InternalErDslParser.g:1392: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 { - // InternalErDslParser.g:1389:1: ( ( ( rule__Entity__AttributesAssignment_2_1 ) ) ) - // InternalErDslParser.g:1390:1: ( ( rule__Entity__AttributesAssignment_2_1 ) ) + // InternalErDslParser.g:1396:1: ( ( ( rule__Entity__AttributesAssignment_2_1 ) ) ) + // InternalErDslParser.g:1397:1: ( ( rule__Entity__AttributesAssignment_2_1 ) ) { - // InternalErDslParser.g:1390:1: ( ( rule__Entity__AttributesAssignment_2_1 ) ) - // InternalErDslParser.g:1391:2: ( rule__Entity__AttributesAssignment_2_1 ) + // InternalErDslParser.g:1397:1: ( ( rule__Entity__AttributesAssignment_2_1 ) ) + // InternalErDslParser.g:1398:2: ( rule__Entity__AttributesAssignment_2_1 ) { before(grammarAccess.getEntityAccess().getAttributesAssignment_2_1()); - // InternalErDslParser.g:1392:2: ( rule__Entity__AttributesAssignment_2_1 ) - // InternalErDslParser.g:1392:3: rule__Entity__AttributesAssignment_2_1 + // InternalErDslParser.g:1399:2: ( rule__Entity__AttributesAssignment_2_1 ) + // InternalErDslParser.g:1399:3: rule__Entity__AttributesAssignment_2_1 { pushFollow(FOLLOW_2); rule__Entity__AttributesAssignment_2_1(); @@ -4317,14 +4339,14 @@ public final void rule__Entity__Group_2__1__Impl() throws RecognitionException { // $ANTLR start "rule__Entity__Group_2__2" - // InternalErDslParser.g:1400:1: rule__Entity__Group_2__2 : rule__Entity__Group_2__2__Impl rule__Entity__Group_2__3 ; + // InternalErDslParser.g:1407: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 { - // InternalErDslParser.g:1404:1: ( rule__Entity__Group_2__2__Impl rule__Entity__Group_2__3 ) - // InternalErDslParser.g:1405:2: rule__Entity__Group_2__2__Impl rule__Entity__Group_2__3 + // InternalErDslParser.g:1411:1: ( rule__Entity__Group_2__2__Impl rule__Entity__Group_2__3 ) + // InternalErDslParser.g:1412:2: rule__Entity__Group_2__2__Impl rule__Entity__Group_2__3 { pushFollow(FOLLOW_18); rule__Entity__Group_2__2__Impl(); @@ -4355,20 +4377,20 @@ public final void rule__Entity__Group_2__2() throws RecognitionException { // $ANTLR start "rule__Entity__Group_2__2__Impl" - // InternalErDslParser.g:1412:1: rule__Entity__Group_2__2__Impl : ( ( rule__Entity__Group_2_2__0 )* ) ; + // InternalErDslParser.g:1419: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 { - // InternalErDslParser.g:1416:1: ( ( ( rule__Entity__Group_2_2__0 )* ) ) - // InternalErDslParser.g:1417:1: ( ( rule__Entity__Group_2_2__0 )* ) + // InternalErDslParser.g:1423:1: ( ( ( rule__Entity__Group_2_2__0 )* ) ) + // InternalErDslParser.g:1424:1: ( ( rule__Entity__Group_2_2__0 )* ) { - // InternalErDslParser.g:1417:1: ( ( rule__Entity__Group_2_2__0 )* ) - // InternalErDslParser.g:1418:2: ( rule__Entity__Group_2_2__0 )* + // InternalErDslParser.g:1424:1: ( ( rule__Entity__Group_2_2__0 )* ) + // InternalErDslParser.g:1425:2: ( rule__Entity__Group_2_2__0 )* { before(grammarAccess.getEntityAccess().getGroup_2_2()); - // InternalErDslParser.g:1419:2: ( rule__Entity__Group_2_2__0 )* + // InternalErDslParser.g:1426:2: ( rule__Entity__Group_2_2__0 )* loop14: do { int alt14=2; @@ -4381,7 +4403,7 @@ public final void rule__Entity__Group_2__2__Impl() throws RecognitionException { switch (alt14) { case 1 : - // InternalErDslParser.g:1419:3: rule__Entity__Group_2_2__0 + // InternalErDslParser.g:1426:3: rule__Entity__Group_2_2__0 { pushFollow(FOLLOW_19); rule__Entity__Group_2_2__0(); @@ -4420,14 +4442,14 @@ public final void rule__Entity__Group_2__2__Impl() throws RecognitionException { // $ANTLR start "rule__Entity__Group_2__3" - // InternalErDslParser.g:1427:1: rule__Entity__Group_2__3 : rule__Entity__Group_2__3__Impl ; + // InternalErDslParser.g:1434: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 { - // InternalErDslParser.g:1431:1: ( rule__Entity__Group_2__3__Impl ) - // InternalErDslParser.g:1432:2: rule__Entity__Group_2__3__Impl + // InternalErDslParser.g:1438:1: ( rule__Entity__Group_2__3__Impl ) + // InternalErDslParser.g:1439:2: rule__Entity__Group_2__3__Impl { pushFollow(FOLLOW_2); rule__Entity__Group_2__3__Impl(); @@ -4453,17 +4475,17 @@ public final void rule__Entity__Group_2__3() throws RecognitionException { // $ANTLR start "rule__Entity__Group_2__3__Impl" - // InternalErDslParser.g:1438:1: rule__Entity__Group_2__3__Impl : ( RightCurlyBracket ) ; + // InternalErDslParser.g:1445:1: rule__Entity__Group_2__3__Impl : ( RightCurlyBracket ) ; public final void rule__Entity__Group_2__3__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1442:1: ( ( RightCurlyBracket ) ) - // InternalErDslParser.g:1443:1: ( RightCurlyBracket ) + // InternalErDslParser.g:1449:1: ( ( RightCurlyBracket ) ) + // InternalErDslParser.g:1450:1: ( RightCurlyBracket ) { - // InternalErDslParser.g:1443:1: ( RightCurlyBracket ) - // InternalErDslParser.g:1444:2: RightCurlyBracket + // InternalErDslParser.g:1450:1: ( RightCurlyBracket ) + // InternalErDslParser.g:1451:2: RightCurlyBracket { before(grammarAccess.getEntityAccess().getRightCurlyBracketKeyword_2_3()); match(input,RightCurlyBracket,FOLLOW_2); @@ -4490,14 +4512,14 @@ public final void rule__Entity__Group_2__3__Impl() throws RecognitionException { // $ANTLR start "rule__Entity__Group_2_2__0" - // InternalErDslParser.g:1454:1: rule__Entity__Group_2_2__0 : rule__Entity__Group_2_2__0__Impl rule__Entity__Group_2_2__1 ; + // InternalErDslParser.g:1461: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 { - // InternalErDslParser.g:1458:1: ( rule__Entity__Group_2_2__0__Impl rule__Entity__Group_2_2__1 ) - // InternalErDslParser.g:1459:2: rule__Entity__Group_2_2__0__Impl rule__Entity__Group_2_2__1 + // InternalErDslParser.g:1465:1: ( rule__Entity__Group_2_2__0__Impl rule__Entity__Group_2_2__1 ) + // InternalErDslParser.g:1466:2: rule__Entity__Group_2_2__0__Impl rule__Entity__Group_2_2__1 { pushFollow(FOLLOW_6); rule__Entity__Group_2_2__0__Impl(); @@ -4528,17 +4550,17 @@ public final void rule__Entity__Group_2_2__0() throws RecognitionException { // $ANTLR start "rule__Entity__Group_2_2__0__Impl" - // InternalErDslParser.g:1466:1: rule__Entity__Group_2_2__0__Impl : ( Comma ) ; + // InternalErDslParser.g:1473:1: rule__Entity__Group_2_2__0__Impl : ( Comma ) ; public final void rule__Entity__Group_2_2__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1470:1: ( ( Comma ) ) - // InternalErDslParser.g:1471:1: ( Comma ) + // InternalErDslParser.g:1477:1: ( ( Comma ) ) + // InternalErDslParser.g:1478:1: ( Comma ) { - // InternalErDslParser.g:1471:1: ( Comma ) - // InternalErDslParser.g:1472:2: Comma + // InternalErDslParser.g:1478:1: ( Comma ) + // InternalErDslParser.g:1479:2: Comma { before(grammarAccess.getEntityAccess().getCommaKeyword_2_2_0()); match(input,Comma,FOLLOW_2); @@ -4565,14 +4587,14 @@ public final void rule__Entity__Group_2_2__0__Impl() throws RecognitionException // $ANTLR start "rule__Entity__Group_2_2__1" - // InternalErDslParser.g:1481:1: rule__Entity__Group_2_2__1 : rule__Entity__Group_2_2__1__Impl ; + // InternalErDslParser.g:1488: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 { - // InternalErDslParser.g:1485:1: ( rule__Entity__Group_2_2__1__Impl ) - // InternalErDslParser.g:1486:2: rule__Entity__Group_2_2__1__Impl + // InternalErDslParser.g:1492:1: ( rule__Entity__Group_2_2__1__Impl ) + // InternalErDslParser.g:1493:2: rule__Entity__Group_2_2__1__Impl { pushFollow(FOLLOW_2); rule__Entity__Group_2_2__1__Impl(); @@ -4598,21 +4620,21 @@ public final void rule__Entity__Group_2_2__1() throws RecognitionException { // $ANTLR start "rule__Entity__Group_2_2__1__Impl" - // InternalErDslParser.g:1492:1: rule__Entity__Group_2_2__1__Impl : ( ( rule__Entity__AttributesAssignment_2_2_1 ) ) ; + // InternalErDslParser.g:1499: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 { - // InternalErDslParser.g:1496:1: ( ( ( rule__Entity__AttributesAssignment_2_2_1 ) ) ) - // InternalErDslParser.g:1497:1: ( ( rule__Entity__AttributesAssignment_2_2_1 ) ) + // InternalErDslParser.g:1503:1: ( ( ( rule__Entity__AttributesAssignment_2_2_1 ) ) ) + // InternalErDslParser.g:1504:1: ( ( rule__Entity__AttributesAssignment_2_2_1 ) ) { - // InternalErDslParser.g:1497:1: ( ( rule__Entity__AttributesAssignment_2_2_1 ) ) - // InternalErDslParser.g:1498:2: ( rule__Entity__AttributesAssignment_2_2_1 ) + // InternalErDslParser.g:1504:1: ( ( rule__Entity__AttributesAssignment_2_2_1 ) ) + // InternalErDslParser.g:1505:2: ( rule__Entity__AttributesAssignment_2_2_1 ) { before(grammarAccess.getEntityAccess().getAttributesAssignment_2_2_1()); - // InternalErDslParser.g:1499:2: ( rule__Entity__AttributesAssignment_2_2_1 ) - // InternalErDslParser.g:1499:3: rule__Entity__AttributesAssignment_2_2_1 + // InternalErDslParser.g:1506:2: ( rule__Entity__AttributesAssignment_2_2_1 ) + // InternalErDslParser.g:1506:3: rule__Entity__AttributesAssignment_2_2_1 { pushFollow(FOLLOW_2); rule__Entity__AttributesAssignment_2_2_1(); @@ -4645,14 +4667,14 @@ public final void rule__Entity__Group_2_2__1__Impl() throws RecognitionException // $ANTLR start "rule__Relation__Group__0" - // InternalErDslParser.g:1508:1: rule__Relation__Group__0 : rule__Relation__Group__0__Impl rule__Relation__Group__1 ; + // InternalErDslParser.g:1515: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 { - // InternalErDslParser.g:1512:1: ( rule__Relation__Group__0__Impl rule__Relation__Group__1 ) - // InternalErDslParser.g:1513:2: rule__Relation__Group__0__Impl rule__Relation__Group__1 + // InternalErDslParser.g:1519:1: ( rule__Relation__Group__0__Impl rule__Relation__Group__1 ) + // InternalErDslParser.g:1520:2: rule__Relation__Group__0__Impl rule__Relation__Group__1 { pushFollow(FOLLOW_20); rule__Relation__Group__0__Impl(); @@ -4683,20 +4705,20 @@ public final void rule__Relation__Group__0() throws RecognitionException { // $ANTLR start "rule__Relation__Group__0__Impl" - // InternalErDslParser.g:1520:1: rule__Relation__Group__0__Impl : ( ( rule__Relation__NameAssignment_0 )? ) ; + // InternalErDslParser.g:1527:1: rule__Relation__Group__0__Impl : ( ( rule__Relation__NameAssignment_0 )? ) ; public final void rule__Relation__Group__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1524:1: ( ( ( rule__Relation__NameAssignment_0 )? ) ) - // InternalErDslParser.g:1525:1: ( ( rule__Relation__NameAssignment_0 )? ) + // InternalErDslParser.g:1531:1: ( ( ( rule__Relation__NameAssignment_0 )? ) ) + // InternalErDslParser.g:1532:1: ( ( rule__Relation__NameAssignment_0 )? ) { - // InternalErDslParser.g:1525:1: ( ( rule__Relation__NameAssignment_0 )? ) - // InternalErDslParser.g:1526:2: ( rule__Relation__NameAssignment_0 )? + // InternalErDslParser.g:1532:1: ( ( rule__Relation__NameAssignment_0 )? ) + // InternalErDslParser.g:1533:2: ( rule__Relation__NameAssignment_0 )? { before(grammarAccess.getRelationAccess().getNameAssignment_0()); - // InternalErDslParser.g:1527:2: ( rule__Relation__NameAssignment_0 )? + // InternalErDslParser.g:1534:2: ( rule__Relation__NameAssignment_0 )? int alt15=2; int LA15_0 = input.LA(1); @@ -4705,7 +4727,7 @@ public final void rule__Relation__Group__0__Impl() throws RecognitionException { } switch (alt15) { case 1 : - // InternalErDslParser.g:1527:3: rule__Relation__NameAssignment_0 + // InternalErDslParser.g:1534:3: rule__Relation__NameAssignment_0 { pushFollow(FOLLOW_2); rule__Relation__NameAssignment_0(); @@ -4741,14 +4763,14 @@ public final void rule__Relation__Group__0__Impl() throws RecognitionException { // $ANTLR start "rule__Relation__Group__1" - // InternalErDslParser.g:1535:1: rule__Relation__Group__1 : rule__Relation__Group__1__Impl rule__Relation__Group__2 ; + // InternalErDslParser.g:1542: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 { - // InternalErDslParser.g:1539:1: ( rule__Relation__Group__1__Impl rule__Relation__Group__2 ) - // InternalErDslParser.g:1540:2: rule__Relation__Group__1__Impl rule__Relation__Group__2 + // InternalErDslParser.g:1546:1: ( rule__Relation__Group__1__Impl rule__Relation__Group__2 ) + // InternalErDslParser.g:1547:2: rule__Relation__Group__1__Impl rule__Relation__Group__2 { pushFollow(FOLLOW_13); rule__Relation__Group__1__Impl(); @@ -4779,21 +4801,21 @@ public final void rule__Relation__Group__1() throws RecognitionException { // $ANTLR start "rule__Relation__Group__1__Impl" - // InternalErDslParser.g:1547:1: rule__Relation__Group__1__Impl : ( ( rule__Relation__Group_1__0 ) ) ; + // InternalErDslParser.g:1554: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 { - // InternalErDslParser.g:1551:1: ( ( ( rule__Relation__Group_1__0 ) ) ) - // InternalErDslParser.g:1552:1: ( ( rule__Relation__Group_1__0 ) ) + // InternalErDslParser.g:1558:1: ( ( ( rule__Relation__Group_1__0 ) ) ) + // InternalErDslParser.g:1559:1: ( ( rule__Relation__Group_1__0 ) ) { - // InternalErDslParser.g:1552:1: ( ( rule__Relation__Group_1__0 ) ) - // InternalErDslParser.g:1553:2: ( rule__Relation__Group_1__0 ) + // InternalErDslParser.g:1559:1: ( ( rule__Relation__Group_1__0 ) ) + // InternalErDslParser.g:1560:2: ( rule__Relation__Group_1__0 ) { before(grammarAccess.getRelationAccess().getGroup_1()); - // InternalErDslParser.g:1554:2: ( rule__Relation__Group_1__0 ) - // InternalErDslParser.g:1554:3: rule__Relation__Group_1__0 + // InternalErDslParser.g:1561:2: ( rule__Relation__Group_1__0 ) + // InternalErDslParser.g:1561:3: rule__Relation__Group_1__0 { pushFollow(FOLLOW_2); rule__Relation__Group_1__0(); @@ -4826,14 +4848,14 @@ public final void rule__Relation__Group__1__Impl() throws RecognitionException { // $ANTLR start "rule__Relation__Group__2" - // InternalErDslParser.g:1562:1: rule__Relation__Group__2 : rule__Relation__Group__2__Impl ; + // InternalErDslParser.g:1569:1: rule__Relation__Group__2 : rule__Relation__Group__2__Impl ; public final void rule__Relation__Group__2() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1566:1: ( rule__Relation__Group__2__Impl ) - // InternalErDslParser.g:1567:2: rule__Relation__Group__2__Impl + // InternalErDslParser.g:1573:1: ( rule__Relation__Group__2__Impl ) + // InternalErDslParser.g:1574:2: rule__Relation__Group__2__Impl { pushFollow(FOLLOW_2); rule__Relation__Group__2__Impl(); @@ -4859,20 +4881,20 @@ public final void rule__Relation__Group__2() throws RecognitionException { // $ANTLR start "rule__Relation__Group__2__Impl" - // InternalErDslParser.g:1573:1: rule__Relation__Group__2__Impl : ( ( rule__Relation__Group_2__0 )* ) ; + // InternalErDslParser.g:1580: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 { - // InternalErDslParser.g:1577:1: ( ( ( rule__Relation__Group_2__0 )* ) ) - // InternalErDslParser.g:1578:1: ( ( rule__Relation__Group_2__0 )* ) + // InternalErDslParser.g:1584:1: ( ( ( rule__Relation__Group_2__0 )* ) ) + // InternalErDslParser.g:1585:1: ( ( rule__Relation__Group_2__0 )* ) { - // InternalErDslParser.g:1578:1: ( ( rule__Relation__Group_2__0 )* ) - // InternalErDslParser.g:1579:2: ( rule__Relation__Group_2__0 )* + // InternalErDslParser.g:1585:1: ( ( rule__Relation__Group_2__0 )* ) + // InternalErDslParser.g:1586:2: ( rule__Relation__Group_2__0 )* { before(grammarAccess.getRelationAccess().getGroup_2()); - // InternalErDslParser.g:1580:2: ( rule__Relation__Group_2__0 )* + // InternalErDslParser.g:1587:2: ( rule__Relation__Group_2__0 )* loop16: do { int alt16=2; @@ -4885,7 +4907,7 @@ public final void rule__Relation__Group__2__Impl() throws RecognitionException { switch (alt16) { case 1 : - // InternalErDslParser.g:1580:3: rule__Relation__Group_2__0 + // InternalErDslParser.g:1587:3: rule__Relation__Group_2__0 { pushFollow(FOLLOW_21); rule__Relation__Group_2__0(); @@ -4924,14 +4946,14 @@ public final void rule__Relation__Group__2__Impl() throws RecognitionException { // $ANTLR start "rule__Relation__Group_1__0" - // InternalErDslParser.g:1589:1: rule__Relation__Group_1__0 : rule__Relation__Group_1__0__Impl rule__Relation__Group_1__1 ; + // InternalErDslParser.g:1596: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 { - // InternalErDslParser.g:1593:1: ( rule__Relation__Group_1__0__Impl rule__Relation__Group_1__1 ) - // InternalErDslParser.g:1594:2: rule__Relation__Group_1__0__Impl rule__Relation__Group_1__1 + // InternalErDslParser.g:1600:1: ( rule__Relation__Group_1__0__Impl rule__Relation__Group_1__1 ) + // InternalErDslParser.g:1601:2: rule__Relation__Group_1__0__Impl rule__Relation__Group_1__1 { pushFollow(FOLLOW_6); rule__Relation__Group_1__0__Impl(); @@ -4962,17 +4984,17 @@ public final void rule__Relation__Group_1__0() throws RecognitionException { // $ANTLR start "rule__Relation__Group_1__0__Impl" - // InternalErDslParser.g:1601:1: rule__Relation__Group_1__0__Impl : ( LeftSquareBracket ) ; + // InternalErDslParser.g:1608:1: rule__Relation__Group_1__0__Impl : ( LeftSquareBracket ) ; public final void rule__Relation__Group_1__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1605:1: ( ( LeftSquareBracket ) ) - // InternalErDslParser.g:1606:1: ( LeftSquareBracket ) + // InternalErDslParser.g:1612:1: ( ( LeftSquareBracket ) ) + // InternalErDslParser.g:1613:1: ( LeftSquareBracket ) { - // InternalErDslParser.g:1606:1: ( LeftSquareBracket ) - // InternalErDslParser.g:1607:2: LeftSquareBracket + // InternalErDslParser.g:1613:1: ( LeftSquareBracket ) + // InternalErDslParser.g:1614:2: LeftSquareBracket { before(grammarAccess.getRelationAccess().getLeftSquareBracketKeyword_1_0()); match(input,LeftSquareBracket,FOLLOW_2); @@ -4999,14 +5021,14 @@ public final void rule__Relation__Group_1__0__Impl() throws RecognitionException // $ANTLR start "rule__Relation__Group_1__1" - // InternalErDslParser.g:1616:1: rule__Relation__Group_1__1 : rule__Relation__Group_1__1__Impl rule__Relation__Group_1__2 ; + // InternalErDslParser.g:1623: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 { - // InternalErDslParser.g:1620:1: ( rule__Relation__Group_1__1__Impl rule__Relation__Group_1__2 ) - // InternalErDslParser.g:1621:2: rule__Relation__Group_1__1__Impl rule__Relation__Group_1__2 + // InternalErDslParser.g:1627:1: ( rule__Relation__Group_1__1__Impl rule__Relation__Group_1__2 ) + // InternalErDslParser.g:1628:2: rule__Relation__Group_1__1__Impl rule__Relation__Group_1__2 { pushFollow(FOLLOW_22); rule__Relation__Group_1__1__Impl(); @@ -5037,21 +5059,21 @@ public final void rule__Relation__Group_1__1() throws RecognitionException { // $ANTLR start "rule__Relation__Group_1__1__Impl" - // InternalErDslParser.g:1628:1: rule__Relation__Group_1__1__Impl : ( ( rule__Relation__LeftEndingAssignment_1_1 ) ) ; + // InternalErDslParser.g:1635: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 { - // InternalErDslParser.g:1632:1: ( ( ( rule__Relation__LeftEndingAssignment_1_1 ) ) ) - // InternalErDslParser.g:1633:1: ( ( rule__Relation__LeftEndingAssignment_1_1 ) ) + // InternalErDslParser.g:1639:1: ( ( ( rule__Relation__LeftEndingAssignment_1_1 ) ) ) + // InternalErDslParser.g:1640:1: ( ( rule__Relation__LeftEndingAssignment_1_1 ) ) { - // InternalErDslParser.g:1633:1: ( ( rule__Relation__LeftEndingAssignment_1_1 ) ) - // InternalErDslParser.g:1634:2: ( rule__Relation__LeftEndingAssignment_1_1 ) + // InternalErDslParser.g:1640:1: ( ( rule__Relation__LeftEndingAssignment_1_1 ) ) + // InternalErDslParser.g:1641:2: ( rule__Relation__LeftEndingAssignment_1_1 ) { before(grammarAccess.getRelationAccess().getLeftEndingAssignment_1_1()); - // InternalErDslParser.g:1635:2: ( rule__Relation__LeftEndingAssignment_1_1 ) - // InternalErDslParser.g:1635:3: rule__Relation__LeftEndingAssignment_1_1 + // InternalErDslParser.g:1642:2: ( rule__Relation__LeftEndingAssignment_1_1 ) + // InternalErDslParser.g:1642:3: rule__Relation__LeftEndingAssignment_1_1 { pushFollow(FOLLOW_2); rule__Relation__LeftEndingAssignment_1_1(); @@ -5084,14 +5106,14 @@ public final void rule__Relation__Group_1__1__Impl() throws RecognitionException // $ANTLR start "rule__Relation__Group_1__2" - // InternalErDslParser.g:1643:1: rule__Relation__Group_1__2 : rule__Relation__Group_1__2__Impl rule__Relation__Group_1__3 ; + // InternalErDslParser.g:1650: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 { - // InternalErDslParser.g:1647:1: ( rule__Relation__Group_1__2__Impl rule__Relation__Group_1__3 ) - // InternalErDslParser.g:1648:2: rule__Relation__Group_1__2__Impl rule__Relation__Group_1__3 + // InternalErDslParser.g:1654:1: ( rule__Relation__Group_1__2__Impl rule__Relation__Group_1__3 ) + // InternalErDslParser.g:1655:2: rule__Relation__Group_1__2__Impl rule__Relation__Group_1__3 { pushFollow(FOLLOW_23); rule__Relation__Group_1__2__Impl(); @@ -5122,17 +5144,17 @@ public final void rule__Relation__Group_1__2() throws RecognitionException { // $ANTLR start "rule__Relation__Group_1__2__Impl" - // InternalErDslParser.g:1655:1: rule__Relation__Group_1__2__Impl : ( Relates ) ; + // InternalErDslParser.g:1662:1: rule__Relation__Group_1__2__Impl : ( Relates ) ; public final void rule__Relation__Group_1__2__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1659:1: ( ( Relates ) ) - // InternalErDslParser.g:1660:1: ( Relates ) + // InternalErDslParser.g:1666:1: ( ( Relates ) ) + // InternalErDslParser.g:1667:1: ( Relates ) { - // InternalErDslParser.g:1660:1: ( Relates ) - // InternalErDslParser.g:1661:2: Relates + // InternalErDslParser.g:1667:1: ( Relates ) + // InternalErDslParser.g:1668:2: Relates { before(grammarAccess.getRelationAccess().getRelatesKeyword_1_2()); match(input,Relates,FOLLOW_2); @@ -5159,14 +5181,14 @@ public final void rule__Relation__Group_1__2__Impl() throws RecognitionException // $ANTLR start "rule__Relation__Group_1__3" - // InternalErDslParser.g:1670:1: rule__Relation__Group_1__3 : rule__Relation__Group_1__3__Impl rule__Relation__Group_1__4 ; + // InternalErDslParser.g:1677: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 { - // InternalErDslParser.g:1674:1: ( rule__Relation__Group_1__3__Impl rule__Relation__Group_1__4 ) - // InternalErDslParser.g:1675:2: rule__Relation__Group_1__3__Impl rule__Relation__Group_1__4 + // InternalErDslParser.g:1681:1: ( rule__Relation__Group_1__3__Impl rule__Relation__Group_1__4 ) + // InternalErDslParser.g:1682:2: rule__Relation__Group_1__3__Impl rule__Relation__Group_1__4 { pushFollow(FOLLOW_24); rule__Relation__Group_1__3__Impl(); @@ -5197,21 +5219,21 @@ public final void rule__Relation__Group_1__3() throws RecognitionException { // $ANTLR start "rule__Relation__Group_1__3__Impl" - // InternalErDslParser.g:1682:1: rule__Relation__Group_1__3__Impl : ( ( rule__Relation__RightEndingAssignment_1_3 ) ) ; + // InternalErDslParser.g:1689: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 { - // InternalErDslParser.g:1686:1: ( ( ( rule__Relation__RightEndingAssignment_1_3 ) ) ) - // InternalErDslParser.g:1687:1: ( ( rule__Relation__RightEndingAssignment_1_3 ) ) + // InternalErDslParser.g:1693:1: ( ( ( rule__Relation__RightEndingAssignment_1_3 ) ) ) + // InternalErDslParser.g:1694:1: ( ( rule__Relation__RightEndingAssignment_1_3 ) ) { - // InternalErDslParser.g:1687:1: ( ( rule__Relation__RightEndingAssignment_1_3 ) ) - // InternalErDslParser.g:1688:2: ( rule__Relation__RightEndingAssignment_1_3 ) + // InternalErDslParser.g:1694:1: ( ( rule__Relation__RightEndingAssignment_1_3 ) ) + // InternalErDslParser.g:1695:2: ( rule__Relation__RightEndingAssignment_1_3 ) { before(grammarAccess.getRelationAccess().getRightEndingAssignment_1_3()); - // InternalErDslParser.g:1689:2: ( rule__Relation__RightEndingAssignment_1_3 ) - // InternalErDslParser.g:1689:3: rule__Relation__RightEndingAssignment_1_3 + // InternalErDslParser.g:1696:2: ( rule__Relation__RightEndingAssignment_1_3 ) + // InternalErDslParser.g:1696:3: rule__Relation__RightEndingAssignment_1_3 { pushFollow(FOLLOW_2); rule__Relation__RightEndingAssignment_1_3(); @@ -5244,14 +5266,14 @@ public final void rule__Relation__Group_1__3__Impl() throws RecognitionException // $ANTLR start "rule__Relation__Group_1__4" - // InternalErDslParser.g:1697:1: rule__Relation__Group_1__4 : rule__Relation__Group_1__4__Impl ; + // InternalErDslParser.g:1704: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 { - // InternalErDslParser.g:1701:1: ( rule__Relation__Group_1__4__Impl ) - // InternalErDslParser.g:1702:2: rule__Relation__Group_1__4__Impl + // InternalErDslParser.g:1708:1: ( rule__Relation__Group_1__4__Impl ) + // InternalErDslParser.g:1709:2: rule__Relation__Group_1__4__Impl { pushFollow(FOLLOW_2); rule__Relation__Group_1__4__Impl(); @@ -5277,17 +5299,17 @@ public final void rule__Relation__Group_1__4() throws RecognitionException { // $ANTLR start "rule__Relation__Group_1__4__Impl" - // InternalErDslParser.g:1708:1: rule__Relation__Group_1__4__Impl : ( RightSquareBracket ) ; + // InternalErDslParser.g:1715:1: rule__Relation__Group_1__4__Impl : ( RightSquareBracket ) ; public final void rule__Relation__Group_1__4__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1712:1: ( ( RightSquareBracket ) ) - // InternalErDslParser.g:1713:1: ( RightSquareBracket ) + // InternalErDslParser.g:1719:1: ( ( RightSquareBracket ) ) + // InternalErDslParser.g:1720:1: ( RightSquareBracket ) { - // InternalErDslParser.g:1713:1: ( RightSquareBracket ) - // InternalErDslParser.g:1714:2: RightSquareBracket + // InternalErDslParser.g:1720:1: ( RightSquareBracket ) + // InternalErDslParser.g:1721:2: RightSquareBracket { before(grammarAccess.getRelationAccess().getRightSquareBracketKeyword_1_4()); match(input,RightSquareBracket,FOLLOW_2); @@ -5314,14 +5336,14 @@ public final void rule__Relation__Group_1__4__Impl() throws RecognitionException // $ANTLR start "rule__Relation__Group_2__0" - // InternalErDslParser.g:1724:1: rule__Relation__Group_2__0 : rule__Relation__Group_2__0__Impl rule__Relation__Group_2__1 ; + // InternalErDslParser.g:1731: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 { - // InternalErDslParser.g:1728:1: ( rule__Relation__Group_2__0__Impl rule__Relation__Group_2__1 ) - // InternalErDslParser.g:1729:2: rule__Relation__Group_2__0__Impl rule__Relation__Group_2__1 + // InternalErDslParser.g:1735:1: ( rule__Relation__Group_2__0__Impl rule__Relation__Group_2__1 ) + // InternalErDslParser.g:1736:2: rule__Relation__Group_2__0__Impl rule__Relation__Group_2__1 { pushFollow(FOLLOW_6); rule__Relation__Group_2__0__Impl(); @@ -5352,17 +5374,17 @@ public final void rule__Relation__Group_2__0() throws RecognitionException { // $ANTLR start "rule__Relation__Group_2__0__Impl" - // InternalErDslParser.g:1736:1: rule__Relation__Group_2__0__Impl : ( LeftCurlyBracket ) ; + // InternalErDslParser.g:1743:1: rule__Relation__Group_2__0__Impl : ( LeftCurlyBracket ) ; public final void rule__Relation__Group_2__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1740:1: ( ( LeftCurlyBracket ) ) - // InternalErDslParser.g:1741:1: ( LeftCurlyBracket ) + // InternalErDslParser.g:1747:1: ( ( LeftCurlyBracket ) ) + // InternalErDslParser.g:1748:1: ( LeftCurlyBracket ) { - // InternalErDslParser.g:1741:1: ( LeftCurlyBracket ) - // InternalErDslParser.g:1742:2: LeftCurlyBracket + // InternalErDslParser.g:1748:1: ( LeftCurlyBracket ) + // InternalErDslParser.g:1749:2: LeftCurlyBracket { before(grammarAccess.getRelationAccess().getLeftCurlyBracketKeyword_2_0()); match(input,LeftCurlyBracket,FOLLOW_2); @@ -5389,14 +5411,14 @@ public final void rule__Relation__Group_2__0__Impl() throws RecognitionException // $ANTLR start "rule__Relation__Group_2__1" - // InternalErDslParser.g:1751:1: rule__Relation__Group_2__1 : rule__Relation__Group_2__1__Impl rule__Relation__Group_2__2 ; + // InternalErDslParser.g:1758: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 { - // InternalErDslParser.g:1755:1: ( rule__Relation__Group_2__1__Impl rule__Relation__Group_2__2 ) - // InternalErDslParser.g:1756:2: rule__Relation__Group_2__1__Impl rule__Relation__Group_2__2 + // InternalErDslParser.g:1762:1: ( rule__Relation__Group_2__1__Impl rule__Relation__Group_2__2 ) + // InternalErDslParser.g:1763:2: rule__Relation__Group_2__1__Impl rule__Relation__Group_2__2 { pushFollow(FOLLOW_18); rule__Relation__Group_2__1__Impl(); @@ -5427,21 +5449,21 @@ public final void rule__Relation__Group_2__1() throws RecognitionException { // $ANTLR start "rule__Relation__Group_2__1__Impl" - // InternalErDslParser.g:1763:1: rule__Relation__Group_2__1__Impl : ( ( rule__Relation__AttributesAssignment_2_1 ) ) ; + // InternalErDslParser.g:1770: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 { - // InternalErDslParser.g:1767:1: ( ( ( rule__Relation__AttributesAssignment_2_1 ) ) ) - // InternalErDslParser.g:1768:1: ( ( rule__Relation__AttributesAssignment_2_1 ) ) + // InternalErDslParser.g:1774:1: ( ( ( rule__Relation__AttributesAssignment_2_1 ) ) ) + // InternalErDslParser.g:1775:1: ( ( rule__Relation__AttributesAssignment_2_1 ) ) { - // InternalErDslParser.g:1768:1: ( ( rule__Relation__AttributesAssignment_2_1 ) ) - // InternalErDslParser.g:1769:2: ( rule__Relation__AttributesAssignment_2_1 ) + // InternalErDslParser.g:1775:1: ( ( rule__Relation__AttributesAssignment_2_1 ) ) + // InternalErDslParser.g:1776:2: ( rule__Relation__AttributesAssignment_2_1 ) { before(grammarAccess.getRelationAccess().getAttributesAssignment_2_1()); - // InternalErDslParser.g:1770:2: ( rule__Relation__AttributesAssignment_2_1 ) - // InternalErDslParser.g:1770:3: rule__Relation__AttributesAssignment_2_1 + // InternalErDslParser.g:1777:2: ( rule__Relation__AttributesAssignment_2_1 ) + // InternalErDslParser.g:1777:3: rule__Relation__AttributesAssignment_2_1 { pushFollow(FOLLOW_2); rule__Relation__AttributesAssignment_2_1(); @@ -5474,14 +5496,14 @@ public final void rule__Relation__Group_2__1__Impl() throws RecognitionException // $ANTLR start "rule__Relation__Group_2__2" - // InternalErDslParser.g:1778:1: rule__Relation__Group_2__2 : rule__Relation__Group_2__2__Impl rule__Relation__Group_2__3 ; + // InternalErDslParser.g:1785: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 { - // InternalErDslParser.g:1782:1: ( rule__Relation__Group_2__2__Impl rule__Relation__Group_2__3 ) - // InternalErDslParser.g:1783:2: rule__Relation__Group_2__2__Impl rule__Relation__Group_2__3 + // InternalErDslParser.g:1789:1: ( rule__Relation__Group_2__2__Impl rule__Relation__Group_2__3 ) + // InternalErDslParser.g:1790:2: rule__Relation__Group_2__2__Impl rule__Relation__Group_2__3 { pushFollow(FOLLOW_18); rule__Relation__Group_2__2__Impl(); @@ -5512,20 +5534,20 @@ public final void rule__Relation__Group_2__2() throws RecognitionException { // $ANTLR start "rule__Relation__Group_2__2__Impl" - // InternalErDslParser.g:1790:1: rule__Relation__Group_2__2__Impl : ( ( rule__Relation__Group_2_2__0 )* ) ; + // InternalErDslParser.g:1797: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 { - // InternalErDslParser.g:1794:1: ( ( ( rule__Relation__Group_2_2__0 )* ) ) - // InternalErDslParser.g:1795:1: ( ( rule__Relation__Group_2_2__0 )* ) + // InternalErDslParser.g:1801:1: ( ( ( rule__Relation__Group_2_2__0 )* ) ) + // InternalErDslParser.g:1802:1: ( ( rule__Relation__Group_2_2__0 )* ) { - // InternalErDslParser.g:1795:1: ( ( rule__Relation__Group_2_2__0 )* ) - // InternalErDslParser.g:1796:2: ( rule__Relation__Group_2_2__0 )* + // InternalErDslParser.g:1802:1: ( ( rule__Relation__Group_2_2__0 )* ) + // InternalErDslParser.g:1803:2: ( rule__Relation__Group_2_2__0 )* { before(grammarAccess.getRelationAccess().getGroup_2_2()); - // InternalErDslParser.g:1797:2: ( rule__Relation__Group_2_2__0 )* + // InternalErDslParser.g:1804:2: ( rule__Relation__Group_2_2__0 )* loop17: do { int alt17=2; @@ -5538,7 +5560,7 @@ public final void rule__Relation__Group_2__2__Impl() throws RecognitionException switch (alt17) { case 1 : - // InternalErDslParser.g:1797:3: rule__Relation__Group_2_2__0 + // InternalErDslParser.g:1804:3: rule__Relation__Group_2_2__0 { pushFollow(FOLLOW_19); rule__Relation__Group_2_2__0(); @@ -5577,14 +5599,14 @@ public final void rule__Relation__Group_2__2__Impl() throws RecognitionException // $ANTLR start "rule__Relation__Group_2__3" - // InternalErDslParser.g:1805:1: rule__Relation__Group_2__3 : rule__Relation__Group_2__3__Impl ; + // InternalErDslParser.g:1812: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 { - // InternalErDslParser.g:1809:1: ( rule__Relation__Group_2__3__Impl ) - // InternalErDslParser.g:1810:2: rule__Relation__Group_2__3__Impl + // InternalErDslParser.g:1816:1: ( rule__Relation__Group_2__3__Impl ) + // InternalErDslParser.g:1817:2: rule__Relation__Group_2__3__Impl { pushFollow(FOLLOW_2); rule__Relation__Group_2__3__Impl(); @@ -5610,17 +5632,17 @@ public final void rule__Relation__Group_2__3() throws RecognitionException { // $ANTLR start "rule__Relation__Group_2__3__Impl" - // InternalErDslParser.g:1816:1: rule__Relation__Group_2__3__Impl : ( RightCurlyBracket ) ; + // InternalErDslParser.g:1823:1: rule__Relation__Group_2__3__Impl : ( RightCurlyBracket ) ; public final void rule__Relation__Group_2__3__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1820:1: ( ( RightCurlyBracket ) ) - // InternalErDslParser.g:1821:1: ( RightCurlyBracket ) + // InternalErDslParser.g:1827:1: ( ( RightCurlyBracket ) ) + // InternalErDslParser.g:1828:1: ( RightCurlyBracket ) { - // InternalErDslParser.g:1821:1: ( RightCurlyBracket ) - // InternalErDslParser.g:1822:2: RightCurlyBracket + // InternalErDslParser.g:1828:1: ( RightCurlyBracket ) + // InternalErDslParser.g:1829:2: RightCurlyBracket { before(grammarAccess.getRelationAccess().getRightCurlyBracketKeyword_2_3()); match(input,RightCurlyBracket,FOLLOW_2); @@ -5647,14 +5669,14 @@ public final void rule__Relation__Group_2__3__Impl() throws RecognitionException // $ANTLR start "rule__Relation__Group_2_2__0" - // InternalErDslParser.g:1832:1: rule__Relation__Group_2_2__0 : rule__Relation__Group_2_2__0__Impl rule__Relation__Group_2_2__1 ; + // InternalErDslParser.g:1839: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 { - // InternalErDslParser.g:1836:1: ( rule__Relation__Group_2_2__0__Impl rule__Relation__Group_2_2__1 ) - // InternalErDslParser.g:1837:2: rule__Relation__Group_2_2__0__Impl rule__Relation__Group_2_2__1 + // InternalErDslParser.g:1843:1: ( rule__Relation__Group_2_2__0__Impl rule__Relation__Group_2_2__1 ) + // InternalErDslParser.g:1844:2: rule__Relation__Group_2_2__0__Impl rule__Relation__Group_2_2__1 { pushFollow(FOLLOW_6); rule__Relation__Group_2_2__0__Impl(); @@ -5685,17 +5707,17 @@ public final void rule__Relation__Group_2_2__0() throws RecognitionException { // $ANTLR start "rule__Relation__Group_2_2__0__Impl" - // InternalErDslParser.g:1844:1: rule__Relation__Group_2_2__0__Impl : ( Comma ) ; + // InternalErDslParser.g:1851:1: rule__Relation__Group_2_2__0__Impl : ( Comma ) ; public final void rule__Relation__Group_2_2__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1848:1: ( ( Comma ) ) - // InternalErDslParser.g:1849:1: ( Comma ) + // InternalErDslParser.g:1855:1: ( ( Comma ) ) + // InternalErDslParser.g:1856:1: ( Comma ) { - // InternalErDslParser.g:1849:1: ( Comma ) - // InternalErDslParser.g:1850:2: Comma + // InternalErDslParser.g:1856:1: ( Comma ) + // InternalErDslParser.g:1857:2: Comma { before(grammarAccess.getRelationAccess().getCommaKeyword_2_2_0()); match(input,Comma,FOLLOW_2); @@ -5722,14 +5744,14 @@ public final void rule__Relation__Group_2_2__0__Impl() throws RecognitionExcepti // $ANTLR start "rule__Relation__Group_2_2__1" - // InternalErDslParser.g:1859:1: rule__Relation__Group_2_2__1 : rule__Relation__Group_2_2__1__Impl ; + // InternalErDslParser.g:1866: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 { - // InternalErDslParser.g:1863:1: ( rule__Relation__Group_2_2__1__Impl ) - // InternalErDslParser.g:1864:2: rule__Relation__Group_2_2__1__Impl + // InternalErDslParser.g:1870:1: ( rule__Relation__Group_2_2__1__Impl ) + // InternalErDslParser.g:1871:2: rule__Relation__Group_2_2__1__Impl { pushFollow(FOLLOW_2); rule__Relation__Group_2_2__1__Impl(); @@ -5755,21 +5777,21 @@ public final void rule__Relation__Group_2_2__1() throws RecognitionException { // $ANTLR start "rule__Relation__Group_2_2__1__Impl" - // InternalErDslParser.g:1870:1: rule__Relation__Group_2_2__1__Impl : ( ( rule__Relation__AttributesAssignment_2_2_1 ) ) ; + // InternalErDslParser.g:1877: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 { - // InternalErDslParser.g:1874:1: ( ( ( rule__Relation__AttributesAssignment_2_2_1 ) ) ) - // InternalErDslParser.g:1875:1: ( ( rule__Relation__AttributesAssignment_2_2_1 ) ) + // InternalErDslParser.g:1881:1: ( ( ( rule__Relation__AttributesAssignment_2_2_1 ) ) ) + // InternalErDslParser.g:1882:1: ( ( rule__Relation__AttributesAssignment_2_2_1 ) ) { - // InternalErDslParser.g:1875:1: ( ( rule__Relation__AttributesAssignment_2_2_1 ) ) - // InternalErDslParser.g:1876:2: ( rule__Relation__AttributesAssignment_2_2_1 ) + // InternalErDslParser.g:1882:1: ( ( rule__Relation__AttributesAssignment_2_2_1 ) ) + // InternalErDslParser.g:1883:2: ( rule__Relation__AttributesAssignment_2_2_1 ) { before(grammarAccess.getRelationAccess().getAttributesAssignment_2_2_1()); - // InternalErDslParser.g:1877:2: ( rule__Relation__AttributesAssignment_2_2_1 ) - // InternalErDslParser.g:1877:3: rule__Relation__AttributesAssignment_2_2_1 + // InternalErDslParser.g:1884:2: ( rule__Relation__AttributesAssignment_2_2_1 ) + // InternalErDslParser.g:1884:3: rule__Relation__AttributesAssignment_2_2_1 { pushFollow(FOLLOW_2); rule__Relation__AttributesAssignment_2_2_1(); @@ -5802,14 +5824,14 @@ public final void rule__Relation__Group_2_2__1__Impl() throws RecognitionExcepti // $ANTLR start "rule__RelationSideRight__Group_0__0" - // InternalErDslParser.g:1886:1: rule__RelationSideRight__Group_0__0 : rule__RelationSideRight__Group_0__0__Impl rule__RelationSideRight__Group_0__1 ; + // InternalErDslParser.g:1893:1: rule__RelationSideRight__Group_0__0 : rule__RelationSideRight__Group_0__0__Impl rule__RelationSideRight__Group_0__1 ; public final void rule__RelationSideRight__Group_0__0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1890:1: ( rule__RelationSideRight__Group_0__0__Impl rule__RelationSideRight__Group_0__1 ) - // InternalErDslParser.g:1891:2: rule__RelationSideRight__Group_0__0__Impl rule__RelationSideRight__Group_0__1 + // InternalErDslParser.g:1897:1: ( rule__RelationSideRight__Group_0__0__Impl rule__RelationSideRight__Group_0__1 ) + // InternalErDslParser.g:1898:2: rule__RelationSideRight__Group_0__0__Impl rule__RelationSideRight__Group_0__1 { pushFollow(FOLLOW_6); rule__RelationSideRight__Group_0__0__Impl(); @@ -5840,21 +5862,21 @@ public final void rule__RelationSideRight__Group_0__0() throws RecognitionExcept // $ANTLR start "rule__RelationSideRight__Group_0__0__Impl" - // InternalErDslParser.g:1898:1: rule__RelationSideRight__Group_0__0__Impl : ( ( rule__RelationSideRight__CardinalityAssignment_0_0 ) ) ; + // InternalErDslParser.g:1905:1: rule__RelationSideRight__Group_0__0__Impl : ( ( rule__RelationSideRight__CardinalityAssignment_0_0 ) ) ; public final void rule__RelationSideRight__Group_0__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1902:1: ( ( ( rule__RelationSideRight__CardinalityAssignment_0_0 ) ) ) - // InternalErDslParser.g:1903:1: ( ( rule__RelationSideRight__CardinalityAssignment_0_0 ) ) + // InternalErDslParser.g:1909:1: ( ( ( rule__RelationSideRight__CardinalityAssignment_0_0 ) ) ) + // InternalErDslParser.g:1910:1: ( ( rule__RelationSideRight__CardinalityAssignment_0_0 ) ) { - // InternalErDslParser.g:1903:1: ( ( rule__RelationSideRight__CardinalityAssignment_0_0 ) ) - // InternalErDslParser.g:1904:2: ( rule__RelationSideRight__CardinalityAssignment_0_0 ) + // InternalErDslParser.g:1910:1: ( ( rule__RelationSideRight__CardinalityAssignment_0_0 ) ) + // InternalErDslParser.g:1911:2: ( rule__RelationSideRight__CardinalityAssignment_0_0 ) { before(grammarAccess.getRelationSideRightAccess().getCardinalityAssignment_0_0()); - // InternalErDslParser.g:1905:2: ( rule__RelationSideRight__CardinalityAssignment_0_0 ) - // InternalErDslParser.g:1905:3: rule__RelationSideRight__CardinalityAssignment_0_0 + // InternalErDslParser.g:1912:2: ( rule__RelationSideRight__CardinalityAssignment_0_0 ) + // InternalErDslParser.g:1912:3: rule__RelationSideRight__CardinalityAssignment_0_0 { pushFollow(FOLLOW_2); rule__RelationSideRight__CardinalityAssignment_0_0(); @@ -5887,14 +5909,14 @@ public final void rule__RelationSideRight__Group_0__0__Impl() throws Recognition // $ANTLR start "rule__RelationSideRight__Group_0__1" - // InternalErDslParser.g:1913:1: rule__RelationSideRight__Group_0__1 : rule__RelationSideRight__Group_0__1__Impl ; + // InternalErDslParser.g:1920:1: rule__RelationSideRight__Group_0__1 : rule__RelationSideRight__Group_0__1__Impl ; public final void rule__RelationSideRight__Group_0__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1917:1: ( rule__RelationSideRight__Group_0__1__Impl ) - // InternalErDslParser.g:1918:2: rule__RelationSideRight__Group_0__1__Impl + // InternalErDslParser.g:1924:1: ( rule__RelationSideRight__Group_0__1__Impl ) + // InternalErDslParser.g:1925:2: rule__RelationSideRight__Group_0__1__Impl { pushFollow(FOLLOW_2); rule__RelationSideRight__Group_0__1__Impl(); @@ -5920,21 +5942,21 @@ public final void rule__RelationSideRight__Group_0__1() throws RecognitionExcept // $ANTLR start "rule__RelationSideRight__Group_0__1__Impl" - // InternalErDslParser.g:1924:1: rule__RelationSideRight__Group_0__1__Impl : ( ( rule__RelationSideRight__TargetAssignment_0_1 ) ) ; + // InternalErDslParser.g:1931:1: rule__RelationSideRight__Group_0__1__Impl : ( ( rule__RelationSideRight__TargetAssignment_0_1 ) ) ; public final void rule__RelationSideRight__Group_0__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1928:1: ( ( ( rule__RelationSideRight__TargetAssignment_0_1 ) ) ) - // InternalErDslParser.g:1929:1: ( ( rule__RelationSideRight__TargetAssignment_0_1 ) ) + // InternalErDslParser.g:1935:1: ( ( ( rule__RelationSideRight__TargetAssignment_0_1 ) ) ) + // InternalErDslParser.g:1936:1: ( ( rule__RelationSideRight__TargetAssignment_0_1 ) ) { - // InternalErDslParser.g:1929:1: ( ( rule__RelationSideRight__TargetAssignment_0_1 ) ) - // InternalErDslParser.g:1930:2: ( rule__RelationSideRight__TargetAssignment_0_1 ) + // InternalErDslParser.g:1936:1: ( ( rule__RelationSideRight__TargetAssignment_0_1 ) ) + // InternalErDslParser.g:1937:2: ( rule__RelationSideRight__TargetAssignment_0_1 ) { before(grammarAccess.getRelationSideRightAccess().getTargetAssignment_0_1()); - // InternalErDslParser.g:1931:2: ( rule__RelationSideRight__TargetAssignment_0_1 ) - // InternalErDslParser.g:1931:3: rule__RelationSideRight__TargetAssignment_0_1 + // InternalErDslParser.g:1938:2: ( rule__RelationSideRight__TargetAssignment_0_1 ) + // InternalErDslParser.g:1938:3: rule__RelationSideRight__TargetAssignment_0_1 { pushFollow(FOLLOW_2); rule__RelationSideRight__TargetAssignment_0_1(); @@ -5967,14 +5989,14 @@ public final void rule__RelationSideRight__Group_0__1__Impl() throws Recognition // $ANTLR start "rule__RelationSideLeft__Group_1__0" - // InternalErDslParser.g:1940:1: rule__RelationSideLeft__Group_1__0 : rule__RelationSideLeft__Group_1__0__Impl rule__RelationSideLeft__Group_1__1 ; + // InternalErDslParser.g:1947:1: rule__RelationSideLeft__Group_1__0 : rule__RelationSideLeft__Group_1__0__Impl rule__RelationSideLeft__Group_1__1 ; public final void rule__RelationSideLeft__Group_1__0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1944:1: ( rule__RelationSideLeft__Group_1__0__Impl rule__RelationSideLeft__Group_1__1 ) - // InternalErDslParser.g:1945:2: rule__RelationSideLeft__Group_1__0__Impl rule__RelationSideLeft__Group_1__1 + // InternalErDslParser.g:1951:1: ( rule__RelationSideLeft__Group_1__0__Impl rule__RelationSideLeft__Group_1__1 ) + // InternalErDslParser.g:1952:2: rule__RelationSideLeft__Group_1__0__Impl rule__RelationSideLeft__Group_1__1 { pushFollow(FOLLOW_25); rule__RelationSideLeft__Group_1__0__Impl(); @@ -6005,21 +6027,21 @@ public final void rule__RelationSideLeft__Group_1__0() throws RecognitionExcepti // $ANTLR start "rule__RelationSideLeft__Group_1__0__Impl" - // InternalErDslParser.g:1952:1: rule__RelationSideLeft__Group_1__0__Impl : ( ( rule__RelationSideLeft__TargetAssignment_1_0 ) ) ; + // InternalErDslParser.g:1959:1: rule__RelationSideLeft__Group_1__0__Impl : ( ( rule__RelationSideLeft__TargetAssignment_1_0 ) ) ; public final void rule__RelationSideLeft__Group_1__0__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1956:1: ( ( ( rule__RelationSideLeft__TargetAssignment_1_0 ) ) ) - // InternalErDslParser.g:1957:1: ( ( rule__RelationSideLeft__TargetAssignment_1_0 ) ) + // InternalErDslParser.g:1963:1: ( ( ( rule__RelationSideLeft__TargetAssignment_1_0 ) ) ) + // InternalErDslParser.g:1964:1: ( ( rule__RelationSideLeft__TargetAssignment_1_0 ) ) { - // InternalErDslParser.g:1957:1: ( ( rule__RelationSideLeft__TargetAssignment_1_0 ) ) - // InternalErDslParser.g:1958:2: ( rule__RelationSideLeft__TargetAssignment_1_0 ) + // InternalErDslParser.g:1964:1: ( ( rule__RelationSideLeft__TargetAssignment_1_0 ) ) + // InternalErDslParser.g:1965:2: ( rule__RelationSideLeft__TargetAssignment_1_0 ) { before(grammarAccess.getRelationSideLeftAccess().getTargetAssignment_1_0()); - // InternalErDslParser.g:1959:2: ( rule__RelationSideLeft__TargetAssignment_1_0 ) - // InternalErDslParser.g:1959:3: rule__RelationSideLeft__TargetAssignment_1_0 + // InternalErDslParser.g:1966:2: ( rule__RelationSideLeft__TargetAssignment_1_0 ) + // InternalErDslParser.g:1966:3: rule__RelationSideLeft__TargetAssignment_1_0 { pushFollow(FOLLOW_2); rule__RelationSideLeft__TargetAssignment_1_0(); @@ -6052,14 +6074,14 @@ public final void rule__RelationSideLeft__Group_1__0__Impl() throws RecognitionE // $ANTLR start "rule__RelationSideLeft__Group_1__1" - // InternalErDslParser.g:1967:1: rule__RelationSideLeft__Group_1__1 : rule__RelationSideLeft__Group_1__1__Impl ; + // InternalErDslParser.g:1974:1: rule__RelationSideLeft__Group_1__1 : rule__RelationSideLeft__Group_1__1__Impl ; public final void rule__RelationSideLeft__Group_1__1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1971:1: ( rule__RelationSideLeft__Group_1__1__Impl ) - // InternalErDslParser.g:1972:2: rule__RelationSideLeft__Group_1__1__Impl + // InternalErDslParser.g:1978:1: ( rule__RelationSideLeft__Group_1__1__Impl ) + // InternalErDslParser.g:1979:2: rule__RelationSideLeft__Group_1__1__Impl { pushFollow(FOLLOW_2); rule__RelationSideLeft__Group_1__1__Impl(); @@ -6085,21 +6107,21 @@ public final void rule__RelationSideLeft__Group_1__1() throws RecognitionExcepti // $ANTLR start "rule__RelationSideLeft__Group_1__1__Impl" - // InternalErDslParser.g:1978:1: rule__RelationSideLeft__Group_1__1__Impl : ( ( rule__RelationSideLeft__CardinalityAssignment_1_1 ) ) ; + // InternalErDslParser.g:1985:1: rule__RelationSideLeft__Group_1__1__Impl : ( ( rule__RelationSideLeft__CardinalityAssignment_1_1 ) ) ; public final void rule__RelationSideLeft__Group_1__1__Impl() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1982:1: ( ( ( rule__RelationSideLeft__CardinalityAssignment_1_1 ) ) ) - // InternalErDslParser.g:1983:1: ( ( rule__RelationSideLeft__CardinalityAssignment_1_1 ) ) + // InternalErDslParser.g:1989:1: ( ( ( rule__RelationSideLeft__CardinalityAssignment_1_1 ) ) ) + // InternalErDslParser.g:1990:1: ( ( rule__RelationSideLeft__CardinalityAssignment_1_1 ) ) { - // InternalErDslParser.g:1983:1: ( ( rule__RelationSideLeft__CardinalityAssignment_1_1 ) ) - // InternalErDslParser.g:1984:2: ( rule__RelationSideLeft__CardinalityAssignment_1_1 ) + // InternalErDslParser.g:1990:1: ( ( rule__RelationSideLeft__CardinalityAssignment_1_1 ) ) + // InternalErDslParser.g:1991:2: ( rule__RelationSideLeft__CardinalityAssignment_1_1 ) { before(grammarAccess.getRelationSideLeftAccess().getCardinalityAssignment_1_1()); - // InternalErDslParser.g:1985:2: ( rule__RelationSideLeft__CardinalityAssignment_1_1 ) - // InternalErDslParser.g:1985:3: rule__RelationSideLeft__CardinalityAssignment_1_1 + // InternalErDslParser.g:1992:2: ( rule__RelationSideLeft__CardinalityAssignment_1_1 ) + // InternalErDslParser.g:1992:3: rule__RelationSideLeft__CardinalityAssignment_1_1 { pushFollow(FOLLOW_2); rule__RelationSideLeft__CardinalityAssignment_1_1(); @@ -6132,21 +6154,21 @@ public final void rule__RelationSideLeft__Group_1__1__Impl() throws RecognitionE // $ANTLR start "rule__ERModel__TargetGeneratorAssignment_0_1" - // InternalErDslParser.g:1994:1: rule__ERModel__TargetGeneratorAssignment_0_1 : ( ( rule__ERModel__TargetGeneratorAlternatives_0_1_0 ) ) ; + // InternalErDslParser.g:2001:1: rule__ERModel__TargetGeneratorAssignment_0_1 : ( ( rule__ERModel__TargetGeneratorAlternatives_0_1_0 ) ) ; public final void rule__ERModel__TargetGeneratorAssignment_0_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:1998:1: ( ( ( rule__ERModel__TargetGeneratorAlternatives_0_1_0 ) ) ) - // InternalErDslParser.g:1999:2: ( ( rule__ERModel__TargetGeneratorAlternatives_0_1_0 ) ) + // InternalErDslParser.g:2005:1: ( ( ( rule__ERModel__TargetGeneratorAlternatives_0_1_0 ) ) ) + // InternalErDslParser.g:2006:2: ( ( rule__ERModel__TargetGeneratorAlternatives_0_1_0 ) ) { - // InternalErDslParser.g:1999:2: ( ( rule__ERModel__TargetGeneratorAlternatives_0_1_0 ) ) - // InternalErDslParser.g:2000:3: ( rule__ERModel__TargetGeneratorAlternatives_0_1_0 ) + // InternalErDslParser.g:2006:2: ( ( rule__ERModel__TargetGeneratorAlternatives_0_1_0 ) ) + // InternalErDslParser.g:2007:3: ( rule__ERModel__TargetGeneratorAlternatives_0_1_0 ) { before(grammarAccess.getERModelAccess().getTargetGeneratorAlternatives_0_1_0()); - // InternalErDslParser.g:2001:3: ( rule__ERModel__TargetGeneratorAlternatives_0_1_0 ) - // InternalErDslParser.g:2001:4: rule__ERModel__TargetGeneratorAlternatives_0_1_0 + // InternalErDslParser.g:2008:3: ( rule__ERModel__TargetGeneratorAlternatives_0_1_0 ) + // InternalErDslParser.g:2008:4: rule__ERModel__TargetGeneratorAlternatives_0_1_0 { pushFollow(FOLLOW_2); rule__ERModel__TargetGeneratorAlternatives_0_1_0(); @@ -6179,17 +6201,17 @@ public final void rule__ERModel__TargetGeneratorAssignment_0_1() throws Recognit // $ANTLR start "rule__ERModel__DomainAssignment_1" - // InternalErDslParser.g:2009:1: rule__ERModel__DomainAssignment_1 : ( ruleDomain ) ; + // InternalErDslParser.g:2016:1: rule__ERModel__DomainAssignment_1 : ( ruleDomain ) ; public final void rule__ERModel__DomainAssignment_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:2013:1: ( ( ruleDomain ) ) - // InternalErDslParser.g:2014:2: ( ruleDomain ) + // InternalErDslParser.g:2020:1: ( ( ruleDomain ) ) + // InternalErDslParser.g:2021:2: ( ruleDomain ) { - // InternalErDslParser.g:2014:2: ( ruleDomain ) - // InternalErDslParser.g:2015:3: ruleDomain + // InternalErDslParser.g:2021:2: ( ruleDomain ) + // InternalErDslParser.g:2022:3: ruleDomain { before(grammarAccess.getERModelAccess().getDomainDomainParserRuleCall_1_0()); pushFollow(FOLLOW_2); @@ -6220,17 +6242,17 @@ public final void rule__ERModel__DomainAssignment_1() throws RecognitionExceptio // $ANTLR start "rule__ERModel__EntitiesAssignment_4" - // InternalErDslParser.g:2024:1: rule__ERModel__EntitiesAssignment_4 : ( ruleEntity ) ; + // InternalErDslParser.g:2031:1: rule__ERModel__EntitiesAssignment_4 : ( ruleEntity ) ; public final void rule__ERModel__EntitiesAssignment_4() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:2028:1: ( ( ruleEntity ) ) - // InternalErDslParser.g:2029:2: ( ruleEntity ) + // InternalErDslParser.g:2035:1: ( ( ruleEntity ) ) + // InternalErDslParser.g:2036:2: ( ruleEntity ) { - // InternalErDslParser.g:2029:2: ( ruleEntity ) - // InternalErDslParser.g:2030:3: ruleEntity + // InternalErDslParser.g:2036:2: ( ruleEntity ) + // InternalErDslParser.g:2037:3: ruleEntity { before(grammarAccess.getERModelAccess().getEntitiesEntityParserRuleCall_4_0()); pushFollow(FOLLOW_2); @@ -6261,17 +6283,17 @@ public final void rule__ERModel__EntitiesAssignment_4() throws RecognitionExcept // $ANTLR start "rule__ERModel__RelationsAssignment_7" - // InternalErDslParser.g:2039:1: rule__ERModel__RelationsAssignment_7 : ( ruleRelation ) ; + // InternalErDslParser.g:2046:1: rule__ERModel__RelationsAssignment_7 : ( ruleRelation ) ; public final void rule__ERModel__RelationsAssignment_7() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:2043:1: ( ( ruleRelation ) ) - // InternalErDslParser.g:2044:2: ( ruleRelation ) + // InternalErDslParser.g:2050:1: ( ( ruleRelation ) ) + // InternalErDslParser.g:2051:2: ( ruleRelation ) { - // InternalErDslParser.g:2044:2: ( ruleRelation ) - // InternalErDslParser.g:2045:3: ruleRelation + // InternalErDslParser.g:2051:2: ( ruleRelation ) + // InternalErDslParser.g:2052:3: ruleRelation { before(grammarAccess.getERModelAccess().getRelationsRelationParserRuleCall_7_0()); pushFollow(FOLLOW_2); @@ -6302,17 +6324,17 @@ public final void rule__ERModel__RelationsAssignment_7() throws RecognitionExcep // $ANTLR start "rule__Domain__NameAssignment_1" - // InternalErDslParser.g:2054:1: rule__Domain__NameAssignment_1 : ( RULE_ID ) ; + // InternalErDslParser.g:2061:1: rule__Domain__NameAssignment_1 : ( RULE_ID ) ; public final void rule__Domain__NameAssignment_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:2058:1: ( ( RULE_ID ) ) - // InternalErDslParser.g:2059:2: ( RULE_ID ) + // InternalErDslParser.g:2065:1: ( ( RULE_ID ) ) + // InternalErDslParser.g:2066:2: ( RULE_ID ) { - // InternalErDslParser.g:2059:2: ( RULE_ID ) - // InternalErDslParser.g:2060:3: RULE_ID + // InternalErDslParser.g:2066:2: ( RULE_ID ) + // InternalErDslParser.g:2067:3: RULE_ID { before(grammarAccess.getDomainAccess().getNameIDTerminalRuleCall_1_0()); match(input,RULE_ID,FOLLOW_2); @@ -6339,17 +6361,17 @@ public final void rule__Domain__NameAssignment_1() throws RecognitionException { // $ANTLR start "rule__Attribute__NameAssignment_0" - // InternalErDslParser.g:2069:1: rule__Attribute__NameAssignment_0 : ( RULE_ID ) ; + // InternalErDslParser.g:2076:1: rule__Attribute__NameAssignment_0 : ( RULE_ID ) ; public final void rule__Attribute__NameAssignment_0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:2073:1: ( ( RULE_ID ) ) - // InternalErDslParser.g:2074:2: ( RULE_ID ) + // InternalErDslParser.g:2080:1: ( ( RULE_ID ) ) + // InternalErDslParser.g:2081:2: ( RULE_ID ) { - // InternalErDslParser.g:2074:2: ( RULE_ID ) - // InternalErDslParser.g:2075:3: RULE_ID + // InternalErDslParser.g:2081:2: ( RULE_ID ) + // InternalErDslParser.g:2082:3: RULE_ID { before(grammarAccess.getAttributeAccess().getNameIDTerminalRuleCall_0_0()); match(input,RULE_ID,FOLLOW_2); @@ -6376,17 +6398,17 @@ public final void rule__Attribute__NameAssignment_0() throws RecognitionExceptio // $ANTLR start "rule__Attribute__TypeAssignment_1" - // InternalErDslParser.g:2084:1: rule__Attribute__TypeAssignment_1 : ( ruleDataType ) ; + // InternalErDslParser.g:2091:1: rule__Attribute__TypeAssignment_1 : ( ruleDataType ) ; public final void rule__Attribute__TypeAssignment_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:2088:1: ( ( ruleDataType ) ) - // InternalErDslParser.g:2089:2: ( ruleDataType ) + // InternalErDslParser.g:2095:1: ( ( ruleDataType ) ) + // InternalErDslParser.g:2096:2: ( ruleDataType ) { - // InternalErDslParser.g:2089:2: ( ruleDataType ) - // InternalErDslParser.g:2090:3: ruleDataType + // InternalErDslParser.g:2096:2: ( ruleDataType ) + // InternalErDslParser.g:2097:3: ruleDataType { before(grammarAccess.getAttributeAccess().getTypeDataTypeEnumRuleCall_1_0()); pushFollow(FOLLOW_2); @@ -6417,21 +6439,21 @@ public final void rule__Attribute__TypeAssignment_1() throws RecognitionExceptio // $ANTLR start "rule__Attribute__IsKeyAssignment_2" - // InternalErDslParser.g:2099:1: rule__Attribute__IsKeyAssignment_2 : ( ( IsIdentifier ) ) ; + // InternalErDslParser.g:2106:1: rule__Attribute__IsKeyAssignment_2 : ( ( IsIdentifier ) ) ; public final void rule__Attribute__IsKeyAssignment_2() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:2103:1: ( ( ( IsIdentifier ) ) ) - // InternalErDslParser.g:2104:2: ( ( IsIdentifier ) ) + // InternalErDslParser.g:2110:1: ( ( ( IsIdentifier ) ) ) + // InternalErDslParser.g:2111:2: ( ( IsIdentifier ) ) { - // InternalErDslParser.g:2104:2: ( ( IsIdentifier ) ) - // InternalErDslParser.g:2105:3: ( IsIdentifier ) + // InternalErDslParser.g:2111:2: ( ( IsIdentifier ) ) + // InternalErDslParser.g:2112:3: ( IsIdentifier ) { before(grammarAccess.getAttributeAccess().getIsKeyIsIdentifierKeyword_2_0()); - // InternalErDslParser.g:2106:3: ( IsIdentifier ) - // InternalErDslParser.g:2107:4: IsIdentifier + // InternalErDslParser.g:2113:3: ( IsIdentifier ) + // InternalErDslParser.g:2114:4: IsIdentifier { before(grammarAccess.getAttributeAccess().getIsKeyIsIdentifierKeyword_2_0()); match(input,IsIdentifier,FOLLOW_2); @@ -6462,17 +6484,17 @@ public final void rule__Attribute__IsKeyAssignment_2() throws RecognitionExcepti // $ANTLR start "rule__Entity__NameAssignment_0" - // InternalErDslParser.g:2118:1: rule__Entity__NameAssignment_0 : ( RULE_ID ) ; + // InternalErDslParser.g:2125:1: rule__Entity__NameAssignment_0 : ( RULE_ID ) ; public final void rule__Entity__NameAssignment_0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:2122:1: ( ( RULE_ID ) ) - // InternalErDslParser.g:2123:2: ( RULE_ID ) + // InternalErDslParser.g:2129:1: ( ( RULE_ID ) ) + // InternalErDslParser.g:2130:2: ( RULE_ID ) { - // InternalErDslParser.g:2123:2: ( RULE_ID ) - // InternalErDslParser.g:2124:3: RULE_ID + // InternalErDslParser.g:2130:2: ( RULE_ID ) + // InternalErDslParser.g:2131:3: RULE_ID { before(grammarAccess.getEntityAccess().getNameIDTerminalRuleCall_0_0()); match(input,RULE_ID,FOLLOW_2); @@ -6499,21 +6521,21 @@ public final void rule__Entity__NameAssignment_0() throws RecognitionException { // $ANTLR start "rule__Entity__GeneralizationAssignment_1_1" - // InternalErDslParser.g:2133:1: rule__Entity__GeneralizationAssignment_1_1 : ( ( rule__Entity__GeneralizationAlternatives_1_1_0 ) ) ; + // InternalErDslParser.g:2140:1: rule__Entity__GeneralizationAssignment_1_1 : ( ( rule__Entity__GeneralizationAlternatives_1_1_0 ) ) ; public final void rule__Entity__GeneralizationAssignment_1_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:2137:1: ( ( ( rule__Entity__GeneralizationAlternatives_1_1_0 ) ) ) - // InternalErDslParser.g:2138:2: ( ( rule__Entity__GeneralizationAlternatives_1_1_0 ) ) + // InternalErDslParser.g:2144:1: ( ( ( rule__Entity__GeneralizationAlternatives_1_1_0 ) ) ) + // InternalErDslParser.g:2145:2: ( ( rule__Entity__GeneralizationAlternatives_1_1_0 ) ) { - // InternalErDslParser.g:2138:2: ( ( rule__Entity__GeneralizationAlternatives_1_1_0 ) ) - // InternalErDslParser.g:2139:3: ( rule__Entity__GeneralizationAlternatives_1_1_0 ) + // InternalErDslParser.g:2145:2: ( ( rule__Entity__GeneralizationAlternatives_1_1_0 ) ) + // InternalErDslParser.g:2146:3: ( rule__Entity__GeneralizationAlternatives_1_1_0 ) { before(grammarAccess.getEntityAccess().getGeneralizationAlternatives_1_1_0()); - // InternalErDslParser.g:2140:3: ( rule__Entity__GeneralizationAlternatives_1_1_0 ) - // InternalErDslParser.g:2140:4: rule__Entity__GeneralizationAlternatives_1_1_0 + // InternalErDslParser.g:2147:3: ( rule__Entity__GeneralizationAlternatives_1_1_0 ) + // InternalErDslParser.g:2147:4: rule__Entity__GeneralizationAlternatives_1_1_0 { pushFollow(FOLLOW_2); rule__Entity__GeneralizationAlternatives_1_1_0(); @@ -6546,21 +6568,21 @@ public final void rule__Entity__GeneralizationAssignment_1_1() throws Recognitio // $ANTLR start "rule__Entity__IsAssignment_1_2" - // InternalErDslParser.g:2148:1: rule__Entity__IsAssignment_1_2 : ( ( RULE_ID ) ) ; + // InternalErDslParser.g:2155:1: rule__Entity__IsAssignment_1_2 : ( ( RULE_ID ) ) ; public final void rule__Entity__IsAssignment_1_2() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:2152:1: ( ( ( RULE_ID ) ) ) - // InternalErDslParser.g:2153:2: ( ( RULE_ID ) ) + // InternalErDslParser.g:2159:1: ( ( ( RULE_ID ) ) ) + // InternalErDslParser.g:2160:2: ( ( RULE_ID ) ) { - // InternalErDslParser.g:2153:2: ( ( RULE_ID ) ) - // InternalErDslParser.g:2154:3: ( RULE_ID ) + // InternalErDslParser.g:2160:2: ( ( RULE_ID ) ) + // InternalErDslParser.g:2161:3: ( RULE_ID ) { before(grammarAccess.getEntityAccess().getIsEntityCrossReference_1_2_0()); - // InternalErDslParser.g:2155:3: ( RULE_ID ) - // InternalErDslParser.g:2156:4: RULE_ID + // InternalErDslParser.g:2162:3: ( RULE_ID ) + // InternalErDslParser.g:2163:4: RULE_ID { before(grammarAccess.getEntityAccess().getIsEntityIDTerminalRuleCall_1_2_0_1()); match(input,RULE_ID,FOLLOW_2); @@ -6591,17 +6613,17 @@ public final void rule__Entity__IsAssignment_1_2() throws RecognitionException { // $ANTLR start "rule__Entity__AttributesAssignment_2_1" - // InternalErDslParser.g:2167:1: rule__Entity__AttributesAssignment_2_1 : ( ruleAttribute ) ; + // InternalErDslParser.g:2174:1: rule__Entity__AttributesAssignment_2_1 : ( ruleAttribute ) ; public final void rule__Entity__AttributesAssignment_2_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:2171:1: ( ( ruleAttribute ) ) - // InternalErDslParser.g:2172:2: ( ruleAttribute ) + // InternalErDslParser.g:2178:1: ( ( ruleAttribute ) ) + // InternalErDslParser.g:2179:2: ( ruleAttribute ) { - // InternalErDslParser.g:2172:2: ( ruleAttribute ) - // InternalErDslParser.g:2173:3: ruleAttribute + // InternalErDslParser.g:2179:2: ( ruleAttribute ) + // InternalErDslParser.g:2180:3: ruleAttribute { before(grammarAccess.getEntityAccess().getAttributesAttributeParserRuleCall_2_1_0()); pushFollow(FOLLOW_2); @@ -6632,17 +6654,17 @@ public final void rule__Entity__AttributesAssignment_2_1() throws RecognitionExc // $ANTLR start "rule__Entity__AttributesAssignment_2_2_1" - // InternalErDslParser.g:2182:1: rule__Entity__AttributesAssignment_2_2_1 : ( ruleAttribute ) ; + // InternalErDslParser.g:2189:1: rule__Entity__AttributesAssignment_2_2_1 : ( ruleAttribute ) ; public final void rule__Entity__AttributesAssignment_2_2_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:2186:1: ( ( ruleAttribute ) ) - // InternalErDslParser.g:2187:2: ( ruleAttribute ) + // InternalErDslParser.g:2193:1: ( ( ruleAttribute ) ) + // InternalErDslParser.g:2194:2: ( ruleAttribute ) { - // InternalErDslParser.g:2187:2: ( ruleAttribute ) - // InternalErDslParser.g:2188:3: ruleAttribute + // InternalErDslParser.g:2194:2: ( ruleAttribute ) + // InternalErDslParser.g:2195:3: ruleAttribute { before(grammarAccess.getEntityAccess().getAttributesAttributeParserRuleCall_2_2_1_0()); pushFollow(FOLLOW_2); @@ -6673,17 +6695,17 @@ public final void rule__Entity__AttributesAssignment_2_2_1() throws RecognitionE // $ANTLR start "rule__Relation__NameAssignment_0" - // InternalErDslParser.g:2197:1: rule__Relation__NameAssignment_0 : ( RULE_ID ) ; + // InternalErDslParser.g:2204:1: rule__Relation__NameAssignment_0 : ( RULE_ID ) ; public final void rule__Relation__NameAssignment_0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:2201:1: ( ( RULE_ID ) ) - // InternalErDslParser.g:2202:2: ( RULE_ID ) + // InternalErDslParser.g:2208:1: ( ( RULE_ID ) ) + // InternalErDslParser.g:2209:2: ( RULE_ID ) { - // InternalErDslParser.g:2202:2: ( RULE_ID ) - // InternalErDslParser.g:2203:3: RULE_ID + // InternalErDslParser.g:2209:2: ( RULE_ID ) + // InternalErDslParser.g:2210:3: RULE_ID { before(grammarAccess.getRelationAccess().getNameIDTerminalRuleCall_0_0()); match(input,RULE_ID,FOLLOW_2); @@ -6710,17 +6732,17 @@ public final void rule__Relation__NameAssignment_0() throws RecognitionException // $ANTLR start "rule__Relation__LeftEndingAssignment_1_1" - // InternalErDslParser.g:2212:1: rule__Relation__LeftEndingAssignment_1_1 : ( ruleRelationSideLeft ) ; + // InternalErDslParser.g:2219:1: rule__Relation__LeftEndingAssignment_1_1 : ( ruleRelationSideLeft ) ; public final void rule__Relation__LeftEndingAssignment_1_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:2216:1: ( ( ruleRelationSideLeft ) ) - // InternalErDslParser.g:2217:2: ( ruleRelationSideLeft ) + // InternalErDslParser.g:2223:1: ( ( ruleRelationSideLeft ) ) + // InternalErDslParser.g:2224:2: ( ruleRelationSideLeft ) { - // InternalErDslParser.g:2217:2: ( ruleRelationSideLeft ) - // InternalErDslParser.g:2218:3: ruleRelationSideLeft + // InternalErDslParser.g:2224:2: ( ruleRelationSideLeft ) + // InternalErDslParser.g:2225:3: ruleRelationSideLeft { before(grammarAccess.getRelationAccess().getLeftEndingRelationSideLeftParserRuleCall_1_1_0()); pushFollow(FOLLOW_2); @@ -6751,17 +6773,17 @@ public final void rule__Relation__LeftEndingAssignment_1_1() throws RecognitionE // $ANTLR start "rule__Relation__RightEndingAssignment_1_3" - // InternalErDslParser.g:2227:1: rule__Relation__RightEndingAssignment_1_3 : ( ruleRelationSideRight ) ; + // InternalErDslParser.g:2234:1: rule__Relation__RightEndingAssignment_1_3 : ( ruleRelationSideRight ) ; public final void rule__Relation__RightEndingAssignment_1_3() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:2231:1: ( ( ruleRelationSideRight ) ) - // InternalErDslParser.g:2232:2: ( ruleRelationSideRight ) + // InternalErDslParser.g:2238:1: ( ( ruleRelationSideRight ) ) + // InternalErDslParser.g:2239:2: ( ruleRelationSideRight ) { - // InternalErDslParser.g:2232:2: ( ruleRelationSideRight ) - // InternalErDslParser.g:2233:3: ruleRelationSideRight + // InternalErDslParser.g:2239:2: ( ruleRelationSideRight ) + // InternalErDslParser.g:2240:3: ruleRelationSideRight { before(grammarAccess.getRelationAccess().getRightEndingRelationSideRightParserRuleCall_1_3_0()); pushFollow(FOLLOW_2); @@ -6792,17 +6814,17 @@ public final void rule__Relation__RightEndingAssignment_1_3() throws Recognition // $ANTLR start "rule__Relation__AttributesAssignment_2_1" - // InternalErDslParser.g:2242:1: rule__Relation__AttributesAssignment_2_1 : ( ruleAttribute ) ; + // InternalErDslParser.g:2249:1: rule__Relation__AttributesAssignment_2_1 : ( ruleAttribute ) ; public final void rule__Relation__AttributesAssignment_2_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:2246:1: ( ( ruleAttribute ) ) - // InternalErDslParser.g:2247:2: ( ruleAttribute ) + // InternalErDslParser.g:2253:1: ( ( ruleAttribute ) ) + // InternalErDslParser.g:2254:2: ( ruleAttribute ) { - // InternalErDslParser.g:2247:2: ( ruleAttribute ) - // InternalErDslParser.g:2248:3: ruleAttribute + // InternalErDslParser.g:2254:2: ( ruleAttribute ) + // InternalErDslParser.g:2255:3: ruleAttribute { before(grammarAccess.getRelationAccess().getAttributesAttributeParserRuleCall_2_1_0()); pushFollow(FOLLOW_2); @@ -6833,17 +6855,17 @@ public final void rule__Relation__AttributesAssignment_2_1() throws RecognitionE // $ANTLR start "rule__Relation__AttributesAssignment_2_2_1" - // InternalErDslParser.g:2257:1: rule__Relation__AttributesAssignment_2_2_1 : ( ruleAttribute ) ; + // InternalErDslParser.g:2264:1: rule__Relation__AttributesAssignment_2_2_1 : ( ruleAttribute ) ; public final void rule__Relation__AttributesAssignment_2_2_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:2261:1: ( ( ruleAttribute ) ) - // InternalErDslParser.g:2262:2: ( ruleAttribute ) + // InternalErDslParser.g:2268:1: ( ( ruleAttribute ) ) + // InternalErDslParser.g:2269:2: ( ruleAttribute ) { - // InternalErDslParser.g:2262:2: ( ruleAttribute ) - // InternalErDslParser.g:2263:3: ruleAttribute + // InternalErDslParser.g:2269:2: ( ruleAttribute ) + // InternalErDslParser.g:2270:3: ruleAttribute { before(grammarAccess.getRelationAccess().getAttributesAttributeParserRuleCall_2_2_1_0()); pushFollow(FOLLOW_2); @@ -6874,21 +6896,21 @@ public final void rule__Relation__AttributesAssignment_2_2_1() throws Recognitio // $ANTLR start "rule__RelationSideRight__CardinalityAssignment_0_0" - // InternalErDslParser.g:2272:1: rule__RelationSideRight__CardinalityAssignment_0_0 : ( ( rule__RelationSideRight__CardinalityAlternatives_0_0_0 ) ) ; + // InternalErDslParser.g:2279:1: rule__RelationSideRight__CardinalityAssignment_0_0 : ( ( rule__RelationSideRight__CardinalityAlternatives_0_0_0 ) ) ; public final void rule__RelationSideRight__CardinalityAssignment_0_0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:2276:1: ( ( ( rule__RelationSideRight__CardinalityAlternatives_0_0_0 ) ) ) - // InternalErDslParser.g:2277:2: ( ( rule__RelationSideRight__CardinalityAlternatives_0_0_0 ) ) + // InternalErDslParser.g:2283:1: ( ( ( rule__RelationSideRight__CardinalityAlternatives_0_0_0 ) ) ) + // InternalErDslParser.g:2284:2: ( ( rule__RelationSideRight__CardinalityAlternatives_0_0_0 ) ) { - // InternalErDslParser.g:2277:2: ( ( rule__RelationSideRight__CardinalityAlternatives_0_0_0 ) ) - // InternalErDslParser.g:2278:3: ( rule__RelationSideRight__CardinalityAlternatives_0_0_0 ) + // InternalErDslParser.g:2284:2: ( ( rule__RelationSideRight__CardinalityAlternatives_0_0_0 ) ) + // InternalErDslParser.g:2285:3: ( rule__RelationSideRight__CardinalityAlternatives_0_0_0 ) { before(grammarAccess.getRelationSideRightAccess().getCardinalityAlternatives_0_0_0()); - // InternalErDslParser.g:2279:3: ( rule__RelationSideRight__CardinalityAlternatives_0_0_0 ) - // InternalErDslParser.g:2279:4: rule__RelationSideRight__CardinalityAlternatives_0_0_0 + // InternalErDslParser.g:2286:3: ( rule__RelationSideRight__CardinalityAlternatives_0_0_0 ) + // InternalErDslParser.g:2286:4: rule__RelationSideRight__CardinalityAlternatives_0_0_0 { pushFollow(FOLLOW_2); rule__RelationSideRight__CardinalityAlternatives_0_0_0(); @@ -6921,21 +6943,21 @@ public final void rule__RelationSideRight__CardinalityAssignment_0_0() throws Re // $ANTLR start "rule__RelationSideRight__TargetAssignment_0_1" - // InternalErDslParser.g:2287:1: rule__RelationSideRight__TargetAssignment_0_1 : ( ( RULE_ID ) ) ; + // InternalErDslParser.g:2294:1: rule__RelationSideRight__TargetAssignment_0_1 : ( ( RULE_ID ) ) ; public final void rule__RelationSideRight__TargetAssignment_0_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:2291:1: ( ( ( RULE_ID ) ) ) - // InternalErDslParser.g:2292:2: ( ( RULE_ID ) ) + // InternalErDslParser.g:2298:1: ( ( ( RULE_ID ) ) ) + // InternalErDslParser.g:2299:2: ( ( RULE_ID ) ) { - // InternalErDslParser.g:2292:2: ( ( RULE_ID ) ) - // InternalErDslParser.g:2293:3: ( RULE_ID ) + // InternalErDslParser.g:2299:2: ( ( RULE_ID ) ) + // InternalErDslParser.g:2300:3: ( RULE_ID ) { before(grammarAccess.getRelationSideRightAccess().getTargetEntityCrossReference_0_1_0()); - // InternalErDslParser.g:2294:3: ( RULE_ID ) - // InternalErDslParser.g:2295:4: RULE_ID + // InternalErDslParser.g:2301:3: ( RULE_ID ) + // InternalErDslParser.g:2302:4: RULE_ID { before(grammarAccess.getRelationSideRightAccess().getTargetEntityIDTerminalRuleCall_0_1_0_1()); match(input,RULE_ID,FOLLOW_2); @@ -6966,21 +6988,21 @@ public final void rule__RelationSideRight__TargetAssignment_0_1() throws Recogni // $ANTLR start "rule__RelationSideRight__TargetAssignment_1" - // InternalErDslParser.g:2306:1: rule__RelationSideRight__TargetAssignment_1 : ( ( RULE_ID ) ) ; + // InternalErDslParser.g:2313:1: rule__RelationSideRight__TargetAssignment_1 : ( ( RULE_ID ) ) ; public final void rule__RelationSideRight__TargetAssignment_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:2310:1: ( ( ( RULE_ID ) ) ) - // InternalErDslParser.g:2311:2: ( ( RULE_ID ) ) + // InternalErDslParser.g:2317:1: ( ( ( RULE_ID ) ) ) + // InternalErDslParser.g:2318:2: ( ( RULE_ID ) ) { - // InternalErDslParser.g:2311:2: ( ( RULE_ID ) ) - // InternalErDslParser.g:2312:3: ( RULE_ID ) + // InternalErDslParser.g:2318:2: ( ( RULE_ID ) ) + // InternalErDslParser.g:2319:3: ( RULE_ID ) { before(grammarAccess.getRelationSideRightAccess().getTargetRelationCrossReference_1_0()); - // InternalErDslParser.g:2313:3: ( RULE_ID ) - // InternalErDslParser.g:2314:4: RULE_ID + // InternalErDslParser.g:2320:3: ( RULE_ID ) + // InternalErDslParser.g:2321:4: RULE_ID { before(grammarAccess.getRelationSideRightAccess().getTargetRelationIDTerminalRuleCall_1_0_1()); match(input,RULE_ID,FOLLOW_2); @@ -7011,21 +7033,21 @@ public final void rule__RelationSideRight__TargetAssignment_1() throws Recogniti // $ANTLR start "rule__RelationSideLeft__TargetAssignment_0" - // InternalErDslParser.g:2325:1: rule__RelationSideLeft__TargetAssignment_0 : ( ( RULE_ID ) ) ; + // InternalErDslParser.g:2332:1: rule__RelationSideLeft__TargetAssignment_0 : ( ( RULE_ID ) ) ; public final void rule__RelationSideLeft__TargetAssignment_0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:2329:1: ( ( ( RULE_ID ) ) ) - // InternalErDslParser.g:2330:2: ( ( RULE_ID ) ) + // InternalErDslParser.g:2336:1: ( ( ( RULE_ID ) ) ) + // InternalErDslParser.g:2337:2: ( ( RULE_ID ) ) { - // InternalErDslParser.g:2330:2: ( ( RULE_ID ) ) - // InternalErDslParser.g:2331:3: ( RULE_ID ) + // InternalErDslParser.g:2337:2: ( ( RULE_ID ) ) + // InternalErDslParser.g:2338:3: ( RULE_ID ) { before(grammarAccess.getRelationSideLeftAccess().getTargetEntityCrossReference_0_0()); - // InternalErDslParser.g:2332:3: ( RULE_ID ) - // InternalErDslParser.g:2333:4: RULE_ID + // InternalErDslParser.g:2339:3: ( RULE_ID ) + // InternalErDslParser.g:2340:4: RULE_ID { before(grammarAccess.getRelationSideLeftAccess().getTargetEntityIDTerminalRuleCall_0_0_1()); match(input,RULE_ID,FOLLOW_2); @@ -7056,21 +7078,21 @@ public final void rule__RelationSideLeft__TargetAssignment_0() throws Recognitio // $ANTLR start "rule__RelationSideLeft__TargetAssignment_1_0" - // InternalErDslParser.g:2344:1: rule__RelationSideLeft__TargetAssignment_1_0 : ( ( RULE_ID ) ) ; + // InternalErDslParser.g:2351:1: rule__RelationSideLeft__TargetAssignment_1_0 : ( ( RULE_ID ) ) ; public final void rule__RelationSideLeft__TargetAssignment_1_0() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:2348:1: ( ( ( RULE_ID ) ) ) - // InternalErDslParser.g:2349:2: ( ( RULE_ID ) ) + // InternalErDslParser.g:2355:1: ( ( ( RULE_ID ) ) ) + // InternalErDslParser.g:2356:2: ( ( RULE_ID ) ) { - // InternalErDslParser.g:2349:2: ( ( RULE_ID ) ) - // InternalErDslParser.g:2350:3: ( RULE_ID ) + // InternalErDslParser.g:2356:2: ( ( RULE_ID ) ) + // InternalErDslParser.g:2357:3: ( RULE_ID ) { before(grammarAccess.getRelationSideLeftAccess().getTargetRelationCrossReference_1_0_0()); - // InternalErDslParser.g:2351:3: ( RULE_ID ) - // InternalErDslParser.g:2352:4: RULE_ID + // InternalErDslParser.g:2358:3: ( RULE_ID ) + // InternalErDslParser.g:2359:4: RULE_ID { before(grammarAccess.getRelationSideLeftAccess().getTargetRelationIDTerminalRuleCall_1_0_0_1()); match(input,RULE_ID,FOLLOW_2); @@ -7101,21 +7123,21 @@ public final void rule__RelationSideLeft__TargetAssignment_1_0() throws Recognit // $ANTLR start "rule__RelationSideLeft__CardinalityAssignment_1_1" - // InternalErDslParser.g:2363:1: rule__RelationSideLeft__CardinalityAssignment_1_1 : ( ( rule__RelationSideLeft__CardinalityAlternatives_1_1_0 ) ) ; + // InternalErDslParser.g:2370:1: rule__RelationSideLeft__CardinalityAssignment_1_1 : ( ( rule__RelationSideLeft__CardinalityAlternatives_1_1_0 ) ) ; public final void rule__RelationSideLeft__CardinalityAssignment_1_1() throws RecognitionException { int stackSize = keepStackSize(); try { - // InternalErDslParser.g:2367:1: ( ( ( rule__RelationSideLeft__CardinalityAlternatives_1_1_0 ) ) ) - // InternalErDslParser.g:2368:2: ( ( rule__RelationSideLeft__CardinalityAlternatives_1_1_0 ) ) + // InternalErDslParser.g:2374:1: ( ( ( rule__RelationSideLeft__CardinalityAlternatives_1_1_0 ) ) ) + // InternalErDslParser.g:2375:2: ( ( rule__RelationSideLeft__CardinalityAlternatives_1_1_0 ) ) { - // InternalErDslParser.g:2368:2: ( ( rule__RelationSideLeft__CardinalityAlternatives_1_1_0 ) ) - // InternalErDslParser.g:2369:3: ( rule__RelationSideLeft__CardinalityAlternatives_1_1_0 ) + // InternalErDslParser.g:2375:2: ( ( rule__RelationSideLeft__CardinalityAlternatives_1_1_0 ) ) + // InternalErDslParser.g:2376:3: ( rule__RelationSideLeft__CardinalityAlternatives_1_1_0 ) { before(grammarAccess.getRelationSideLeftAccess().getCardinalityAlternatives_1_1_0()); - // InternalErDslParser.g:2370:3: ( rule__RelationSideLeft__CardinalityAlternatives_1_1_0 ) - // InternalErDslParser.g:2370:4: rule__RelationSideLeft__CardinalityAlternatives_1_1_0 + // InternalErDslParser.g:2377:3: ( rule__RelationSideLeft__CardinalityAlternatives_1_1_0 ) + // InternalErDslParser.g:2377:4: rule__RelationSideLeft__CardinalityAlternatives_1_1_0 { pushFollow(FOLLOW_2); rule__RelationSideLeft__CardinalityAlternatives_1_1_0(); @@ -7153,28 +7175,28 @@ public final void rule__RelationSideLeft__CardinalityAssignment_1_1() throws Rec 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[]{0x0000000000020000L}); - public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000080000000L}); + public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000100000000L}); public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000001000000000L}); - public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000800000000L}); - public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000001000000002L}); + public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000002000000000L}); + public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000001000000000L}); + public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000002000000002L}); public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000001900000000L}); - public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000001100000002L}); - public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000009000900L}); - public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000400000000L}); - public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x00000000160CC000L}); + public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000003200000000L}); + public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000002200000002L}); + public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000012008900L}); + public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000800000000L}); + public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x000000002C194000L}); public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000420000000L}); + public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000840000000L}); public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x00000000000000F0L}); - public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000840000000L}); - public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000040000002L}); - public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000001100000000L}); - public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000400000002L}); - public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000001000F00000L}); - public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000200000000L}); - public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000000F00000L}); + public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000001080000000L}); + public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000080000002L}); + public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000002200000000L}); + public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000800000002L}); + public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000000020000L}); + public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000002001E00000L}); + public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000400000000L}); + public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000001E00000L}); } \ No newline at end of file diff --git a/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.tokens b/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.tokens index 0f8e2ab..5e30ce7 100644 --- a/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.tokens +++ b/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/internal/InternalErDslParser.tokens @@ -1,39 +1,40 @@ -'(0:1)'=20 -'(0:N)'=21 -'(1:1)'=22 -'(1:N)'=23 -','=30 -';'=31 -'All'=27 -'Domain'=17 +'(0:1)'=21 +'(0:N)'=22 +'(1:1)'=23 +'(1:N)'=24 +','=31 +';'=32 +'All'=28 +'Diagram'=15 +'Domain'=18 'Entities'=12 'Generate'=13 'LogicalSchema'=8 -'MySQL'=24 +'MySQL'=25 'PostgreSQL'=11 'Relationships'=9 -'['=32 -']'=33 -'boolean'=15 +'['=33 +']'=34 +'boolean'=16 'datetime'=14 -'double'=18 -'file'=26 -'int'=28 -'is'=29 +'double'=19 +'file'=27 +'int'=29 +'is'=30 'isIdentifier'=10 -'money'=25 +'money'=26 'partial/disjoint'=5 'partial/overlapped'=4 -'relates'=16 -'string'=19 +'relates'=17 +'string'=20 'total/disjoint'=7 'total/overlapped'=6 -'{'=34 -'}'=35 -RULE_ANY_OTHER=42 -RULE_ID=36 -RULE_INT=37 -RULE_ML_COMMENT=39 -RULE_SL_COMMENT=40 -RULE_STRING=38 -RULE_WS=41 +'{'=35 +'}'=36 +RULE_ANY_OTHER=43 +RULE_ID=37 +RULE_INT=38 +RULE_ML_COMMENT=40 +RULE_SL_COMMENT=41 +RULE_STRING=39 +RULE_WS=42 diff --git a/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/lexer/InternalErDslLexer.g b/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/lexer/InternalErDslLexer.g index 28fd9a6..fb77086 100644 --- a/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/lexer/InternalErDslLexer.g +++ b/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/lexer/InternalErDslLexer.g @@ -33,6 +33,8 @@ Generate : ('G'|'g')('E'|'e')('N'|'n')('E'|'e')('R'|'r')('A'|'a')('T'|'t')('E'|' Datetime : ('D'|'d')('A'|'a')('T'|'t')('E'|'e')('T'|'t')('I'|'i')('M'|'m')('E'|'e'); +Diagram : ('D'|'d')('I'|'i')('A'|'a')('G'|'g')('R'|'r')('A'|'a')('M'|'m'); + Boolean : ('B'|'b')('O'|'o')('O'|'o')('L'|'l')('E'|'e')('A'|'a')('N'|'n'); Relates : ('R'|'r')('E'|'e')('L'|'l')('A'|'a')('T'|'t')('E'|'e')('S'|'s'); diff --git a/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/lexer/InternalErDslLexer.java b/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/lexer/InternalErDslLexer.java index fac5fca..5740b58 100644 --- a/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/lexer/InternalErDslLexer.java +++ b/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/lexer/InternalErDslLexer.java @@ -12,46 +12,47 @@ @SuppressWarnings("all") public class InternalErDslLexer extends Lexer { - public static final int All=27; - public static final int N_1=23; + public static final int All=28; + public static final int N_1=24; public static final int PostgreSQL=11; - public static final int PartialDisjoint=5; - public static final int Is=29; - public static final int RULE_STRING=38; - public static final int String=19; - public static final int LeftParenthesisDigitZeroColonDigitOneRightParenthesis=20; - public static final int N=21; - public static final int Int=28; - public static final int RULE_SL_COMMENT=40; + public static final int String=20; public static final int TotalOverlapped=6; - public static final int Money=25; - public static final int Comma=30; + public static final int MySQL=25; + public static final int Boolean=16; + public static final int RightSquareBracket=34; + public static final int Relates=17; + public static final int RULE_ID=37; + public static final int PartialOverlapped=4; + public static final int LogicalSchema=8; + public static final int IsIdentifier=10; + public static final int Double=19; + public static final int RULE_INT=38; + public static final int RULE_ML_COMMENT=40; + public static final int LeftSquareBracket=33; + public static final int Domain=18; + public static final int File=27; + public static final int PartialDisjoint=5; + public static final int Is=30; + public static final int RULE_STRING=39; + public static final int LeftParenthesisDigitZeroColonDigitOneRightParenthesis=21; + public static final int N=22; + public static final int Int=29; + public static final int RULE_SL_COMMENT=41; + public static final int Money=26; + public static final int Comma=31; public static final int Relationships=9; public static final int Generate=13; - public static final int MySQL=24; - public static final int RightCurlyBracket=35; - public static final int Boolean=15; + public static final int RightCurlyBracket=36; public static final int EOF=-1; public static final int TotalDisjoint=7; - public static final int RightSquareBracket=33; public static final int Datetime=14; - public static final int Relates=16; - public static final int RULE_ID=36; - public static final int RULE_WS=41; - public static final int LeftCurlyBracket=34; - public static final int PartialOverlapped=4; - public static final int LogicalSchema=8; - public static final int RULE_ANY_OTHER=42; - public static final int IsIdentifier=10; - public static final int Double=18; + public static final int RULE_WS=42; + public static final int LeftCurlyBracket=35; + public static final int RULE_ANY_OTHER=43; public static final int Entities=12; - public static final int LeftParenthesisDigitOneColonDigitOneRightParenthesis=22; - public static final int Semicolon=31; - public static final int RULE_INT=37; - public static final int RULE_ML_COMMENT=39; - public static final int LeftSquareBracket=32; - public static final int Domain=17; - public static final int File=26; + public static final int Diagram=15; + public static final int LeftParenthesisDigitOneColonDigitOneRightParenthesis=23; + public static final int Semicolon=32; // delegates // delegators @@ -1467,13 +1468,95 @@ public final void mDatetime() throws RecognitionException { } // $ANTLR end "Datetime" + // $ANTLR start "Diagram" + public final void mDiagram() throws RecognitionException { + try { + int _type = Diagram; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalErDslLexer.g:36:9: ( ( 'D' | 'd' ) ( 'I' | 'i' ) ( 'A' | 'a' ) ( 'G' | 'g' ) ( 'R' | 'r' ) ( 'A' | 'a' ) ( 'M' | 'm' ) ) + // InternalErDslLexer.g:36:11: ( 'D' | 'd' ) ( 'I' | 'i' ) ( 'A' | 'a' ) ( 'G' | 'g' ) ( 'R' | 'r' ) ( 'A' | 'a' ) ( 'M' | 'm' ) + { + if ( input.LA(1)=='D'||input.LA(1)=='d' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='I'||input.LA(1)=='i' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='G'||input.LA(1)=='g' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='M'||input.LA(1)=='m' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "Diagram" + // $ANTLR start "Boolean" public final void mBoolean() throws RecognitionException { try { int _type = Boolean; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:36:9: ( ( 'B' | 'b' ) ( 'O' | 'o' ) ( 'O' | 'o' ) ( 'L' | 'l' ) ( 'E' | 'e' ) ( 'A' | 'a' ) ( 'N' | 'n' ) ) - // InternalErDslLexer.g:36:11: ( 'B' | 'b' ) ( 'O' | 'o' ) ( 'O' | 'o' ) ( 'L' | 'l' ) ( 'E' | 'e' ) ( 'A' | 'a' ) ( 'N' | 'n' ) + // InternalErDslLexer.g:38:9: ( ( 'B' | 'b' ) ( 'O' | 'o' ) ( 'O' | 'o' ) ( 'L' | 'l' ) ( 'E' | 'e' ) ( 'A' | 'a' ) ( 'N' | 'n' ) ) + // InternalErDslLexer.g:38:11: ( 'B' | 'b' ) ( 'O' | 'o' ) ( 'O' | 'o' ) ( 'L' | 'l' ) ( 'E' | 'e' ) ( 'A' | 'a' ) ( 'N' | 'n' ) { if ( input.LA(1)=='B'||input.LA(1)=='b' ) { input.consume(); @@ -1554,8 +1637,8 @@ public final void mRelates() throws RecognitionException { try { int _type = Relates; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:38:9: ( ( 'R' | 'r' ) ( 'E' | 'e' ) ( 'L' | 'l' ) ( 'A' | 'a' ) ( 'T' | 't' ) ( 'E' | 'e' ) ( 'S' | 's' ) ) - // InternalErDslLexer.g:38:11: ( 'R' | 'r' ) ( 'E' | 'e' ) ( 'L' | 'l' ) ( 'A' | 'a' ) ( 'T' | 't' ) ( 'E' | 'e' ) ( 'S' | 's' ) + // InternalErDslLexer.g:40:9: ( ( 'R' | 'r' ) ( 'E' | 'e' ) ( 'L' | 'l' ) ( 'A' | 'a' ) ( 'T' | 't' ) ( 'E' | 'e' ) ( 'S' | 's' ) ) + // InternalErDslLexer.g:40:11: ( 'R' | 'r' ) ( 'E' | 'e' ) ( 'L' | 'l' ) ( 'A' | 'a' ) ( 'T' | 't' ) ( 'E' | 'e' ) ( 'S' | 's' ) { if ( input.LA(1)=='R'||input.LA(1)=='r' ) { input.consume(); @@ -1636,8 +1719,8 @@ public final void mDomain() throws RecognitionException { try { int _type = Domain; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:40:8: ( ( 'D' | 'd' ) ( 'O' | 'o' ) ( 'M' | 'm' ) ( 'A' | 'a' ) ( 'I' | 'i' ) ( 'N' | 'n' ) ) - // InternalErDslLexer.g:40:10: ( 'D' | 'd' ) ( 'O' | 'o' ) ( 'M' | 'm' ) ( 'A' | 'a' ) ( 'I' | 'i' ) ( 'N' | 'n' ) + // InternalErDslLexer.g:42:8: ( ( 'D' | 'd' ) ( 'O' | 'o' ) ( 'M' | 'm' ) ( 'A' | 'a' ) ( 'I' | 'i' ) ( 'N' | 'n' ) ) + // InternalErDslLexer.g:42:10: ( 'D' | 'd' ) ( 'O' | 'o' ) ( 'M' | 'm' ) ( 'A' | 'a' ) ( 'I' | 'i' ) ( 'N' | 'n' ) { if ( input.LA(1)=='D'||input.LA(1)=='d' ) { input.consume(); @@ -1709,8 +1792,8 @@ public final void mDouble() throws RecognitionException { try { int _type = Double; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:42:8: ( ( 'D' | 'd' ) ( 'O' | 'o' ) ( 'U' | 'u' ) ( 'B' | 'b' ) ( 'L' | 'l' ) ( 'E' | 'e' ) ) - // InternalErDslLexer.g:42:10: ( 'D' | 'd' ) ( 'O' | 'o' ) ( 'U' | 'u' ) ( 'B' | 'b' ) ( 'L' | 'l' ) ( 'E' | 'e' ) + // InternalErDslLexer.g:44:8: ( ( 'D' | 'd' ) ( 'O' | 'o' ) ( 'U' | 'u' ) ( 'B' | 'b' ) ( 'L' | 'l' ) ( 'E' | 'e' ) ) + // InternalErDslLexer.g:44:10: ( 'D' | 'd' ) ( 'O' | 'o' ) ( 'U' | 'u' ) ( 'B' | 'b' ) ( 'L' | 'l' ) ( 'E' | 'e' ) { if ( input.LA(1)=='D'||input.LA(1)=='d' ) { input.consume(); @@ -1782,8 +1865,8 @@ public final void mString() throws RecognitionException { try { int _type = String; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:44:8: ( ( 'S' | 's' ) ( 'T' | 't' ) ( 'R' | 'r' ) ( 'I' | 'i' ) ( 'N' | 'n' ) ( 'G' | 'g' ) ) - // InternalErDslLexer.g:44:10: ( 'S' | 's' ) ( 'T' | 't' ) ( 'R' | 'r' ) ( 'I' | 'i' ) ( 'N' | 'n' ) ( 'G' | 'g' ) + // InternalErDslLexer.g:46:8: ( ( 'S' | 's' ) ( 'T' | 't' ) ( 'R' | 'r' ) ( 'I' | 'i' ) ( 'N' | 'n' ) ( 'G' | 'g' ) ) + // InternalErDslLexer.g:46:10: ( 'S' | 's' ) ( 'T' | 't' ) ( 'R' | 'r' ) ( 'I' | 'i' ) ( 'N' | 'n' ) ( 'G' | 'g' ) { if ( input.LA(1)=='S'||input.LA(1)=='s' ) { input.consume(); @@ -1855,8 +1938,8 @@ public final void mLeftParenthesisDigitZeroColonDigitOneRightParenthesis() throw try { int _type = LeftParenthesisDigitZeroColonDigitOneRightParenthesis; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:46:55: ( '(' '0' ':' '1' ')' ) - // InternalErDslLexer.g:46:57: '(' '0' ':' '1' ')' + // InternalErDslLexer.g:48:55: ( '(' '0' ':' '1' ')' ) + // InternalErDslLexer.g:48:57: '(' '0' ':' '1' ')' { match('('); match('0'); @@ -1879,8 +1962,8 @@ public final void mN() throws RecognitionException { try { int _type = N; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:48:3: ( '(' '0' ':' ( 'N' | 'n' ) ')' ) - // InternalErDslLexer.g:48:5: '(' '0' ':' ( 'N' | 'n' ) ')' + // InternalErDslLexer.g:50:3: ( '(' '0' ':' ( 'N' | 'n' ) ')' ) + // InternalErDslLexer.g:50:5: '(' '0' ':' ( 'N' | 'n' ) ')' { match('('); match('0'); @@ -1911,8 +1994,8 @@ public final void mLeftParenthesisDigitOneColonDigitOneRightParenthesis() throws try { int _type = LeftParenthesisDigitOneColonDigitOneRightParenthesis; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:50:54: ( '(' '1' ':' '1' ')' ) - // InternalErDslLexer.g:50:56: '(' '1' ':' '1' ')' + // InternalErDslLexer.g:52:54: ( '(' '1' ':' '1' ')' ) + // InternalErDslLexer.g:52:56: '(' '1' ':' '1' ')' { match('('); match('1'); @@ -1935,8 +2018,8 @@ public final void mN_1() throws RecognitionException { try { int _type = N_1; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:52:5: ( '(' '1' ':' ( 'N' | 'n' ) ')' ) - // InternalErDslLexer.g:52:7: '(' '1' ':' ( 'N' | 'n' ) ')' + // InternalErDslLexer.g:54:5: ( '(' '1' ':' ( 'N' | 'n' ) ')' ) + // InternalErDslLexer.g:54:7: '(' '1' ':' ( 'N' | 'n' ) ')' { match('('); match('1'); @@ -1967,8 +2050,8 @@ public final void mMySQL() throws RecognitionException { try { int _type = MySQL; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:54:7: ( ( 'M' | 'm' ) ( 'Y' | 'y' ) ( 'S' | 's' ) ( 'Q' | 'q' ) ( 'L' | 'l' ) ) - // InternalErDslLexer.g:54:9: ( 'M' | 'm' ) ( 'Y' | 'y' ) ( 'S' | 's' ) ( 'Q' | 'q' ) ( 'L' | 'l' ) + // InternalErDslLexer.g:56:7: ( ( 'M' | 'm' ) ( 'Y' | 'y' ) ( 'S' | 's' ) ( 'Q' | 'q' ) ( 'L' | 'l' ) ) + // InternalErDslLexer.g:56:9: ( 'M' | 'm' ) ( 'Y' | 'y' ) ( 'S' | 's' ) ( 'Q' | 'q' ) ( 'L' | 'l' ) { if ( input.LA(1)=='M'||input.LA(1)=='m' ) { input.consume(); @@ -2031,8 +2114,8 @@ public final void mMoney() throws RecognitionException { try { int _type = Money; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:56:7: ( ( 'M' | 'm' ) ( 'O' | 'o' ) ( 'N' | 'n' ) ( 'E' | 'e' ) ( 'Y' | 'y' ) ) - // InternalErDslLexer.g:56:9: ( 'M' | 'm' ) ( 'O' | 'o' ) ( 'N' | 'n' ) ( 'E' | 'e' ) ( 'Y' | 'y' ) + // InternalErDslLexer.g:58:7: ( ( 'M' | 'm' ) ( 'O' | 'o' ) ( 'N' | 'n' ) ( 'E' | 'e' ) ( 'Y' | 'y' ) ) + // InternalErDslLexer.g:58:9: ( 'M' | 'm' ) ( 'O' | 'o' ) ( 'N' | 'n' ) ( 'E' | 'e' ) ( 'Y' | 'y' ) { if ( input.LA(1)=='M'||input.LA(1)=='m' ) { input.consume(); @@ -2095,8 +2178,8 @@ public final void mFile() throws RecognitionException { try { int _type = File; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:58:6: ( ( 'F' | 'f' ) ( 'I' | 'i' ) ( 'L' | 'l' ) ( 'E' | 'e' ) ) - // InternalErDslLexer.g:58:8: ( 'F' | 'f' ) ( 'I' | 'i' ) ( 'L' | 'l' ) ( 'E' | 'e' ) + // InternalErDslLexer.g:60:6: ( ( 'F' | 'f' ) ( 'I' | 'i' ) ( 'L' | 'l' ) ( 'E' | 'e' ) ) + // InternalErDslLexer.g:60:8: ( 'F' | 'f' ) ( 'I' | 'i' ) ( 'L' | 'l' ) ( 'E' | 'e' ) { if ( input.LA(1)=='F'||input.LA(1)=='f' ) { input.consume(); @@ -2150,8 +2233,8 @@ public final void mAll() throws RecognitionException { try { int _type = All; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:60:5: ( ( 'A' | 'a' ) ( 'L' | 'l' ) ( 'L' | 'l' ) ) - // InternalErDslLexer.g:60:7: ( 'A' | 'a' ) ( 'L' | 'l' ) ( 'L' | 'l' ) + // InternalErDslLexer.g:62:5: ( ( 'A' | 'a' ) ( 'L' | 'l' ) ( 'L' | 'l' ) ) + // InternalErDslLexer.g:62:7: ( 'A' | 'a' ) ( 'L' | 'l' ) ( 'L' | 'l' ) { if ( input.LA(1)=='A'||input.LA(1)=='a' ) { input.consume(); @@ -2196,8 +2279,8 @@ public final void mInt() throws RecognitionException { try { int _type = Int; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:62:5: ( ( 'I' | 'i' ) ( 'N' | 'n' ) ( 'T' | 't' ) ) - // InternalErDslLexer.g:62:7: ( 'I' | 'i' ) ( 'N' | 'n' ) ( 'T' | 't' ) + // InternalErDslLexer.g:64:5: ( ( 'I' | 'i' ) ( 'N' | 'n' ) ( 'T' | 't' ) ) + // InternalErDslLexer.g:64:7: ( 'I' | 'i' ) ( 'N' | 'n' ) ( 'T' | 't' ) { if ( input.LA(1)=='I'||input.LA(1)=='i' ) { input.consume(); @@ -2242,8 +2325,8 @@ public final void mIs() throws RecognitionException { try { int _type = Is; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:64:4: ( ( 'I' | 'i' ) ( 'S' | 's' ) ) - // InternalErDslLexer.g:64:6: ( 'I' | 'i' ) ( 'S' | 's' ) + // InternalErDslLexer.g:66:4: ( ( 'I' | 'i' ) ( 'S' | 's' ) ) + // InternalErDslLexer.g:66:6: ( 'I' | 'i' ) ( 'S' | 's' ) { if ( input.LA(1)=='I'||input.LA(1)=='i' ) { input.consume(); @@ -2279,8 +2362,8 @@ public final void mComma() throws RecognitionException { try { int _type = Comma; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:66:7: ( ',' ) - // InternalErDslLexer.g:66:9: ',' + // InternalErDslLexer.g:68:7: ( ',' ) + // InternalErDslLexer.g:68:9: ',' { match(','); @@ -2299,8 +2382,8 @@ public final void mSemicolon() throws RecognitionException { try { int _type = Semicolon; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:68:11: ( ';' ) - // InternalErDslLexer.g:68:13: ';' + // InternalErDslLexer.g:70:11: ( ';' ) + // InternalErDslLexer.g:70:13: ';' { match(';'); @@ -2319,8 +2402,8 @@ public final void mLeftSquareBracket() throws RecognitionException { try { int _type = LeftSquareBracket; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:70:19: ( '[' ) - // InternalErDslLexer.g:70:21: '[' + // InternalErDslLexer.g:72:19: ( '[' ) + // InternalErDslLexer.g:72:21: '[' { match('['); @@ -2339,8 +2422,8 @@ public final void mRightSquareBracket() throws RecognitionException { try { int _type = RightSquareBracket; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:72:20: ( ']' ) - // InternalErDslLexer.g:72:22: ']' + // InternalErDslLexer.g:74:20: ( ']' ) + // InternalErDslLexer.g:74:22: ']' { match(']'); @@ -2359,8 +2442,8 @@ public final void mLeftCurlyBracket() throws RecognitionException { try { int _type = LeftCurlyBracket; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:74:18: ( '{' ) - // InternalErDslLexer.g:74:20: '{' + // InternalErDslLexer.g:76:18: ( '{' ) + // InternalErDslLexer.g:76:20: '{' { match('{'); @@ -2379,8 +2462,8 @@ public final void mRightCurlyBracket() throws RecognitionException { try { int _type = RightCurlyBracket; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:76:19: ( '}' ) - // InternalErDslLexer.g:76:21: '}' + // InternalErDslLexer.g:78:19: ( '}' ) + // InternalErDslLexer.g:78:21: '}' { match('}'); @@ -2399,10 +2482,10 @@ public final void mRULE_ID() throws RecognitionException { try { int _type = RULE_ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:78:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* ) - // InternalErDslLexer.g:78:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* + // InternalErDslLexer.g:80:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* ) + // InternalErDslLexer.g:80:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* { - // InternalErDslLexer.g:78:11: ( '^' )? + // InternalErDslLexer.g:80:11: ( '^' )? int alt1=2; int LA1_0 = input.LA(1); @@ -2411,7 +2494,7 @@ public final void mRULE_ID() throws RecognitionException { } switch (alt1) { case 1 : - // InternalErDslLexer.g:78:11: '^' + // InternalErDslLexer.g:80:11: '^' { match('^'); @@ -2429,7 +2512,7 @@ public final void mRULE_ID() throws RecognitionException { recover(mse); throw mse;} - // InternalErDslLexer.g:78:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* + // InternalErDslLexer.g:80:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* loop2: do { int alt2=2; @@ -2478,10 +2561,10 @@ public final void mRULE_INT() throws RecognitionException { try { int _type = RULE_INT; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:80:10: ( ( '0' .. '9' )+ ) - // InternalErDslLexer.g:80:12: ( '0' .. '9' )+ + // InternalErDslLexer.g:82:10: ( ( '0' .. '9' )+ ) + // InternalErDslLexer.g:82:12: ( '0' .. '9' )+ { - // InternalErDslLexer.g:80:12: ( '0' .. '9' )+ + // InternalErDslLexer.g:82:12: ( '0' .. '9' )+ int cnt3=0; loop3: do { @@ -2495,7 +2578,7 @@ public final void mRULE_INT() throws RecognitionException { switch (alt3) { case 1 : - // InternalErDslLexer.g:80:13: '0' .. '9' + // InternalErDslLexer.g:82:13: '0' .. '9' { matchRange('0','9'); @@ -2527,10 +2610,10 @@ public final void mRULE_STRING() throws RecognitionException { try { int _type = RULE_STRING; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:82:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) ) - // InternalErDslLexer.g:82:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) + // InternalErDslLexer.g:84:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) ) + // InternalErDslLexer.g:84:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) { - // InternalErDslLexer.g:82:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) + // InternalErDslLexer.g:84:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) int alt6=2; int LA6_0 = input.LA(1); @@ -2548,10 +2631,10 @@ else if ( (LA6_0=='\'') ) { } switch (alt6) { case 1 : - // InternalErDslLexer.g:82:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' + // InternalErDslLexer.g:84:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' { match('\"'); - // InternalErDslLexer.g:82:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* + // InternalErDslLexer.g:84:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* loop4: do { int alt4=3; @@ -2567,7 +2650,7 @@ else if ( ((LA4_0>='\u0000' && LA4_0<='!')||(LA4_0>='#' && LA4_0<='[')||(LA4_0>= switch (alt4) { case 1 : - // InternalErDslLexer.g:82:21: '\\\\' . + // InternalErDslLexer.g:84:21: '\\\\' . { match('\\'); matchAny(); @@ -2575,7 +2658,7 @@ else if ( ((LA4_0>='\u0000' && LA4_0<='!')||(LA4_0>='#' && LA4_0<='[')||(LA4_0>= } break; case 2 : - // InternalErDslLexer.g:82:28: ~ ( ( '\\\\' | '\"' ) ) + // InternalErDslLexer.g:84:28: ~ ( ( '\\\\' | '\"' ) ) { if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { input.consume(); @@ -2600,10 +2683,10 @@ else if ( ((LA4_0>='\u0000' && LA4_0<='!')||(LA4_0>='#' && LA4_0<='[')||(LA4_0>= } break; case 2 : - // InternalErDslLexer.g:82:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' + // InternalErDslLexer.g:84:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' { match('\''); - // InternalErDslLexer.g:82:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* + // InternalErDslLexer.g:84:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* loop5: do { int alt5=3; @@ -2619,7 +2702,7 @@ else if ( ((LA5_0>='\u0000' && LA5_0<='&')||(LA5_0>='(' && LA5_0<='[')||(LA5_0>= switch (alt5) { case 1 : - // InternalErDslLexer.g:82:54: '\\\\' . + // InternalErDslLexer.g:84:54: '\\\\' . { match('\\'); matchAny(); @@ -2627,7 +2710,7 @@ else if ( ((LA5_0>='\u0000' && LA5_0<='&')||(LA5_0>='(' && LA5_0<='[')||(LA5_0>= } break; case 2 : - // InternalErDslLexer.g:82:61: ~ ( ( '\\\\' | '\\'' ) ) + // InternalErDslLexer.g:84:61: ~ ( ( '\\\\' | '\\'' ) ) { if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { input.consume(); @@ -2670,12 +2753,12 @@ public final void mRULE_ML_COMMENT() throws RecognitionException { try { int _type = RULE_ML_COMMENT; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:84:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) - // InternalErDslLexer.g:84:19: '/*' ( options {greedy=false; } : . )* '*/' + // InternalErDslLexer.g:86:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) + // InternalErDslLexer.g:86:19: '/*' ( options {greedy=false; } : . )* '*/' { match("/*"); - // InternalErDslLexer.g:84:24: ( options {greedy=false; } : . )* + // InternalErDslLexer.g:86:24: ( options {greedy=false; } : . )* loop7: do { int alt7=2; @@ -2700,7 +2783,7 @@ else if ( ((LA7_0>='\u0000' && LA7_0<=')')||(LA7_0>='+' && LA7_0<='\uFFFF')) ) { switch (alt7) { case 1 : - // InternalErDslLexer.g:84:52: . + // InternalErDslLexer.g:86:52: . { matchAny(); @@ -2730,12 +2813,12 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { try { int _type = RULE_SL_COMMENT; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:86:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) - // InternalErDslLexer.g:86:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? + // InternalErDslLexer.g:88:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) + // InternalErDslLexer.g:88:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? { match("//"); - // InternalErDslLexer.g:86:24: (~ ( ( '\\n' | '\\r' ) ) )* + // InternalErDslLexer.g:88:24: (~ ( ( '\\n' | '\\r' ) ) )* loop8: do { int alt8=2; @@ -2748,7 +2831,7 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { switch (alt8) { case 1 : - // InternalErDslLexer.g:86:24: ~ ( ( '\\n' | '\\r' ) ) + // InternalErDslLexer.g:88: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(); @@ -2768,7 +2851,7 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { } } while (true); - // InternalErDslLexer.g:86:40: ( ( '\\r' )? '\\n' )? + // InternalErDslLexer.g:88:40: ( ( '\\r' )? '\\n' )? int alt10=2; int LA10_0 = input.LA(1); @@ -2777,9 +2860,9 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { } switch (alt10) { case 1 : - // InternalErDslLexer.g:86:41: ( '\\r' )? '\\n' + // InternalErDslLexer.g:88:41: ( '\\r' )? '\\n' { - // InternalErDslLexer.g:86:41: ( '\\r' )? + // InternalErDslLexer.g:88:41: ( '\\r' )? int alt9=2; int LA9_0 = input.LA(1); @@ -2788,7 +2871,7 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { } switch (alt9) { case 1 : - // InternalErDslLexer.g:86:41: '\\r' + // InternalErDslLexer.g:88:41: '\\r' { match('\r'); @@ -2820,10 +2903,10 @@ public final void mRULE_WS() throws RecognitionException { try { int _type = RULE_WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:88:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) - // InternalErDslLexer.g:88:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + // InternalErDslLexer.g:90:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) + // InternalErDslLexer.g:90:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ { - // InternalErDslLexer.g:88:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + // InternalErDslLexer.g:90:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ int cnt11=0; loop11: do { @@ -2877,8 +2960,8 @@ public final void mRULE_ANY_OTHER() throws RecognitionException { try { int _type = RULE_ANY_OTHER; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:90:16: ( . ) - // InternalErDslLexer.g:90:18: . + // InternalErDslLexer.g:92:16: ( . ) + // InternalErDslLexer.g:92:18: . { matchAny(); @@ -2893,8 +2976,8 @@ public final void mRULE_ANY_OTHER() throws RecognitionException { // $ANTLR end "RULE_ANY_OTHER" public void mTokens() throws RecognitionException { - // InternalErDslLexer.g:1:8: ( PartialOverlapped | PartialDisjoint | TotalOverlapped | TotalDisjoint | LogicalSchema | Relationships | IsIdentifier | PostgreSQL | Entities | Generate | Datetime | Boolean | Relates | Domain | Double | String | LeftParenthesisDigitZeroColonDigitOneRightParenthesis | N | LeftParenthesisDigitOneColonDigitOneRightParenthesis | N_1 | MySQL | Money | File | All | Int | Is | Comma | Semicolon | LeftSquareBracket | RightSquareBracket | LeftCurlyBracket | RightCurlyBracket | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER ) - int alt12=39; + // InternalErDslLexer.g:1:8: ( PartialOverlapped | PartialDisjoint | TotalOverlapped | TotalDisjoint | LogicalSchema | Relationships | IsIdentifier | PostgreSQL | Entities | Generate | Datetime | Diagram | Boolean | Relates | Domain | Double | String | LeftParenthesisDigitZeroColonDigitOneRightParenthesis | N | LeftParenthesisDigitOneColonDigitOneRightParenthesis | N_1 | MySQL | Money | File | All | Int | Is | Comma | Semicolon | LeftSquareBracket | RightSquareBracket | LeftCurlyBracket | RightCurlyBracket | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER ) + int alt12=40; alt12 = dfa12.predict(input); switch (alt12) { case 1 : @@ -2975,196 +3058,203 @@ public void mTokens() throws RecognitionException { } break; case 12 : - // InternalErDslLexer.g:1:153: Boolean + // InternalErDslLexer.g:1:153: Diagram { - mBoolean(); + mDiagram(); } break; case 13 : - // InternalErDslLexer.g:1:161: Relates + // InternalErDslLexer.g:1:161: Boolean { - mRelates(); + mBoolean(); } break; case 14 : - // InternalErDslLexer.g:1:169: Domain + // InternalErDslLexer.g:1:169: Relates { - mDomain(); + mRelates(); } break; case 15 : - // InternalErDslLexer.g:1:176: Double + // InternalErDslLexer.g:1:177: Domain { - mDouble(); + mDomain(); } break; case 16 : - // InternalErDslLexer.g:1:183: String + // InternalErDslLexer.g:1:184: Double { - mString(); + mDouble(); } break; case 17 : - // InternalErDslLexer.g:1:190: LeftParenthesisDigitZeroColonDigitOneRightParenthesis + // InternalErDslLexer.g:1:191: String { - mLeftParenthesisDigitZeroColonDigitOneRightParenthesis(); + mString(); } break; case 18 : - // InternalErDslLexer.g:1:244: N + // InternalErDslLexer.g:1:198: LeftParenthesisDigitZeroColonDigitOneRightParenthesis { - mN(); + mLeftParenthesisDigitZeroColonDigitOneRightParenthesis(); } break; case 19 : - // InternalErDslLexer.g:1:246: LeftParenthesisDigitOneColonDigitOneRightParenthesis + // InternalErDslLexer.g:1:252: N { - mLeftParenthesisDigitOneColonDigitOneRightParenthesis(); + mN(); } break; case 20 : - // InternalErDslLexer.g:1:299: N_1 + // InternalErDslLexer.g:1:254: LeftParenthesisDigitOneColonDigitOneRightParenthesis { - mN_1(); + mLeftParenthesisDigitOneColonDigitOneRightParenthesis(); } break; case 21 : - // InternalErDslLexer.g:1:303: MySQL + // InternalErDslLexer.g:1:307: N_1 { - mMySQL(); + mN_1(); } break; case 22 : - // InternalErDslLexer.g:1:309: Money + // InternalErDslLexer.g:1:311: MySQL { - mMoney(); + mMySQL(); } break; case 23 : - // InternalErDslLexer.g:1:315: File + // InternalErDslLexer.g:1:317: Money { - mFile(); + mMoney(); } break; case 24 : - // InternalErDslLexer.g:1:320: All + // InternalErDslLexer.g:1:323: File { - mAll(); + mFile(); } break; case 25 : - // InternalErDslLexer.g:1:324: Int + // InternalErDslLexer.g:1:328: All { - mInt(); + mAll(); } break; case 26 : - // InternalErDslLexer.g:1:328: Is + // InternalErDslLexer.g:1:332: Int { - mIs(); + mInt(); } break; case 27 : - // InternalErDslLexer.g:1:331: Comma + // InternalErDslLexer.g:1:336: Is { - mComma(); + mIs(); } break; case 28 : - // InternalErDslLexer.g:1:337: Semicolon + // InternalErDslLexer.g:1:339: Comma { - mSemicolon(); + mComma(); } break; case 29 : - // InternalErDslLexer.g:1:347: LeftSquareBracket + // InternalErDslLexer.g:1:345: Semicolon { - mLeftSquareBracket(); + mSemicolon(); } break; case 30 : - // InternalErDslLexer.g:1:365: RightSquareBracket + // InternalErDslLexer.g:1:355: LeftSquareBracket { - mRightSquareBracket(); + mLeftSquareBracket(); } break; case 31 : - // InternalErDslLexer.g:1:384: LeftCurlyBracket + // InternalErDslLexer.g:1:373: RightSquareBracket { - mLeftCurlyBracket(); + mRightSquareBracket(); } break; case 32 : - // InternalErDslLexer.g:1:401: RightCurlyBracket + // InternalErDslLexer.g:1:392: LeftCurlyBracket { - mRightCurlyBracket(); + mLeftCurlyBracket(); } break; case 33 : - // InternalErDslLexer.g:1:419: RULE_ID + // InternalErDslLexer.g:1:409: RightCurlyBracket { - mRULE_ID(); + mRightCurlyBracket(); } break; case 34 : - // InternalErDslLexer.g:1:427: RULE_INT + // InternalErDslLexer.g:1:427: RULE_ID { - mRULE_INT(); + mRULE_ID(); } break; case 35 : - // InternalErDslLexer.g:1:436: RULE_STRING + // InternalErDslLexer.g:1:435: RULE_INT { - mRULE_STRING(); + mRULE_INT(); } break; case 36 : - // InternalErDslLexer.g:1:448: RULE_ML_COMMENT + // InternalErDslLexer.g:1:444: RULE_STRING { - mRULE_ML_COMMENT(); + mRULE_STRING(); } break; case 37 : - // InternalErDslLexer.g:1:464: RULE_SL_COMMENT + // InternalErDslLexer.g:1:456: RULE_ML_COMMENT { - mRULE_SL_COMMENT(); + mRULE_ML_COMMENT(); } break; case 38 : - // InternalErDslLexer.g:1:480: RULE_WS + // InternalErDslLexer.g:1:472: RULE_SL_COMMENT { - mRULE_WS(); + mRULE_SL_COMMENT(); } break; case 39 : - // InternalErDslLexer.g:1:488: RULE_ANY_OTHER + // InternalErDslLexer.g:1:488: RULE_WS + { + mRULE_WS(); + + } + break; + case 40 : + // InternalErDslLexer.g:1:496: RULE_ANY_OTHER { mRULE_ANY_OTHER(); @@ -3178,17 +3268,17 @@ public void mTokens() throws RecognitionException { protected DFA12 dfa12 = new DFA12(this); static final String DFA12_eotS = - "\1\uffff\12\37\1\34\3\37\6\uffff\1\34\2\uffff\3\34\2\uffff\2\37\1\uffff\3\37\1\102\7\37\2\uffff\4\37\13\uffff\6\37\1\uffff\1\127\7\37\2\uffff\3\37\1\146\6\37\1\uffff\7\37\4\uffff\2\37\1\166\1\uffff\15\37\1\u0085\1\u0086\1\uffff\2\37\1\uffff\7\37\1\u0092\1\u0093\1\37\1\u0095\2\uffff\2\37\2\uffff\2\37\1\u009a\4\37\2\uffff\1\u009f\2\uffff\3\37\1\uffff\1\37\1\u00a6\1\u00a7\1\u00a8\3\uffff\4\37\3\uffff\1\u00ad\3\37\1\uffff\5\37\1\u00b6\1\u00b7\1\u00b8\3\uffff"; + "\1\uffff\12\37\1\34\3\37\6\uffff\1\34\2\uffff\3\34\2\uffff\2\37\1\uffff\3\37\1\103\10\37\2\uffff\4\37\13\uffff\6\37\1\uffff\1\131\10\37\2\uffff\3\37\1\151\6\37\1\uffff\10\37\4\uffff\2\37\1\172\1\uffff\16\37\1\u008a\1\u008b\1\uffff\2\37\1\uffff\10\37\1\u0098\1\u0099\1\37\1\u009b\2\uffff\2\37\2\uffff\2\37\1\u00a0\4\37\1\u00a5\2\uffff\1\u00a6\2\uffff\3\37\1\uffff\1\37\1\u00ad\1\u00ae\1\u00af\4\uffff\4\37\3\uffff\1\u00b4\3\37\1\uffff\5\37\1\u00bd\1\u00be\1\u00bf\3\uffff"; static final String DFA12_eofS = - "\u00b9\uffff"; + "\u00c0\uffff"; static final String DFA12_minS = - "\1\0\1\101\2\117\1\105\2\116\1\105\1\101\1\117\1\124\1\60\1\117\1\111\1\114\6\uffff\1\101\2\uffff\2\0\1\52\2\uffff\1\122\1\123\1\uffff\1\124\1\107\1\114\1\60\2\124\1\116\1\124\1\115\1\117\1\122\2\72\1\123\1\116\2\114\13\uffff\2\124\1\101\1\111\1\101\1\104\1\uffff\1\60\1\111\2\105\1\101\1\102\1\114\1\111\2\61\1\121\2\105\1\60\1\111\1\107\1\114\1\103\1\124\1\105\1\uffff\1\124\1\122\1\124\1\111\1\114\1\105\1\116\4\uffff\1\114\1\131\1\60\1\uffff\1\101\1\122\1\57\1\101\1\105\1\116\1\111\1\101\1\111\1\116\1\105\1\101\1\107\2\60\1\uffff\1\114\1\105\1\104\1\114\1\117\1\123\1\124\1\105\1\124\1\115\2\60\1\116\1\60\2\uffff\1\57\1\123\2\uffff\1\123\1\116\1\60\1\111\1\123\2\105\2\uffff\1\60\1\uffff\1\104\1\121\1\103\1\123\1\uffff\1\106\3\60\3\uffff\1\114\2\110\1\111\3\uffff\1\60\1\105\1\111\1\105\1\uffff\1\115\1\120\1\122\1\101\1\123\3\60\3\uffff"; + "\1\0\1\101\2\117\1\105\2\116\1\105\1\101\1\117\1\124\1\60\1\117\1\111\1\114\6\uffff\1\101\2\uffff\2\0\1\52\2\uffff\1\122\1\123\1\uffff\1\124\1\107\1\114\1\60\2\124\1\116\1\124\1\101\1\115\1\117\1\122\2\72\1\123\1\116\2\114\13\uffff\2\124\1\101\1\111\1\101\1\104\1\uffff\1\60\1\111\2\105\1\107\1\101\1\102\1\114\1\111\2\61\1\121\2\105\1\60\1\111\1\107\1\114\1\103\1\124\1\105\1\uffff\1\124\1\122\1\124\1\122\1\111\1\114\1\105\1\116\4\uffff\1\114\1\131\1\60\1\uffff\1\101\1\122\1\57\1\101\1\105\1\116\1\111\1\101\1\111\1\101\1\116\1\105\1\101\1\107\2\60\1\uffff\1\114\1\105\1\104\1\114\1\117\1\123\1\124\1\105\1\124\2\115\2\60\1\116\1\60\2\uffff\1\57\1\123\2\uffff\1\123\1\116\1\60\1\111\1\123\2\105\1\60\2\uffff\1\60\1\uffff\1\104\1\121\1\103\1\123\1\uffff\1\106\3\60\4\uffff\1\114\2\110\1\111\3\uffff\1\60\1\105\1\111\1\105\1\uffff\1\115\1\120\1\122\1\101\1\123\3\60\3\uffff"; static final String DFA12_maxS = - "\1\uffff\3\157\1\145\1\163\1\156\1\145\2\157\1\164\1\61\1\171\1\151\1\154\6\uffff\1\172\2\uffff\2\uffff\1\57\2\uffff\1\162\1\163\1\uffff\1\164\1\147\1\154\1\172\2\164\1\156\1\164\1\165\1\157\1\162\2\72\1\163\1\156\2\154\13\uffff\2\164\1\141\1\151\1\141\1\144\1\uffff\1\172\1\151\2\145\1\141\1\142\1\154\1\151\2\156\1\161\2\145\1\172\1\151\1\147\1\154\1\143\1\164\1\145\1\uffff\1\164\1\162\1\164\1\151\1\154\1\145\1\156\4\uffff\1\154\1\171\1\172\1\uffff\1\141\1\162\1\57\1\141\1\151\1\156\1\151\1\141\1\151\1\156\1\145\1\141\1\147\2\172\1\uffff\1\154\1\145\1\157\1\154\1\157\1\163\1\164\1\145\1\164\1\155\2\172\1\156\1\172\2\uffff\1\57\1\163\2\uffff\1\163\1\156\1\172\1\151\1\163\2\145\2\uffff\1\172\1\uffff\1\157\1\161\1\143\1\163\1\uffff\1\146\3\172\3\uffff\1\154\2\150\1\151\3\uffff\1\172\1\145\1\151\1\145\1\uffff\1\155\1\160\1\162\1\141\1\163\3\172\3\uffff"; + "\1\uffff\3\157\1\145\1\163\1\156\1\145\2\157\1\164\1\61\1\171\1\151\1\154\6\uffff\1\172\2\uffff\2\uffff\1\57\2\uffff\1\162\1\163\1\uffff\1\164\1\147\1\154\1\172\2\164\1\156\1\164\1\141\1\165\1\157\1\162\2\72\1\163\1\156\2\154\13\uffff\2\164\1\141\1\151\1\141\1\144\1\uffff\1\172\1\151\2\145\1\147\1\141\1\142\1\154\1\151\2\156\1\161\2\145\1\172\1\151\1\147\1\154\1\143\1\164\1\145\1\uffff\1\164\1\162\1\164\1\162\1\151\1\154\1\145\1\156\4\uffff\1\154\1\171\1\172\1\uffff\1\141\1\162\1\57\1\141\1\151\1\156\1\151\1\141\1\151\1\141\1\156\1\145\1\141\1\147\2\172\1\uffff\1\154\1\145\1\157\1\154\1\157\1\163\1\164\1\145\1\164\2\155\2\172\1\156\1\172\2\uffff\1\57\1\163\2\uffff\1\163\1\156\1\172\1\151\1\163\2\145\1\172\2\uffff\1\172\1\uffff\1\157\1\161\1\143\1\163\1\uffff\1\146\3\172\4\uffff\1\154\2\150\1\151\3\uffff\1\172\1\145\1\151\1\145\1\uffff\1\155\1\160\1\162\1\141\1\163\3\172\3\uffff"; static final String DFA12_acceptS = - "\17\uffff\1\33\1\34\1\35\1\36\1\37\1\40\1\uffff\1\41\1\42\3\uffff\1\46\1\47\2\uffff\1\41\21\uffff\1\33\1\34\1\35\1\36\1\37\1\40\1\42\1\43\1\44\1\45\1\46\6\uffff\1\32\24\uffff\1\31\7\uffff\1\21\1\22\1\23\1\24\3\uffff\1\30\17\uffff\1\27\16\uffff\1\25\1\26\2\uffff\1\3\1\4\7\uffff\1\16\1\17\1\uffff\1\20\4\uffff\1\15\4\uffff\1\14\1\1\1\2\4\uffff\1\11\1\12\1\13\4\uffff\1\10\10\uffff\1\7\1\5\1\6"; + "\17\uffff\1\34\1\35\1\36\1\37\1\40\1\41\1\uffff\1\42\1\43\3\uffff\1\47\1\50\2\uffff\1\42\22\uffff\1\34\1\35\1\36\1\37\1\40\1\41\1\43\1\44\1\45\1\46\1\47\6\uffff\1\33\25\uffff\1\32\10\uffff\1\22\1\23\1\24\1\25\3\uffff\1\31\20\uffff\1\30\17\uffff\1\26\1\27\2\uffff\1\3\1\4\10\uffff\1\17\1\20\1\uffff\1\21\4\uffff\1\16\4\uffff\1\14\1\15\1\1\1\2\4\uffff\1\11\1\12\1\13\4\uffff\1\10\10\uffff\1\7\1\5\1\6"; static final String DFA12_specialS = - "\1\2\27\uffff\1\1\1\0\u009f\uffff}>"; + "\1\2\27\uffff\1\1\1\0\u00a6\uffff}>"; static final String[] DFA12_transitionS = { "\11\34\2\33\2\34\1\33\22\34\1\33\1\34\1\30\4\34\1\31\1\13\3\34\1\17\2\34\1\32\12\27\1\34\1\20\5\34\1\16\1\11\1\26\1\10\1\6\1\15\1\7\1\26\1\5\2\26\1\3\1\14\2\26\1\1\1\26\1\4\1\12\1\2\6\26\1\21\1\34\1\22\1\25\1\26\1\34\1\16\1\11\1\26\1\10\1\6\1\15\1\7\1\26\1\5\2\26\1\3\1\14\2\26\1\1\1\26\1\4\1\12\1\2\6\26\1\23\1\34\1\24\uff82\34", "\1\35\15\uffff\1\36\21\uffff\1\35\15\uffff\1\36", @@ -3198,13 +3288,13 @@ public void mTokens() throws RecognitionException { "\1\44\4\uffff\1\43\32\uffff\1\44\4\uffff\1\43", "\1\45\37\uffff\1\45", "\1\46\37\uffff\1\46", - "\1\47\15\uffff\1\50\21\uffff\1\47\15\uffff\1\50", - "\1\51\37\uffff\1\51", + "\1\47\7\uffff\1\50\5\uffff\1\51\21\uffff\1\47\7\uffff\1\50\5\uffff\1\51", "\1\52\37\uffff\1\52", - "\1\53\1\54", - "\1\56\11\uffff\1\55\25\uffff\1\56\11\uffff\1\55", - "\1\57\37\uffff\1\57", + "\1\53\37\uffff\1\53", + "\1\54\1\55", + "\1\57\11\uffff\1\56\25\uffff\1\57\11\uffff\1\56", "\1\60\37\uffff\1\60", + "\1\61\37\uffff\1\61", "", "", "", @@ -3214,31 +3304,32 @@ public void mTokens() throws RecognitionException { "\32\37\4\uffff\1\37\1\uffff\32\37", "", "", - "\0\70", - "\0\70", - "\1\71\4\uffff\1\72", + "\0\71", + "\0\71", + "\1\72\4\uffff\1\73", "", "", - "\1\74\37\uffff\1\74", "\1\75\37\uffff\1\75", - "", "\1\76\37\uffff\1\76", + "", "\1\77\37\uffff\1\77", "\1\100\37\uffff\1\100", - "\12\37\7\uffff\10\37\1\101\21\37\4\uffff\1\37\1\uffff\10\37\1\101\21\37", - "\1\103\37\uffff\1\103", + "\1\101\37\uffff\1\101", + "\12\37\7\uffff\10\37\1\102\21\37\4\uffff\1\37\1\uffff\10\37\1\102\21\37", "\1\104\37\uffff\1\104", "\1\105\37\uffff\1\105", "\1\106\37\uffff\1\106", - "\1\107\7\uffff\1\110\27\uffff\1\107\7\uffff\1\110", - "\1\111\37\uffff\1\111", - "\1\112\37\uffff\1\112", - "\1\113", - "\1\114", - "\1\115\37\uffff\1\115", - "\1\116\37\uffff\1\116", + "\1\107\37\uffff\1\107", + "\1\110\37\uffff\1\110", + "\1\111\7\uffff\1\112\27\uffff\1\111\7\uffff\1\112", + "\1\113\37\uffff\1\113", + "\1\114\37\uffff\1\114", + "\1\115", + "\1\116", "\1\117\37\uffff\1\117", "\1\120\37\uffff\1\120", + "\1\121\37\uffff\1\121", + "\1\122\37\uffff\1\122", "", "", "", @@ -3250,125 +3341,131 @@ public void mTokens() throws RecognitionException { "", "", "", - "\1\121\37\uffff\1\121", - "\1\122\37\uffff\1\122", "\1\123\37\uffff\1\123", "\1\124\37\uffff\1\124", "\1\125\37\uffff\1\125", "\1\126\37\uffff\1\126", + "\1\127\37\uffff\1\127", + "\1\130\37\uffff\1\130", "", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "\1\130\37\uffff\1\130", - "\1\131\37\uffff\1\131", "\1\132\37\uffff\1\132", "\1\133\37\uffff\1\133", "\1\134\37\uffff\1\134", "\1\135\37\uffff\1\135", "\1\136\37\uffff\1\136", - "\1\137\34\uffff\1\140\37\uffff\1\140", - "\1\141\34\uffff\1\142\37\uffff\1\142", - "\1\143\37\uffff\1\143", - "\1\144\37\uffff\1\144", - "\1\145\37\uffff\1\145", - "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", + "\1\137\37\uffff\1\137", + "\1\140\37\uffff\1\140", + "\1\141\37\uffff\1\141", + "\1\142\34\uffff\1\143\37\uffff\1\143", + "\1\144\34\uffff\1\145\37\uffff\1\145", + "\1\146\37\uffff\1\146", "\1\147\37\uffff\1\147", "\1\150\37\uffff\1\150", - "\1\151\37\uffff\1\151", + "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "\1\152\37\uffff\1\152", "\1\153\37\uffff\1\153", "\1\154\37\uffff\1\154", - "", "\1\155\37\uffff\1\155", "\1\156\37\uffff\1\156", "\1\157\37\uffff\1\157", + "", "\1\160\37\uffff\1\160", "\1\161\37\uffff\1\161", "\1\162\37\uffff\1\162", "\1\163\37\uffff\1\163", + "\1\164\37\uffff\1\164", + "\1\165\37\uffff\1\165", + "\1\166\37\uffff\1\166", + "\1\167\37\uffff\1\167", "", "", "", "", - "\1\164\37\uffff\1\164", - "\1\165\37\uffff\1\165", + "\1\170\37\uffff\1\170", + "\1\171\37\uffff\1\171", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "", - "\1\167\37\uffff\1\167", - "\1\170\37\uffff\1\170", - "\1\171", - "\1\172\37\uffff\1\172", - "\1\174\3\uffff\1\173\33\uffff\1\174\3\uffff\1\173", - "\1\175\37\uffff\1\175", + "\1\173\37\uffff\1\173", + "\1\174\37\uffff\1\174", + "\1\175", "\1\176\37\uffff\1\176", - "\1\177\37\uffff\1\177", - "\1\u0080\37\uffff\1\u0080", + "\1\u0080\3\uffff\1\177\33\uffff\1\u0080\3\uffff\1\177", "\1\u0081\37\uffff\1\u0081", "\1\u0082\37\uffff\1\u0082", "\1\u0083\37\uffff\1\u0083", "\1\u0084\37\uffff\1\u0084", + "\1\u0085\37\uffff\1\u0085", + "\1\u0086\37\uffff\1\u0086", + "\1\u0087\37\uffff\1\u0087", + "\1\u0088\37\uffff\1\u0088", + "\1\u0089\37\uffff\1\u0089", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "", - "\1\u0087\37\uffff\1\u0087", - "\1\u0088\37\uffff\1\u0088", - "\1\u008a\12\uffff\1\u0089\24\uffff\1\u008a\12\uffff\1\u0089", - "\1\u008b\37\uffff\1\u008b", "\1\u008c\37\uffff\1\u008c", "\1\u008d\37\uffff\1\u008d", - "\1\u008e\37\uffff\1\u008e", - "\1\u008f\37\uffff\1\u008f", + "\1\u008f\12\uffff\1\u008e\24\uffff\1\u008f\12\uffff\1\u008e", "\1\u0090\37\uffff\1\u0090", "\1\u0091\37\uffff\1\u0091", + "\1\u0092\37\uffff\1\u0092", + "\1\u0093\37\uffff\1\u0093", + "\1\u0094\37\uffff\1\u0094", + "\1\u0095\37\uffff\1\u0095", + "\1\u0096\37\uffff\1\u0096", + "\1\u0097\37\uffff\1\u0097", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "\1\u0094\37\uffff\1\u0094", + "\1\u009a\37\uffff\1\u009a", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "", "", - "\1\u0096", - "\1\u0097\37\uffff\1\u0097", - "", - "", - "\1\u0098\37\uffff\1\u0098", - "\1\u0099\37\uffff\1\u0099", - "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "\1\u009b\37\uffff\1\u009b", - "\1\u009c\37\uffff\1\u009c", + "\1\u009c", "\1\u009d\37\uffff\1\u009d", - "\1\u009e\37\uffff\1\u009e", "", "", + "\1\u009e\37\uffff\1\u009e", + "\1\u009f\37\uffff\1\u009f", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "", - "\1\u00a1\12\uffff\1\u00a0\24\uffff\1\u00a1\12\uffff\1\u00a0", + "\1\u00a1\37\uffff\1\u00a1", "\1\u00a2\37\uffff\1\u00a2", "\1\u00a3\37\uffff\1\u00a3", "\1\u00a4\37\uffff\1\u00a4", - "", - "\1\u00a5\37\uffff\1\u00a5", - "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "", "", + "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "", + "\1\u00a8\12\uffff\1\u00a7\24\uffff\1\u00a8\12\uffff\1\u00a7", "\1\u00a9\37\uffff\1\u00a9", "\1\u00aa\37\uffff\1\u00aa", "\1\u00ab\37\uffff\1\u00ab", + "", "\1\u00ac\37\uffff\1\u00ac", + "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", + "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", + "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "", "", "", - "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "\1\u00ae\37\uffff\1\u00ae", - "\1\u00af\37\uffff\1\u00af", - "\1\u00b0\37\uffff\1\u00b0", "", + "\1\u00b0\37\uffff\1\u00b0", "\1\u00b1\37\uffff\1\u00b1", "\1\u00b2\37\uffff\1\u00b2", "\1\u00b3\37\uffff\1\u00b3", - "\1\u00b4\37\uffff\1\u00b4", + "", + "", + "", + "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "\1\u00b5\37\uffff\1\u00b5", + "\1\u00b6\37\uffff\1\u00b6", + "\1\u00b7\37\uffff\1\u00b7", + "", + "\1\u00b8\37\uffff\1\u00b8", + "\1\u00b9\37\uffff\1\u00b9", + "\1\u00ba\37\uffff\1\u00ba", + "\1\u00bb\37\uffff\1\u00bb", + "\1\u00bc\37\uffff\1\u00bc", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", @@ -3407,7 +3504,7 @@ public DFA12(BaseRecognizer recognizer) { this.transition = DFA12_transition; } public String getDescription() { - return "1:1: Tokens : ( PartialOverlapped | PartialDisjoint | TotalOverlapped | TotalDisjoint | LogicalSchema | Relationships | IsIdentifier | PostgreSQL | Entities | Generate | Datetime | Boolean | Relates | Domain | Double | String | LeftParenthesisDigitZeroColonDigitOneRightParenthesis | N | LeftParenthesisDigitOneColonDigitOneRightParenthesis | N_1 | MySQL | Money | File | All | Int | Is | Comma | Semicolon | LeftSquareBracket | RightSquareBracket | LeftCurlyBracket | RightCurlyBracket | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );"; + return "1:1: Tokens : ( PartialOverlapped | PartialDisjoint | TotalOverlapped | TotalDisjoint | LogicalSchema | Relationships | IsIdentifier | PostgreSQL | Entities | Generate | Datetime | Diagram | Boolean | Relates | Domain | Double | String | LeftParenthesisDigitZeroColonDigitOneRightParenthesis | N | LeftParenthesisDigitOneColonDigitOneRightParenthesis | N_1 | MySQL | Money | File | All | Int | Is | Comma | Semicolon | LeftSquareBracket | RightSquareBracket | LeftCurlyBracket | RightCurlyBracket | 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; @@ -3417,7 +3514,7 @@ public int specialStateTransition(int s, IntStream _input) throws NoViableAltExc int LA12_25 = input.LA(1); s = -1; - if ( ((LA12_25>='\u0000' && LA12_25<='\uFFFF')) ) {s = 56;} + if ( ((LA12_25>='\u0000' && LA12_25<='\uFFFF')) ) {s = 57;} else s = 28; @@ -3427,7 +3524,7 @@ public int specialStateTransition(int s, IntStream _input) throws NoViableAltExc int LA12_24 = input.LA(1); s = -1; - if ( ((LA12_24>='\u0000' && LA12_24<='\uFFFF')) ) {s = 56;} + if ( ((LA12_24>='\u0000' && LA12_24<='\uFFFF')) ) {s = 57;} else s = 28; diff --git a/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/lexer/InternalErDslLexer.tokens b/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/lexer/InternalErDslLexer.tokens index 722968a..f36691d 100644 --- a/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/lexer/InternalErDslLexer.tokens +++ b/org.xtext.unipampa.erdsl.ide/src-gen/org/xtext/unipampa/erdsl/ide/contentassist/antlr/lexer/InternalErDslLexer.tokens @@ -1,39 +1,40 @@ -All=27 -Boolean=15 -Comma=30 +All=28 +Boolean=16 +Comma=31 Datetime=14 -Domain=17 -Double=18 +Diagram=15 +Domain=18 +Double=19 Entities=12 -File=26 +File=27 Generate=13 -Int=28 -Is=29 +Int=29 +Is=30 IsIdentifier=10 -LeftCurlyBracket=34 -LeftParenthesisDigitOneColonDigitOneRightParenthesis=22 -LeftParenthesisDigitZeroColonDigitOneRightParenthesis=20 -LeftSquareBracket=32 +LeftCurlyBracket=35 +LeftParenthesisDigitOneColonDigitOneRightParenthesis=23 +LeftParenthesisDigitZeroColonDigitOneRightParenthesis=21 +LeftSquareBracket=33 LogicalSchema=8 -Money=25 -MySQL=24 -N=21 -N_1=23 +Money=26 +MySQL=25 +N=22 +N_1=24 PartialDisjoint=5 PartialOverlapped=4 PostgreSQL=11 -RULE_ANY_OTHER=42 -RULE_ID=36 -RULE_INT=37 -RULE_ML_COMMENT=39 -RULE_SL_COMMENT=40 -RULE_STRING=38 -RULE_WS=41 -Relates=16 +RULE_ANY_OTHER=43 +RULE_ID=37 +RULE_INT=38 +RULE_ML_COMMENT=40 +RULE_SL_COMMENT=41 +RULE_STRING=39 +RULE_WS=42 +Relates=17 Relationships=9 -RightCurlyBracket=35 -RightSquareBracket=33 -Semicolon=31 -String=19 +RightCurlyBracket=36 +RightSquareBracket=34 +Semicolon=32 +String=20 TotalDisjoint=7 TotalOverlapped=6 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 94ecff7a041897ec2a8de5a84f9db10e4bfa3d11..8522fb1ea59c5f510fc7d3f2fc5177a9fa61a3b2 100644 GIT binary patch delta 64 zcmaFO^O}b@z?+#xgn@&DgW>T)wT-;&Ow2%fvp7=#gptMK$OsadypGizOut~Y2h&ls(T%+9Ow2%fvp7=#gptMK$OsadypGizOut~Y2h&OBN9T 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 a98879dfebae4044f65633996890fe6814aa8211..c3482353762e8726b84710c1f596106e92af7b96 100644 GIT binary patch delta 64 zcmaDa_+F4Vz?+#xgn@&DgW>5ywT--In3#d|<~vOHn8A#_Y(5ywT-+EOw2%fa{yB{gmI3=kr5;^S%}RXO#86egXumt FM*wMY6k-4X delta 64 zcmX@ld!Cm!z?+#xgn@&DgW=CE(T%(gOw2%fa{yB{gmI3=kr5;^S%}RXO#86egXumt FM*w}`6&wHn 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 ba6ba8b8ca23ad2cd6a8b8f0e0224b52895891e9..5d2ec0c82ea5612c6cafac53c04be950b8834e40 100644 GIT binary patch delta 359 zcmX}kF-w9`6vpv;fniNJ>gG5mv1O|l=1V+&2=H76>Kz)PO zkhb>rmZk=`*0!D=;@$qg`yB2l9>veEDVYyX`C|A?wRFKnZZX_Owa}X|U4n|#7v!O3 zsy%7C09p|jkM`Hv_ZY3y_EicFNC>_X&IYwd&qdHB-=N(O>9+eS5u~2P@VdK zwxJ!Wl{IZZyVM)B2Q{fmWO@J{LLE6ue$VDikMVxOs{wQhol!qIFXzc+d)mtdR0~7Y lC99D4(q;8g*Qk!%(DfNFJ=P=YjwQ2R?*D4M>6{yL`@fW^Uk?BP delta 359 zcmX}kze_?<7{>AQ1}|Z0UNaZD(vL%7CPbaZirWv8$`+%jK^iVZK_F;CV_SQ}`3LMj zaE)kdZ*OU8aBFSr@geT^{ha6J3@gLR;4LLZ|D2!qU#X^sCNL#`7eu~0;dB<7qrRa9 z$WpCIr;E@M^#PTkWvZTbx&l?Hm$a4D|KCGj%s5@cw$AM-W2KgCKiD?0ZE?GvavDL~ z)F-qH?NQCF(|xE;y+a4kA+-@WZ9vCREGNnD*__i;yr1#v5jux1sNbBG%jB{(Z6$^x o|BAX|g?TGCtOwLBDwa0AGh?O0>Z5urDOkB5)%cMyX3RAH0Cd$}5ywT-;>Ow2%fb3fA?2&0bGkr5;^`4F2qnEu0N52o$d F9RaWW7Igps delta 64 zcmey*_n(h9z?+#xgn@&DgW=CE(T%+IOw2%fb3fA?2&0bGkr5;^`4F2qnEu0N52o$d F9Rb8^7cT$+ 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 2bcfe553ff7daf594afd6d7ab9fb0b90823ceb12..62b95a865f4494704d85da3c9ea9f4b30dbfd819 100644 GIT binary patch delta 64 zcmdlgv{i^Vz?+#xgn@&DgW>5ywT--;%*;S~^Gs$#2;(f<3PzB~5ywT-+rOw2%fa}QH2gz<*Okr5;^*?`R)OlPs#gXuMF FjsT856>tCm delta 64 zcmaFM`<9nCz?+#xgn@&DgW=CE(T%({Ow2%fa}QH2gz<*Okr5;^*?`R)OlPs#gXuMF FjsT*p7AgP$ 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 f86ab6f31a0f454e55671cdeec1030870f5ed972..41ec5f1948981ff5f0bc246c2fc9f0b213f95d8d 100644 GIT binary patch delta 64 zcmX@bdy1Dgz?+#xgn@&DgW>5ywT--4Ow2%fa}|>hgmIF^kr5;^nU~EROuMt$gXvB- FM*wW66lnke delta 64 zcmX@bdy1Dgz?+#xgn@&DgW=CE(T%)WOw2%fa}|>hgmIF^kr5;^nU~EROuMt$gXvB- FM*x8q6(axu diff --git a/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/wizard/.ErDslFileTemplateProvider.xtendbin b/org.xtext.unipampa.erdsl.ui/bin/org/xtext/unipampa/erdsl/ui/wizard/.ErDslFileTemplateProvider.xtendbin index 03c1acd10da8217c9745beb9a6c341d977348745..26644d4058fb3eea8c2749a887276e70d37248ae 100644 GIT binary patch delta 64 zcmaE^_*{`Uz?+#xgn@&DgW>5ywT--DoXkLavl{0L7BJ%?Zx|DZF5ywT--r{LDalvmt*B2beKId?^!%G1)@O984EU*@NjV GQjP$V02QeK delta 64 zcmexr`qh*-z?+#xgn@&DgW=CE(T%){{LDalvmt*B2beKId?^!%G1)@O984EU*@NjV GQjP$pZx&+! 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 bc47f41..b84950b 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 @@ -23,6 +23,7 @@ public void completeERModel_TargetGenerator(EObject model, Assignment assignment // subclasses may override // subclasses may override // subclasses may override + // subclasses may override } public void completeERModel_Domain(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); 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 a98879dfebae4044f65633996890fe6814aa8211..c3482353762e8726b84710c1f596106e92af7b96 100644 GIT binary patch delta 64 zcmaDa_+F4Vz?+#xgn@&DgW>5ywT--In3#d|<~vOHn8A#_Y(5ywT-+EOw2%fa{yB{gmI3=kr5;^S%}RXO#86egXumt FM*wMY6k-4X delta 64 zcmX@ld!Cm!z?+#xgn@&DgW=CE(T%(gOw2%fa{yB{gmI3=kr5;^S%}RXO#86egXumt FM*w}`6&wHn 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 928949163905814c44559b7e23b086288adbb22a..505d0a354ad603038cbff01a597d08276c25b1c4 100644 GIT binary patch delta 64 zcmey*_n(h9z?+#xgn@&DgW>5ywT-;>Ow2%fb3fA?2&0bGkr5;^`4F2qnEu0N52o$d F9RaWW7Igps delta 64 zcmey*_n(h9z?+#xgn@&DgW=CE(T%+IOw2%fb3fA?2&0bGkr5;^`4F2qnEu0N52o$d F9Rb8^7cT$+ 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 2bcfe553ff7daf594afd6d7ab9fb0b90823ceb12..62b95a865f4494704d85da3c9ea9f4b30dbfd819 100644 GIT binary patch delta 64 zcmdlgv{i^Vz?+#xgn@&DgW>5ywT--;%*;S~^Gs$#2;(f<3PzB~5ywT-+rOw2%fa}QH2gz<*Okr5;^*?`R)OlPs#gXuMF FjsT856>tCm delta 64 zcmaFM`<9nCz?+#xgn@&DgW=CE(T%({Ow2%fa}QH2gz<*Okr5;^*?`R)OlPs#gXuMF FjsT*p7AgP$ 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 f86ab6f31a0f454e55671cdeec1030870f5ed972..41ec5f1948981ff5f0bc246c2fc9f0b213f95d8d 100644 GIT binary patch delta 64 zcmX@bdy1Dgz?+#xgn@&DgW>5ywT--4Ow2%fa}|>hgmIF^kr5;^nU~EROuMt$gXvB- FM*wW66lnke delta 64 zcmX@bdy1Dgz?+#xgn@&DgW=CE(T%)WOw2%fa}|>hgmIF^kr5;^nU~EROuMt$gXvB- FM*x8q6(axu diff --git a/org.xtext.unipampa.erdsl.ui/xtend-gen/org/xtext/unipampa/erdsl/ui/wizard/.ErDslFileTemplateProvider.xtendbin b/org.xtext.unipampa.erdsl.ui/xtend-gen/org/xtext/unipampa/erdsl/ui/wizard/.ErDslFileTemplateProvider.xtendbin index 03c1acd10da8217c9745beb9a6c341d977348745..26644d4058fb3eea8c2749a887276e70d37248ae 100644 GIT binary patch delta 64 zcmaE^_*{`Uz?+#xgn@&DgW>5ywT--DoXkLavl{0L7BJ%?Zx|DZF5ywT--r{LDalvmt*B2beKId?^!%G1)@O984EU*@NjV GQjP$V02QeK delta 64 zcmexr`qh*-z?+#xgn@&DgW=CE(T%){{LDalvmt*B2beKId?^!%G1)@O984EU*@NjV GQjP$pZx&+! 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 baa22901914c001babff275b779d87c80ef1c330..fca9f8c830d88f74443ccd55a7eae7dfc5da3ad5 100644 GIT binary patch delta 64 zcmZqRZQ$h%@MdNaVc_84V0f@lZ6mKH6El$BY{}#dVbrrYGJ-@VA7(WN(|=j*!L&V_ FBLF*Y6aoMM delta 64 zcmZqRZQ$h%@MdNaVc_84VED01bR(}O6El$BY{}#dVbrrYGJ-@VA7(WN(|=j*!L&V_ FBLGl@6v6-i 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 ac27aee2aaf91dbc5e4fd6102e577368d9d03eec..7423d590e26a935a5787c9563092c45c01f15e7e 100644 GIT binary patch delta 64 zcmbQpKarm|z?+#xgn@&DgWa GyCVQJ;S)Ci delta 64 zcmbQpKarm|z?+#xgn@&DgW<<6(T%*K%*;S~vnsPb6POXsTEz%rOuoWq4yO6o?ZI>a GyCVQe_Y?O3 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 60d0b8a..e8a7c8a 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 @@ -3,7 +3,7 @@ grammar org.xtext.unipampa.erdsl.ErDsl with org.eclipse.xtext.common.Terminals generate erDsl "http://www.xtext.org/unipampa/erdsl/ErDsl" ERModel: - ('Generate' targetGenerator= ('LogicalSchema' | 'PostgreSQL' | 'MySQL' | 'All') ';')? + ('Generate' targetGenerator= ('LogicalSchema' | 'PostgreSQL' | 'MySQL' | 'Diagram' | 'All') ';')? domain=Domain ';' ('Entities' '{') entities+=Entity+ ('}' ';') ('Relationships' '{') relations+=Relation* ('}' ';'); @@ -18,7 +18,6 @@ Entity: name=ID ('is' generalization=('total/disjoint' | 'total/overlapped' | 'partial/disjoint' | 'partial/overlapped') is=[Entity])? ('{' attributes+=Attribute (',' attributes+=Attribute)* '}')?; -//generalization=('TD' | 'TO' | 'PD' | 'PO') Relation: (name=ID)? ('[' leftEnding=RelationSideLeft 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 f0d496e38398ff3f55ca26c77907cb9593e93d6d..c573a7a5c67d587d1dd2d14a9114695da1f0e788 100644 GIT binary patch delta 1785 zcmZvcS#T6p6o$Fo>7Hq`5wws(imE(VAX+u>pjAdwoW#rnWk{-GEXzV3I?m1HVo%T5 z(}@g-mvoAV><^YUuJjAp{L$Z5)6_UbI-LT(RIP-!?i^G$LA^fl*H$>$}kpVdky4Gg*?ZBYt2hv2Ck=8xuGh?9#n;8S#&(G*02~J=z5u)Dz7Li zKNNHVqHTyGSR9jq=axz`C+I{Dm)sy!|D#WeCR4MUPevXj)Fzw~wWnuQPpvf|Y$udK zLHVvnr`7zS)8kStIs>wBg3g3OqZ@{S8X65{**5paQJuxUjKh~*x@tQnot-G3!`3uq zGXHJCopZH2=ZThib@rT}*mD7!7FJ5}Sw*b9HrkSIcP>m6FNz#z&(y{6CQX+_`#ST) zrO|R{LH;t-*udThx?Ie#Xq{nAGiP8j+|V6_UZ$u2(C*%>O;-TKsErPJ66}@CUd3!% z9lNx@FMGI6R|B;RMPF7xu4nR^Xqz*udM!(oVS}H?#&x`LJxlCbC(+&C-<$2~v*`xF z>7ioLldcc?My79Kdbc{dr)w}fxMV5HyBWBXb3+-b0vC7-^S3fTy~bD3O?Pj9w@tSJ zwuTjVqUZT`(Za)JtMb9JVw;O`Ja+(TR^=r*iNPLLGDy%n`EVEDu518c>?7!|ogMDo z@!_J5dl*}zU+xriuf8z%#WA{{|M?m}pu-R1v1LGddX&o}s)Qkbh!MU_4@X^%GpmoV z?nVraQ{zl}G&$kNcxD7MB%%n+~$rIb}XP{fGU@M4v*EKWk^!7^m3V$`zGhmO;kH1zb0 zJw4!n*zQ~0+g)66-^G2w1sB}+U2)$R5OFu2+Np1ldB@l>M<76&Wp6D3>h9)0G2KR1{fbsOH*>E!WjFA1fLYQCkt7J=MPh>T7PbBC3rcnqi8aw!q1%i%8v;$ED z%PVZ(wJH_6An1f>dunFaiP)S`vHZZ=~>|^jV6R{1h!vtJjqw4oeojBL1#dr%?bkF8L0(!Raf`Mah=KDjKiDO-o}nfXC=yKvpwym`QH{C zI!8KmuE@-5I-2tmi_T}`f_f!BunSl_ingZb7#Ajr7e$@M+|dv+bLT;o$5h$T~`<3c>9t7A?DQ~eMle0v_|db+jN=+L%o_z0_Sz@QinT%|{o zQ+8j6QbA91JFYz%EqTY^Mh8deT?={^?j`6QJm_5u<@#N@ zUeGg$_*Po8Bb4^pcm7^|zzKY(IM!^yhit&+Xj^-y@ljIM$5D3b9^ogl-A`o` zpY5u&&t+*}Bo%OFUnUjs`l}?)m3^JWWo7iuBuBnwN4{%v@OyS7l(YK7B=$#Uw=}u8 zHE~bUKOv8DB+h+XJjojU%n^K)wnJy9kJ2yP`Z(}k8-xEF;~4zkMP_Jc{*Qzg^e1zT e$^T1Q^miPh3I50ALw1bDsYV-UGi{5 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 96e6d6f8e1b6f836c99b66a76769609dbe1ee414..1a28eb16a52a6804bc2278b0997dfa676942d355 100644 GIT binary patch literal 3591 zcmZwIYit}>8OHH>XJ?!lCf)mby^gcCch}miuW_9EZZqDUtC9+p&?2=|5UEy4>gM8x z)*q0K2vJL)&%v=j;Y4V+R)>8d^FszjS2iGY9q^+WW|%y+iYh z4?emu^w9i)`Nh3Q4lWM4i_W79{w)sj>H`nPsE1;TN)=U8XzpAv8=w9Eu1aj~oc&xp z9sR<7uC-mE`Y!)l8D7xX?ON@2Low=y6WJ{Lqlxw?KbeO1rCI6*QGL}8b2(nR($~?U zX!Wz{rl|gtICM15jp`TMaye2PCtF!+{bDQHx_&9YHTa!^StRB9W1r6tpjac{bKHCZCJV6-d!m0nm-N{i;C8`FVhq?9!Wrd zPH>~fa-mS*P5+f=sg314+PXe3=Khnx%5T{BY}ulyPHLpHlQ(^-wJB=6mWFa^Zq!)o z*s_IGr`FC=8*A-o>$)W723oQ5J@=nmXLwW3Np#zFWs~zEJ$ex5BYJl?|Byva!b1C) z#f_ZyHt3USR?O)#g-p!JBBv(Wr=v#B$X2Xe%wujMx}54PW-up#;Q(eRw=ExjrByyPakr+J${G!}d8IYo1RXRma3 z^Dq8nKhV>|SN^>{C%lcx>t>-VRp|Nv-tm9qSb9C)6gfAGVr2pCruh0-Ow7q5*T`Y+ zZ^@{+hWOqPxuuC{7dNp3tuhKFhoe2+3Qlm7IKi#p1UHEjHi+B-oZuG32?IDmh}?Qx zbh=w>!=Ck&P>MzFo)(-p*#gZs7E7bNv|exN8Rwt3H9zdGx%aDMitf%&l}gM#rD~O* z_OYT+LC7qXc#AzIOLZTUMD9us?Gs6~l}uCQp0c0?F?UMLLFAsduT-}2fuFOVuJ!YY z=j~&a9`-TYsnrzCyS&_i|CFAY@i5{2<3nmg-)XMD9B|v@a#m-pMpYo?=0( znDZ1d2a#u$&|biKo|O_x@h;?bByswWqCLqQPxA{_-4{e#7{kRc*gjuF^=?DH#oB0J zpAz#HGSzCNjF67WHJ!zSlE^z8NBd12O%{18WwfhhZo0Q(30W-ij*D0QcN256$UCKB zKV;Xphef4DdsI%D#)Qq58KW-{Rrv?b~_R#|r}kkqSaOCLh*WJSd6$&t}mM zWzl4jf1-@`g)%qYKVb=3Eb_l*LSHs9CyV^k8rriOnk@2PG|*NJG+E^Te9qcF%8&hh z`}oKx-{OjWba)5*mFbZYMGIoJ;o(RnRxF4Wg$hFEFuxS<6_cd~F-a6`&Y``YMBAKc zih^zn`jwdL7IP2<{q1OPx8sEVlu(LA!Hj{^|7t*cvO9M0>2Hhn)cDSwtoQ7IZ=nXa zA*sGPcITaZi>ICvRG>MS0VM8Q`QXqysfvM6}IjMiG_rU%bkLKcgHvnJGS zVonwXKhV(nG&ETh{MbO-ZlKAc;F|sZ_!K|rU32<4|3{{N@E3Y;ZESp;?{)9!uBz=>EMri$^6<@NOLK{y3T}3T~9q_LaHm!3|5uVo_+A&=E75+aL1$7pP1k~oYYxrSd~O!e-`bTESf9|?K0Zg zGB-W6Eg_3V;Vu*Up@}(J6yBquy{4hbqVPTg?Yw~|i^BcmlaqXhx5j2?`40QDLRlev z0RJtWrH1<@QFt&By%7Jm2{c(0E=M0g^{EUwp0azA`!Y|?j`2R35CyT<9_yGP* z4NVq>&)@?Dnt>*Z!ZTA-Q=|sjNt^%hEzabH^S7)|@n6OutHWw|W`imGb{f5qUhf-C t;j3lzzB0NVzG?|uFohRPc+^~<-)IVdt)bi6df#XYFB#~rvEDbD{s*8eieLZ$ literal 165452 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%0D0PE!Td4H&tAb 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

3{GT%c;#&XV2%d&J)4uQGF?6CckzlWy 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 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 f48ee0fe179863f91e74c420d0233fe5a8f274f9..a303f6b7a3bbd99f47b56e9d8c1360bca0d2deed 100644 GIT binary patch literal 4068 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 M@49-PUyXks5C{YsECSSK}AIn zEQkeA5D*)RitXOEub4W#$>`~$W=v`_cJ$=Y(}&NTGQCO1nH7`T zkDoNU1CdJ+FnN@2esQh6J)>ij%6y(WR%%9OCcvSLXw;)w7du-Y@-5x9rCDv+_N;uU zzZk#7vOEE+hd(=8ZE9AZh}irm5{n_xux!3%2Gg+RwZ?>;tq`_!*Oq2YNfCcbPZ4pm zYm2Q~HAURQOlK=o#8utWtTjIIw}w6ux3R9+YMLwJHfK0n86vLgmS*h?iocmb5x1Y! ztC5FByBK$3DBW^zd#(M(fEqP5-R#*k9>*a28`h`+dw4x;LBpYS+B>$-^PZ--(HVaZfVxpfY_QE5LwRpoGl-=H0u*xRG6vrt%NtdChtu2 z;!XI2HEW`?`9Yr3wWTFue(^War%qc_Mb1Qyai~@v(kwFuXJmMM*j`pE7u&a9CO3!F z%Hf;!oy{h-YGLc4Y;1WG^|PI=xU&_iRSO+F6vCFCs9$AEOO!^%-}VH=-%7)kTUw&6 zv-ON${H<+J{7r0Wi9zW(qIx?1rX{AN)2Rc?6`2V>4wOyqn$B(~ml7Om=*miWwiuiy%F`i*gz{ONdCO9R&Q_2gKCUgTEIY*iX8A)RuGqSzPBTrn(v0mW zqL&q0cAd-dXJYm2porFT4nUs~4)7gU-J*+7}gJvq5d_U2pqze^C)sv8A=IQM+=>+rCDovy}-` zYu_Lwwyq5Eqr$bNwQpHcTueFj_8qf|i+N5bZbb8vi}AOzP);7QY%x05uaC`cb+9MA z?O*iQuMbshY3*OGQ@Q1B|8lmol?_vCeivqpmkJg123 zP^0-J4e_^$p}g82twRr^ccVtwoKaM}w#VCHzQ0i;sA5a&u%xJR%iCc|uCtX3Q|oYh zNNlYRVM}*yX&rVnZrqr1>K&fSYuuRUbmHDKdR^KSf7}$QUB`oam!_qq*xDMcQ^(`& z*wtTJ3RP@r9j}g6Zs{Gbj#h4I9Y@u<>@teeJI+kK?6S(Zf5zIv!7L(V}u&>-cV1Y##|@FKHdW?*DE};}^uA>ad9WI>@1x#?Oc# z(y4y`8(JAZS325=<7O-4Hx}^dU3we$8sm*A9^Z(!QjOn?->M*O#79wyhD9Nb_h=)2 zF{8%sEJf41R2VmkKz+n7>^Cq!A{85X8GG9JgZZm?+USt=6ALjM*zO zv~lS~uJ=nPJt!SXv~hW&I%=(qN+*vpOQMatv^L9SxDTKy^l|MXoK!|> zOzLkeWGz{1t&({s^=}B&5~xoE)@qM;(hQvw1oqJd(W?<{(yW+t`h}!3E9xfNq@!Wh znziP6oXmP9kx^Pjqo%AKYlrF+(nKDuVscGpFau?Yody_rNZMU+-?G@TRV*&3C3js~Q&H6VyykxaCT*TT|yz%QNGf^MQ! zoNL5PW>$8nSNxpC3GYx=pIoyRvzP^EXNuF$$Ll!_O&;v$1YweBlSkBZ z6W`%E05pD8KO;{N#tL#Ugyrm{5ydSD{sDQO+ z?cuz^$5`XhrbOzoPOKBi66aXZrnJjqU0GL<4}!)TV;!8nMi$6IPFdpT z1gRy_rd*%zCf+I6=Mc#eQQDL{bxHo#1<|V!ZOVO(SUD@Ntff!co68BWMS0#XVBJ}F zIRE;QXFXc{&A6KNU_CUwhhE2659FPCk)IQfBHGmYb=<@|wSGR4d=aHhP3V#o=z{3g zh&Hur6LvMby0Vr&bx>_icrD7a#OT9%vfhyDrXkTrk2duuHkw_-hQYebm}_h@Zu9u3 z{+SANO%vE)&uwk2WngO_H7=LA=xI28aX%(W?<{+Qqtb`s*@JQ=B9Fv!Uo| zkWmhHn@6A46!$It*${L<%s*|ikzfPZ0PZz|b}L%gSIh>ofgo#Q#;qXUX~%R<5VuAb zM6X7)X(wXRSr?VgiKv@s)BabR4Pt{TGwaj7k8py_GD@57X~zb$A#k?v>bH5c>4VC< zu@USrq+QlS#vR5!k9YbY)(31HXRMpC#n|rAX6)&DfsNC?7y&msOE652X zGbo5&jc7A_rO2qBDZ!3l3D)u}bBt1g`}x*&QrqRlFgOJ`g} zI^{7p(Pj+|OG0y1BigLTf@}txfez(z=#^xK>~MB^F`L8Ypu^QEPS3MD;_hW0n+J4T zfpNcazsEa!nx7LSl0=(5yTDDnvuEcJ$q`Z7>@_|~9`^~NS0mc&I~%e2Y<^`eefA@{ zobXzd=ZylkfGvQtH-J13c(mES8PnK8W<%PaVLSk&S4ZACjbdyuTa378BaSqunO~BF zenGT3*ZA2Iwgk=*B2$alwd`6DNaNWXgp->^aSUeXJgoMwi+5SFIYO*jbPstKzqmoWZVa|3h3X6 zK>FO)Mmbx-Rs#JOa;&+n>w&C5en}wxe~6~{@&sj6H?I>#M4Q_q>?Zo$9zi$J<}M7e zm29O)<bl7ON3$-ghZ%JzEba&sk_)66DEuqO|#Vz_XEUtjw&>&r9P3QL>gcze6$G z#5TccOi_#LvfJ2gAT2}2!^XoN@BGy%oFJ;DPY}Ht(dKUmOXo_zbT$OtM4NwqEp|J* zy)v^te_skG$Sk9@`7al+&1^FqBL#VOdbIf$j4|v^b`PW;nZ_f=BObjv@-8S&V|TN= z5qEXekrp&gkp!o89;Pkm;b&XfRyc$Gk_;{&+6BA|DD~XKK7N+{SgX*)L>e|ABbhd-- z;89M8dNragY;6^>2iY@_Y-243-t7r2Y|nsouZhV zXp63hNh@TXI__kxUV#EqNF(P>HBgT@bw*(Uv?)4jyOnT6#62E!kJXo@38d_MlV+t4w`3+x53HaW&#Ft2SC`#D0OM9?nDaU&m4CZS9b2&=6w zQMoRVULCNVxxiOp_Wk-eCMTWE6ny^>cD`4+u3gorf&M2XP zLOMrC_r6nChn0jhn>`wq)(3vs2zxZ>MzEfWN%XNZJaRoHDk8l^u#VSe$JnvTzF?h+ za8%VYQ*i1$$xea&Vti&iV?2YMV8&9xPF7)>ZRQm^tdFNqXh3ZY?FrlzO zdUb@rZo0G@>y)c6>&sqaZ)tj;rpAL5+839WUSn^1DxuFdHyV$z*V*gB+#tiP4o%n_ z>5dgj_GKZoXK^dC z&Zjx3ZzLoTCjTiwC?F7uCL;v?p-U@6m$?$UHIAKTUu$~bY~}^Tsl^8D1^AW61q~~k zy(?h8altrXJnsqEiH^AF`5rrqaDrYyJbitSeE`^~HpBxsZ-FfUI|FuASTK~?Si;_C z?*kb@(jNA5gu)VOb^?9aa)TU@R`JOCw~(Vr~ShPFNx}V>JY8R*;=#XVI!$9aL1Pm1^~LG5dsl zf>wK_$nM+Yp%nX+eF}CBE@>Yyp2NY={-qY|GxizS`8?w}Ag|s2y(~g$3WYgB>V_ zbXZ9Uxy})~;3w-`PzFi_>)V(_e?`gqHtI&2-N9Fzea=3w>`S*hWJNea6EYB1g97#i z`$E(ErKBL&^BAbZ44f9eWq4JrUmmVh9W)N&meFBBD%iJG7{nDhl3ko5G@yGjBw|s4 zymp5N!i2&Cp^s#Qz{hoIbF#jq>adcKW_O$&me!qq*+@scVCDo$1j~*| zw9OeFxolAp=_P`-p*H)G{aD!-tnCqwT-M2Jrm|m6T+{5gw|$y%*!awoVt0HemHo=_ zf~R6gcP>-17c-$9#t!UwAuiFWut1pn?;xR|Kq#7wG`o{em(~Zm%+)E7Cei;wGFPY6 z0HJ`)RSh9m7UlX}<*I#6ZFa#NjM2X;JA+W%9PCcDuL%O;QfXB&H=+|VFZ8cst&ha+h#VcZevA?uRh~N)cJqc^D6qrZ3 z`Ju5|!kWe$z?V5ZiwoFJc+J*|T|%g?LOF!86bf;KW@?56LfNxP2t9uhmsZ^fSzpB5 z2-a`u5;csH^;?=7X?Eveu0$3bA$!x1or`J6-ZW(A zVj8kH4cWPvChAQ?RzoOxDGfQ8hU|PP4Ji?bs;t+^k_gtva>)Lg8uDWq*k4ma{v?O& zpFu-*iT3%G{cYm)ul_}e>x@^7PjKt)l8=}C|6%`XNpKS2KY$mvgZK&;Tb2?kR;Ywf zzCyW#vK0z(gsK;Z1k#Z!32Am0ToQJyrctt3nj69D8I|bD09if5ZUk#cL?TO796}W( zf;GNCT3vIf)$!Cs*K~nk%@-B15`&$JSc&<%3>>Ue6UhjH3#qT6ezFz@WuQc`HfOMZ z*}r^ooQ1~XC{)?R^L>igewn6&1G$of9&Mw;FA;;^Zi8qejV*Q+2I2&-f7S*C8{jTik_CVa+m z<0G`ub(pc$^qM}j=7LiIy?{4e1@Sl+7dItTq);)TJcV)yWhoTm2vu(i354brCm}Sq zJT9$UB4jO(xe=^eqY`ZmkacU=jbLq$Nc4cJxSc9W1nbed(%PlEe>9y?x=0V}dC>$` z;zcJHR^oY|v|i+^cpMKxsv!g(qP|}8lXWO410{m>RhH>9eSC48g+?xgc2N`EYW139 z`puruPFW8dCyf8$!Cbdy#ws(#45BrHUJeHW1^`dTA)fH~z;c1`HnRSw0|G%~K8}#@ zv`-+tI@0WJWkG43@sd@BFcBybtZRK{z{K0zC_Qp1RB5g7a|=y;;upCP_(;qQnn51u zw2HuF1nd0{>&=jfw>9Db5SYE3su_A?v3FRr2Lnuq35J%|c*N{NEU0y2*X?A(NxU}#J5N`uky_g%pDvdg5 zKqx>~DU$Q_gkZIeNEBBU+scXqB!bn^u%wpLf_m+kPAFXQFOP~q%snDaHX#wL88r7*YVH{{w?wd((A@1+#U)fxB3S#g z%!nD``$O(rlq5DFN6r1S-;A1gPop|8pjBg<-90a{-%K^}*24h3$V^ z(TtgyST%xP4qE}H1CFT!@gxql?pGOmz~W#F!h-2`_XkSMG&2ooVUV=vyd0s1M5y~> z*o_eQV$h8=yGPk&X1bYZK532d38ceHLI@lf zm)3*`SpzYms3;MvNnwf9jMWgVUxQ|*nTb~A>Y$=Rv#8apH`g+2nE0H+fSXce_dWf^ zW-YT8&=!Se8s%oLnG5!49pg3QH7s?{JN+CXzeJkdb6XuZg0(G&P>u+MwVwjy3(dkRs{!oveA^WT_elknUOTfBj8E+YHgY|vdxXo;2UJCXF+hCl=-JqAlQGksB zzl(#N#ywu&r}KdtaTE{;+EE`z9w47UdUb>fCxX)Y$xGIW6gSfBeyJ&DW3w^O<)qiE zAQ=d&hM!w#;t#*b1=Kd(ywtpu2Rf}HFd4y`((#1Z#O&_T2L;(M<6Yw{uAlW=$6hg; znpbF*(90nMyc{sI5aPR7kACZn$HDLp_(2WBf}zMCC1$Bv3e+elwQJ&Dj!;7)&Auix z>_$3J(2Zc-a;15>c{u`$<06;OzGiEHP(UD959D*i8_S@I4@3z$mKT;!24?z%g^I}t zxgHKmtEQK%hf~}L)}FXTxe>DV#M}thVbKJ-SBp~(X?Fi^Ve<+TA8?^%)vKUlnz8>+ zwak`gOU!s>im0gB1Ns-6twhvP2Jfdhk0i4`eSOejyG970(Ng*ZYl!$Sh;_P}5g z((HlhacSYS&nv=8kGT=7dQpjRLYG#(up7Z@9Fb_Ds@Rw+N(8GV9=|w^-Oz%1ZONC2 z_j*IRK+rmsa)htDw<=0j(O->_PR6 z9;RX9z2}3D)-m2U-p2tnsH>kN#7YG1>N;)&>*^drIU*3&1Pc7vFOXgx!MgQQyi1%_ zR)mGyJ`k^{a(!bAGELKh_IVu1&fsi5cr)u|mYE$jeQ-)!;{)RZoaF{@HXZ`Qo3jU} zTqKx}vmRi0Q}^JMI)Zua!7uqa@+gFK$LhEdtYbNZazr4ka}-#|FOXgxY4(u1`DS~w zePw#RDxzFN+WEMJzKVS^{g4UG%?@SL})2JxCq$==E|zA(Pvu@mDGeI6FbYY(3mBoq`#uZ|EnPnXtrI^|lJCee=}%C$5= zC_uTA5pu1hT)(Sa>qoXXhnqiR&c8bM6f>cX^&?9Gf5K1%efIFzv&<3Z2u&ZN#f>kG zFL72K{(68Tk3Pg7`2QhP{j$IuX^uo-+z;z3tj37&h^Ng_yugsG&W(+)SOIS7BQlKP z=4f*a#Hz3f*k~}k-v1SX;Wg1YLhMDlKzenA5~XRU@u ztozg42-cIi5)H_uCZ43g0qFw4IvV5_)?;Fj&?z?2GB3S>@khiKK|E0iNX~>ajG~^B%a%8@-Mh^ZW zUf(z`_W8)#Mj632iZvuuPa#nhYxZKcLNqz9*zsh#J+gKZ((I8X)Y`EqStT@+M6gQ9sZ93(Va4f&rMax@M3pBi#B4f&rMax_hZ zw_M91lMzZzmR$@Ds`e+#_6fmSLROZtmXIY8thI8;p>@@eYbmg<8uA`FUTJOjXYESvpK=s;n9b7wC*>)V;XMIBfl{=m=jHW+`C);QB`cohMzHYc*U2?3Ko%bT zx)3Zp`gPD)RS}PVT?kgo0*R*PP^)sV9M1%lN{RK!YL>r})_bke1DtxioOBLsG# zzOM6=)g>qcC4x0R!<=MJ;)~-fG!{pp$|i0uFElI6`=PD1dK%v|58ol%aK|&*#0Obi zup!uFu+0(Ud*gfVJ*#ts*v+~?D3OfN$a67iZ3&U}T-1$VT?m^~%qcvVlODMgl7X5% zx@NZ-=2Y`uXpdMI8$THTp^ec^@RG+gb2?gc!6|^#0C!yl@dqw;Yf7j{p<+UL3gr;W zQYgd`s_qI2q$5`nLUVoN(t0{VR^ON#!5R~l=x~6nF=01?H9aEHaaD0TRg?(UqPo&L zrMh2~PAFZZhjp`P0xR*ElM5?xvrk%|`KXCxguwOG*H?bB)(2&vM6jO9GN+r<`QkVW zjm1&ulxpIOuCvS;<~C@*nAZT$PN67b=PawTI((Ex=L23QxB`Yh%jbQcgnX}AUJeQLmxfGItu=@GArRl>` z{2~|7!k9VRoXrEBRuPztU_EGUFz1-pdGuk~#y7@K#syq581o8V@|bJRM>>KS>J_}? zG1tT=q=wbPC4--gpK#a$t_Pe8n1g4P5`NK?Sdl`-gz^;1A(W+1h$Hlp6A}n5f02aH z@(*!o6-LPVA?8M!J=PPIsBu7AV?ALvf)$NO)Ql>QjZ#I4VAaGW1E;aJEo84_Yo-%Q z7YJJYQjV||<;7&xFCmn#P%fctg{Wk?>Y{!ULi$pw*e@yqb)Yoagha6L>VwnjNHsTJ z7I7h1b_PDfcH-eQGClnWfu%iD~xui*Rk-4Sj(1 zh}9FZ@De_WUiS&4S4Xfqi9l3+JC}-f%H)9@#S{w3TyKXc7p^clT}XsnJ;M^6^^?^z z=ti&x#UwfxC2LUBjbPo>%(P9r%4(qfErp!%)lfrzRA63fUJLDep6mh^a>4>!N58>b zuIa-=>?wTf$iG-fz)^t90ON7-O(Z_Be4raR3J3&km5(D2kWV1JIzok;gVM_Kl67;6 z8^L-l#aw1Cmu@aMm-9fURRks@&7N4={*pp z-GX|(C!J8bK+txVa)h-QQB2nE5<>Y3)CBvnPeJ%vI(pzCYy7)vK_pY3@m;ajkiyc_Rkj zfYZw##veEcCe8A5hFD_AHy@`LH}nD4BUVqu!n?yK(Gxy_P&OIC+A0E3_32zHx;2vr zauic2By&9-qFh^(5OO^jmexT(Sq}!?2o_!zaoRr;C2LRAjbMG&+`P%Wsmf}g{a=eX z$p(B0=Dfpoj#a1ugyug0bIeT1x6V{QcN!>B}m z2FUs_>_)J@ia2P5rYe3VD-weB3vPF!u@T`G)ax(lgwh4l?8*L8jx>ElUa_<$`%4Jr zE0jwpTOlf$M_o+zCn2PdQN^OD2-JbnWD^p>sw3wf(Uj(%Tu07L2v$RyyM?OQkSa<9 zt0K!>Yp&({L+)IZBsLt~1v`qXPq4HHLJjSyywtd8?uRz(i##W zYiP`kU`>fiG(JGql&~AYdN9+xMRYG)MfVQ}I70XMt^{ZBY6yXQg3^)$=~a-d2(qW3991qgtThGZ?Iu2>J>uFJ0{_Mhed-%Vdvmk7 z8SLg9<8LspJr!@O0Yaoi(0(s)BUr!33B^UAW={*I%3OB^Wv*#K%5|4tARSf`LSSl8 z=GyKh3op<+O-KZ*O|f~0c}Hcd$kip2Bi^cN;`#z}i@62X{ZZul2SZN(7MH0XG9Lo_ zx$G*Y0_%p8HO4wSlO9<6fD2Gs%LLrXO z-ajFMQ1<5}g!cZ9JJ!gQ2w8u}+(@%$MAIcok4kGsG|i1*)y|cucCKtj%-as&S))%9NC(NoY7iNG_o}fSq-72MMGLNa|=A*^7ph2-YYXa)26g6a@}YL(ZZhC#oTr;xe@}`1Qs-<`esT#&x)YD`6YO z8WO6fkSK~ZyFObXn*92ZK)OBSx+H{dZ=%*#N6EU0W|9cjon+mvtUJk)2-c%C`F*+6 z1m5t9?mha*`_cu1^*l|!FG%RP8uFkT@;D87Pz`yUhCHZ-JWdlGR6`~slsrXU99Qk1 zqV^?%^%+^GmGv1}62Zdzw48~~sUa^=;5iy{W`KtLg@&AYQI`3z`7n0Te-X@`f}8%# zvL0Q{o#wY5eN-q>ho!K5+@NRn!;_~+%ty5(SOJJH6c`n43o(U@vzihrQmB|vojWCX_ov#kY8vCsUFPFxttxB`whL@P1YUr9m+KrM zc7QIBUL9%ntSe&D8WbYyil`gGnie%5Hy`J@ob<@0kPL*isr)f>xA_&c3hN$xvOSl# zvCFv6++*Ua8{BX@;2yxKh5<9k&6B0XiWMp$l&?@Op=^ah9HH#gkU;3}WD-Jmr_-f1 zFG|+wG&h3vWmKXY0%Uy|b|YB7L?pUNRs4l2N(Ae_LTTNSN3G)dz0>L~=>lo??0B3b zEXDm!E-z4uwC?xGCaNI>)}X!~@{?5~C<7&e)h^3?!hC`+j$CQI3ajj5O1FE>z2+D2 zp0+yR3s!SHetY(6oFw*{PoX!0Xl}JJ8W3NGG3wbk#1Jl2&t6>sw2z~JK+v|NaD;r% z`UFDRWQ6Xv1*P?Zm#l3RC=skrQp_h!eAx!2M=pgbt#AC?LK8>)B9~^*$%vaznNRUR zr&YZ=f@N9z&8N+mpuK}v^}{TN3)OQ*vyl0W`7F{A^a2`Z0QUpFXAFWF#&HX{9`G5! z_l6Nhg#p5VXUk9BKOKv|_Rjmk`QVD3?&S zLbBxOG}Q&3_KJ#xkp5L!adfSy2*m2VnkFrYV4an7k1kSkpOteHg7vkWdvrrp@oTCm zk!H`mB+J}y?&teM?p(bJ``MzDS?HlH(}tE{No^R!Hkcty%J4=>(6 zZ{llTM)!^)R}_yM=G|jlXTE5@2sXuF_%7pAG&}Ek+FbV&VOn zBGFo(K;~&rFEB|tZ>kcU}eQ5 z+8!kzDY0UON(kjEluIaEp%6zX`)x=d z9l4Sax+_nY)`cip1ZnJ3H>e1FKDi;~1D=U$X+TyMT=zJ|d&)Iw+Y z{Rw-~L7Z}4H(v)kfm2Qv%ff-N=vO~yo=OJsPn>ex&<9wLSUnM|*^Bd1B>L7TkX{|Z zDindJ`ctkfy0|ct2XYisC?s?J6rx;(NeH? z9JlI6$?BKpMzF?3C2AHRYh2ikV9kt3)J9dDNli!uYYA?PPRT@b>J@JolPFyvXlt8t zgtfp&qUA(uiwWf^ltT!s?aaNFO7>A*BqOB1JuWNaGvquFt8;tIjbJ@UbB|YZ;}sF7 zRf%BjrMdB>N9Ni~O-Kamk1X?T^KHIA{2`$oLcH zzZM?nPblbo2oUenwwE0l|0E!uBvgUR{p07E{|Q*sc`v(!jm2!sQ;p%4$I=j96*d9$ zfL$JicM10{(K$lG%XNYD>PWMfH%gP%6=AX(rMeNUVG&ESG@i>zk6a4LKv=WK{b}hI zo}W%gbY8_8vN61krL4Z?wY+GJAcB{%dJ=Xt{)O3?o6C*W5_ZCi3k_LA4p$fnf~^(1 zgiu|DatLK96ygZYbP5TCvMZ7hdR`ZoR?i4o>tb#M>z;Ip21m)dC(Vsu?aq~Gd@ePy zn*#9#AABNMhl1R~ddv?JdQAoUkYCb}62ba|hP+=5`3D8wPeZN<(~wWnkSl5$YvkZ3@Zv&avCmi3GRg?H zQLG`MdJ2i6ShEw^3en^zLIUabidsoXvscuk*4~biRgY$p2-am}eXOj@$dU+_MU#J< zOHEi5_-(pCuzJ(v{{{&Sqai1T)sVyFkQ2jd$YFBGiD5P5Fgel0uo^NMq2zek#l%e2 z{&?9wAz1Uts-vv=WJv_;MmglfhHA(gDX^g$a*G^t;+1O1ePi#nd={>!O)T#;n_bFA zdt&yAmyIQs-|}mf5WDG^F;~K?jUg~E#qE5>@m9nd6FN~$C{LjrLRkuhI6~R0Ljs|| zi6n%v-i}KP7pZwgSZ~MN2-as&iAD#=`Yh~5u>KB6G)Gy8Nuq4 zWu;gt80gVdRBVb<*~)okS6Bh70E_<&t}-`e%{&o%m=%liW0&4A3VUa3Lg+j$BCy4G)h?3$On1im-;q z+z8gRsDmbj17uALyAiBKsK+Z#N>>#Z$%=$vt&r&_LUE6TffRswwy zqCi+jecaOYNhLm!3+NN0ua#=0f?a}noHhKtlu)rkC4}-7$|aPoP>3T;bcvei_avm* zH)`q9!s8%k4R6%a+z3`iRHCbB4R6c{yAiB{h(ztF;*AAVQ6g9kV$$laDmI|>62Tgh zV#TZ&Uqj~z)2ky`V^ST9)(e(GmAQ8Mtu!kQx#+k?D3Xet8=ZIR!z)!18?TSgk1Nrp>hM}lqy>#O=!j+Il{Dsuf%gCpK5HF5LBMi)Hv%7eBijAYF)<;~A! zS#_*BKrg1VW~@0!pS0Jlx>jq1zJXusY0j?1aXCv^M!&?)_ zFQQuY5PMb^NUx4Gdrd}6S|5eT!fo9Nln7S0uvKUk@?1`OjR!9VE|3%WO zSwOAsPbZWv5UdjdX?g`N8OoJ75s+4W)kHEv;9JyJ6F;^3R!{~?1nXmCHfPA+5|3AT z0W8lsV}^vSarI1AJtx<{qP1H8b8`JFTC4RxC)d9M?-8Rw8XfNuqXJ0?jhvV3Ux7D- zN$b2^e?qYSru8pZqyJ5FN~GCqgS7s*DCy){i$|H_AgGWCR;FP|HUyG5^44b34j4i^ zU~N&UT#G5iWEGVV%2z0tP_{x;a*FDrC<&p9##C{xvwwA52friv25nvtk&6YkZBv+BNJRtHf%E>2fR7f6 zAJ^o}*bY`7?B%fYgPZo+?@O$Ut&4$<1f{kv#mff zM4G*!qOlvnswgB>C<0-v2|H+VBrK3#9l?6?3hOcp-zr7vVI8@MBVLhmZ4Bc6^>VA3 zrccgJMY7ho>)H5Ames~;1B6#~uVn3jZmHG2zjdY6&!bQ7h95m^hu;hJ+P5?^CRlAP zeEpFNHU?`8hNq_ZomK92)Hy;d-k!ygULB!C=a{tcE-Ptuj=B-7J7TBa@|KwR6_{Fa|CDXoqpNG zri`E)!K#aUBPah}+#5N~ZYspRkprK^y%C3~TG*6WkwRhu^!8+)LOEn*DMal)NvpA` zFbScNhH)N#~Rlgmot7 zMzGFDC90e;8EN)yQ^QsVs{>k7Uy|t{)R%f)@J4JSX`;cO*tJM`~ltKrL z@m9H24mP7P!#^zb?LYcCLVk%f`}PY>+z8f%LPCWiP_sAJib`~g{2}Y=2$tEx>TY$f ztf<#;0~&Xbv3lRQ;{Fv$!*_pZI*S7bq&z*RF+`vIl8ZFKdZmB8lk7H zhO9m7hle1igTb!3KbR8iCgygWmDB&Jkii)dkY4Ba}EDlh)@UvQ9_c zNVB(OMXiC>K%UD&=Kn<5Wf5ew-#Gg7u;39(_$Kpzc3R zm)5j&fna@?$q^Q9X_Tz*DA!WeL^49)Z`9XHKehT>P^Oniv+?^cGi3e^xPNli|4u(G z^#)q%JN>lO8)&KT^wUyrpryXkPn~U`!K)$EjL}kWp{2evMoTRbtO8o<2WZMW3uq*X zU|m8>{iv#V2{j=RtSfN;=E4*2Y9jYnU|+$JlSi zjri&J?l_g)xeNDC!!3MOn}S{r8v%~e^l5>*;y2^PxyAc8#1>FeNwpP|CYZL-=Vj`E%zUz?yp@2ZJp2*>dHBvG7%Mv^shfltZm< z4HsJztO;nf)L9(O-Z~z4Mw6^bU`AtB&dPB@+Ipv-BP5du+O{Tc1Z!I%p+XS|>u^+} z5n+M!>Il|%EvyQwqOu~ae~UTd6)D#}4CmO%))Z)y;z-sVr|oUAENiAU6X@nN)`Rur zsCn5|YnF8*LbtHqtS9S>0k)OnV%ThJHbjEDy{#uMhB@$VTny`paG1UD^n;+KU@5U; zg-QtJE0jwpTcHp~=;iK^K&aX)38Cdd>C)N}C2LTc8^NlGO7uj4tctK3!I~G5XuqmB zk19$8>-u789WJ0&ucsysrwat@mP~G8(eU!NT%KDf7k(p}BMg*`5O^2$^?{$PyMnT! zM6h<^Ozz~zN1my`PFm{E)l%=IrT$zk^-fyq&(%`zq|R_hFFQ*{sJWM>{9Y~fURr92 zVBt>F*=>KRDRHOiLa=bBDbRFXRm7d93&Hx(FeQsLry+5#>1YwP*55VdNYkh17m@Xy z*hw7aDU?H2mO@lAUv+`|Rwung=;F7yM8y#ii2e3k%#AdAdqB=Ty(!JTJs{^M1S^x~ zZb22dXHrFpV6{n9SaYnE9({Ue<91vK=!0h(+xy{6KG#}=nFxA0Yy`Lfa6lo%Ubq=< z?}sz_Tx&kq^sr#Mz5VGDYo3K~Z<;NuPah?*O5IK(GepaKszSkQMJ87?Rci$I@XXAq0+!OKW&U1i~5>b0b)@q7tbY zt07o_gsnx^BD5-32e}lQM6KR;Q!UH3Y_xh^itPTrFN&?D)>5Digzj&Tll%47^jvwF%8Ibg6m!HY zQmzLIjNaBVYdN%&X-L)wXYw6UW2AMnwN}$-Xff80_2+Dfb9JU9<7aPo&g-@gnVM8$Mjt#~Uz>R=wN(9sG9p{by)&^?>*oJ!2 zd(hW}P?pplOlc(1#!Nyr^Eg5;cSI?$X3UK=`@!NU1qR3})}^&kr(DShfft9RwaHJ` z#X&cM)tu5l6sGjeDg8q#eKJB|OG>{pNaYKQAp z*h=d4p=WAYo2||0_1P3rQnMe%bA>GyzQ|z4359y&(Z*fYU10AOv7u}zj-H1X`8h%X zi4eK8#EoDr%^{Q{0%6?|mFTCiKzelq>p&yxZtL#Kim+bI<%m~Qx&A4zwpv?Z;TI)` z;`rC>omXR^?G`?KIWunD$%eC$xKZpJ&7QUHwI0+ep_ju>fDZuH#RngTv*8$P=V;>? z;QfHDFBVLT}XFKUseS-AJ<^38u;PeIn9&Buo|ihGoS^!c?&@Rjh`PD@qmd z)0uq5bReoI5v-Z5tOu+IFm|)X!t&XVEC~>DW`wmYhap|;5v`WW-UWMU95PV2zYie0Lt)1v~TneH0i>*g3 ze3*acTtbgEXl3oPb^+ax$40ObIG!GBTZ2%VLQ#%T@`kWLI;26P4Bj1=enBH>|sZ$TbpUKlYcwti9Gg zu$`G~B;I?d*}Jw3d(CjmqDDhwjt+~Tkw@}W)Ov9HD* zG%GbMkk{UY$0Nd;l^PUCuZ|FSMweE$PPslEcAfQNVu_~Ds?}jDAa(gPA0T+8J zq2GSIFbj8-_!Qx+TD-(WH1c@s9P5yE2nauYJ&EDj98icOL=Fi3{}2NE8Rgbt>t#ev z;M!!K?7^WAT1Q0DC))qZrm!8JH2d+#**fc}^(sVyUJly<;)7?i4jB_+PQfAa_~XWV zfX4ve##?VVL^prptv9b&uK>Ph^p@uCjAq2@6Ur~W&)$73K+MSx?TvJf_+j8QhPmI+rFBS6l#CGgR+_Y43e!Yy zrMeNUb76@p52)%)v-h+JTCZBKqFXu|^(yQ&>UPiV4XigTd?apmOQ$FzPi0weS#JSd z%@37nxE1XAp{$Q}%KFix&mM?R#7$%K@TS#0e;XCn+txb}33@r~28hqZ%^s2q5f`}Z zCrS!ALhz)hKwhAj8)^0v%`z!4Mpm8+0RB{nD&=tas2v zWnT)(zF^HV23w~sd|qlce(81^n}OkX&K-bhp;ys?4zuLFhM2v*IAM0=^?-kMZVB3Ol#{<$dS!rQ2wRwaVf zEn=Oq&hYM?l|V&>Dy;!NZehKS`9v-RPQtaS53CQsPL>Mhwf8P9B~+|X388$2atUQC z6ygY7oKzDnO+qM%H}E?azC%c^&W&kq1ZzuFqH}5uw}jmY){cloU#p5csG>x$_Qa(1 zv#Pj<(n|#EqZI2y3!h@6BMfVpj9`74DlNHQuoP0c_Lcapv({PUqT^b#_chE2AX3vp%vuf%ji3O3cE|?#ZZe ztM#e%xu(yF;Cwp^=NvDGO8`Fu%*X?q<*@ExpMquP3Z~mnwk+hxqtB@qC9P%5jZmU} zCI!aG!ixh=U}lJNB_jlO4@)cGPgeJ!8^M~JZhdBbh9)ZeQb_g%>khy5x%D|LIT5-~ zMz9{o3VmUHg&`ZIqvRZ{&{K8ss^!<#*I-u`vN>R0`>8TNN601-w9Xg15v)EJ8 zZw1JDHta^QPUl+}MEkN;^!09#Bi_B!D!Nxl=0e~%0cm}v(kCO$enxL${bv1+8NZ35 ziN#pPXUdFy)*sfNU>A&zY%!n@ur=5p9(``DVu5r*8c?1)#Ve_DTHd8mD`gDsO7nmt%ZtWacw_Gvap zynkm(Sf2+RYi@H@GZ`W9yRfw6T3~q;lFe%N{y-b+FYB)=3#;4vYhJ_|@0PmQU*698 z+xiDxwB?IoW1sAQ*qCJfm+*jfFxE30hqf26jrE`PANEQ4r9gOkMhIGYzCf^^&*c_J z*$RayFhqgRCn3~4nl7z=QL>Jvxe=`Qq7sb^ko8{JjbL3UNO(m1vQ_l;TbLu>z0)eX zS4ig4>}R6^Y0aYa)ex-WRtYVkW5xx%)umXmXD1o^6W)XmY?;xCEd}%ewgJNjS?BI3 z5lANlZAZR9Ui(=)ms=cVD-@!@5Cz&v2sKxxOY89{Su4}r2-fDPLZjD zC`5rF3S69o(8zLxiS&3+zD&P7=0>n?jXG!^Udoo%tzkEUwYzR2U9>M-MPGZu9P#d* zR?$5n%7wtAA;+4RqgqWyus&{)$Vg;r`aC>dSix3d8J{mQK1^gK@NtiMjaso)VEX^T zy!P|Mu?uP>@IjY(jZ1~cS!Tp+csFVxQ9sB)=cS;p{0UZOU%QBg$RgkAE&F5}5W zL81=W6r%&X3D5`F3akLJ>xu-@2|-(zE0EWI;czW(ag?c0kOG4gcsL26=83qpZjX?4 zBIZW0K8Q+mZ-A^1!fvG5FE;Qe>Llu*RcasX(w0fg3sy+1P-KJFBby`MzcVGQo&jm$ zi6vhPy*fhRfUvaWTEJ3BHVbP;+eF<&-6{(U?Yd&lc(yz;{7{Q z!ul@YSo1YiGZ`W9LRjXKYk~e1lFe%Np|rM%ixU@DSyiV{5Tb4(&B2CmJRifn~4~wib5*UcfeB_`JjXoTfl)v1k%O%gGlA)+@Q(;wW38 z5Cw)P@RcNlns25{t1wE|n`v$Y>s(Z#O9Nz`3%ikKANJHuG!pI0R=xINEzA+`-f2~@ zf@CfP)(A<WrS4~G2J7~0rxR3u6h z_$0>s-j@lFvo=7b2pv+NLLCHaNIqGw<#LOoY=uG;7^1+}k`P*ZH(gp|qh!6C=0>o- zib^yiK-O1bH`45v;x!YOiSA{qUi+nt5J%{K5j9Z_AuvBIEjf^01<8uA%KeGU6PIJg z<$low(DX)$D-u@#sdas6X%k~Fhv+NMBTC=_X#vXPA^ z=^5-jWP>stxD`|+aa{*^y?EVw-z$!*;J&WwUMOzBy#<^&01381gk2p5x#4i`Z9o`%@M3+ zK`UcrFebMTwtS$6q1ojfm~~Lupj}cyi2Bb@32R*_Z=K#%YI+d@ua0Uh*7uP#Y-(}Ec}NqdQ-_Oa7|tsWiGWwSfj!43eOekYluDCaJ)6f znvZMpH*+n%XX-|LH}Ff(r{`E>tw|6W`T@;-fD-_(=m_yz{HOps7YxVwProm!n2~+C zb-gvt8V7WLSZgo$^by|`w1Z!hlqsAG%$d`SkWz?Ev;annb$7q7q zbE~hcY;8@orlQsV73uC@*;r>yx26NVDQMRqYlbxw=soJ|dR(Vh2bzu%D^v#6EH=JM{Zk^h~IHRrkxAe{F+i{z{HYp+dr@iWop2)UjKH%G8`MXW{EB2?6Yu)N5Z-86ELwZvKiD_yE82C|!` zgcyYsf;Fp>5DlKveQlZ*(bmEF84Xw-gusPKZ5_hf*|adx9Kkv{u957p0KwW4wU$}S z(5l`(Dhf(-tFI4jZ5?glsP-8%igfp{pIT=vx0VAf6ZGH!>p1IpAiPq1bNW`?2e0oL zWSwB00JO3?eJhYZ`$lm~MkRvcgwVvws6qxT5AtQ-sElgs>>yi};pPa|K?#k{kF#|U z=h6t)@Pn)qtrHvjLd9`0LTIAVI%c?al65kyOJm4&I|h2=rT*3m3ui;mxFwRl9j6g| z+0C8XSZ7#g;JuR({1)!!;~LgkXIWPv*<<)K@axm};@!#3D~iF+YQhkEZc?)slF-&u zy30y5dOxC&KfC#w5TlSnMj=Ar&4#u{aC-F^wEx6UUmbJFlT5GYKRzcc(AF(bf)7AR7^>3g=70?FU z3h$lS+q%=b6R1-~dIOL@``)?)qllmYp%$5q;XFZ_c zE#_nChtrSZC(`>r;6e7F^%%k#Vz3|ZAbZey1n};*5Ff^+2Rj|?VX&v7iW%80L+Y)E ztcQS}4r^`8BtIb(*2tILGBw&9A#iHAIf8XlFY6KO5d=P(RJj7#Eq8?&g%pCdp^OkU zR?HPQ7}~nqPzdS02!RhIwRLZdtp^g#5v=E<8a2-7MZWCTmSO8L3w!467){Wl-0IdP zt*s}lC(!EVBHjJgtLv<%tfzoJ6|@;Yk^X1>59}-aM0z;=2=29Q!_2d+XRPOZ#_Imn z=|{i<#Abs%ORQ2@Zy+2DUERMzA%Aw;!~~;=pa7v3umTDhusjGgah3AcpdeegO3e_g zc`7|}4Ue-mFRm?(V4WAUp0%E(iut}!QBb3GX@D$rKPulB0yh*{&son=V17mfdJ(M0 z3~h}wxCt+U^+J{Py!CwJ4w37rXNo~jc17uW)*{NYQi8ct<&tpI%tnm?Aj8Iu8Jt+&whY^Z|5Vg3Mph1A_QJ- zXzNCUb6v-|@S8EEN3L5q*DaFEi;(M1&V^5r=)N{IjImy~zQmk&n`;1{#@dtbGEV0?b$;j0V(aat^OKi5@27IC|#3!i1J$RPb zY`q1xIjWeE{m`zr-n8BXdNZuG4`=%cp|D22?1%HB%@G3eeuURr-^+U2!XE}${Yp~h z3S>WgFvKXN5OO_UMu-|K=8BIS+IqrJ2u z*$V}=_pv|hVepDo4a$eVF+mL)U~%>|gV!%+ePn&4>gM}{*T@>ZbbvgXqjkPN#4aeZ zKDItqvH5usTfpEgGuUfma4!W6-pN(gC)OuTmWq7mhKZ>f`9;IK0>4UpYJEmx+awY` zg-h~D*x71*W5>uGn(38(CjBOU%l;%;Y<**W(-cB&Tg7lh6~t#Kd_a=f;Zeo>*-wUr zg@qL}4!{s=8|)ovaK3TQCDylglzKcS{TC=6UD;2@Ij4h0s2`@K*-zGFZnm~tI66ht zg!?Kw`n->MscHgKdVl^2I$XzF)T=o zf;EGfsrE2wD!rN^yt27itGX>0-{jx}Jl>{(;`Y#({mMacI$n*MU4Inp+4gJApW^y`5B?3XKp#3)!Z zh-X%N7`!uE3u~=n;a!f%eC$9&F*H-a;9cL%_S-nrBsJjOQ%OwKm3*(&*a160-ryqS zdxM((!5nV~?I6KJYtnB3`m5uW;^3@N; zfW=KA)O|e}p4JoM+X(-nU-u3R3oB+EfFX8}!QOoa=gYXq*a>?e^|&#; z1C*YFzs|UafexU4n$WCUWtZgXW9bjm@1#G%QP!`|Pj|4Bb_Hc%ik{9le+5kuefc1$ z@8IG9UItiBa9f#zsP&rZ+NE|G!H*IO1^`=w;aHL|68~SOVuM^|t0A!l7b##^#|L5d zKJl~nL6L{~vfl&)c9~tKddb%?nlc>=FCHY1digr?-iBYXw};Y8?6!6X zxI+Cz1EB4R-q{K27ThG;L*}`FIHi+qcp<8wk=;I{-mbB0h`ktQ@i;#*Dx{e&yZywd zhavXFu!q5W$xPer?e-M>bW$Y@WVgQ^5*AVn;4=Xcw4EkxUdMv-WgF0g|~Sb z@_i9zZ-bw`FN!=2-p(Ym2V?B*On4Z)KjX|AmsP-g*&Pd_b_cry&8s(UG-XfoygS~h zv+M18ns-}~s_V<{ObxL++xWKAY{S>>(p%G8ag}yTVol|3XwY$Qzf+6JFhTC=L zQ+4*i_QAwTTc@|BKOpvRg}x0MMWPE*T_-gv@-|?7`z=ZW~WKM9gn2OsTg>?ewbS|Ra3$wEl=InP$ydOT&ne^B zk}}RWqdl_@Rh)00 zTIKU)e>%uK+;;2{1V2AmHwZWm&?UINL||tyhu99DfS^PRcZq@k`uFKc8a$ z&z@jUCW@neUjhaR&IFvOU>gMkfW5(Rt_Nak#r)Zy*TjiYoyl>E$(z}ATinCoywrAKgRDb!s7zbeR`WLgOdx6); zbPaeTs_dCI4u#3`;T;wxrfTFb2)xDS8he&KkHoiVxNq>F`!zXZyM2U>SDv%Z56->m z?U^_pb-%VQ20WrEgj&~{;UBHj+tb@Ad{|O5Hx*UPpZ&EVEG(>;aR7$c(FS{XIaBAG zGUH}@p^ewsvu-$?BSU{w{@1J1%k0JWk(8ks z9SpjRXn%7t{;|J9x#l~dONqMpf)Apo_PKesy~M_OtE@W;?_Fv4k3ItHneD3)mJ(Jb ztXP;qjM^V%D26KgybK%JpJZ=LjJ^E{5A$VzOT?K?4{7hWMAXCJ)rFYh&*$c+D`fC` z^(Bu6KCzSX{Mp}nw-Z(&tXx<^n9Ok^&-PnyFGG#KrQFNOaqgvWiHE_nWVW32Y{_hz z!J8$sT`FDygLhjGdzp=MYgspK&Qyg1+28IB3CssWe6W<5x*>q>9-IE6eUweF*SR;@ zJJLHdQT%Pf-&>_S+eh0th}TGs?C;g-TBf(*Pm}IUe~(AO?`_PrOmD~ECf%9dNwlqL z2^}o3tFZRMDutzlMTk*Pw?`C1@wQ%u=IfK};q7ZG46i=nVek$qW%g*Cy+cYo3?5#j z({-P(;$B>deZEvNczAk*N85QX%xq!fz@N*&3uWNXW#EM}Fg|reO=DXNWw_5}-~xui z$H>4tW#D6EV9nsIlBR!`fmg}En!&r62Oi;wXmv zyn8f$r9Q?!mag0_#n{4+cpBM#U%K8t&OVOdz2+0?A3^=u-Jb;s(sg18^=tD7FAag# z3anM(zU-cGIp=&Mp;PV&N7#EKqL=~C%Me={Wp7K6z0$CU!E4itYkb_1YqY5oRxPYj zSW1}G{aAWw<7KE(m*l$N#JHEbgonZFA7_S_3TTCxt-s8n8N76iy}eR5Ep;`6H?}u< zxF#b5b=>nsaEqlIG`Wr3%6)@!6Aa$om-3?M#GkDL6 zH($JG#nTMl=Y#Fz?cOfFEUim?|w~P5aUe7s&?xLf6Vd7nQxbOXA;#Kyk zHcljEM_$t~D!nTc!o&TKm^sH@VXq{$DeVThg5Yhj^e)81tTTvF_-%$_#sQcw`$wk) zdv`?G>lF7ec(bDRN_(Zsm#=|*jZDYFTQOn3eVUC!U)hllHPohm$rMpHYs@R{(`}rr z_t0ZNPbd25q3K`JzmWQ`Ucx#Gs}oi&tWsD?ScDkWel(&On*5iSp~?G_>^&1>@4keG z!FxK+Y*UE6r=uPQ@3k1ScckuXQdcv0@3&{~Bbfs~1$ECKm8u%>zE!=@UVg~u!(P4( zu=hiNdnsUu{Z9JZ6=d(bFvn`<%kC>Fv(K>4P`k?S-e}6Cmwf{#w6<5-bZl#sFY|Kx z*Gv%q{@gdgJj*`Q&Z0%3exlPsR}&2+)4!&F#c82^6RN<@R4k+z#5nwpXis`5MUA$aE~c8-wIgFC{^h5A5lLowc(nHs3R13mClZ zj?d27SCZH^-821LdLIs`{aIx0vCp#4p_EMhMBf5En`nEy==xjwH{9Bw>p;&UT8po* z*R*3VfgOd_39A-XDJ&%{LX29fjVNYh|Lo{xzU-d|C)w*7WAEUEhrt^bXVyQ&-ms{L z!5bN4HdN}4l)9S1n_@PwXb<3~r<4jSRSe>y-o$7#)9Tn;R4=TJuqt5{!ldvtX=ag^ zp~iBlix&rJ`B>KS67EGac&lXzN68Xa%Mvt$cabdN1gU$G)YS~$Gb#IQ`)qZQ^i@aU zMrg|teh=E`*yoVQHx0x>=*#Y}Zm6`+wf{ltdFI^o@98~wQGfrC^h*0Y`$F0xQ$NwZ zpcfGRM?0v$<5t{1#Jn5ue1f+}6*RK@Z>q<;4SyqcN0`Nj{lut{W~lyH)WZ<_SlGjS z*}n$$voEkOpx7IeDqkS`mlYBgQVibc6fxCciLU$C=m2~F2qsN2YHl%C&iWnW}pL_OadN8Q~me7P2}KK2@W4Y5aC zrgww+b1mAH2#X2}5~CWA1{E{lc^UF`jI#HncpbwY2Cqkg*|TxZ*CXy>@a7z3ueI?} zCFu`!kBJeZUUV$H8_j9<#Wp^`lpTe40e9o(^5uLdwz4m^FD3R>vqe9&u%E=Z>T zO#j&;0N4iXYQ;i|LF^qMhBBiU1Qat4z)+@tn7u`Q_WBoj7`zjT>}%|6RK9!-FD$5)6zrI`!fNWZhLxzeZ74P zrDTfvwx|1p;xkX#(dTwZ?@#Zi?QA#y4R|BL>!J!8xxl!3`v&_4V%LYY7+B;dMujx< zfr-dxxDWLJd@-X&4{7W)>OS1;OV z%C6vfi^g=a@38NndG9Myb$z*_`*2k1-}Zkg_-XTt^j{f&i)gOst#rh`)4q#TrhZU! z8|ZqX&*C?xztVr@KtP77vA24hxu}$Xq?%WkoH2+sE5I88DsVd*A2Clx|+eO#cxcy!EXoXrbD%* z!b%l`*rzu!+RWZM_WINdYa^^mScNbtjF&R;*c*sVD$e*a2C@I7+uIv$d~Pl~W^TWX0T=`{PX~NJ!72pI=aL1HWN^ZIkqBg%y(^lZ^1BE+c1iiqx|kRjjEQTB2? zTlDC#hrv4~!R$PqEqY4a!{9wqWItr%lZ==x-ydcxVDO$UW>3!nuaW5*@P2M@KWsm& zu4VqB8@ZSfCZ=lSnJ*XXhui28`%x1AQG$W}xMkuu*4fY7&lCHiRVI`P6WeSqw_mVd zAh>r>CJgA$#eWGBql}tC+=Ex{n?s0u%7vAyU|+5{-diUeTU@6T7RT#_wGmb&tU_2s z=NnrbQOrO-FGG!rQubQL*{dk=FnINGW*smuhC{yksE5Jp6Jypz>f%W>Kkr!0;Ek@g zU$kFrvMl7Al_I8=B|BJEYrkZ_1aEAg5>*$mcbdoAFWWB@GzTi^&lSHOB!*yS5Z}go zW6dGNx66e|m9Kko!pR*u;n#J-s)bbwO9_i`zR5E2*ItHZeoV4AJEmeW@s9})^W_pP z;>?!trV}lq9tJNSW44^@CUAxIyqdwQ>ukSbztUt`MlR96B{8)u-a%r9xzK*q-bCW5 zNi-P6O`Z7b*az%)oy*C*XW+VB-UZ*>MST zf_9S~`v|OOR#zh|C9F(Xu`q)erW}_r6hjrf^4*;Ia>-6fX2}?Pc;#Drn!y_oXI33z zZ$Q+;;EfA0J6OB|25&}R@@U`zow(UIxXv=h-D5 z2JaY|&6b{zk=ZnZcaF?9UAzJYZ&MHZBbz=@IWB0Hj4*#4Lv7<|7PP2jj7w_V!r zm>Kpb&N>=!;aE3QnifouG>0p6fg|!z}DJ&%{LX3JkGNKrYJ6?t<@v@lqPK>dKm&KYhc=Jk`of&6uUWtdn zJFbe^g;m_kaT0qWM#FIMa$)jlJJ*Dnt!*6m4jFi@419+SyjBLjLk3~J3^5%du$!=2VX8Fk@TUr4vWA}`is8Dy>t$#gk2QUb_r}@#SjN)~-jD2!FB0!Z z_L%u{WjqT_?|p)84mU57c;&m z4_sEm!;SCB0~azB?j+3&9UZwwhdN=^!YYNOgh^dI zXlZ2h(!tA61D_Yw1LFazy>1B)gEu73?6DAgLu3xk;JGpO{wH-^sjC^h$-T*=Yw~Ix z_dHpy)2nTSRf&i0)TJw*EcsrQ8U+kB@MBre_D-C8#*gLZ3?6E?T$ zfM*naEwAT!nZf%{H{IWa^8Eem2je|YD3?9|hx?mQF8viS~BGkD+jv%j>zZ2EY`&AX=qLG^g$2VshiZG2^KhdH5NKTO;j5BJm`6;E0Cy{u|(4 z3K(K>Y(slb1=+)~jpodkYl&kUKiYI|jdyP}W$U?@mIKH2w109sllXeW;7nDf6aG2d zl8$ZsZ2v+nGW8Rk4!Vozn@Oluc;lrdj&1yG|EyR@F^D*#0Y*9B3@C=;1q@B%*oOAr z^|Oa#8_gL!9MRZi?^5~lHIT27=~#F;wgHcN`7o&Rf#Hb8FZM4gHs3R13mClZ_>zfV z9s2Tv2|Lr{Gu4@PEn>M=bZp}{dpD(I>L>aZ=77MAvPb~u~Jw{ScDk0^kYOZBi9PYHkvbEt`&}LXtpQD9*%7^XYg=rBhMxVLhRw# zMso%a$2K&JNnISXwKl_gvRgo z@9H9%`Kyk?0w<lp)c3Ey3*cb(-+-L994`_+TbTf>j~KPUYovz zX5zHUOdCLduJuVlVo1ph;>t=7gSRpzETv-Mtqm|cGN71o00!^gp7tO1A5H4Qd$NL< zsw?^S*4X>(edH~VBVSuIT{+!+$=+}OMR2A0c&05LRDPoCK=%{PVr6aNf}Y$>z#NNeG4}*7gjM+6(_iCxD z8NAzY@pOZ?4&bJ5D-~9%7{mvA6Qj*MP{-bb^}?{${IVXb5>_Eh3O^vtJm_Vp@ubv! zBCcYwtS3vj7tP?kAxn5!mhgrwK{I$C$PzY7-4CR$X1-iiBxV0);|!f2pW`F=m1$>cK>fL@JA(u%B}1t9nq#~)09q%oPKCpK zJD}O5SU@o}RKVbEsU;7!Cnc-6^pDfkk*n@nPf#s~C$3&m=M)S8z#VJAw^Nh>lJIw#N_qHnnZQ!it3ygV-xT3}q&b4k%_EfT2u3Sb1-}pS^xX9tQ9D zA}8WRRK9!-6_VL{)6QXT%mTc(1rqoS0Kb;-d6rnc7T! zi$t!?x8_Su+$pA%OflcL<~qqVer}`TRz_zA@aYS!ow3+Mb*c(wVtc|cLVHLup@O9G62rom8iBk9WxQfLRCYEq7n!!6mSf|2aE)6i-6;RAL0E2f-EqPRXcNLdD zrd(J;ScLQKj&QzXybSqHiE3}MFUa00VGo0sO)$g1>}h25myLTEynD=ylXQ|zmjm;O z&IHwRc;a@68mH7Lg*ds4G9HB0wmUW*bjqCyf^E(BGY8?J>jyQrfToCcG-rbzl&9-J z%Zb+Ep{wcIUIIG`s}oi&tWsD?ScDk5oQz*QDW8#Rx7N$h<>g8Cdc@efJmF#RZjUn? z6k_l8sE5J3KgP_Iy7x<6&EP$bhpujLib34en;30oW*vK*>V>rtRwb-L zm=vBV&1~{A)Ob(o9uZfuSk`+b+>2)LzL6yyD@*uBmY^BDUt|fVNZntgu4cYm`#vcL z|5F!9Uv;A?9LY;)e`Lt1aOg|IU&53##yi3cSs{9FC*4u`|yr8r#m%HI})EtAh-_K zslzwsIH$eSp5SY3Gj)Le+(C&TF^bmAmpiDugNMN@PYFw@Sa_X^Ip3#Y&euuueHv8E zfahh1?H=ZQU-{YVUgTl$ruBAeo!TZnBj4gy#8l7H%N;dN2d4vh-^P)z9s_rLsLnaq zIT&n8$5xpxnXbgXF_$|%oE`)R56W}}^ylhgL1IYA%$KW6nzjc*OqL5PSHTbu>dgtq z)^Wmv>V>rtRwb-LScLP9jVNXypO>LV_fqzz#o6m#;$iTH#hD!*VsBW~!{CjKFsv)V4BkO8X7_O2dR$?>1kKW*niOf8FdP=B1c(CO>+ zC-I>q8tjgnx_(!>vopXMK=66zlT3HK^^Wl0)3r=rPaB{;aIe?zHrFzJ18=f-M+VS6 zxCT1I8-oRQ71mx@rLdH+2r=sOjfi3>zQ@aaxlTrsy)7~Abutnj2CuA?*%xv4%1S&8 z-a%E&eyq~HbUH|4e=JoD9{$CZpKYoy%nW}ynqe^y+{xsDrxx?TolG8hYB3Mo$>iat z;s_mW(8v`s6duU~Pi-j!kK}=w!JENNPpy@KXYjzx;2p^WPd!)$K2l;2mVr-~frrb$ z=bL}$fv4k5_8#hP=yU;|<@9c*4-wc+SgkNs8h6;#=@r6c4bvlvVGS2}8QNYaEzXa# zw@${>4Bjo`;r(E05czHqPcwKMWeqsUsR!98u`5aygZG@Q;es%;&5Z+JCIfGlfiIJR zH_O16$-tXsxXWbV0*1m{rJ3txkgYO^X7F~1cc*we#M2DkJ{kBy8F-(>KF9-iE|!5` z;DI}LNjU?Zfpp>CjA04A@O;sEG@dU8IfDp(fH&EDf%dcT{`Rih}Ij9riGI5BJhFro}sQjfd-mRST;W zmJ-Hwr^Th0hrJ9no=$SziWv9ubi%{nZH_Z*A7XE_%%K^)4`b|glDZ#CUCrQq+nYRG zlWD!{xaV){g|!h@C9Fc2sO864-He=hMbU#^Q^W^;J9E`FI!Gk7I3 z8-9PG+sFWux|+eO?#ew+Z?AjqQZ3hLI$xtM)e?(m6rHbtAzw$iM)Ua^b?GSANHci- zWZt8A-Y)%QUd`Y+-MGIM`TN-qCVO7Nd+vf)+VT&PX*lAp`zv6`H(u)Ir0#gBs~Noc z;;j{LzId9!%N^njb_O?nykgP+=txjKUim@T6>x!aPPX-T;!Nen$)KBU_g`L+cB7Z$^5rLjKbeG6f+LMP-lIDy>}z* zt&e*cywBrK+DWT?`5MUA$aJhP*DWwH;A9;7fbX=gtwg3@#z8mTs?3|52FIcno6!?M z8;EWlfYZy&gqh|-nqh8WMl@GB?lg=F1)I!;5;lnH2+c(+B%Xg_SA>v8*>S+RO!Y?3L9EYa^^mScNbtd;vFeaG95( zMzz#k7gwDhsuV(O0N;#vQ(dr`UtB%5r z5WoG>odEI9kTb>^Ln7Za5DOv9H!Gd7&RAO4J;jI~fao3(({;u<;|M-lnHd1+&-LgT zBt|JUgV?Xy!{GHx2}`M1cq59KZ3-x69Du=F-rE`PjBipG-kGh4sk)Ny@fv4>Gl9G} zx^x7i2cLFFg94s;UHFR-$Ka6yOm64+5#ov>y)?e!0B6T%`_h!nO?9lfK%T-5Vfro{83B4kf&Ju z8XSZ>saM9l$eHR)B{&LiTnz&C=X$LS5=2UYP|w86sva5utrJ+M!eQQ0#O&CBV#Wa& zygO^jquM7`ap^nDg(ZYVINwPT&UdGmA>W25d#i%%Z3uf9yvGyF&Wf}5c-+I_eTO%$ zra9A^E(eqR*_ohP4o}>Be2p{Rp>HHU>|)9|7_04Lm{&Wqow)@6l^L8Ff?omrL>Gh3 zA$o5Ta0q_b_c3a~W-As_3}R^!F)DL!Kr!P03}sq{+1ub}ua(4V2Jf&UXO1&R<;&MV zzDCyQEeMiFz2N0|>JPE!l{<5txhgi_Ghz!EyoX1;@62;nllT%oG&VG2;cfOl@8j8O zzO#T*GR1uFo9jU56MYrWRzovGX+6L77FZ{&URWDpRl+KSMTk*xoWQ1h=n_9(n=^Fz zS1B``z}DVhB_8I>^-ac^;RJTx>zj;v7`!$yW;kuFy*5%;GkBeFJLzVAIz)+nKxyWu zQpF$+>_r|nGsEb}-oQFx)xs);rG#D_FMiXVe6XX3V{d`9k&x4aBpeo)F@EY98sB_0Ov zyEwB}A@;tDdKkPtF=jPV7cc4SUNrON1_ZEM4Lcp8n;sC5W;&HB2C z6ILy(Qdmlu6duUU45;uj)Tl{vFX@i(ztRhdb3Skk6 zjd1LhUWOKLDrN7qID0phco@9<7(CoI?4?vJyo-xD-;-g^cd_Jq zGN_mV&&v>dX_)gp>u2xMA`gT2WN+tm=kz8$Bj4+-h^d~rmmy^}&Kb@b9_J_`d6 z#n0fsIe!D2Wwgq;nGwW}!n?ocJLeN@Juou@(4QN6Nst&4GJ|*--iT`sAzoH4tXu^{ z{8ukd*sUWc{8yc@YGIYaQo4hI0`rQ@JGg8;auswL*~=g4ViJ7Wq9>+_|wIJ^gX8np>Ar; z@U_+u$5HrKNoHS074zqY?+gnID`p&kA@&!8z3&Xp_vhI0&Q;Fa)Z>rVaiI8JFE{+p zv4cV1qJEhAbB7K|IafPZD>Vjl0{S_0@|Z82Yx3q^YhGqTW+}!wbXIzqbFFhDsZ0?+ zD?J#Lz8G$H1m9aR0U3yz?|@!Uv>M-ALDa|{daHT1bDeV?(Havh@BX)sz^+(AFnF)WnRN@X_j=UB;C&ThHcY$%2Jff7 zSYTIS?S)keO9_h*qn=hp6hra7UgpcC{Ym!Di)kotA+g<$=@qmzN&+Q69LE zq3|df_!${^lnksHyqVJUCK-6946GTvqh#Q%GVoCnyHy50Lk8X<17Cn+Hu){gX<@F+ zOi_13`a=BZWjaJ)H(|BHRB7yRPKyd*yoNa~B8nNgG=8M!SHlc#<43AykvMz!k=mTW zyH&gj@op7QGk6d18s^kiaW4-@Y;CDx@Sf*2%;^(m_GaV2!)4$%W#Hj5@S8I5a2fbb z8E&`?T)6FfAlqaR&EV}6Z?bqh#nTMlpEB?~8Te0$oyP-b5;E{{JaDFS%DL6K zl`hb@^^HG}s>Z}RAxY^md(zmV&+ zrH!yE@hXH#zAaMY3ok>B?@GCs&*I$kcO@PMZ@X4A}Bj*_~X!J8#sfAMCC zry0D{`Z>2dw>N#f8o7oGI}lWlSAGySJZe7U+~KT;IXB%O9nQqV-MYZM+_}rSo8ZZV zGcy4LfCItqLiAj`6-~@wM&1S0iurTaHI?KkmJ$|`*a*j7<7Fs(Ym&WnG4^gvco@8m zac0+r*u#shx84?>REc3i`O9Tb?AFu=iWn$o{g(yZ!sr0 z_dE9!e6d4jHXu6O7bHf}n)z~$uak%Q!ODe|t5|p`#VFslgwE%rBJ6F8C}zO(GQ_rx zviC)hy|!TwgV(>_+2Cww(lheeDPpQ;>19c+v(ec|-nS*(-#@X12b>28{yvZ!d?ZMW zf;B^tC-A#kbBKwbC>JJGaKZIZrj&vymIwvK2AaGxsubi21nlwDTN^ch;i8BXE^Q1 z9tQ95&dv)CeTOjj2k(TI#8l7H%jLDsi_VMW?I_{?p216mFF7v}+%t$9{3b|@f;B^t z@9=ATbBKw*D;LI9Mz`p#6V8v<>4c+O)C+4PtV&pgu!zn#9|y7X6OV4;Wxm|#NGW^x zH;MKlB_0N^D$cAn#9md@!{F7&n01!A^-@ zbKYwTp&nVy@VIJ-M^pH@NoE&C74zrDToe`-R?Ij6L+qsndzTuV@7j^yIPbeL>hbah ziar_l+?Z=ez6Bbkewxs&BQJBd_Ux zSeQYK+JD+m3{@;I^X10k)79F;3jFtD72rCzs5GHf%l-W-AGSpaA%DsFa=U!Hoco@8kWwyOC+r=`Q zX7Fy~*%siDs&`eu;QiFY`Ox{0cK@(BSBZh#*grx7^F@5QaYiXIb%*2|^n)4f-NnNd zGQ3l=5-n<<2IM4~c^smmh&acS1;4$;0%yFPaxe3MQG0t{p2f0lBM8|?| zC;CK{QjOe%0Ud}@{Ht-rAPz`)7z)|t5}RPpjfx8X5NoZ&uLx(fN@)J)Cg>2JiSooS&SZFz?}s{Jj3$#B;9FiTu51g8Shm&zT!yqALh+@#BT z3F|1VPFS_DN?|Es5n|LOzT}=N8_4Hn=<)g_d#A?OyFTGz@a~B-J1fNAJy8#X_h^h6 z&W!82k4jz5;5{cba6Vjn&q)o<;O#7S_Beag9QnOqjz-q#{ShFK_IG_i<@4nxN6eYd zUS}`CoBJ#1&rNREUsxAmU4^w5Rw;~^I=Nkh7&U`$eatsq$WXX*lD+l3)XAL_9tIB& zC!Oy>Uc%&oB_0M3pHbJ||D-NHqu!jsn<6z{k$h9)>}dvXRgv?DL*LbQ`11T6XdHmS zJGYoUy+3%3tTErURn9(#zUNKubBK3^392Ic=10aSYMeivKgoPI-yzr+IB2-v^%4Bk zJVNa?2#P1j{mx&C_Es=Ja01|d1rO#cwYQtFT47bfDuhLdQA3}~7V)N0bLPuU@s~2& z&Rd+~FYz#VDe-<2FD0I4@ahse_6S3~y10kI8&~Z7<@}}k%g<&sVH^u@PJle@;D`j@ z>Qjy~r@1ZM76i-l+w$k8nU~bkX|%{cYlICd{MWqd%x7s4Bob|>vMf- zsrkKNsRaz)m&MxS{lRNwjrsOfxrR$$t0woVk((M16I4a?4eZNJtuYt5em6*$q@guh zJP|(lV311ZVcmoCxU8O?^5@jCQRV#OM2ZSOBbESiOpcx6@#jH55ZT1q|K~ z5%$iGuvfr*xoO5AH{^zz^k?Lzm31Pf`s2FO8fx6I8zyf}5%Qgc;ij!U`VTiTq6djL zjrcHgYUWw|#y9P!-BuJ_+Y903oP?6JqZKsZqe- z-O$&qcH7XrE28LSHSKk)`9HU%UC^6@`?cDYhepXjy66_1s zj-oHF(b1ZbcX5ingUZNLtXP;Ku?EK;D8QbKEAe1q`u=N7>V}8BLk43vW%(t#xZ@-n)aU7qDBqx(B%j z5tB{N*jPra$@byBJJ{{$){%FA6tOv6rkSlXZ@Bd?eNoH8$IN3hxy;!uLb;h8)8pJu zZg*0d`a#X#LAw%tt`2Gr&)I-y19lHcQ6bGx{o<&H zA@<_1hr#=7pxf2$O0ip$DqkQs^Sh9+kYezDsUoHttl+x8MA>^z`YT|F-JfLd^_Yr9 zFZ&Z7=F810k$f_5A%nLh>~?qQ>5!LYG-X@4=UH1ixxL(8)blSzdXCvut=v9tA7XoG ze`n!J%^o(??d$dhThyW^a~7CCH+y2Gurgr@VG&^gV(4X2i-2MVV!aGCrbgKd1lgM! z_Aq$!V$34>8pt;<;$iTPRJ~B$vN-2EGR~f6@XkHR?dSGuG8^(;79-Xq7T(4hx4+w; zytX0aJDc|MqnUOGx`POIsmz?6ITvuwAakTU*d0tTU7a}>(4U(#J4lQ&Y6fvZdk=%R zpj=qFiiLMlobycyalVrb_NEw$8SuOev8P1Y!?&?gFYrzYdl)j#lkS0CDyE;Wo z^(?(STXhmtp|g!}u{T#z2}eKUldiE;6^K3+Fqd zE$6GL5tb5GCahSP!THYM#mueoGW60u$=;bU6>EScJPcm1II|1#%ZJx1>S6GP#+Y3a z;e10Q9tLk>XLqKa^t1s%-`0H+YNq6!+h1uN>^$?jxgc9_M#`-xE@%}{+^)WZG53cv9sHXg=Mr34lUWPs&mD1kwXiZ_NnsITMZ~C?g#pD3#CjQuRc9^%^yd~{9VA8>HG_CVdk=$mL%FbW6$=k9 zx9EI$dr0TI-(c@yLooxMmmzjzls$ZeoMPc^40{;7mpi+Q-Nj9MhPSmPG1as5vai-% z;w~ZY$r9b)qE6;Acd5IS;A?$!gNw!liBYg-zTBdT!#&IoRxXT-ELzx=^L=LiL->*|_L$6-ng6xumRtOmIp00SrOy)z^@H{Wq>pnh>E0P8 zK0(Bc#O^7@;C)?2o?^wq42d;3_G>RgKi?+V!}o9N8s8>74BnnNGkpKH_Vz?Q%$Hk| zZ10|$A4K=;&n+p95>s>Jdp4Rfoe#0~5%xw$bd5p=Z%E2r;jW;0CsWT?W3Nl5n=iX7 z-7~4koI^5K1ENSFL^l_kN4TfEXHfXu9?B%x7wmM3KDs?e=NWlNr`Wr>j6B7Pg&7iS zaO}-qh8Ay4vWL%+=nij9co@8mab_z+?BSU~_oo@WEv?)$@^k2(F~_zDF`5G}XzCgT z46$EE+0(OOTa8R=EG-SXtK3yI@7kcs=gTeaQtz&IR}+&>FCCO3)@1werVn4wSdNfpg*_t4Lnbs{4vSi12Oh~On8_tx2%Q4J{8j5vKCSHG=q0gg?ny( z4&Adqx2!HijOM^!hskfDkRkTqD0_M~qbX~wF(c@n=blINz8O^c5PN*Rd%k-I8 zT#8te?Zdmlyx+aRT}$G7wCEdgosOK*5OXhfZ-TirYM!3CF>^D1-8*todZzn#_n%OO z`a#V2vj+>sB}yO+3^5bG6Yag(1I719jVH%C1Tv75sl z=F1(`X|TJ_T}QE9k}6*ycT}H{u#jT#22~ML4OZy7M-7Uym*V~k8Dblf?A65nudTBU zj_R!9c=v8LyLBd&vVY% zC1iJ>ZN01k7S|ZO?_0vuy!{!xohB`(<=nHsEY#~|HPUnA&?;IOQlf-jO_J+_RsB_s=xFO0Tll8b-afc)Cvi z`T$x(YnXjcmNmVxh}P0tW-rC;we~vpeuWpCf20ju@V8^_b%4f$V9=d@AX884se|Lo z9`{U!PlB!I^y(T(XBm5|E5tip&Ys5xC}ydwCE3$DLyMOR#OqYvrF@OSyRNdk!cym-U`8Aw-?j$@3lwdA%SzbqH;w zjm*@hn_7yP_1QkWWus{m@fRhg9giW~frqK-l-)&}shhkkV4B4)PcvoXy z7QJ-EH3skRmayJ=`>}xAJk+F}#NT6(Wf^_h4e7agZ58byzU5w*m+Q~b{4f0U*+=^r zKAg5Y?M`gE`Bs@?g^DE+w!+-j-6HiRA<#^M% zhxlTCon2;cus1QhfEShr=m5hXm)V;DgYFAPh#6P(S-^cET&Xd5;iO_oFAJ~Kl6v?b zz4-M?4e@3e9y8$S4B3IEcr79E21Yan@3Crnlla!W^oM$xVrE{?s+XS*qJwmhy*c^P z-%`Bke25M)eCeyw;MNc`4*Lv;>>8^v47@9;m^$QWjnrFFF7=M46)RG#P_aD445_z5 zE#|1s&NAs9Mu@S+tqZK4)@uW z;m(W}GxK&OJD6F6H=X}N$5{Mx3I(^|sWr0)uVDU4#~Hqbr`s01h75v^0_5xZbth}U z@bxTVES^kx4Bn|Edmf7`W~i(o*;6{h$)^j%J7tM?I$vY(@O!o2%Z0FbmraeqyH`oa zvxE3Oqd&ao2IkF??HP0QGQVEHot2D=_wT5GMt=rxC@um0jZW~uw_*^tVTH3^&b&u& z(`lSiA9%vv253A82HjalGC!wx=oI4h#t6@3I120?PA3LQI?LEgq{Mqa$)3mJiWw?v zNcMf5p~dqB;^Ct)zr*wS8iV(#B@AD1^1V+@jRoA<$r3u1ox|@r=*~_>neiO>c0)GX zpCMaeis#Q}^kx3J@Fs@nU3!=29U1cKfz=J8GjxWT+Vt#sMa=qaAKseG6nc;T!QvAp z!aMLd&B@K2qqD>}$LllSvUdO)4}w8=&bUkioul&{A2-S~8IA=z$LWdHlFl;rCZ@%k zG>|=yl_+MZtR>k=Izx+76XHD=6K`riDDB`wG!p8$w=^Cp-gG_^i45uG9HHPfrh{gi$yzdOWAH|lGV>Zt`RC3XVT!j;`s>e-{boYELoqLFfWTHE(|gZ?j3) z=oiMKPNF?iiEVUg?^sMj6U7`$U~ zVFi}dJ7#GN-sLL#oIdX}8|vN6V}_m^{A|EoP?DxE=nHra1H-7d7mHaiGflUN?@HI- zkOeN-jek4t(*Ibjj@f(d{SX(XGUw^OlfxB9j{MknC#y~u{IJ?@zd zp9JH(mkm$VNIJ{dd#Xab+H&?hHb5~;Wi83p>I^M57l`+?@|yEC2G3R5AB3fzYl`PH zcpWLn$j;&Sj5#)hneiM`Rkj~PcDpH_KO45y%X-ha7;=J6kms!ndA%TeXP6UmLd?{r z+sqW-rtzpH&9)s6j%FJspCFi!IEP7cQ z*BHE2mM}GMe+KU^7U<-2&;GJdua~Wmp4%5b;v}6U_q-$5pQHU?iIZ|t%=Ym9y75T0 zU&&;gVyBp4PulJV47%-i%M>eAETLFbv0P@{Oizx-3}kf{a9=b`@eYQ3??oe`F?d!? z*wO4623S;M@JiysPFhm0#L^hNQB_Wf!}m;OHq`re9y9LQ&%*mf+8N*sU=P>9y76QM z+n8D6lsRdJSIX=j`v9Q(jm*Vl1`J`e=FAHzB zCH0bFsW;mYFKKwpfTuHL=bGZBLgLMhXbj$O9(5|6%04}#-fP9oyq;ArM+Q0g!(M5= z^mjc|=L~iRGpruzH@G+zV#Z;g1>D7@Piia(mQ+j*Sv-8G)EkqQdc!LeODX1M`P?ya z#SE!8Mi#SpxX#eahywA(T3*%w%hwpZj3sPBcKPr!rpDks6BG7qRO&qw)fl{=J?ebP z;rpMm7u1_s%*@-B+QI6~I_JwyHH*)cpx_}qwSGCd$QkDFP0z+zrhN!kxdZP`mAnVu)4WV%hJWmsvDM7_gS#KW<`CUMGKZLSYF-SxV+DZ=7##J z#q|q@6X}hBr8S1NI}x8#a+@-ZJkl1;;zhf zwsKWm>n&#Q4ywm44yw3^MW>QZm|_RN7DE}fciV42%%_*MXNGls-+}@R@^Fum64>{2 z!WLv~;jw$#sK=hoceb*ftxU(vROYj-wwV25Og*+Iq#k=Qn%rXcdjYleL_lSEFT>f& zz!tMVGE{}947pY5%V{q=Q@!{rjbQus=&w9Qd8Hk(ee_tpIlHuj-0bFT_9-pJ)-MIv@>iA@I9qXND^yyF4t@z?%cv}G zwZ$rXN9AKS3#i9>hm%{ZaK8cue(aRJPt?mD_?HF_N7fR9UXi=+p`3>lrFb>n&D!Q-Af?+k6@x%&5F6%h}9Q zf%gT~mRcF3vh^0Le6)QhtfJkn9ZY}aqoy>SEmpa&U2@A`xi98y#Z=B0Lu#wSS+v$$ ztny>~@v^~4a{}LAT<$X~KhG*Fb2nM#PcgMQG=}Fh8lZH>;smVa0{=xnLyx@U_G z%MGc=Cd$_&8`jxgU48;OpT)035d+)v%a2DDXFEP@ZqJGeJX{mT6VX5HbhDxY52`IT z?96C#%NTZMIJw1!UEIEFSBf)+T_5S%H5qr`z;4~~SVO3!6dioYtByGan=S3J=lxYN z^O$3xsx4NP*FL%Bugc4Fw(?-Is)~@>+N7Roo-I~2prS_)%4t*$%kR-c=5*rb4D8tp zk6jWf?T9Qp_^95!vALrIoz}YH*$*SHCsja(1@`>l! zVpX4Z>(hsF8dX2H>C;E%RB^-e2KMcT#~uoG?CfL1$MQ+X9*fO=Wt}_w{KHq7#~uq+ zZL#6&%930D;p>W=ts z8<|mAI_xXy8z3hP<>w)S$jIQB-%sM_B^@@UlXWZK!gu?P`VCv`%>%Me`uZ z!2WSfI))YTPa7O05>&)UBW#*wXs4T@^NhAFeiMI)8KZlM&R{cr#X8vD+Mwb;pl7Tkh=1lEK_Wp#j5NY#Wf=EE_3EDd9sW+TmQlSaUlLi1 z^4!^uzsui+GbU4Keu0nW@A3D5#&^;!{@0WQVVbb&pF4R;M)l8ah_rDM&C4=0S!6gZ zrV%zT9?(vm9wUvgd7b+3_xbzDevEnj+Dan(p;}W*`3L+1I8Ablr9L+A`cC{XKMYdl z>{T}JwS0br9|2hx(!OMpl~5hIPTnqv&@yk+P-$B8oj zAN~V+dY6v^Tj?`ujuY8n-=hO!W=+!&{tf>|YCT}Jpo4q+@NfCI%s4e8kGFvMYYs$- z1c(@t_~00d7&Qk{2&;J}tes3#JI@5Ygw?zf(Qf`q+ZGBW~wE3%uVswW}TDtNA59|AM(Z&XvmlY6B1Rfv z3%@nAbAzGte4nk!O(C7<*8q`#&XY>mA|K_sL+4o(s```vE%5Gd+}&a$;x6$SV4s2Y z#U#W+i-ub-2%o^G`*C~th5RhO(U-C4RDP~t!jD*D{za!A3&eo18fWpdeEvmC4M`BV z&rrljBW%&KxOSe5XlGf>OW2~PqrxxzGLMtlND>{zYI~H4fC!-ao2JUcYOBRfA|!A$ zW87hW8b2Fv+JdzWCyKC$z#`%Fp5Fp!|oXBnZ=l)gCGJ5`XQHLL!AK ziq-y+;gIpM3`LAI!WPGRiY$?ptYs`NEs{jm(s>qFm5P{%F=Kpg0C_g}*y3|aMO?%| zx`g<-{9K=Z@wN;}d>|Q$7-@tpz9Ot0yf>0j#^Ni2UcwgN)lTGyoMdKW@!m{HkXc8u z#jlo%T#*Z>M*w-w^Rc?N)`Oz0z{j%jRs0^liC^UN*LC0vMLSUhtu-3~RtPpS25pls zqpm|ckam)oiumh#8j>K_NJ9}Ljj+1jLG6t8Yo~Xnm$15N8KO|&mK;uYtnTrkc9!|I^LVD0u(|_rO;$v-b0Fp=Yzd2r_5w$N zs2?LqbQD`sD$WUgjrr;$lYfaF zl>~ts^@pf5!j_yG*3P9t=Y!UgQ-fZ@mefZ?M}d#bl-WoU9mSSxX)8Jj98ej5RRnp? z_pv4S@kOGu=nQmIAAC4F-{)U)#FPYyG+|3V>*FQW{~^=pt)To`zCUCd%L(3L?)1K34xKw?q$t!w%zrEyVL?tIuEmgDDBZ zG-36>7J5lW{jYgM@>CRSh#C%=5H%Dr(g=Fv(y@ki zY7L!dis&u|h{5P-310wqxzAWSMdX8>fDVY6OE2Sd#Xy0hFkoZhU4|Zh=_3XS9AKI7 zP#(Vw#NQZ=5(yA7Btfc&3`LAaJa0UNHO9i4JYs4m7W5L<*e<5Y6H)E7Q?-y;6V}+H zy*OUrpbqt8G!BVK(%KnQDozkMlsMrz+2Q3r*0@O=6hj3L;Y@gqf6lMuJA7v2#aTc@ zTOrnXZD)->>I~^h1n$dq$V4Nmh`;gaFp;n#MjBy_FB{sy%f`v`wpb-j5;ij?X7jti zcKD3Ox5Yd#%a>&4vNrr~ak4mBd6&c6?qkdT)kko_fp+EL`Lo^UU-o{KNPvhT2~zDc z6fu^)pF-HO55wBI+0@R5K`&v;K8tB`dsI80sanXa30wAidx8Iw{TNM=h$O9?rjk-& z2@B31+2IZ!YnqA`s1jo#?c-PD|7(3_)7&hes#b_KH56)euuy6UJTF(1qftftO&5fT zgcUK;2y42+(9So8&T}39;0zaI(9?f;E!ed_qv<-lnHVlcqXS}Q(+7OM7$HU|Zyda9 zd~A7TA2CvlWX2?s$FBkLFP|DE5+Gto;)7!-Vl1DULfG=@VeQzacBTitge|X$X)+?J zof=gOnKfa{SG5rq**YQVu znakhL0y?!7V#`0z(`a!Xr0Wp)M_iM2VMY8aj3AMqB1RfvE5e3$HW*Hx6y8;ohOyB6-AWiBFfWc>|`-cY{P7qRF)y`5udT5%UBME&oQl7HU1WkS8RJ_TXlfc zzhW`378Aro#I|C6fF=Ol8ijSe&%fe4LlPvr)lkGpBW%T{Z0+n0YiCoIm#`I&N5n)i zQRZJ*Ml`z>cNPx=E-`n$t5({WQr=G z!4~SlCikMjR`9LPtdmFKK!ZFU?{9AA!-x$b)PqPTBB~rSCXXs0qKBP4Dx`?f+?+yK z^LlD&VpKcpX%J0V^F`#$A?G4;G-1ux(XdO3boJ{fYDtbFtodFV76;_yV66FZcd$(~ z*yA+VCK~K<8f+5{_Bf5Pi3Uq0todmwe+f1HG&QXWYkrfQYsq<&98FmBr!?4Z8thYw z+D(J~LW4c32W!b4-Ahan7y69JFIX?A?=<`^o%yBWG%*!>s5PqxI}PmRlc3$?^S7MT zk4QO@3L+&$iii{t2}y!_FNYK{T24wKtYvtPcHWL^XLz=kuonDV=H&S#pq;5w7~I1mcS%NsKhYT7Haar(;MvKSsTTt?U&RGsFy;$H{CYiH>3`PZ@ca zm?<_x>SvARxA1@X{3{po>%}ZF8!feFjbO9D`kxH#7HAv#5-B56PNbMfA(4C{AxTiL ze@GEy<%Sf(R$ds_&d`W^ndKCP-__Qg&f|H`K`w6i!vS5GBu<#W_egQ=b8f;vhQw(^^NF&y&Aj5NYljSgz(9KUu(XL<=+wJ}3fi)xw2$!sKvj$*4WGNps+TTGRQ zt$HAa&mr?)(*aykWt3!w}W27 z)`UW$R@BNoPG%!XbQD{2LR+y|EM~@ORdM9G-N)86^HW5fr~{hZf!_|~UvsS~iO(f$ z&5a$r#J}doLL!AKimiE!qL!M97-@v9`FBsTL@Y_xGS>W5B#Er0^PE1A&lUBe0n&;# zNOXsft)0fVixr{;=r+C|A7LNx`N3+yn!)ag1Ks7zSUar*WQ8OFMf_`PGbBOwdomO; z(g<5yAJonRe(ls}dI?*5S0)alG|N0rW+O>-6kGeCDIHXQ)Kq!c+7EI>i)fKiPKQPs zVe7K(Ilum| z>n5ZSwr)yLJ8%27GbPhY*t*$qO>laEtYxg59rF^l?)I2iEmq4~PCrJH=qR@C18cfi zBhH5O9li&-2PYb2uJ_|_(&=I?1|jBO?=J^B9q5NFSoiq+>)V-&HdJTCrBdB$;XNHVm(lH2X&r> zfBjdcBtDn0_1|^y694+|3W*e|D0W7eqPm&R`5I}2oiV7lI76I~tYw@ryhIXNi}IY$ z=ZP~#0#dIwNOYf%CHPshSBc9l9KxUa@W?axV>t67Gr>1!iOU6!u(=H46?vK+$bCnd}w!I4}55UfcXk9iTSPjWOmIZDJM3`z^@F*8Ug*B!E!hO}~N$XXiG%B3M|X-F%VCaR?&(-2A)(~wOxq*Y8q zY6PnX^}3FRw0h8x8o@e|hTKF$S|?KACU?lOG~^C<$m#er?+kuFKF$AA?Q?4eKJ{ui z#AQ7Qb#jp^iZ#2xz(q9q{UL>ngf$}tq1zg2?Xf6XH8hh(uv*A^*0oy5(g@ahH2G^q z)Wmrd_*#xau&$)ZKM4}r_SvT{Psk?vT4^qHoinJguu{lwHt_4k zE#g+R=7EiXw*cO7GQ7ITX!N*S@m{K^5v<2LYU^pY`^Rz!<*4+qUQkV7CEj#$ zVI^M3(AJw7)I=&m;49SEyCzw$1a+WBuzt!Hw~AZk;y4S9fn4-7H8HGw)D&@>coo{` z)+79B{)#V<7$)#3W4E{itr7G~I0Nu@z^~#EpY~;d6#?y*D4-CuQ!*q%zOOPAGSU%C z44V+t*0+ALCS-aMtcxB|s{*D(J{Pe>RkXm1U`6AE;wlhUNrpy~G88h>5v-HCh`YpH z$%?S>XAnqMbaSoec;LpF{zLprJP)lvt9Xkdcm1p<_^6jefE^W_l5<>P&IJxL@XS(j%9PbReuc zQ(9K{3w4>>=8Ke+=UqG zDBlLS2XGTk(|L|RhXono?@O%AMdgHwT~tUY-$fybP!>n=WiA7`QV>gwzvKL`JSrZ8c1jLP9>heWF2XsZd&NGm*`hB$h*yOlkiQ4`1mFTb6Y!t|w*l@2 zT!>eNhIjTQR_3B|Ld7mBB$V$WS#~elTNqNvNQ}BO1);k=acwn5$l4S0B3L+I*2#5x zfGnJ{;z6)pjc9b1Tk%z@s1dC9@v3klw+y0Q-_IeGqY$*O`$>egxVoIIuPX?ZxTuIw zfs3f*)ovGGry!*Ni7MU{Re@NYpR#om8nMLa0L^_b%{@9mb87@EkLG@eDvr*hiW-Y#+ zcFc=lO^j+}2gsTj_99pp=865Pd)+F!-x`nz-H&wxQxO93Nz$?OKt?O1E5dru6bHls z%sAOpO|ZmRocH~Vcm~K_*Rex#B}y(etQDo=S@A5a88HODgcthQJ-kZ%OZ*G0wh&hx zy@Z$a*tblH5UCNg_e;G9*86cnaTN&bt1O*sb&zu5Sf!I|wW*K+D+M9&yP&pkNLDrh z>$^-ZVu@2al;bGUbIDeX#3_C9B$BOC6Q|VjY2tZt5LzOJWG`dNaZwzRdPlqi_HyMI z{<^#fD={vPBT^208%LyG=Wk;6aXC05<-m7vMCx_^x`gszjfR6=b_}78E-ECH@1l@I z=nwzU$Ydys<2N3J_HeMqK_5rR!oeC3f`x-M4*EJu77o^U5G)+5anP?t)C3OJXq2N6 zEF7!>V#e%nkkB+5a&{Yc$Z2}W*=^h*rxohRHtvwq^hC4UxI?BQl$@uBoZZ14a-JTN z5Ul08*V)IoLoU}t5`uM(9&+|TcgS-naG*QnWi;e)cgP!XM9LX_E{;gO$<;o;5eI8D z9OAMbggUuM6~&s(EpQP{J~yNgcJGZT2;JU6tu2m{bqCF)5v<3_YH_W{$x!lLp4!)lCB|ov^#EDpGsw~iRsjvUkA@syK!N*c$nh04{yl3V4jM+!+p16weGrXY3ujJds`{DzL9@qegOYdfXHdI}12=TJMgvwl0 zPRO}%QCfwB@?9$=5vqO`QpkXng3#QxaczAUA?w5+Dq_Yr3~jYHsMS=2z_)Z?b2{kjJb{8b zP$O7B=Zg=-2Xb+og~s9#niHiaCUhLLM0{xF_>4I{EnLURKgFJ#Fpw`6ABn?gtu^cg z_7T{?h`Qnv-ULG;#11r^i$K#6OH7y)(-z*6t4l?JqFw~+;;1+*4$E9ldZQK6fw1G9*2o<;} zBoWGv2`Pl`@Yd0T&>h}7I%sl~EWCB}AeNYjw~h{~4rps4-a2{^EWCAe5Wazs-5Wqu zQ6pHTowe0etSmneHPMu#5Uf6NX<;eOc5=b$lc@vG&Y<+E2!R8ruk%c@1_X7WMzCh( zizDKQTpYd9=+$M(E-o5%gZRYCf_J$!3D@Wz#WAUgcjAx4QSm8yBZ%hi#OJ@G;@^PV z|CYJ* z<-@H|(!$rfu+YRV=kjF)_KS;8#iugRY1K$au;!gCJ`x})0NgGUw5U3HX z&27C1*5){&xC(@|BU7WNGMsCc(-EwF<>GVkd9ot>7vf83&txIl z2l!(?c{{&Rd@XR#Oiz+^CDP3)7;#h`)8V4BbGSLPje5ail^b|pEHm~um7zdynY<+KCGiXQ~7VxQaGmVX4~Pn`Bv9-)|v zLK694g%m>iw^9&t9S&=2y-C*LpcldVBBBxgkjsk5g?EWgdW~3OYEg;!QT&+f%ScQ; zCM*$}NLthRBJq>>8QPW-Bs+|Wrp0kd?62Z?u$ys2>M&jten9>a;BSC;;)oRPfZ)Jw zfWHFXg=N#QcRym~E~+3@;-Vr#1uhCng!b+VDP$z3^-e+PZjfwFS`S9a8kFrtutr2R zdMZHHh_DyIniSFKIk(~@s;CjHIe1MtB@YdxUguC3hjJ8xwydwTuog$k$XZrTsMtk? zgz{ZPC6BmWEK5O1zb3Am_$s0Tu{vvFUIc41&Hb}GH@>=by4MKSzw1MHqc zc?%P~q-U-%B|@Y|(9S6JB3Ng{3B^?)tc$XAu6;qubrI#-XDVdCN62nifeGokso2s-C2E$)kT`~-yB`Ze}ri!=H8M8hHIZ)2JwMH%|0&VKRU55 z#5MXOtdKu3_fU{fP$457A=kTxW7T9Bl1@e4IP7Do(!=08h#6R#vV*k#8M>gb|ELisKVNrYyO4Jm}O zH>Du-d{h->T1J!O zo-DE=&^mX>@7*ES(U9M}L$0GCzjudRM-zST4w;IO|6J9F&4gYTrg2fmkm>pOq6Tc2Oard>4fzLfOF~g;3zL6oj$9i)+h{ zko8^6i&$bli)wUAKwI-!*o$Db3urXgwNeqRE`z0o$?JOSR_B*h5Grv|5upMXQTKH; z(EPF#g!H{~bQ3G0)M~G6FM@Rv4TQ^g}HHCeuKdxK=8H)pWAe)56U(7F?Ny zTz}w+J^!D>nylVd6&8P&IEnuue7;y>{_DKO>SN({6)yBkI2I81xma*Z5&r|x=;W`? z5+V2>QH7xW74ssNsEOuLU`$&z(U7)o3F%yE2!RD*ZQWy%RS@(dSc9^yz7}p!mFz2t zbYHM$@kXnkbu8N7*AL15#PBtT`9$kD>o~A)`tm=){E3<$`VuO0Q8}Sv7Zno9cTq?p zwDCWT|Bf>ox| zFU*Tlt};rm5v<`|t^QX3+Ckx0BZm<7M5nHTtIj7Db_#>w+C6+ zsh?v0#Db^#5h{041)&lb6%i_MQAi?`?Bq`LR0=}LgE`v5_hNFdq1S`iUIgp?s73?b zHGDtpMX)}LXf)KVh`&8f6B@z#KBf`gJm`wwQ+kb9Vqu%^)*x$8awUw!!ip@3Fi_H( z$j4d7TPHvppMzw7;fc8L5Wm$LVhshW=4){;IUk;hfExi%1gtH_Tdcnvb}HBqu*F4+ zp$1-rK&Y`QN*Z2-9>fxh@FLWKF>Nivi_o!fv81|L9jp|DK)eVYYq?1lUW6V5t18Dj z(K-=LxP2v&?h96vX$`f8!qO8N=?K*Lg@p256p{$N;QJSKZ$K1CL1=kYTw5g(vPQ+c z2-ftdMqLABO%Hn!tc4Mca1cyaTu2o)g4NVTTZ2lKg~6M02<0dQ>uiOvXgDsWSK{n| zwnn&3q#^`vroK)!sfo=&9jFnkEBQjnkbfF(FQ^M_r=_0eF7S^v$Z>Oc6<}USi zni8ir=)qGFYTiIgJ;_5+isD2Hv=!aC6{o^8fT4TMr}cv$P}4)B`vwJoKUfg z3JK-AC?t^&fgyzq1g0S5zay@#(g<01#JmXBV^NK|2grIX>_xDijcC-@t@tce)Cks> zW!89Wd~zW4^?OhvwCY;*UHNotf;AD^@p7U7)}nqt{wPhcP6Jz=jk7c(U=2mq#nx1- z8nNf$O6Umg9hsSEIF>(SO|zy!BxocW2J(FxZswP(8*};-4TJb37uqiDN37gM6@*G$ zR79x2MInjM%VvG&PZUT&Xqo3|Yg<$WqBoxHMX<(4HQE^0F9=O_egjY3$oeNJCko;3j-xX*1O6(KM|eLZ7RtBIfv)Ckr^_@m_P zlvnUaN!}P01-8;szv3?SR$A&;+@;=1OZ|$w)LUuFSKPr<5o&IyDc^CIdOIz(MzD6% zQXh4v+)X2C1Zxj1^;d4iJ=BCou=e-WL;hMuGwv@ZRP3TcLisMDT)(>M_opDF$6-zN z3|nkq0kMR5?z|B5B3O7c>{wauKzK9kL9p;<*g^SjMZ6jIAeO+*MCV%5tr^T%++Ob8 zC|-0+H{tlmOlv0C1?BQ?vDlMKudX0e;-Vr#1uhCngqy)$5K_oMUud6cZ1 zvb_k_o~TAQ1jyPG_99qMMl`z3t@tEW)Cktm3Tu`%D>)GQ`Y|jKT6L|)E_|9b+nNLI z-aM4d##%H!!4F#Vtc76TWaEpvJg{ZgR@PXHtkZo)-FV!OrkyCo0xjFa4_UQVElWZp zvFs5*q2zDi^>TVyQq**zKcQvx5)X!s^g zFVF7*ZEbd&NJT8sWKdrho4VB|Bd7y4f)(d0Bt!nIaLJWZpeasEeHATrQ=FFiDq8BM zI4$*6wA4*;n(`_dJPn~{AuTnoDtC5BQz0$2MzFfmQr}HeHg%_wG=epNmU@p{aR4=; z5iE{>IGyLf6N6|-{41mpt##A*etIolE+=bz1)&lb6%i_M5tV$|?P7ciLKoAi;@i%y zG=Q>o6B@xUTi+K@CEbke$mRL(< zE+@Uw3h6*tr&(22y|ofrcU){%gc~(yCYG>OIRYr z_6$4slukz|aT!?ygJfM6)PWko!XL<`)>4_vNso42l(fF)wN|6G3|$QEjAZ!zro@Vt zGONjI0>a%Qih=xz6&u15AsH@ElE_F$2)u}_T9d4cf;vzmSdVnJmRrk{>5=QXOo@;_ zY5k6m)hjIA17=Bm36hndv6ce71lC%(zsQo?vT>K;j*`_^uC&%$7bEsT{F&}3D$s7r z2L76LhJ`zUxX?(nY~n9y_z2$xv!gUOk$zJw~S%%mnXf|Y~MdTR3e@_~BDl{wT!Ij!}|&VBV-3@jt7b2*`6 z7Zno9cM+8w=yuUL1)+-`aoxnp`qt<`F)xBOgytSabFUmib87@^IL$rYtvH-2Y6Pp% z9%h|sUF0+BYxuReG^HG`u9fHW^Q?q*7W2Xrz!G51x$rtk@6Lckh;0riWTYdMcp$E= zwGpx&hK(!TRpy;wb9xLbRb)F0rDqSqYEG;I}ldLNJj`nV~+KbNfsLO zAXq!ftWDOYWP0S<9h3;^bs#LE7|F`e*y-)~W!9zE70hVp5EETRcgY^N zUbC*WZuS`s8~6jbiTkl=_w-lrulROr2gKHJ2pH}v)Non8y4gEC9A*JR>}4V6{_p7s zC4P%*>)Hrezs0tHv^|tE^qn?!lQ;eMCPzJ=U(ni7;1N zSEDt82u|Q15C`7h4`Lt8wf3wN2$d)V?VN!cJy1;OvT}(~0{;x?z{_G@gida3LxI_3 z-5Ax@17XUQiV%2rSX+BdvhEIg5v;wG{?%Mczn9X#>ZVUc2z-vxzZazR&ry1fV10wr zX0EZW#gcv830hw~71q^uvvyjz@5)jfmBt^xnXTZO|s4n zdJ(MK%B<_G>yqh_3tyZAA-xWS^$9=Cy57P~U6#fRkgOjXTYp`?b&GWi(7>=b7B}?= z+Haj_-D>>uX6=U98V&)w4eZo>c>SgKOGqNbo*GifNJlJj z28(NJYD8OSu$ULYs)|{=t=%%0lip~BbReuH;$iD{3wIk>T8DpP2jE`*nTa#b;j^tf ztUJ&eK?HBa{0?k57UBT(d&Z^{2$d)VZOcH7mKGDbx?CcZSRbXpt7Be-PIkAUz-+Q` zgvJS68m3&S2!Z(Y?^vr%vi1bM2-bl@o&JJ6vYw%e7v@sMXQ<+ZZpBoDTzL25RK(@0 zawRY}-o1DbtY7&k>rU$~tl~~N_dq;5&YaQBy4$)NXm_^!y#=h{ne|bLusXZL3K{7L zfvdyXdcY)Wb;+w6+ z*&A?H+d=DHG|~z_CBCp;P;fNfWmJk0vhMTvBlDv562e=Y~twq1$sNWJrY2x(tO-Ar+y*l(4pz2FaQd^deY|A?sD^ zRhi34k6bR&fv`661=bS(K;K>VkAK)5PAefOj_Y{21aoGA=ns}0r z#?J|`#Kw;&%(DJtH{&-fYAUb6Zwxf~iW3{Z;OAQ3ShyC%g?_+3V7PdwX+>217J)yp z3GDzOc7@^mJV82QiA|wwZQPHNKvb+dZb;SD4!qqdB-e`q%AgpJ4T0dI20-_1G z$CSBPVsnPw&HCBKZ=E$=%^$%JAWZcI6Px3BF8yNR%zYR70gng!1>(+L@FroQG=jFX zSRq)Q3#BDdzKcQ>7@|OY=+U_xghue8$3eG7$ijyn4}ygcJr24*Ko&mqco3{9CDyO1 zecdYhIxQ%X?A~b=-MdKVLSS7$TL;|qsR-6t`~&MZ3uikty?UJdEdaR`X$&==;C0p? z)}L66Lp_yef(-`3xm-=}lvAjKV7*hU5F!s1N=u@A7lkNL-+~`j3PNk|#kKWugwnqk z^CDPZMm736K-QOGFJg%;nWpupg|mIAd!UGmOce-}TOcjjsxy#3u_ZsC1AnIUX$XNO zVQuNLjaEqa1#6UP{bk__hNi#VigjhS5C4j_TKz4j=Sq~^Aqc#x)Mhqg#&W-GVhWz? zTi)VFY`-1!8O!qrIQOmpAIzUPzYVXqO*<2@1-+GLf(-`3srAcCy6RAkV3iargvetG zr6p0mi$WBr@6-<~1+m2W$Hlc(uJ7;<6!Rijc2uLj0cyeydl9VJ=-tjltGauj`7Sb5 zAW&UfX~|ZdfzW+@NC)Cwf%++ebcDc_VQuNLjaEqa1?v{m4%oQtV7cv9e5S$<*&!fz z_0NAZU!vp=LEtZ?7%2=3XJOzs8?fIl=x-0Ovus?NuzVVSTuj3~@`H&BIIpu~b~Z$U ze!wAMF^DsJ!^8K$grLnVQ3%$gB56rf;Gz%(hA41S3PK~Zayb ztfgTug0;ES&Q|T~R?*j%utc(Zr&V7_gqYzR;;Lbq2?sDof_FHy*!xG+>CEr|+T6r#Y84!kgwf>`3h z+#GG)pnsPEDBFu*b%|uYGw@u$D35<)7uu!JULS~`pTHNj|AYAx7fs*|cClT8*f;tp&jcF+gv0yG-|t4D z4ubW5i9(26SR^fp3S1PTzz_v4OhIU^F-Kdt>`QmnnC(Td5>bu53y_rvdl9UwO}oS{ zL94oZpzB>^sz9Jy+e%Be>I{VLcZYP~?{2H92!RiTwWY_#BDzTT1?z}ux3}9fV?_p4 z-0H8eJJ=mi(OvzmdHE70cL+;t9Z+g_v^yd&Bxjt3{kFAl0q$KD?u!iN>z3g6SBH5RVbYHM)O}n?<8*hQv9Xkxah5Sn;61tHg7Li1fK6~TH+rAID&w<#+k*Hb~AUL#oV6xk=( zIK!O!g7tY&qGTYfzf0}G_F!1`0pzN|@?Uylv3;U_BGB>yq6Uj^BrfIo8m-9#s=8q2LK7=f5OS?0bfs&hB3Sr0!pU`wYbAnS1Zzi;eUg1rvM*HJ9h3-7=s;Lc zmf9!VIGw%u`T+V`h=sl^!iU@V5A6Q#>gQtoiOWikA=J@Dg@p256p{$}?++9MBt6wva9SWu%n%5$cKvv6}TuQ5t1EsyLdPSA=#5T+WL<>(UaL;1nUr4 zzq!^SvNVGARR?>xJv`YLCi){wA~fMzm*KB6iiOWZY358u`N`!1NQy~P7N`?aV((v3VXDT^ZHx5X5%FO#dvL9zCKJS>>^VlG||;m2u-X{LCAGBp`Nal ziePP2>5;3SYi$hb^cun1S!9o~@x!dt7b@NzlqeYp>p-bJ)*cIMKmdK!Vfn9M#rCQ8 zsX#*p-~`}${1Lmt%-6`u1FFM}S7e3>g89=5)h{WAebz~|+fd;ZJb1a}{ zg^=rN7hPrAGwqo`*SqNc3VXIa8z|Y>Q~44ldqu9p=zorle^^^?b^A|a{>1jSxpuW( zjcm73|J&P|5+U+7>OT#!#P$-h?xN1NcTotr{^6pLrajM|2lR-Gsw?aoy9UT@Y?JnNyGu5R6+iqh47y?v;E6xVsGbSX6NEOFkI{TlvX*=tpwx7P7URzs&x%Aob?r~?P znXo#U04KmH0RLNGX9ONvL?sERpT<(6#CvIKh~+fqjh=>^tvwGqlv$9 z1)b%nZx?N0(_mUcXn7AQtEJePsWMmvCZ6WiQV%I(+`+a@A6K6{&fY21=9WHb#Cy?8cO5x< z>DR(eYR~5|YZ2BT|E15%+ngA&oKi17hN);P#Ky`h@64W>z43ZtuWrd))DbTpWk@AWc{ORprXoHQDJ3uV>OPU5_-+b?-jYc z5VyFHw}_5<>jI93rDM51IQ)Fe{bvP4WkpCu^Xa*(l3s)6P(@x3(pp!MxVR}nu)qqh z>9U!d2BoUBURHtn;Z3Q>lq!i)>1a~U+AT@Q!hzg7J&IIJ##5VW%?Oblj?mJO9IdFZ zVc^`N!Rd_=3cA0^P3v-emgFc+fI>+_lvqnh7NuZMO0t=9DU)m{Sbc3tgDK6bo(@pm zlv5mYB3)mwM+7PTT6K1pL?MJ|5na|e1yHM^(K^t`L`H;9MlQ=_Qan}}D`k%p4+m3T z0;QO$j2bv^7x1o(0YFaZzXM=@=Xa#hfuQDy5Hy;~w;n7;N`Z0M>DrZh;t6OMDIbU#xXU^I+ zaMcS{Yq#^GGr&3iqPE-%t*?+X(#;b{0k?Sxd@KPTGxm$^D1{GR5=j`uOALsX#uLMn zwZQ%R;D`jKitGuCSuK1u8sgYkegEnE-oqzq)?rQv0Dy^ z0vV#**;NN_BX_!_N!OyL(?G|;QNKoxzZACgu4igVMbU7eAUwBuNo!eKOf*Yw;3Z-f6Ejol_n1=oa>jZ?L z2N4F;C`lhLH9txXgkx%djpK5`o;gv5RgPB@-p{3dQ&hc{$Apb^5Eum#JlxXbu9NyP z`|jJ_(A=)@lg56jiWE3JovR5fCCel+RT5 z&}C@nt#j6Rdy0sFDu35$GKMjsg)AZjMBC&>!eZt3e)YP{cvkUSYDW7HLmIB&@YO&U z3vdZ|5hc{%f06bN8c97V!8%*7dmIlLFiPrYRD_P}u9)Vo9vT5kFl1he{nIuAmy@t+ ztMax?JBw}x02oZ&twh&%si@7UVX!?Vb|RW!1!f$(`akqVPWcU9 zj+Jd&RLy1Jl@WA-m4Vl3`papW>f)7^LX|SN;Z`AtDN$Hi6DG1t4KOTbp+=NC?~<SAo>x>a-vsMXz$}KEyWEc{3MMEv>kNO6nm;VeZw&wtQr+ zuhpH9m7Emy$K)##8AvBvlDN*T+WY5Rm}^U=l^S3LG9mpa{s3Qrb>Ud~VCQpiUcfuA zMJ0ZqO)3h&A4nKdwrgSrTUtd%CYnH3W(HYg+3(L8DaPv&L%w|qKJ-iIr%L_@rNrMn zHY7es9rp@B4Jvr9E5gTDzS!y+#;l;zB~82%0&be}ea4L$2C!FX#c?OLo(W(ITc+k- zlJZ=Kovdl;DV|Bd%1O?YP9M_=u6C9X z5y+&5wUl(Sb(Sryi3mUhA60mT#^qQ!h<_*!hgx}Z|o`?O6qsNx?(sBR`W(;B^cK1{|{rLNN6T3>B* zKdI?p+L6xV^tG(=T`xSc^fkIrKpal2V)L|3YTr@-U{$A>{Am|%(lA#y8Bcr^n-^rX z*Kb|8mje&vNSiuoEVfrLJC2t7+mLY`YlHoZX(wCO6|2~%X03^-jjgS@hB3=lR%dKl zEjJVLsR&BLCnM z+N78%1!(y>@PzoY8)C|{l$t^NJE_^^=x+*pXIq=6#6$G_`3Yy?kLj#n#+c%2JgRCL zoeXmHY5*3$iU~Mg?~hEdPy@}qe|=bXk~p$lz@kSfdj<{*0QhanE)T@85VSN_yrrKf zYRbB-Sgu_HMs(NWmQj0g>-}-e-1t--Dw7ZSNyFHd;pM5ljZwnB%2nyFlm7lVJ%*K| z&$=TET>&N~Pv3~QlI(?sCapbHjbtH`n$aF#9hmn)Uw1AF?Vn9=5WtS zWVBs|m>+VBSKb|Md%!*~CCFlCOh9xMwsG?bjMvkJ8B=uK=RPPDb1CU!B~1otWsN zQYLH440}V9aJk+eXc4vQ@EEknfrgCrBm`GfSc6cKT#wn!$mxZcMVA<^6yBv3@d={_ zVwypVt|Fux5?+m zyC@<-x-82dg`x&`33MR=C zR7V@hCyVjwD}cdQB)|%HC{kt2%F3H^gR<6XkA65L&d_hRchORQWMP zDSxIH)DN!%ybj&S)CJ8an}H}G2dp$#My`5&wK$>rpZPqE7v8ClSN?jg7xr|lhEj`b z$AXBG<0FExr`EcB(8Vv|QSHt>(egc3^WPxor{?hZc@*S7CcSUM3k~mD%}fK3T^IxC5ojFDB8BH^i!ZoRT2?Q zvfpSc;wgVF0blvrU_2Xr0V$=?q5W$};2e#{47xXmKgt@P?{-S|Z{? zqt;5vWA!1)gUM!``xTKX^Q2K|&#O4`W=NNItkj*!FZ-^8 zPA9@oov>t!(nO~;Z$oeuU>B4|Ik=`mkq%%ti@S8s9FFO376+GvqOEri){Wh&%G631 zNnCp0(9ib>vOp8?{&FmeSL)iAoD!Vcehf02oAUgrhB0nV+;jZRFT}At|;n zWiNuWx{HkXrPZ1AWc_u2iT4@}$Y1fC>0-YLZ1o{7_alHB{fOudPs(xd5(M!|$~_cb zPkOyaRcrwlAp&b6#;W{+QSR`6RBri_B!*AkkPV+35q?E4XaKE?mjY5+R5hP2M+$>q zULxEa(`PlT0aJjQS)xZFN>Rt5MT%kcADqKi_St8LAQ0%gDUj%yi`|!F8qW zYTJ`DjqL>@0<1{l1|=EO);^^VJfr?aTz*AB%J`{7luiqxyMwG*pQOE0oe(MTt>X_4 z;HLZTfu7@oFS3=Vpb{ZmQvTox5%F!ij}!xvxFDRQ6`l!1a5DnK%5I^_Bdf}&etWnd zK@EaN@x83{HlD-!67}ABcMPK58BkWX^{b+VJi1$P74IwB#mdOC>yYokApNxTz~^6M z9=Lf=el}#Duk;s^romg+i)$+###flv`G$l1&#>7(&WpW-2aamd%S>YhWBv-+`ia6}5U)qA@MW+Ns>xO&J$aJ@{>M7%yj*v5=QuKd%n z_Zl(4$Z+j+e} zxQW2o_)AJQ^2wZ$mLs64cvYwpS{LzNs$`0;8P-yxzHfJO6$MmLw7vjXX%rthk4aZ< z&E?6~OiMg25h0?6~ZOIB-i7(8h*Jwc` zb7-t%Ljesj%gYh;A0ms~ZLE=1O^W!hK(C|sv^o&gxSBnbcq}d5<|BtR=%;+h3s$*! zM&u?AgjxktlFHj=#D(c=8-BfCr$Jky$lsBzwV zo*5Jdtm4T&LuxXzh{xS^s0#(vI9&gZvnaCi z^akV;hve`8dvu@sa*}cFl4dKmfaM!P-m&vH>&Luw*3cb6;wY!dKE;w*Ejd}!$MDm z%Q6u;;=JZ~DTU&TfysYE965a)k{AaS9ves^&_oli!yf!=gH3z2GL?CIM4FNS9xav} zEo}Nr@?#>c_)pcFhBYbPg&Ao3Z_W&BX|u#ST(qDXL75{0SW$a2Ob zF^6~Q;vCKTGkOCbUR(~Q*c>kB`PP6&>RLKCxKOmnJQ>nJz(P5XgDVf_S&9=>3R^^y z2xN|Q7h>qNNP_vm68B(@5%0H2GWNjnoJD5~We8Uu{ChSu*Uc<^b_E~N=>ufBE=ljR z2*f@a9E7f(oO%F27D9yy(@0k5w#Nd#JG$9$a-R7gmJj5z6Q!=6_$0o*lkaSIW7`ju zwD0Ax5x&Q7n0Ba7j+4AyyPH2P;(Aff`X?u!Au@ldbb3wpt}5VDBUDsx8e+s zXlAs!UC|WY;!5F7MM{_Ikr&p_E}XUd7eeKnEY?2gjl(US$51BrqOq??Q>Z(b$Kf|~ zJloW+i>csLEd5JgRKdk5%uy>F`VZ@2}@xCL{EAe{Qa5v}W( z)d0S*`OoWLqc;L4|E3K*lDe3`m?-?m$E#enBYnlIKiYBn?1d8SJr5+54t9@H#UJ3b zZMP#SHQG~l{>l#5?r^`ozWCtbet=#d_tz8iKfHXI2!f&r4vaAGgI?Cwv>5jo4ZrZ} zet|0cJ24juD6|fJGr%ok?Djy=^nLY=eFa_${P+@-PC>o)ICiSQ-ey+68Shu@5E)Og5j@V7$+N?Lhdy}wm_~%DV-br}+B3%U zt$W&1354kmwiL{H2j5&J$8LAOxJ4E=XB`fYI6X%fJ-7Z<8)~795oirUHRoN{-9NB& z4g|o05gfQuPX4<&hmD%V)UP(=#Uq5wh z?Sm(namL5L#TyFK()=<*w>~^VFH-ME~QpP8`U|8>B7U6IzM`y9FvknjG zfLOv?TMaoZh3!=mUdX*&00DYqPD8JB4p-0H1gyEGuI?V0LVV!aqYZ;x+h+%Z+d#SL zjr4s_rRIQfw}J)$D@m>JOf@F`M$C9kF!VDjb@SbmTA;6QgsqR@tf7DAYEU?M9WqZm zoO4G@aGiG)v79)e%3>oSTm#ZT?6Cvz0tR>?1-zgEURc!YjTjb~%sGz~oWx>dIPqqp zmxobfy@XN=*C)N{R`f7ylIimeDa7oTc~RXRlqEb;`|lTN}Mn77BTeJyDh+A#TX zs9zH(8c-@<8*1a1tjy?)>-zf;7wd*C|#f4_g?x$HEZK3vS6{9t{23TmBtJ-#8HKH$r~@nQ5t z(78I-57_UKbfpA8a)dm(g*+m$7Q08bFB^U`^V4dqE7<_RO_VX8s(=b8|N z3o@6VL#{VmhTW3gpHjBsKkUCXq!->U(GM}Wc6+L)hjnTshq3&0Gf9bV-yRY4y=LtW zwAAVN;q!L7&t}~i6TcIYJ$B~<-i2oOe8W`)L}-bN{%ZlM2w=K;sNc;f)&CTZ&eS7+ zfqCAS2pwt$VeDBa-y_PrVU_q$$KU%_oYiw}S)l$Tc*dIX2?}$);$FN#zJ1ZFTyuu( zyE_)Wf_F3vihtc20FQh43F1HE{cut_uKcu+ygrP$AUP*To(_X`HvayRt)4bpEWngNa|}I%RKEuOA4Qw~qV+hs^kO`9y}oL0 zba&?d!;;#H=0f@NLX=Mv|Em?0mjyJ0H&qZnd|xi(^DF@aJN8yPdHe4_4J*keEVeWw z5h|h-*s9F!ESI>t=dz)}`bYUIC|-mGoP)Dj{oCpaAj1#w16*>6*!lH{;j1v}`ZnV4O~T)sqMIG#-fT6a z^bqP-LrrNE_th1x?kQQa&oxf672E2~VqJjEKZ_k~Kh2mgHBKE}Unt%nFIgCZrO3R) z6ZC5j*E;U%q@F4K+i44*9tPKSBOgu@eB1WB|8c6Af14`%cG?+@+;o9}6OmUG82;FV z9!sNJ$%al<=}hh3J(MRS`>I_k+vtVX48u(@hTaU1x2M4&PUk-5je!>hGqF;(;3#zA zXt2^@AI&`q-8}t~lF>H_aoC^zd^v%jr_cKYsp%pJvN$XnHv}1OtdiYTIRSl=qYxEx z&o{BiJLz0Vr#DlfHw>}2MTe_+iC;;~6u+jH`!#+FRPHV9iVmKMCdy1q1i_Vg7itN9 zpH?~8DhXs+x1Sg;@MB-`C@Lij_z18T8EN|nN=-J98Q8Qt`ZKDwrvTsb&}{t~7$7-On|+`t566Qri`2 z4PYW&9P&aqiQea6WOqR9ZcYU{Bg?d{kPj`Nc9X?qdqCPtK8jM25E2DgJdhlhBEJ<* z4XBk!cD`K}2^EagQS!wy-oQdUNIy=go@SMavm=ks7$(9M@x5`Q#edo_aLa#s4n9Iw zp<#m@rPYn6)sJfqs&_|*>Wh~3#47lUDvhEOZ5QWv9?7omKv5XQOJFOT;uOz`W4!TO zVQGGS7|jEGKrX26{}sBTzmfmx8~G0TL~lo2`3uVMG?oY3?6}4r@YHSPuD`ukiV)>{ zf0Fy=_6F~t2FKa+_*7~%0`dmf55ND7^Npx-szV&wT{P@-Q!$c*Y!J5Ne*|2rqm|pn<%CRKlpna>Wg3F^2RaR7%uuG`ASAb4mS={zBlr` zuF$K>qOi44TFZhB%^D8P`Wz}8Q{^;VA>-O)={ev8!E^~}v@&B6t>#+0w{k66-8rNx zQpZl;oEq!I@vCe1YEk^!eCo#HJV6WW+opQ(b3sgLTmJAtmY#r3v1aGPTe7Ix5? zXrG(-PM5?@1l-HJ0GfPcC`ySZc0YND#urw`fG)Kg0iID(|1!GMVlzL=y?|(S>12Pa zcc`N%>O~0q=FI&L&f!jfaY(u#>WnUR{?gqM{=^tQq&d}vHG1$pD2n=nZxfEl?nG2_ z{Ng%=%)QoFz9TY@I96E(uYuBDp~!`6fU6S}-be;(?~Fooe7kGQ@XUKhY0R^+Ha`(r z6Y^iZAPAP6a&!mHHz1+fTC29W%51DqWM$USyaCMGLZ)wo4070Qw@b#X zYxl!J(Cu?S@mh|w4ePCu+4aV6`?O7vWe;(q4LSe_F3a;m;!mQ91W`*g>HUOKtBHIR zMe{F^8A;NBK-d>lQ}X?eFLD=GE!NG5H>}@{q2G<5-;J-|4Xhsu-!P@b3Wme%K$c-mUNoBg1$B3dVTiwaI%gGJZ%N*3}<$XJH?uFxa_sMU06G{ALH*z~-?wcw4*&ROe zJ;McAxI&|CrG>3v6S`~VOKKl_6-Ch##Z*AeDwe8v_AUeLpwUl`C>Ae8a!a}BKK)ms z29Y_oVjXMUJ;k%6A}N_7IoXU7W~5D}O779W#c^kvYfp?9u);^O!pB4{0w^4M2~Y9tT;_c$PGJjo__na{jTgk4R~PmCgr!qm&#!$) znxE&Uds2@V^8DG6YnRx2SmQ5RkRLwvju}UI;s8Z zmD{@*hm(MN+jREa8!q1-Nnd{w%}Fxcz2ye<2E~Kd*1m&WKuML z6^d^InUG9DQ_9QTXXR zAydZy(I`5+;XO_Qy0zp1Wb9)#-E>tWBP18PVS8DQe4V)Ymi=N`5?=^vUkWdC3@`JG z#Cgdmi;`GUph^qq=ZMp8wCLDI;o()tYh2l@B27?9?7l(Vt0Ke^wWInjiu@31CQlQ@ z_X5h#nYf9*t2a_1uF?b&f!MD((8gKNMp+T|vQ;&me}l;nmy7TfzlnS zNzaB|>Fs5`Tvj`9Ry+FQ(Q*yNsaw$c7qM8HQaGEYtgSkzse{=J z6*AyNo5%Sn_@-p^&bmO&eE%r}EO{5yy2_O7Pld?i!OT?v{l6-f6yRpI?Q+YHdr>`I z!~$ai)U^bo^7^@re{&flx(@y!ZE3H#brtgff|7jf_&lj?K@+wT5w0=$af>z)PaNi8nA0a#h|1tC~P~jhJR65%+fuTf(>_tWg^Wz#igh9F`2fZyq zxh+C<;M!Bj3837a@Y3Ee7DtP~)r$fffo?MVU}VmE{5`^6P~h z;Z9E`9Uvm9Z~^7{lM1M|Gy<+~jmrr0FECN=CmQDk#XF*qjz-!RC@@1Z? z`YIkFdx&TGSFlyTcy1>U`IhV-Rlca=l0?p@Vw3Fla*DU%+?|b{IBq}<@qNi*$G4GU zJ4H{W+W(Yo4{_hyIUMqzj(X1}+RY%_cb9auLv->T#*CYB{}CQR#_Cy z2Kb&}ALo)zi^_!Z%0dOah7ZWK5>)dV4SH4bUUp9cK19Yep4dHZ#O(oIV<&ZKg#Wts z9ajOd1Nsjt|stCvzsg8XV4K9vmaRaM@)M?ZjIv$e5? zS9%strBQC(Wqv)4e65NHGXS3(5A|fbq-O<-i^k5LWZq-v31<6=%`9cEvoOD4l`!5! z$8*H*bMIVH_@$SzR<$n>0Rapog{8Rsh^pO&wz#&xFcZb+Wu3+YuPqL(2G1mTKF1cf z2DMOmqDKb3BWcEn-S^hFzso>7zsvpT7xN3Gf^P^AyI-ts!PUOWeLg9ccg=gCdK~b2 zJL1mmhw#|L*$h`<0qAXJBL6H0C0-&~)WvJkB1l-Y4U z8H=N0ziKc6x*-|0x0G0Doa@%XMl~w~Ji}`7( zLbfSOE$sfoVb4kD)XmJv>@e1bf&;FKZeh-P@c1b6~D;x^xs zXW_w~EyezTXL+q)dF3u)LEd(fogihCacJJ3;GEf%PARZc%^IB0XIOJNFuEnm+QN2d zMbh<7WaE7nV}BL&LP5<=g9TIqB}O?YpKJA$U?y`dI#5Z$g<*KxN@nH7ub5CE|6GAK zQa&3^DX6X`RkQ@@U52Xnp0_NERpN-rKQGNOsI?3g)r2kl67o5*rz_kQZtVGjOds4=Bt8kuN#~*%b+o+H6L`vnE9$eS zHsBNNZ0CEm!+`d~p+L8XI0o2REiXIxp8Yw+X|FfY8d?4V`sOo#MZ^DGSQ@m~ZlqmH zb_9K`vDLc?wQ`gbo=$sMLD#>jA-XeJ*Ewr%tlZp+7MvRC&JC=YR=7cAF)YPmU_8Cd zNGgNxrJ;KoIIqEytR`r>x)Ect=11)?DJ6+{mopZlbKH)3%$db5uUvQrzew z`4Gi(W65Un$+}dgF}ee)b3*^*#*m#2o31)k?+u$?@db`PKt}2Xs4$7qVizPwL8>s( zKCP#@(SmXpegQ1p^n%CGuI~2_q&S3DrML%`ZMokzB)+dDzBz;iydaAUHTy@@3w?mP z9huc+Rx2LKD>Xyi?>vV)J#&yhcRFz54$ci>SxLV)v#Yi!=$wAFzhEW%0)B+AI0oO{ zFx(|kmx0cKn(`NyEu0*gOVZ)5db2(^!w|1TibaT)FZ0I^dFG;_Zi2vn(DBHx?-kD| z`%f(EkKw%@B1l}B;dYzzyB1_uj(7O>>*&C5>aLD*cCJh*@64{-QvP7trAD<>e5~81 zh4^Q_l*b_Zj^t;ua4%TzhqSp$&Dl!LxyqH<%9SCFuE5Z3F`~}USZ^IA7|v+R8zsmc z#8>^kxovRdt~k(V@X1cWM?CyRfuPTK6FfCR)Z>-Bc{&05%Ke^n6aQFljw)?y1Ftw5 zC#koTM*HYAP+_%?`S0%wp}7tbvvp43wSCli7`8;tN-yw6FA7MkR7PB1@J;deduHgV z&lczJ$~q@G5r6P{ZT!GjSa9o3f{_0!%ww4>$@_5mb4x7~;Wq9P_$0qqe4FIRg5P7E zB+Y+AK?$FdwBXuDxP)4l_B*ZG`-2im7^5dE39YU$RE?X7*0L40{_`&!qo;3?{&VoU zSs@86Ulj7H?y)c!z=EdK6DjDAY|6XRF^?}!Q4$ih>P40p@^SsoX;#FUTB*GP{c2%r z5MvI5@=m0ll-3bUl@mpEVv8p6kYeV!j!D5>wDCJm;MhBdG2$MeerOY3w8ZS4Yeq?R zCzWqCFD34Euorv-_F3)x;Ok?SfanZ8ds2$5@h#!*ykh|{xtf1oqHnc;GS&w1QLdD_?+#rJOGJqnn)L-3THA_@v= zD~>qljdc3M565hI&RQiB2R$C#&cHJ&skvFEX7P&0;gdtz&C^*`=>!mNhmEMs?H$z2 zlic|7NmV|FmwK+`Y{fi>N1YQ7r(sCCfF&+`H>PP1p>N0N>O|=3)Kyv(#?g702G;*} zYNUE+La}laXLL8gE$QZk%Hh|-D!Pe?>`$0_*Dra{=hx2GKbNOzz!h)Kmx_vfl(ED- z?()L7T8kx9Wr&*BB%=aAkSz?=(w`I3PzI|s(3Gf>nBA!SS34*;iOrbEnG0cCtiw-L z>fZD#0oTcO41%w085@f5QU9E1LPTB$i!YPYKZ|d@pkuBP&k2H<5uf@i3BnX`;S3R~ zKtS5E)>U}0{n;3pOfCe&kAE7_wyGrFv(zB{l9E|1>Z~a6V|TzZU|ot6hlmxOjg=fw zKp_z#@F1Izcg5*HqmFV`{lcj1t@sYvWuM)3NzFbtH^g(G!aU~KYGi4dJ*yXZ=N8ZT zY9qPeyS$u{>|he=U=r(K66s*V+Hi%%YR5RcWq#Z-3lgz2SH!M*qL2L8r!QDl|BROh zE)&64jwC8)APG8`4$Neq4GB6+c&A+G#@l>Sagq{o zM%}eS!f!=-Y=(Jk>chpw`$0n1?BB8WH_qJgRT%+fv zR_xr66$=L7P6p#}5TUgU{Db7;seVHhMnYdCh72J#;cocmx_^Zwj>~iL{KSAfJ|iO% z1n2X^>Utso`{DDtfP7qzGPdsu3DuXd?+V)XY67eXztUxHjAHF3x5pESlHkKRP(V6P=I$BnZh)}`!BJu<0xFHPG2h=2JT;S zSkciCm|;&i4|S@)PRVlXdxyBbiZ#59 zHe|P>8O49pQ#DyBB${5GLhKyAt_f|vctLsA8_q?M(#U7^F3^`|FNKY<#KK<)3T0p~ z#f-6}U(>|DT1-@{r=;KNUe`MMV_d9lVC!NyF&SQw%edBplT(N=x{4n^T8}U~O0Eqj z(BRT$S^#f4oJrQuJ0~c?S=f#Qx(*HcCl2I_Ucyz70VvoGCTS@#M>8eM;~@3}BlaW3`Ysu<=EiR5gTPT}f?9AeyLy0HfR0jtJ_M5! z5~?5(q97ciuw_WjgUCjC@VNgt#0CDJkV~b-HBXQm+eP|hz3n9iUs;NN7|cj?6gY@< z49u^DZ-eqiy}#Pumm6y>X8+Hpm_m#DgJvc(Y$l$8_Hc8AKbjm(-x_i(1My7<@ofe1 zotX$b)l?{V#-niCqkQX+a(IDyh%W=z&AQtu5uTBV9g*d;5llckJk`DRdzkTAt;iAJ zQCVMLQ90KdLlHH6RahYrj6@K_%WrRkQwL!_OUack#eP~Z%#vWyTQ7WmL(p{-93gh# zmo3Fk6!4!Ao_r^QTY-xC$Ng6zXxjs$3l!dN_)B0mdZgeKU3ZQe^`;EvrVLV?5Tu@v zU)0uTIZuoq8uZq4@exuE++dLE2aSr;gC!mm8XUJaHCK*ZADseFTQth4beKhR&-lOo zxUFNuJCfBKQ=|`a65s_j4H<$=5QF9!Rpt$+#3$&#$&A!n)uL%3D09{`r@+g>CuCZc zUxe@*eVoOCwT=1?iEy`gK=;E1sCf4XnIH+PpV*Q=8s-~r-w&kO&$<8XD`G-#noNvf zWPE-MUYLujS9X;QAA`SR;FCRC&y)bul02Wn=-@%fWPC4KWhiV>$DUj>2}|at)C_|; z6AL{bn5}Y3(5<LRMXa?CKxw-L(aZ->8v*j$Z*Ae;f$l!5g-xYv$i(iKtm{6XEih^z(IOIU0wd zET(wL_@#|0iy<);E-OXc$neuI*z9ZDYA*`lZH)&%7ALevMLL%h{iS%0ULU{gsVzG+CXqhOkbez8Gyk&gvH0s|98B&1p5+Z4LF{y!fX$?r z4#`Q8p;zfJ7bjTymV$%c32Y6%M<8U#CHS3d7fbiG z?7)nluFsaB5)nJH!$+r7vt>yabM`e13-VzuKTIzFYE01YLv4+YuSZgsB%&A={tO%E z!~VFU^nb$P{Mi>ialOsX6p6S9|noxnSwJw3R?%cta7br&N8HvY`kU&sK%!ex(}*C&OM8P`Sq@dup`OndZv#mN@qZ z@hcy`j`kk80T-64b7^I@$^ zj-Q0`@VRcb!%2^+5Lh|k&z#{)W~v2xwk6J-dFM}%@@H~%A>EB2-Ay20lJjS}r1Cy| zmNt-NIFGtVhe#z16`1I(c9%0tZ&F%*(gj z%eUgNcD@mt@8bqDE5Ka)_yLF1#Ic+b(|v6js@xLOer=ij)SleDy4<|A+%zKQN|sPR z(B_{=n;*or?~c4He~^uzVw)e?(dVAPs|W$U4Rp}qXR-KtepF){#a@9Wv5fSq2q)qV zbhD7F2)MK>%m^9eCvTBMgM+0QgHwDYcCjROfh2YjB>lKDuoV#DfS3tA0GA zoL#-H+z~wUM-=DMx>9m3I=04W@9u2x?vXT16s02n9X)uv@tDm%GcZx?LX-|7=_0;P zP{V#6B@Nm*>Pk%tLrpzBb4L(b{#K^2La5yHTVo|9*MbWwNhPTaTRQz=XP`hZ1V%(F zkQAM~;qnvXbOo@r3y+?LCeKCjMQ_96cH!W5LEs|7r$(4j;&g4!oSOBX=DgL-o|e2Y z`ITME%xxpiZ4=IJ2a9?uy3l>^n;6%kSx}>1QTg*vff&OFS&)WT`=M-r47$M?%fRf* z!0po^hqt0-oC=}*f-%Mtx?}*|-}Xb{1s%-BZuuPU7YVdpX^mp9|AT_H9Nypmr^bUb zEYvmpOCbE~J<-U>z^<#@lr3R(rf-VhfTF&KKUS8YH|_updi^Ad0%?CFBOw=2zb{?} z-VddSGB1Etn;RXa=2DKMR;F3INQQ`RQ^FvN$<$~ygNp(KW|`twhD~1$O*$95ngDx! zJ9*g4ElZqX(}&@HozjrdjEQUqZ?!;HY_N1>#?!MR$jL<;ZB&iI`vW=eMv}(cl#IW) zR5&y=vtnYrFp!5&jXPV-e8#;sWxiGv6L3}5KjxCzj{*|{&@8*JC{@dhHlxR4jGEy* zYB=|)Ec#{Jx8Vwo2-f&t@{&*v`ASoORYZ{pDefuJy|J};w6;LRnYOgCt+Va)ec-eJo+zfnrT(aB0YwHdX?%PTbD4*l*x(Ijn7O8 zuNK2sA^(3}`YP5O<|XUlbnBgt3F;c|`c_kByu}b>D#=++ejgr~m=)TO94d>>8bJXVIcG|@_zsBNc3e=cA?CzWYjPpO-iBf!jzt3*p|25>ao_Os;zI&Uw ztVML=OTFZZy-*OJ^BxA**jMKDL;C=}pnVO|ZR zvA6j^K<3&(K$QN!xoC|4a?ws^&i1ZOCT5JLX3i!~mJTkK_I6!bviA7m1bKtCofgK0 z#dOMfjvMSE+dOe1-UU+ZKuklCBzAA@4@ z$f(307~GfdCSokWTiMm-S;+&$8`2$$)uL6`?sufGw~6bvJWUXo&Om4dKKS_>*-LK; zsp;Kp34(W|=lrWaDl)$=$ z7@jP_WXJ+Gc_c{+r+1b6eh)`0Kc6h~2h@f?{$4itj1E1L749=EP{G2*vT}1Swi~X| zBexg={`W4Yr2ZQ$M0x8$C>%rRV9ScDAAj?V0dGvC4zHjKe6Ra)Q9IvAJsbb?YxHPW`n*X@#T(w;1 zi$3h`qBJ9I+hzUxXt5{0Zn?g0*$^f{y4#8P0rNp><)AE3jR<1H4*$}gH5$~IB%%=T znmZwZDcpK6e(|vg#P0`-QThp+?M6M@?nRKuD=->zJ`m%FkyTg6AYYo*8&Scaj+~Db=I1$q0?<1LcX0_ngM+;Hp`2iBZb)>7xlq04Wax#Ae;M3X2 z;Ffx{ZcD-7^Zb7*x$dB*vn@<7OMn#w0>M>T%A>|?071YktisYZh!jDJkU~+65R`y` zL?wuVBE=A@s}z+Iq)7=7hy+3ji_{1LQ4khXeu82!5nk~9vF^^BH}lS&xo7Sl=R4n> zJ9Ex_b7zibySaW-a*Kz7tJLH5zR$|PpZAulsvSAFu63kGi52g;=cB=ZI_<}~*EIx4 z=IeNWmZjQ)Q_=3xzTTAk9jUB7~y|>R@?@WndM}RAPtrPN4LHd2;OtBO7`MEe( zvF%X^{fj z9hniGZZ31j^yU79IM3@LFADt6`(1DS1#1~egkS8A1JSb!M{iCVO?%y3?#=wuSM{gz zd{x%WS~QCiF*()^S56z=*F5%P3dW|~$g$dSfLfSUq!$-ZKHyp5?|%z* zu2@7a(fmVCWjqCRUTEHJ%pHAY`7cLbAFYKPb?l=tmYC%$p4HeqzHW`s7rK_C6Kr!Z z@5AGUvdYOUe8=lWQOtdn6?_0if6QW-Z+iZ>4GJ{soRZb>jk0%Fv$JjgWSVUjlrZBS z<)lim8?Uw8n93_n=(U|7UC#7%NX9uR`3>MiE?@dufTta%lM#|4A`r;`D!@B~DT45L z94ahmr|#lQ^Dd?p90xNya8t|6gO9>1_T)b*BYU=5g|s*4lzEQjdmYU&$h-Lh+Vb{n z%pv&L!=|gDGP~@qf4~38HD?*yUA3;sGW+F^#q6?sYJBzD$=uj8&jt>z(-sRX`90W} z#Px!hnMIqrMcV3{R|vxW>yo&>@o7vmyRfuO!^^_Cyc6%Kai56I;}p}V0oPT_Lu6n>GOlq4g}+V8tluJ<{3T5V#f#`9XDX4x|-M!%6)b?rm#b(W<&t}9v%_eQ5xt^K= z>Vq2zSEih2c-6chRkfT*+lNO=m9k}zQNGV6J^)Ez+&y$9F-{(35*S~PGD(cR2UY^( z<$*n&qa1$0E{2tFcqaL*BZS-#=~#iT%B+|5$?{)rV48@{u)i=yH9QDRHEVR^ou-*PW{UYLR zDDFM&GvjerpkGVK>K=ZPqP+(paiYm7sgavutV1m|{9*I>q`ygQ&zPRd%L%Q3wXQr* z!E%3}^sCjd@KmLZvsjQRJhn_UKp6xSxvLt5StiLjyO(R3{JQJ2=ILfhx8iaeA8&T77 z(2ABeBf_&k=9hn|sx|41Mxp)b(XZw;B&yARJv6$nrrP#dnUv#emIO!HQb!!=u27_1 zW#h;pWCj=2vx<84)d`sw0By`$$LGu}({=Q{H>m}gL_KwBRQv25eGam0j7)bmM+3#nWwY=~7vQ}nVh$oXuIj=rq$6lsMrw5v<1Be&0! z4VC?ncep`opbxI-5LmDFQDGg>WsU}p>7bShae2&KtVu!xGZdGQ3A3MQ&)tngf!cW8 zrp(?j3OMT=%$@_udH`oyBkGio_E9@;2N&(NJYFJrnb$Rvf3cMbZa$;S>?IS@VY2)# zX|H5*Keo6S!&Tl$R;>IEd6KHGfy(={Ej)eLJWz=L!rSF~IgGRs2sdMzjwFp~+>gjFS}M$|usrIWb&m6*x;(BpaM}P-H>6rB(1>peE!w*o zeXI}Zvp_z_hPGVxOq8FBx9qs;nMlMZ4hzYho*eAkl*~i8ME`WpkhYFK((Gb?kL#ND zusH2k<{vEEyD(;K)LlPa>0#khop4pyU8q@N%CtZ#WcSbS`^u0-yq9$)O?WdFF^Zyj zgpm(MnOV9;N7ej{N?V`*x!FbGKX{tCixUG24t&Sz*hG7B@lr^$@cZBi_tK{mT%@sg z2NXk)1;T3Mv>72HR5Za72q$@qQZWR1z!Fp}Pb=b{r$fMp6?rlws7QM*SB`iPPLplQ z;c5b4(#516n5Nh#SiJr@1mh%8?|`)k?F!d+PKhBoXHJR{Tg4L802NT6g7s~#A(0xy z3!hs7x2y8vNS{PzdjWZR7PwuOr%J*}wWo81@$h&npb)ew*`CjBO)CE>UJ*zD&B_Tx z7@x$ED4y+Hih809?-*&X=uMaa3}k^2q5@L}QWVh-!0CK&qC!(4S1luTViYAh|SLmy7!4H5DNm2CD0FXj2h6!YWGbDuc zRwfsk)Pdz0&NYKBi3|2HW`*4!_(Vs*13E=3L4hXD(Sswq)dVTO7x<9BGG(dWic+jQPLey*}QJ@Wok>Do^()SCF z-wk*Q*v;vHpv;$*sE^2$I7>!T5WfN(KK^lk7PHt@57y9WC^ifo=Y~GWsXNx4izIn_~C(*6!vkDYb(yE?kX5zvQ@c`Zp3N%1;0Q literal 11346 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 U diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/.MysqlFileGenerator.xtendbin b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/.MysqlFileGenerator.xtendbin index f40ac0f43c1a7b9ad210cc9633fc298952a2d332..203153038acaef648de1117acb1718a514a2e114 100644 GIT binary patch delta 66 zcmX@KpYhOsM&1B#W)=|!4h{~62Mg6U^2+%$1L@6r{;lj_#(^b delta 66 zcmX@KpYhOsM&1B#W)=|!4h{~695K0#ymJ1`Kzg&De=9qfu`SGp1H_oj8gCA!?c?pi IbYr|D05Y%;`v3p{ diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/.PlantUmlFileGenerator.xtendbin b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/.PlantUmlFileGenerator.xtendbin index bffacc4578bacad35fde8afd85066a393056774a..f38e9a46eb6ae00289b6783893c8324363a0c7a1 100644 GIT binary patch delta 64 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 literal 152065 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 z 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 diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/.PostgresqlFileGenerator.xtendbin b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/generator/.PostgresqlFileGenerator.xtendbin index 7893654df21363a133e633987fd073b96931ff78..48ced06df88d74d9aab04924c64dcdbe6e82d4ea 100644 GIT binary patch delta 18868 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 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 0a3156d12295b9b692d03b1c3cc2f70d1855cd0d..e1099e75f1ebc3c07db697ec9396a40453ff5c8c 100644 GIT binary patch delta 1274 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 literal 24178 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%0DmKB6BirsZ#I6dM{fxHqte2ADW~v$%AI{L z<=;cC3blKvjr^yr{HMMAr=$F*v;3#4{HGhBy92uCJ=80a>~p8;svrLCgPRY8j&yXC zPBGk6$iu&_s5P~r_84dv{M(&60eL7hr+Qk3X_I-!(6JzN22G^pv;w2Zp)qtE9givQgz=p~D>2mvfEFhrWupCb zIteKY?I48Q9{reV^wgIq|E2rsWYGQ8iACYlHqq*$O>{<4cuhQY4pN|xONLE!Zdp-x zS?a>9Eec=M1g2Oois=gK68Y~Y0@P(qp^PF)C#U>!1%HM88#vg%|JLaDRgHdM)9Ckg z_^l1_s4mq|ZioZi7*ECX0D-~XjOjJC0anc1LboC9YtY-od|T*F20Pqa?2THNlUE;L zHITn3yd`}9CVH?a{CBjrnI0|n+oN-T1`3n_?i;}DW1B!cLoI3t$v zB$+y}(*}g2;W(y|Xk;C&btsw{%e2Xv)j)NztT;KNv8Won)0o0{$AIi;_Bxs%i~fxc za$-4l-P{K19?Ny=?ktYQVp|Bhc|cw?ZyiMnW3f%NyEwlnmM_`yIY6>tx_r+z^k=8e zvWf0uFB=E;cH@x-Y7>jZ8xI#slIw#!ELYw-6sGx#g_Z}7)7H~5(? z4t^*X=g0h@2g8WiL|<)U&&=@siWZnDE^ZYIG%0LV6l*1?(IwOMaWa+folHZL$rKCQ zbC4O$Tu1G=I0`hv4jS7XG@?bZC}_w&RJ14Jkwg!2Vc7i7X^MvxwVN%^P>kHDyePt% z4mT=}{;D`q6pN_tP?UutZ9rzszln2-!Fz+^Ml;n?&TOCnKx4Au2V+r?Z!_mT zLKVf?MX_wvP@FQ4$x%w+wsr@S6MXiVe%&6m?6UT5*%<)r2m~+~ne3cMc6F0V=5RMK zqUj18Z-eJ4NfIe=xJR)i<%&u5u~RoI4(3<(s)0uWrRP_e7U#XbbI5@c?-rSV!)+}UG= z&{vYDDU2)h!U^@DBv4bxxU6y|Q3IWkgnJ+wh)bWeXxchD3REBOk~)qeM%qZ$CQx(A z;vF?bNkKFt6rHv1kNItRlGY&JjHSf|U7!(3V*y9#?^s7QjmuI;emzW%;$Y0z2+CPp z4)q!r(pSaKAh5u!O+3LC<2*UBvSby-5cYH>W3;Ss89){5+5B)lO^;)g)It(Q_OeOs z01Hduq{?iprYWqD;p#&rno~PV#_P65!)%16ww*ND z_M(pPEEI8ZMxhQ{6@Q_075XlfrK)XaJV{h)GM?nJ)S)*TPZD5r<4G>w|MAR8jHg?Z z@l0z@;)1J{6#uQgKEN?}+-W-$LWB<+&}1PFlf*m-mfk>vW9jj3RQJ+kP-awHAY&^`7*Joi zeXGV`N~}gb8->4X1JYtXsX@@(aq;FVii6QKr9skCGzcs>SA$5?Nik00-PCm*4a1*q z>u6w84s-ZO^(~n%>R;vO0pX%(cr(vc{1nILR4Lg~b&yRSiQ>WmX<&cM3;u;I*@zRl zI2{=DDvbG}X%ZuePRxq>yKUk{o495s%3%%0D{*m1wWJI{o-DaudT2J6Y?2va<*nhb zG%y|665(15KfWK+l0nTfKjqL}3K zqQ<(?h4@MtEfONa$2*NUnkm_gemHJP-fNrD%5>T;@k@~+J8awfd}(P*YdJrbZ;!Th z105Y}9bZ?iVy$d5uuZhhI+|(EVxhDzcNZ5F#R?QladBJOj@^}9aG1WfMKNhg(Q{nf z4s9f@#vpQvV(sG0h~Dhgcy`=k9qPrkvb2?C=};8w z;EcRu69m7K3!r0BtfK?b2@NID21}z;QLK|w*x5l-`GH>*d%3uCQLJ-@79zg`JTL9Am6S282Kr(Z>8Oo zo8*%E+~Pk+)T`0hdQfd&CCNkDi==NP($p@>{{xafc>?~3q;FLJ&lh+p9sFM;=^OFG ze|_NpH%a=WvH!26|IZ{n7w1XM<+#rI@>nFor^%y|eCJT4l{zYEWgnG9c(s$=I;mP4 z1=89EiM4Sc3RG@^TM>@ZYh*8{dctq(6YGgz@Yoz(n!JG`H-i&1ps4N401N}wMQhcrL*B#; z$PI9J;%r*Cak?&WDz;S>9U7~B64jnf`gRVm=>WG#dZn`Wi}W$4sm`{2u^*(5usdDq z#$jytz~)YSC>5T-7ERH1CXgmnQoQn@x-$sf{52I$ z9hlfzYf*Y-QmM9y*Q=2NKS_p`S{;LW*E;nam&t~94`X1JVHAM6KGAv~)w(NOi)QabT{NgYeT&Bil5bMVs6 zA=qa=lper&?muu&`ve{ddzOx%m+)%Ht7!2}nn&C58rVlvNuQwguV^8CM@QntkSh8W zXR~{#noU~FK0L(Lj%v6wE#*QyuhpGuxj)tOU|Pn*=@=eO$MSeu&XZ^bPov{_HXYA% z=>$HCR`L=$k?ZLsJ{kAlPsa;UYv?q-1dl#lgFTi8I-PH$Gxz~IlmCHT)2+0IU&s4R z+v!~XfX?Gj=zRX3*7DDE0q>y;g+><%FI_C6bcx8LOGR6{Omw7mq8t5H^rI`paJo`V zpudSJbd{J*SBsyNEup8iRrHK@7Con3 zK+kJ8(+k>N^rE(zUefNTSF~s7Rc#x+uDwccXm8M4+Nbok_9boCb^vx4ZPh*WsqUlC z^bmca$LLGFH+`)a(>MBo^sPRUcIZ>-dwmA|TR$9SN765PHT|mB(k}gE`b|HRcI)TR z9{mD@vRuWi-^fD0l{I}M>pC2D{c-l_&#|e$!e0G#_UT`-U*Ew2{okCX@8qDt95RBO zVPvt-DBy_Eku!}RoNe@>CB_hr86!B?7|*SYGHz`g%x#R>Twol*ZH@Wd&RE3ljT-J? z)Nv={cCo^d9Hao&ol4BD+gP6f%zOSG+*W; z&3CxU{E(~7fAM1TORllH@=~jaYpoGnXO-|WYa$AcQ+5nt}Tl&|pK%2#^t;Pu|ke3kcEzS{c=U*mn7ul0Vy z*LlC;>%Bkn4c?#mM(=LE$;W()&&#*^!hD-Am+$bk<~w~I_%L4&zT4NE@A38LO}@dr z**BKA_@?oFzFGW$uYw=+t>A}zr|`qRvyi@!AM;(xkNd9VCw$lOlfFB6t8X(u<$IW) z@onX2eed)0zR!4@?`wX+_Zz?HH~1xgfS>he@f-dazv=JEZ~6Q2+x~(4j=z|<`$zG6 z{>l8le-?k}U%(&v7xO>;EBIsoDf}=0nf!_WJpR;wIqF@h}MC{qD|mvQ4m-z+6GP#?E)u@_JPwyhrn5)W8fUoDR7?X9Jo+)39J)c16PQ` zzxridFuGsI1yL&eRZ`QnyPwYW7@BQ}Ii6Ss#>7k7rv6&piq z#oeK+#66*F#l4|h#OBZjabM^`aewF$@nC4HcqsHN+IkJ`zb|S+pNnThJH&GtKCvyM zqj({sP`sGYOT3(MfOsWiig+#KNb!2cQt?K{a{NA3Y|l7dyqj^3ct7J}@j=FI;-iem z#6L5h6(483g5U3o&oe$mTVINAGIoe>GkzA|g$=PIoF={xXNn)fdE(#U_TtBIq4+7> zN9+tAAbt)H7r%tZiC@E$#IEo(@mqMd*d0DX>l`NQRaZ$XgD_2{S)kixgYq0j0tl`?ZS!1;GvdXmcvu0>(vu0}-W-Zn(%37*jlC@mB zH0yY6UDg`y@~ppTS7cqRU72;6wmz#tyDIBu?V7BO+O=7m(AFc`s;sBA=~=I6cV@k# zZOr;XyE{8wyC*wS+mxNFZO(45ZOI<2-Jd;Gdmwv`_F(p0{I1sik-b!VH2WCs@$8ed zC$cZqwq|e8p32^&J)Qj!es9&bWk0KJ%zjOKCHo!i)$EV7*RsFSUeEqXdn0?d_GXTu zy_J)uy`7V(y_1u#ZO>`1y_-|0y_eHRdq3v@?Sq`5+J`x#w2yMeXdmZH)&7;UK>H+T zrS@sgS=whg>$T5wHfdkvJg9w{^Ro6;&ga_KIp1mD#7ynmSZnROSVwI~Y_RryY>M_n zY?k)#*b?o>*lO*k*!kMd*bUmxu{*S1Vs~k~V)tvm#U9pn#~#=A#J1`jdqo$qPjxM} zN7r-xx{=#f_v8-J&D=8G%B|GBxz)Na_f*}VyG{?}UZtnyZqkFf&*|y8AL*gopY@D9 z(!+UKdL*yAo|)HAkLHcnv+^qR?7T&KPTmqdH}4odFYh=#KkpR1Ro-ebDDOPcH*cNZ zIqyonOWt*Q*Ss6`!o1t{Zh3d-SZyOd*nT)_srX>_sZL*_s)A+@00h2-Z$?Z zyN^aJuWy*S_02j>U%A^Bl_Sbl5$!2Cjecz#cPME(GM zWPY(eDu0wdI=@se$)Bi?$)B!|&7Y-@%RfRd&7ZGN$Ujmq%dgib<)5ri&R?xh$v;P* znt#4NE&mdIdj5L-;QR)CM*c1O%>0e|to%*-?EHuHIr)$2hvaY756^#AFVBBLKSD-r z`flY68A%CWLdKXP1xx#Q#93PTPxFm@6QVYI=U>e?BL-8W8TlvhElBBfLjDZC6)A&W z&HD{@xsN=sA4l;9zMV{1ki+>7gxuo2Ha*05@<#IVaBTHK%#mkC>cKK}!7QCR$C{3uGZVe=2? z$55IB%fB^0&QDMb_J5S0L}?y80E@Q*(|p+cefTNBWx($pQsgOAmmnpsh27Ysnc$&Wj z)dJ?_pwM@!#&ejX9jeAV;EnGwwvbhXS^YtlS``%If6G#<79;vml|Bit@+Vcg3vfGS zsW+SY!gEA#-mc)aU-(zb@Qy@{U6NMbOHt!DS;PA*YV1}uK0%E=s>aXMR* zKmQ8g7gBKNkzZs0tFZr3S|h?prTL$rGeiW~2mK#Vwa7#&JrJUyB8pTf(1v=5EIGD7 zFKQ*SkqQUS3YCf+v}Xp+35^jkq^!Vsp;00iDR1D4&;a<`E6EpFAL=Xek@5$wfkoB| zsX*ZNP$B_Q;E* ztv0R^9Z(~hcC~RjeEF4>mG-DHUvxq$JMA5MNpwbyoU|Y44$%c%f_M_TKy(FN@`44l zN))0rKRAfyif*7}tKbNlEs9XuCODnOi0+_$L9m<#iyjzd+u#Y*TJ%J!9jw}ZqL*wL zwryDS1}?GSXZ(}sqgwuvz7u_A%jrSdCihTGJLnfN7OmuD_~;EWPSP)bCeU#;{f(sR#GfHoIVj#k;)A(q({Uwr1HWmvD-2o zsr>K-*taE4g+t@!#D~uOF^~ypjF$<1?aaDsdkxHfj1V&mNPelHx^3X$b1>RainVbeau^x zYI!H-?I<~K(Fo>kk!(5I7V}n((t_v#z+f@@Z5thld0T?g_R)heZ#8n>qDNrfmZGw; zdD-nT`zK2bvIk@KPm%P?o`cyx6)m^PJ_)6#snSbPx=NL9Lg{K%`i*vpI30780~_;X zXk+jOEXza0nMmcro;*;T1q||XrgDW?gS`Bl1w2vR4QZ9Lk_V`}A+2-H;zDsYO55bD z=S=M2fj4qC(Qo1}NVUy*kbV^BBGoSEWqMznhgAEV&*>>~K2jZWzN3GLwMcc0nb_sK z0I5!~*5JPjk?I`lNau=+km?c}Ov_;-tfa27Dd3VzkSdJLqC>=`NOg-Xp%QT!Qbn=V zkeKU`>K;2ElKOI_dc>fDu!JiHKNwBJzS$k)F#)@ z^VEn6a@+DmHKMk;gLr@%QM=qSF0jXuTghH~9J$pj)F?aVo=RWZ|XH8Rj?1z^F9D~UX4^JZwF|94dy%}zcp6Wwcwm^ zej!@94yj1~DCj6TN16HcG+kV;N>8S7;s#Z^p1LaRGerZgL7hmQY+F;@2wPLxmEtDX zu0$$eTY4zXw5>XEGpssgw;`2bTVb-)wzy=eZAr;e+ujkkz}`_-4%+kC76@wiZOsk1 zpskycO0)GBYNXp*3#qWJjZh=U);xgAxAh20bAn1|pfums4=63LWxUL@<+;qWWwLC= zmcOzUTh_{yE!AYHEx}}-Esta$nM(G^_G~#L+p}eb%(LZ!%(K_FY{g#3vK4#H%9Jyc zR(vKc*ekaZg+8a+J)8xTjIilH&ZLt~s<8i$-v~xDah`x9ftDdmx>v!NdvJaLwbpDi zHjqiV^8eyCbbt$b!}%8)vYX1?9`7B_yU2(4iTB`9>g@e)DPEl=#xBBxDen)qVB?x- ztLq+IQu|NQ@lwX`L`PD+HD&(JT5$^G?ZK7A@b9jDubh_u8)xBHn)W|(9tQ2fq22H1 z9xM@OmBiQIA8$h~5UgTr5ALh}@n+nWmHqpf(jAWEX>FgfCY#J=_*T{(0ukP7jp_W&g!eTcg5qQ8U1Ga+bxrp0@3lQ-CWqwzZNMTO(Y{Q-7G;;(e+ue1&Smz?`M zI_XAf`@o2m_}oKzEs2#l?zjdYM;|i53zxfD3MMK@LJx0Ak|)3vS2^N#pi~eo$o`ZX zN%~~Jz>`>a#_#JOd*3uf<8rK*?~AEUXhDuvDD0a48`nYoe{V&bR$$RRxY8bNcA}bg zXXlJ?=^XF~Kx#faUe6p#&nK3)ic`V%?15i$Q)kdVU~lEMC0khl)5ZLzp(CBAy% zt15|Tu08o*QAht11qq_t{!@Fz`+Kb+cM>k8$nR3H&L)Gi!!URk<-pYc1<{p4ejfxU zqIe|8x&tSkSwvdB^YTow;atq}#60$$I;%mOhV_L= zmb~Vv>h83k43U?J)e9%XxHvPW%Rt?fr#CWVMoiwT!iyNVBHpMlib8qCQ@)g;o+!Ca z-b7ZZ!{sA5Yb9C|1&q-~!7uMI`{OA1AT4HXw5W zw>qVCv$zw8IGv*IJ+joNXzN~x4x$)Wz*J?#X|F~ovIJ=5b|LO9P6r4=lPAXvb;&i3 z{R})JB3>EW>yTWM7!Baeh;A$_L@yaq>E%gN6OvQX?( z#d4H?2P(K;EN?Tn!C#d5oiaHYb{FyX(MJ1C;!&FrP7i6aYI`{k7`~GijMvyCo&-i} z>`qy_#H6i*5&m|@)oWC>?_T5HwQLU48bY4DK#tdJ6k9Zl$aH-XFZlF@eE9y8*x(KvsoMws+`JZ!W8XW9#?t6oKY^rL8)zKF&n@^zBFgl6hB zRHGkFs}TjeMz5y}^<{L6ek|RsFQ+Z~3VJ|4o}SfDpcnKL>2>`idP_eA(Y2@2SNbaY z0kFIE8n*QF5COZEvk*DkL%)az>KF46{SrPv)>}SDu5i`G~5m(y!ra{aQXz zzm8ASujkYC8~7}}fiKi=;=k%Q^UeA#d?%uAx9GR=R(%6+({Jb3^*i_z{Z9TGk+?tV zcL|?<7gjlRUDVFL_i52?O;uQTEu}XhVoTWc6&e2~G7wa#I%k`JU)%wfgF8vkpfc~m@ zSbtqSroSPc)ZY>>=x>Xc_3h$){ax{q{=WE9|3G}BeECNp^nYtJ^dGg^`c7@G{3o@*lQ~0!;24?KdoXue29jBNJWnL5#xTRiunjo4PwM)%tsonM&!AS`AEmM%pw)@ z5u#i0MR6JPkwJH3CsW3JL=Xu-NJU&^(pyf%MHE}!Wh(l^%RQ(_MSu8sAXbu$(ZE;o zC{IOPq;WMqO)Dc{yg046oZrKVj}I|4OH`anfVa|Q@f=P&(hw)nTg6!fg^z;bd7O`= z;{>-8e}@`goLTz#2U%CFqL26|r2OJ8ob7D`TtGZbH>ya5H1RTGFMdO5P<(?^DjAEA zt_5*|DbMvoh(swAFUXS@Z3<HnnA+Z>%f*)?q1;7HBKUX12XAjwSVi~L#y@%=QPG; z&0=ns!g|3M^K9!y+m0E}#7wSrtrsim8Q{fxJG53C;KQ>TImLkno+*tG7!Sq%s86X` zpH#C}gxlL{)^gOW5x;zeQd@NcNa@%_Q4mE+gQ7^j6e2H1{WJ06NIHtsk=<$?^^fZ7 zsF&pO4L)=mja+)tXhqwM z*7TmyhW=%=rEiRO^pnw^HKPMAcy#2j(FvD2I^*I-Auefj$AXBh+eTw{UVpfY+7SAh7$T#j*57Q1o=U~QSK9&czndR_?AWuw!{I`U(hF`5oEN~pvbL*tCGG}{-Y<1qTlIGnyU%9(M?%41Y;nlTr*v*zJO)_mN=s>GsQ zz`cxxJkU52i?@nL7`19)F11-AzA#5=44VhBzC758^$l}xwR|+{$zf$B=`>$pgo4PM53zKqCU`?=SonUh>Q41zu*iDw(=jU))gt%|QDjLWSJ zbaxVr;#0-Z62|4z20A|pMscX(WeMYQXaiLz!6@ETTr6Q+-fW<8Nid2l75_>Ymn$2n zLlTVQN5#28z{L46!HE}82XNvs;Kb#WW2~Tj<2Y(>91k^d0u>r7!HFl*aN{HzYn)66 z8K+R0aVk{AX*Azh1vRl6oOn7o@eFX{nc&2;z=>@eDZY{%c7oz754MkIDZVo48N~a^NJk5wwht-3QuZibOg4X` zLU0Tis(q9H_D}(7ai&tz5ubXtIZAH>j*5b#E_FDn%-Mgz>&f;8hNppR<&KWpL%G*} zPTAg5C^n0>aMJq=#dvx*W^LB6PXS58L*&EDaxX;fdC09CSX6k=G`<(2UR;!WA@a#b z*05iYDuIL1Ah@}^ErGj30yogR$v}#o)y|IulI&~)ZAk`F{Hz|0lR%Q6ZJ>*iffPe$ zL^JH}BtzRkHOWAVqt#7n*^=aF8)$qokYZ`Iy(EDoOWQyllYtaZt9Ms}0Fpc{f#P=2 zdmy)R^>?r79{2Qd6S)`o{08v(jTAC&qAtcQkhHhL^tp{D8XIV;aR(h@+(~uDU37wR zH=SZ^0w3Q?ml>OBJ!axs<375-r8yuwEtukta*YrN8U9VXG8e712DUu=A;*2N?6C&6yEcJ~R$ z`4gb-r5~FHf9`9w;)1jpcM_x|PsdH}>(q)1v7nRGip${6G)JwtFi)WVYQ;tPXlKQ# z$UB&I!p07MqHgyJ@6eX=&ysHsE~lH0QzwrJPfqd-$Hx!W-4fT;tAN!5%PD?XJS^_B zwFGGr^u$J}2ik?p4vqiYLv8oFFK-L@!j!_N)&C@6k@SGh{|bwU_-_k~FCi?xhOqbs z!s0s!iyaUa-$PjZ0AcYXgvCz~7C%E+`~qRI3&P?z2#ehi7JKMgI2<>4@cNlY(1RY0 z9`oq5)nm{z9uIBznDn8?qR%{D`pV;@Z#{k%o&cMkG!A-#9QLGh)Dz;)o(wMXgmHmA zf=la}xU3$qS&o*X{Z6XSAEE+37{?#FoYd8MZngvCz~7T@s2o*w@zEaX

    yBM8p0I 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 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 87f915cc1b4e5df01e3a2fe953f75f08ccc27c5e..70d13ea1246ac6573ddaae42aeb91da2f9c1412d 100644 GIT binary patch literal 26763 zcmb_l2Vhi1`v1O}*RpvbVZ%Ze5C{T7D4_-kMS%negrJ0C5XBG{2&Q1NfMPj4EB4c~ zpr}}Lc0~>Lde}YBv!30v;rX{$6y^V$S9aef8&OYS-<$c~eBaD`^VNB?%acFfeLoS6 zmHV3{n5Hx~ttdP^9y>fcUvlvgW$N)zwYSv8KZ6hIn05VQoV^*3?j4 zS6Jp1N}EcW>-KY+n4~ckD>|{7y4uyvF^^sffyqmo<4x5yaUXxOBJ1Kah2o8e#u_TB z>toGKxd)c7s$N@NSXbS!qOdaFRNJs(Jd>PUSI5LuyJidF7kt{|CAhD$}&x-ezWYm8Ud%~>03s;geTI<`!K4JLi|5gtaA z$(+*ISQo2qP|tFh!gFg^tc+J4wx+r%HU+adG!|D+`l8|7SY35I)~u?XRds%O>5{S% zRqfBz854}xw(Shu$|`SMQCm}8S6Q<%R$r}JTTFIYbJ?<3L%eo*ZLCSbLKu2U*) z&Mb48ESG%6JoR({rsC9RmoJ$*XZGw;7d#N%mdBR2A8o!vt-iX}nN^rcn^x;m?g2{P zNK0y)S2bd>RR=ngD061kiz(CTs&d}kvWn^I;a*H*R5!rGkXOcHlQ%)A z1VrMs^$wv<{^BmIRCEiNa@6$OlHHT3lf$XW6;(^-%$rdv_XtQi_rRNkSIL&MkB zqE(@z&(ni=P&#YcobvKH3zv*w>h92RjX~2I%%wh7IHfjT8H)$njZC79N)|^ai(`_- zqGWMwvbcA$I1V%O`yU=CV=xIgI!u(&W1@^M6J_+7D5KLv8NDXT=r&Of^gA-p@5n&E zBh^GFz}Pj^#wS6L1`b*Pb(-3^EN0T-kc_tW%cAw@U_x!f+UmO6Ws@vA3W7YLbk1B9 zkAYfFD4Dac0_9^tWy1XZP};+yLW??ERAy0cizZu?Z&8*-l@?94XqH9uEs9tawP>(K zds>uj(HM)yTC~ujOp9_YnrP8bi%g5gSv10;eJrZ7XplwSESh6csYN|3>Tl5~i}tc; zyhXDu+CPJsuCqxe!=xLS@|4)5Tk;THPdC|gGu@&F?{PsNc;L)I3lxbhHXTF<>kvlu zM<`IMO-npbm^P3C-EGq$E{Ih#1-jp+Y9CQ^K@Z!s)CWbZDX#eXb_-Uz_T@Rv_;neri*_3(7ebFxBcyn;Kk@0K@@(Yg4073qaNC2b)&A zpg#Pz3;Nln!(0%!<$ze&)Z`(0t=O=snGS||Ew62eRjjFB8f%(Y4W|OXR^A9Fw4l1F zR@FUV-+^gVeV%gAaHFy6`tgGnm<+GFS9|H08>?wt(NMcS)>OF?eqmW<92PXhAa5-Ml4cNT$zwRsn)u3E7`l><4c+Qr8_mF+>9q~3*Tk86rx`<#5h0Qc z+pQxSiG!Pi(lk#$WM!gbafg%_^h5>@N*nfs(ay8V%3G_}OkD;JY9At53=bOd!>d4e zHf#mc0l$jdX~V!@@(_a-s3q;AmNWw*%6)A*kQRry9}h6OKfK!S@jEu}#Ry_T$(b|l zff*}WsR5?PnDJ^51vU@nAz*A%Y(;G|g4MZe>Qpq@%bj_8L?t>o=x17OQ*&G)DE?Yp z2=`n%cQ(v9LQeHO#V<1L?TzL)^9$4vEHxdWx=M7A-)3&H`sJ8sV^gfKbk5RMu^Q!I zL#2n;#8$^uq+>Fi*nkdoPqj%jRx7c$&EvQjVF~8p^{KjN>eHrQcQ%OBu;QwP!`2Bl zPh_~boQBvsL|&^Kn``5-3UG$WvlBjN+Yj57j(u&O%u_Ih)oYqpPHU{IYh0(+GmWlz z;e?A;Vsk0OrDrxJd8I^by3Jj=TLx@Onawj**sLvC-n?2pDz`b8yC`9(uz3#e2hFUn zj@PVYDo@uPRK+uBWxp_(fTDS;p*omrb0yD%m^5LfkV!Dj_~kCr^x&C>lm&w^Q{)%e zypRt-Dx?yWhGmt9)~ZCsu@?~OFc!{k7*u?T`?&W=)fd#C@yP@v=Y^YS%6a zuoYo`6V@}`1k#QXN(RGTbLi~q)sD+B`4FsVP(9npf|}G)n`>wd;vkIDm9R{X@d}fd zd)TRwM!?Y8ypn4%%JRur?SW;3%1l0#saty;aB!5+*W28{jjr-~LhlE|Gk&M?_VehJ z*2U^EgXZxeK8&G_So;z+lHY0!+S0Q*&frd0Wp2C#W>)Nob&XBSmJDBlI5fQp^qM%j zy3Xdq`3R^CbhSKIz1&sP@#)spVbu5(liF_096x_#T3b`mxWI`RCfCIiw#MS45yypi zJ^xAhgJWU+2L_bKOXSPa=~_|~A^za%pKU%~@nRTwF|WEQ$&tpUl)O2~pAm{jO2|&M z`6NCWI#PpBB_4BZxVK_VlU-K$s^PAfzcJyMyi_mKo+TD<*_{ByW2Vckvur+FacgjUZY6g@Qdu=Z zarqpZ&sBH>+T%G}A*m=M70P)wpRZ5`wny>O*;J%a3h6?dH!7rl?UAsjlZr4}AzW

    =`)%bYP-d>vDNSc73sAH)0|wPDVV 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 lW9c|Qn5z^Ka|7+=7?e zXyOiD+ONOmxBQ74xG8)BWKO1hnHUh;_RB#M+9RH7DxH*XqPN9<#_!&ir z(->k5QO+R7IOaHyMJAAD5++k9Z~-MQ;guPDGK(KB@oeUSWob~btHY`Q; diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.class b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.class index ea6f695a853fd0d3401f9fdffe30c78a94f2b986..f79b3d60e8e1374c3d871133f90cb343ce1953f7 100644 GIT binary patch literal 39840 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 literal 38737 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

    moY}?qXgt&yklT8~MpPk&Qq__!PlO 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 RhR<`)#ibj7<%i5}`+w6>-6Q}2 diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.g b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.g index 97b3e04..5631509 100644 --- a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.g +++ b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.g @@ -33,6 +33,8 @@ Generate : ('G'|'g')('E'|'e')('N'|'n')('E'|'e')('R'|'r')('A'|'a')('T'|'t')('E'|' Datetime : ('D'|'d')('A'|'a')('T'|'t')('E'|'e')('T'|'t')('I'|'i')('M'|'m')('E'|'e'); +Diagram : ('D'|'d')('I'|'i')('A'|'a')('G'|'g')('R'|'r')('A'|'a')('M'|'m'); + Boolean : ('B'|'b')('O'|'o')('O'|'o')('L'|'l')('E'|'e')('A'|'a')('N'|'n'); Relates : ('R'|'r')('E'|'e')('L'|'l')('A'|'a')('T'|'t')('E'|'e')('S'|'s'); diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.tokens b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.tokens index 722968a..f36691d 100644 --- a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.tokens +++ b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.tokens @@ -1,39 +1,40 @@ -All=27 -Boolean=15 -Comma=30 +All=28 +Boolean=16 +Comma=31 Datetime=14 -Domain=17 -Double=18 +Diagram=15 +Domain=18 +Double=19 Entities=12 -File=26 +File=27 Generate=13 -Int=28 -Is=29 +Int=29 +Is=30 IsIdentifier=10 -LeftCurlyBracket=34 -LeftParenthesisDigitOneColonDigitOneRightParenthesis=22 -LeftParenthesisDigitZeroColonDigitOneRightParenthesis=20 -LeftSquareBracket=32 +LeftCurlyBracket=35 +LeftParenthesisDigitOneColonDigitOneRightParenthesis=23 +LeftParenthesisDigitZeroColonDigitOneRightParenthesis=21 +LeftSquareBracket=33 LogicalSchema=8 -Money=25 -MySQL=24 -N=21 -N_1=23 +Money=26 +MySQL=25 +N=22 +N_1=24 PartialDisjoint=5 PartialOverlapped=4 PostgreSQL=11 -RULE_ANY_OTHER=42 -RULE_ID=36 -RULE_INT=37 -RULE_ML_COMMENT=39 -RULE_SL_COMMENT=40 -RULE_STRING=38 -RULE_WS=41 -Relates=16 +RULE_ANY_OTHER=43 +RULE_ID=37 +RULE_INT=38 +RULE_ML_COMMENT=40 +RULE_SL_COMMENT=41 +RULE_STRING=39 +RULE_WS=42 +Relates=17 Relationships=9 -RightCurlyBracket=35 -RightSquareBracket=33 -Semicolon=31 -String=19 +RightCurlyBracket=36 +RightSquareBracket=34 +Semicolon=32 +String=20 TotalDisjoint=7 TotalOverlapped=6 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 2084e379360c9fdea404027aea906d96b0501ccc..c91d8318ab441722f13deac3ccc061662e3de27a 100644 GIT binary patch delta 64 zcmeB|>6hUR@MdNaVc_84V0gGtZ6og=c4i>GnTMmA8O-S7KFSDUOb+5T2h%;g_F(!P GuOk3 delta 64 zcmeB|>6hUR@MdNaVc_84VED01bR+K{c4i>GnTMmA8O-S7KFSDUOb+5T2h%;g_F(!P GuOk4992PUMUM@*zjD=YQNTtW!CvDS!avKAL<_5%oQ@q(Km&Vqr9 z-$0z3<>nSQcORO5ziqsYe|p8t%OMgu!I{)?E*Wa_iVOL~r3`T;W7K7VhOE()9I5PZ ztp(g@jFz@>t50a_JG{+{ciORXcx)PYefVD|@RkIT4d@45(kb21oTepj)ly`A`a)-P kME~e7Jq^9NFtRRvq!ao@H*`fS&f9^D?3v!XBl~u5dn~#&!TTW;bc(`8^%?W`#D4>r*o(? bt_8Ae7&n0V4}tv6V3r)GI^(vr*o(? bt^~4d7}tRL4}tvkV3r)GI^(9vZk+i5p3xVF 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 3d5b2d65f874a7fa55be8b3f73b9cc5a7e2086e1..39fbb1555db8d59293725a9330aedca186829b92 100644 GIT binary patch literal 6863 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 F^}ncJB@_Sv 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 8762dd4cb9f567eb2a9b90d60592c86fe97cd00f..d528ddce25b280b90488d13b8aecc97cf0963b0a 100644 GIT binary patch delta 366 zcmW;BIYPw>G6pZr1H@epGXKnesLA4^!4 zB37^p+M=7|x2oR`q#?o@z!EsCvSvFzi)LhzhE8QNQX~G@wd_hC`}x(XcIr5l6HS Kq(^Nnoc#w^!EEpV delta 366 zcmW;AJ4k|I6oBFP7zC0~>hF&c1V;1)ffWQo*x1nE*whrw5spqx5#0#-=7NTnrl7H{ zXlN;#EbV@?vda)Ifz;t_&-+%gmF(VW$9$P67j$yTAQi@`GQ|}|u36-UO>WuejuY-x z4>Wj`Hl8HIv*dV@0yUZ8RZ6_cI`6VWT@Lt=b3UcUmo)i~Bq_55#1M!CEVH5|tg?pq zLcB*Bemjx!3vnmEro(t&gr@ONC#HPDNsFnZYE|VWYW<@fGYuu3w3}vC3Dd4BWvZ#t zrry9wmuXtnZQ4?0Ox3{o;~@0ul#_ltld1vJhAL}1Qw^J9p_38QgevEYVO~b9kF>{p HJ)HXoxfpHf 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 8d7d26389e6348f34409084819ede5c65777e759..b7786abb6e2c453bb696884307eb0530c770f68c 100644 GIT binary patch delta 273 zcmW;Ey-R{&7{%fH3=R?a`uflV4nj_kMbKsqO{ry?mVMa=K@bEE5g`sPM$(qa?pr!6;UdKp8VwLlNsZ#0DDJ#3i* id3sCFXrDgQabtBr_i4&Fy{0wVGe+;sBs%(KPW}NHluSkd delta 273 zcmW;EKS+X66b0~mhL8yS{CxDFA;{?&2yWFNSf-Vhe`~4urdpaJqM@a5N|0!{Ll88D z&4Q!iYK=kASkUIuby>iMB$1IEHsu&uxj;_tuqDsf zmJW909eMdiK}Oic9QF`H5vwTimT`g#u2IDUYG`2}T^!&8Y5fYP5NOq#*JaP)lqsbZ z&+3ck^q&5(J)iE25vQSu)gzjvkF-udX`lMO(+MrnHQ#EJUePz-p)vh16LtE>CPNcZ etGD!w_UJ1e(_gw`oGuxwmo%Vl`ecj_P4Evavr3x) diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess$RelationSideLeftElements.class b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess$RelationSideLeftElements.class index 7807380e4fab4865c1384c444bf014f0447c2295..3accfb1030aa883079ff07aa7040ac395dfb3d1a 100644 GIT binary patch delta 199 zcmW;CJqtl$7{>AY%0fDibI6fJ>6E8VVU)5MjFOcPV3frNuvnPxMd@rlfI1(*EVEfA z@9!@QgFDl&|JCI=o-=J2uCFNHZqm+TcC|SvDws-&*i!9$o={65Qc>v~n0A{K4 z|L>797<@Cm-ox9?y4iWlsQMJamQvVJ0eh<9Ky4hUhZ7BPCKnf4;7T5Dw8ov@cp!=Z z89Y(M3w8KBHOlyKU?uo!Xng;bS2?y-lDkTCQ#m{n$Kpn5ME*zG)EqV)Zi_W>A`Zlr exD?}-=C9ZgOP0eUu`hb!LJY+;KP;OovCa=oAVSdq diff --git a/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess$RelationSideRightElements.class b/org.xtext.unipampa.erdsl/bin/org/xtext/unipampa/erdsl/services/ErDslGrammarAccess$RelationSideRightElements.class index f748bc22e7a8f065f48844ec89548b6a9a0d68f5..fbe94efa72f54936a765e3090ae3e108b9e8e7c3 100644 GIT binary patch delta 198 zcmW;9FAo869LMqRCz)~XZss--;kOBlq7Vc@kVG2~KrqzMm{A*Z>R~}cENPDwU9qMoHuS|70qhXN z9yuIPfy*N;j}ya)@LN+j|0@+zY=Uc`Z}Y{TM*Y(caP Z#T~IK9>u=+5pQC~471Nn;>B6B^#jAwJBk1R delta 202 zcmW;8Ee}Cq7zW_yjy}%unmL<@@HV1Cun`2wB*PDoR6l@fp33YT-`~u}CMc3%vLyKd zHo9lhb=grnx~&*#hg=v?2t$fvL|KffgbCF#r50w?!<_b5&=pI1Vntu9;lT!BY>~hY zc{toRk~lC_kl%*J>A#q%asIDnYA%`i9 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 b4c262e0e3a9eee825f11be913ea4ea7de20f3a3..d19585da93f7c44c71e621660fdc4ccb9c64a3ce 100644 GIT binary patch delta 345 zcmXBK%_~H46vpxAJTx^)$#rM$5Xt5?zgW;@qoNBRJylw;o>u6>Pt=vF6H_^i_IBsK@JDA}vX1RxX zma)KnEV1JMf=d1XDIOwCk1UUn<1u=9f;>+#!ZVEV922@v^TO9UN^_ zYu#AYLnk%AsB1bC%e~s9JnB6z&$d5hoYZY^%Er<#o60(QFv;wOutyZfat;nj_;Uw4i)5W=3rWr-yTe7 H^E(0noRAg; delta 64 zcmZ1@zeb)nz?+#xgn@&DgW<<6(T%(t*_na#=7a1vS-_0BJpN1|#^m>W=3rWr-yTe7 H^E(0nv8EQq 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 f0d496e38398ff3f55ca26c77907cb9593e93d6d..c573a7a5c67d587d1dd2d14a9114695da1f0e788 100644 GIT binary patch delta 1785 zcmZvcS#T6p6o$Fo>7Hq`5wws(imE(VAX+u>pjAdwoW#rnWk{-GEXzV3I?m1HVo%T5 z(}@g-mvoAV><^YUuJjAp{L$Z5)6_UbI-LT(RIP-!?i^G$LA^fl*H$>$}kpVdky4Gg*?ZBYt2hv2Ck=8xuGh?9#n;8S#&(G*02~J=z5u)Dz7Li zKNNHVqHTyGSR9jq=axz`C+I{Dm)sy!|D#WeCR4MUPevXj)Fzw~wWnuQPpvf|Y$udK zLHVvnr`7zS)8kStIs>wBg3g3OqZ@{S8X65{**5paQJuxUjKh~*x@tQnot-G3!`3uq zGXHJCopZH2=ZThib@rT}*mD7!7FJ5}Sw*b9HrkSIcP>m6FNz#z&(y{6CQX+_`#ST) zrO|R{LH;t-*udThx?Ie#Xq{nAGiP8j+|V6_UZ$u2(C*%>O;-TKsErPJ66}@CUd3!% z9lNx@FMGI6R|B;RMPF7xu4nR^Xqz*udM!(oVS}H?#&x`LJxlCbC(+&C-<$2~v*`xF z>7ioLldcc?My79Kdbc{dr)w}fxMV5HyBWBXb3+-b0vC7-^S3fTy~bD3O?Pj9w@tSJ zwuTjVqUZT`(Za)JtMb9JVw;O`Ja+(TR^=r*iNPLLGDy%n`EVEDu518c>?7!|ogMDo z@!_J5dl*}zU+xriuf8z%#WA{{|M?m}pu-R1v1LGddX&o}s)Qkbh!MU_4@X^%GpmoV z?nVraQ{zl}G&$kNcxD7MB%%n+~$rIb}XP{fGU@M4v*EKWk^!7^m3V$`zGhmO;kH1zb0 zJw4!n*zQ~0+g)66-^G2w1sB}+U2)$R5OFu2+Np1ldB@l>M<76&Wp6D3>h9)0G2KR1{fbsOH*>E!WjFA1fLYQCkt7J=MPh>T7PbBC3rcnqi8aw!q1%i%8v;$ED z%PVZ(wJH_6An1f>dunFaiP)S`vHZZ=~>|^jV6R{1h!vtJjqw4oeojBL1#dr%?bkF8L0(!Raf`Mah=KDjKiDO-o}nfXC=yKvpwym`QH{C zI!8KmuE@-5I-2tmi_T}`f_f!BunSl_ingZb7#Ajr7e$@M+|dv+bLT;o$5h$T~`<3c>9t7A?DQ~eMle0v_|db+jN=+L%o_z0_Sz@QinT%|{o zQ+8j6QbA91JFYz%EqTY^Mh8deT?={^?j`6QJm_5u<@#N@ zUeGg$_*Po8Bb4^pcm7^|zzKY(IM!^yhit&+Xj^-y@ljIM$5D3b9^ogl-A`o` zpY5u&&t+*}Bo%OFUnUjs`l}?)m3^JWWo7iuBuBnwN4{%v@OyS7l(YK7B=$#Uw=}u8 zHE~bUKOv8DB+h+XJjojU%n^K)wnJy9kJ2yP`Z(}k8-xEF;~4zkMP_Jc{*Qzg^e1zT e$^T1Q^miPh3I50ALw1bDsYV-UGi{5 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 252857e..7debfc6 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 @@ -381,7 +381,7 @@ public boolean eIsSet(int featureID) public String toString() { if (eIsProxy()) return super.toString(); -// + // StringBuilder result = new StringBuilder(super.toString()); // result.append(" (name: "); // result.append(name); diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslParser.g b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslParser.g index ff5c9b2..b0f0651 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslParser.g +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslParser.g @@ -111,9 +111,9 @@ ruleERModel returns [EObject current=null] setWithLastConsumed($current, "targetGenerator", lv_targetGenerator_1_3, null); } | - lv_targetGenerator_1_4=All + lv_targetGenerator_1_4=Diagram { - newLeafNode(lv_targetGenerator_1_4, grammarAccess.getERModelAccess().getTargetGeneratorAllKeyword_0_1_0_3()); + newLeafNode(lv_targetGenerator_1_4, grammarAccess.getERModelAccess().getTargetGeneratorDiagramKeyword_0_1_0_3()); } { if ($current==null) { @@ -121,6 +121,17 @@ ruleERModel returns [EObject current=null] } setWithLastConsumed($current, "targetGenerator", lv_targetGenerator_1_4, null); } + | + lv_targetGenerator_1_5=All + { + newLeafNode(lv_targetGenerator_1_5, grammarAccess.getERModelAccess().getTargetGeneratorAllKeyword_0_1_0_4()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getERModelRule()); + } + setWithLastConsumed($current, "targetGenerator", lv_targetGenerator_1_5, null); + } ) ) ) 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 f5f9018..bb757cc 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 @@ -22,48 +22,49 @@ @SuppressWarnings("all") public class InternalErDslParser extends AbstractInternalAntlrParser { public static final String[] tokenNames = new String[] { - "", "", "", "", "PartialOverlapped", "PartialDisjoint", "TotalOverlapped", "TotalDisjoint", "LogicalSchema", "Relationships", "IsIdentifier", "PostgreSQL", "Entities", "Generate", "Datetime", "Boolean", "Relates", "Domain", "Double", "String", "LeftParenthesisDigitZeroColonDigitOneRightParenthesis", "N", "LeftParenthesisDigitOneColonDigitOneRightParenthesis", "N_1", "MySQL", "Money", "File", "All", "Int", "Is", "Comma", "Semicolon", "LeftSquareBracket", "RightSquareBracket", "LeftCurlyBracket", "RightCurlyBracket", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER" + "", "", "", "", "PartialOverlapped", "PartialDisjoint", "TotalOverlapped", "TotalDisjoint", "LogicalSchema", "Relationships", "IsIdentifier", "PostgreSQL", "Entities", "Generate", "Datetime", "Diagram", "Boolean", "Relates", "Domain", "Double", "String", "LeftParenthesisDigitZeroColonDigitOneRightParenthesis", "N", "LeftParenthesisDigitOneColonDigitOneRightParenthesis", "N_1", "MySQL", "Money", "File", "All", "Int", "Is", "Comma", "Semicolon", "LeftSquareBracket", "RightSquareBracket", "LeftCurlyBracket", "RightCurlyBracket", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER" }; - public static final int All=27; - public static final int N_1=23; + public static final int All=28; + public static final int N_1=24; public static final int PostgreSQL=11; - public static final int PartialDisjoint=5; - public static final int Is=29; - public static final int RULE_STRING=38; - public static final int String=19; - public static final int LeftParenthesisDigitZeroColonDigitOneRightParenthesis=20; - public static final int N=21; - public static final int Int=28; - public static final int RULE_SL_COMMENT=40; + public static final int String=20; public static final int TotalOverlapped=6; - public static final int Money=25; - public static final int Comma=30; + public static final int MySQL=25; + public static final int Boolean=16; + public static final int RightSquareBracket=34; + public static final int Relates=17; + public static final int RULE_ID=37; + public static final int PartialOverlapped=4; + public static final int LogicalSchema=8; + public static final int IsIdentifier=10; + public static final int Double=19; + public static final int RULE_INT=38; + public static final int RULE_ML_COMMENT=40; + public static final int LeftSquareBracket=33; + public static final int Domain=18; + public static final int File=27; + public static final int PartialDisjoint=5; + public static final int Is=30; + public static final int RULE_STRING=39; + public static final int LeftParenthesisDigitZeroColonDigitOneRightParenthesis=21; + public static final int N=22; + public static final int Int=29; + public static final int RULE_SL_COMMENT=41; + public static final int Money=26; + public static final int Comma=31; public static final int Relationships=9; public static final int Generate=13; - public static final int MySQL=24; - public static final int RightCurlyBracket=35; - public static final int Boolean=15; + public static final int RightCurlyBracket=36; public static final int EOF=-1; public static final int TotalDisjoint=7; - public static final int RightSquareBracket=33; public static final int Datetime=14; - public static final int Relates=16; - public static final int RULE_ID=36; - public static final int RULE_WS=41; - public static final int LeftCurlyBracket=34; - public static final int PartialOverlapped=4; - public static final int LogicalSchema=8; - public static final int RULE_ANY_OTHER=42; - public static final int IsIdentifier=10; - public static final int Double=18; + public static final int RULE_WS=42; + public static final int LeftCurlyBracket=35; + public static final int RULE_ANY_OTHER=43; public static final int Entities=12; - public static final int LeftParenthesisDigitOneColonDigitOneRightParenthesis=22; - public static final int Semicolon=31; - public static final int RULE_INT=37; - public static final int RULE_ML_COMMENT=39; - public static final int LeftSquareBracket=32; - public static final int Domain=17; - public static final int File=26; + public static final int Diagram=15; + public static final int LeftParenthesisDigitOneColonDigitOneRightParenthesis=23; + public static final int Semicolon=32; // delegates // delegators @@ -141,7 +142,7 @@ public final EObject entryRuleERModel() throws RecognitionException { // $ANTLR start "ruleERModel" - // InternalErDslParser.g:65:1: ruleERModel returns [EObject current=null] : ( (otherlv_0= Generate ( ( (lv_targetGenerator_1_1= LogicalSchema | lv_targetGenerator_1_2= PostgreSQL | lv_targetGenerator_1_3= MySQL | lv_targetGenerator_1_4= All ) ) ) otherlv_2= Semicolon )? ( (lv_domain_3_0= ruleDomain ) ) otherlv_4= Semicolon (otherlv_5= Entities otherlv_6= LeftCurlyBracket ) ( (lv_entities_7_0= ruleEntity ) )+ (otherlv_8= RightCurlyBracket otherlv_9= Semicolon ) (otherlv_10= Relationships otherlv_11= LeftCurlyBracket ) ( (lv_relations_12_0= ruleRelation ) )* (otherlv_13= RightCurlyBracket otherlv_14= Semicolon ) ) ; + // InternalErDslParser.g:65:1: ruleERModel returns [EObject current=null] : ( (otherlv_0= Generate ( ( (lv_targetGenerator_1_1= LogicalSchema | lv_targetGenerator_1_2= PostgreSQL | lv_targetGenerator_1_3= MySQL | lv_targetGenerator_1_4= Diagram | lv_targetGenerator_1_5= All ) ) ) otherlv_2= Semicolon )? ( (lv_domain_3_0= ruleDomain ) ) otherlv_4= Semicolon (otherlv_5= Entities otherlv_6= LeftCurlyBracket ) ( (lv_entities_7_0= ruleEntity ) )+ (otherlv_8= RightCurlyBracket otherlv_9= Semicolon ) (otherlv_10= Relationships otherlv_11= LeftCurlyBracket ) ( (lv_relations_12_0= ruleRelation ) )* (otherlv_13= RightCurlyBracket otherlv_14= Semicolon ) ) ; public final EObject ruleERModel() throws RecognitionException { EObject current = null; @@ -150,6 +151,7 @@ public final EObject ruleERModel() throws RecognitionException { Token lv_targetGenerator_1_2=null; Token lv_targetGenerator_1_3=null; Token lv_targetGenerator_1_4=null; + Token lv_targetGenerator_1_5=null; Token otherlv_2=null; Token otherlv_4=null; Token otherlv_5=null; @@ -171,13 +173,13 @@ public final EObject ruleERModel() throws RecognitionException { enterRule(); try { - // InternalErDslParser.g:71:2: ( ( (otherlv_0= Generate ( ( (lv_targetGenerator_1_1= LogicalSchema | lv_targetGenerator_1_2= PostgreSQL | lv_targetGenerator_1_3= MySQL | lv_targetGenerator_1_4= All ) ) ) otherlv_2= Semicolon )? ( (lv_domain_3_0= ruleDomain ) ) otherlv_4= Semicolon (otherlv_5= Entities otherlv_6= LeftCurlyBracket ) ( (lv_entities_7_0= ruleEntity ) )+ (otherlv_8= RightCurlyBracket otherlv_9= Semicolon ) (otherlv_10= Relationships otherlv_11= LeftCurlyBracket ) ( (lv_relations_12_0= ruleRelation ) )* (otherlv_13= RightCurlyBracket otherlv_14= Semicolon ) ) ) - // InternalErDslParser.g:72:2: ( (otherlv_0= Generate ( ( (lv_targetGenerator_1_1= LogicalSchema | lv_targetGenerator_1_2= PostgreSQL | lv_targetGenerator_1_3= MySQL | lv_targetGenerator_1_4= All ) ) ) otherlv_2= Semicolon )? ( (lv_domain_3_0= ruleDomain ) ) otherlv_4= Semicolon (otherlv_5= Entities otherlv_6= LeftCurlyBracket ) ( (lv_entities_7_0= ruleEntity ) )+ (otherlv_8= RightCurlyBracket otherlv_9= Semicolon ) (otherlv_10= Relationships otherlv_11= LeftCurlyBracket ) ( (lv_relations_12_0= ruleRelation ) )* (otherlv_13= RightCurlyBracket otherlv_14= Semicolon ) ) + // InternalErDslParser.g:71:2: ( ( (otherlv_0= Generate ( ( (lv_targetGenerator_1_1= LogicalSchema | lv_targetGenerator_1_2= PostgreSQL | lv_targetGenerator_1_3= MySQL | lv_targetGenerator_1_4= Diagram | lv_targetGenerator_1_5= All ) ) ) otherlv_2= Semicolon )? ( (lv_domain_3_0= ruleDomain ) ) otherlv_4= Semicolon (otherlv_5= Entities otherlv_6= LeftCurlyBracket ) ( (lv_entities_7_0= ruleEntity ) )+ (otherlv_8= RightCurlyBracket otherlv_9= Semicolon ) (otherlv_10= Relationships otherlv_11= LeftCurlyBracket ) ( (lv_relations_12_0= ruleRelation ) )* (otherlv_13= RightCurlyBracket otherlv_14= Semicolon ) ) ) + // InternalErDslParser.g:72:2: ( (otherlv_0= Generate ( ( (lv_targetGenerator_1_1= LogicalSchema | lv_targetGenerator_1_2= PostgreSQL | lv_targetGenerator_1_3= MySQL | lv_targetGenerator_1_4= Diagram | lv_targetGenerator_1_5= All ) ) ) otherlv_2= Semicolon )? ( (lv_domain_3_0= ruleDomain ) ) otherlv_4= Semicolon (otherlv_5= Entities otherlv_6= LeftCurlyBracket ) ( (lv_entities_7_0= ruleEntity ) )+ (otherlv_8= RightCurlyBracket otherlv_9= Semicolon ) (otherlv_10= Relationships otherlv_11= LeftCurlyBracket ) ( (lv_relations_12_0= ruleRelation ) )* (otherlv_13= RightCurlyBracket otherlv_14= Semicolon ) ) { - // InternalErDslParser.g:72:2: ( (otherlv_0= Generate ( ( (lv_targetGenerator_1_1= LogicalSchema | lv_targetGenerator_1_2= PostgreSQL | lv_targetGenerator_1_3= MySQL | lv_targetGenerator_1_4= All ) ) ) otherlv_2= Semicolon )? ( (lv_domain_3_0= ruleDomain ) ) otherlv_4= Semicolon (otherlv_5= Entities otherlv_6= LeftCurlyBracket ) ( (lv_entities_7_0= ruleEntity ) )+ (otherlv_8= RightCurlyBracket otherlv_9= Semicolon ) (otherlv_10= Relationships otherlv_11= LeftCurlyBracket ) ( (lv_relations_12_0= ruleRelation ) )* (otherlv_13= RightCurlyBracket otherlv_14= Semicolon ) ) - // InternalErDslParser.g:73:3: (otherlv_0= Generate ( ( (lv_targetGenerator_1_1= LogicalSchema | lv_targetGenerator_1_2= PostgreSQL | lv_targetGenerator_1_3= MySQL | lv_targetGenerator_1_4= All ) ) ) otherlv_2= Semicolon )? ( (lv_domain_3_0= ruleDomain ) ) otherlv_4= Semicolon (otherlv_5= Entities otherlv_6= LeftCurlyBracket ) ( (lv_entities_7_0= ruleEntity ) )+ (otherlv_8= RightCurlyBracket otherlv_9= Semicolon ) (otherlv_10= Relationships otherlv_11= LeftCurlyBracket ) ( (lv_relations_12_0= ruleRelation ) )* (otherlv_13= RightCurlyBracket otherlv_14= Semicolon ) + // InternalErDslParser.g:72:2: ( (otherlv_0= Generate ( ( (lv_targetGenerator_1_1= LogicalSchema | lv_targetGenerator_1_2= PostgreSQL | lv_targetGenerator_1_3= MySQL | lv_targetGenerator_1_4= Diagram | lv_targetGenerator_1_5= All ) ) ) otherlv_2= Semicolon )? ( (lv_domain_3_0= ruleDomain ) ) otherlv_4= Semicolon (otherlv_5= Entities otherlv_6= LeftCurlyBracket ) ( (lv_entities_7_0= ruleEntity ) )+ (otherlv_8= RightCurlyBracket otherlv_9= Semicolon ) (otherlv_10= Relationships otherlv_11= LeftCurlyBracket ) ( (lv_relations_12_0= ruleRelation ) )* (otherlv_13= RightCurlyBracket otherlv_14= Semicolon ) ) + // InternalErDslParser.g:73:3: (otherlv_0= Generate ( ( (lv_targetGenerator_1_1= LogicalSchema | lv_targetGenerator_1_2= PostgreSQL | lv_targetGenerator_1_3= MySQL | lv_targetGenerator_1_4= Diagram | lv_targetGenerator_1_5= All ) ) ) otherlv_2= Semicolon )? ( (lv_domain_3_0= ruleDomain ) ) otherlv_4= Semicolon (otherlv_5= Entities otherlv_6= LeftCurlyBracket ) ( (lv_entities_7_0= ruleEntity ) )+ (otherlv_8= RightCurlyBracket otherlv_9= Semicolon ) (otherlv_10= Relationships otherlv_11= LeftCurlyBracket ) ( (lv_relations_12_0= ruleRelation ) )* (otherlv_13= RightCurlyBracket otherlv_14= Semicolon ) { - // InternalErDslParser.g:73:3: (otherlv_0= Generate ( ( (lv_targetGenerator_1_1= LogicalSchema | lv_targetGenerator_1_2= PostgreSQL | lv_targetGenerator_1_3= MySQL | lv_targetGenerator_1_4= All ) ) ) otherlv_2= Semicolon )? + // InternalErDslParser.g:73:3: (otherlv_0= Generate ( ( (lv_targetGenerator_1_1= LogicalSchema | lv_targetGenerator_1_2= PostgreSQL | lv_targetGenerator_1_3= MySQL | lv_targetGenerator_1_4= Diagram | lv_targetGenerator_1_5= All ) ) ) otherlv_2= Semicolon )? int alt2=2; int LA2_0 = input.LA(1); @@ -186,20 +188,20 @@ public final EObject ruleERModel() throws RecognitionException { } switch (alt2) { case 1 : - // InternalErDslParser.g:74:4: otherlv_0= Generate ( ( (lv_targetGenerator_1_1= LogicalSchema | lv_targetGenerator_1_2= PostgreSQL | lv_targetGenerator_1_3= MySQL | lv_targetGenerator_1_4= All ) ) ) otherlv_2= Semicolon + // InternalErDslParser.g:74:4: otherlv_0= Generate ( ( (lv_targetGenerator_1_1= LogicalSchema | lv_targetGenerator_1_2= PostgreSQL | lv_targetGenerator_1_3= MySQL | lv_targetGenerator_1_4= Diagram | lv_targetGenerator_1_5= All ) ) ) otherlv_2= Semicolon { otherlv_0=(Token)match(input,Generate,FOLLOW_3); newLeafNode(otherlv_0, grammarAccess.getERModelAccess().getGenerateKeyword_0_0()); - // InternalErDslParser.g:78:4: ( ( (lv_targetGenerator_1_1= LogicalSchema | lv_targetGenerator_1_2= PostgreSQL | lv_targetGenerator_1_3= MySQL | lv_targetGenerator_1_4= All ) ) ) - // InternalErDslParser.g:79:5: ( (lv_targetGenerator_1_1= LogicalSchema | lv_targetGenerator_1_2= PostgreSQL | lv_targetGenerator_1_3= MySQL | lv_targetGenerator_1_4= All ) ) + // InternalErDslParser.g:78:4: ( ( (lv_targetGenerator_1_1= LogicalSchema | lv_targetGenerator_1_2= PostgreSQL | lv_targetGenerator_1_3= MySQL | lv_targetGenerator_1_4= Diagram | lv_targetGenerator_1_5= All ) ) ) + // InternalErDslParser.g:79:5: ( (lv_targetGenerator_1_1= LogicalSchema | lv_targetGenerator_1_2= PostgreSQL | lv_targetGenerator_1_3= MySQL | lv_targetGenerator_1_4= Diagram | lv_targetGenerator_1_5= All ) ) { - // InternalErDslParser.g:79:5: ( (lv_targetGenerator_1_1= LogicalSchema | lv_targetGenerator_1_2= PostgreSQL | lv_targetGenerator_1_3= MySQL | lv_targetGenerator_1_4= All ) ) - // InternalErDslParser.g:80:6: (lv_targetGenerator_1_1= LogicalSchema | lv_targetGenerator_1_2= PostgreSQL | lv_targetGenerator_1_3= MySQL | lv_targetGenerator_1_4= All ) + // InternalErDslParser.g:79:5: ( (lv_targetGenerator_1_1= LogicalSchema | lv_targetGenerator_1_2= PostgreSQL | lv_targetGenerator_1_3= MySQL | lv_targetGenerator_1_4= Diagram | lv_targetGenerator_1_5= All ) ) + // InternalErDslParser.g:80:6: (lv_targetGenerator_1_1= LogicalSchema | lv_targetGenerator_1_2= PostgreSQL | lv_targetGenerator_1_3= MySQL | lv_targetGenerator_1_4= Diagram | lv_targetGenerator_1_5= All ) { - // InternalErDslParser.g:80:6: (lv_targetGenerator_1_1= LogicalSchema | lv_targetGenerator_1_2= PostgreSQL | lv_targetGenerator_1_3= MySQL | lv_targetGenerator_1_4= All ) - int alt1=4; + // InternalErDslParser.g:80:6: (lv_targetGenerator_1_1= LogicalSchema | lv_targetGenerator_1_2= PostgreSQL | lv_targetGenerator_1_3= MySQL | lv_targetGenerator_1_4= Diagram | lv_targetGenerator_1_5= All ) + int alt1=5; switch ( input.LA(1) ) { case LogicalSchema: { @@ -216,11 +218,16 @@ public final EObject ruleERModel() throws RecognitionException { alt1=3; } break; - case All: + case Diagram: { alt1=4; } break; + case All: + { + alt1=5; + } + break; default: NoViableAltException nvae = new NoViableAltException("", 1, 0, input); @@ -278,11 +285,11 @@ public final EObject ruleERModel() throws RecognitionException { } break; case 4 : - // InternalErDslParser.g:114:7: lv_targetGenerator_1_4= All + // InternalErDslParser.g:114:7: lv_targetGenerator_1_4= Diagram { - lv_targetGenerator_1_4=(Token)match(input,All,FOLLOW_4); + lv_targetGenerator_1_4=(Token)match(input,Diagram,FOLLOW_4); - newLeafNode(lv_targetGenerator_1_4, grammarAccess.getERModelAccess().getTargetGeneratorAllKeyword_0_1_0_3()); + newLeafNode(lv_targetGenerator_1_4, grammarAccess.getERModelAccess().getTargetGeneratorDiagramKeyword_0_1_0_3()); if (current==null) { @@ -291,6 +298,22 @@ public final EObject ruleERModel() throws RecognitionException { setWithLastConsumed(current, "targetGenerator", lv_targetGenerator_1_4, null); + } + break; + case 5 : + // InternalErDslParser.g:125:7: lv_targetGenerator_1_5= All + { + lv_targetGenerator_1_5=(Token)match(input,All,FOLLOW_4); + + newLeafNode(lv_targetGenerator_1_5, grammarAccess.getERModelAccess().getTargetGeneratorAllKeyword_0_1_0_4()); + + + if (current==null) { + current = createModelElement(grammarAccess.getERModelRule()); + } + setWithLastConsumed(current, "targetGenerator", lv_targetGenerator_1_5, null); + + } break; @@ -312,11 +335,11 @@ public final EObject ruleERModel() throws RecognitionException { } - // InternalErDslParser.g:132:3: ( (lv_domain_3_0= ruleDomain ) ) - // InternalErDslParser.g:133:4: (lv_domain_3_0= ruleDomain ) + // InternalErDslParser.g:143:3: ( (lv_domain_3_0= ruleDomain ) ) + // InternalErDslParser.g:144:4: (lv_domain_3_0= ruleDomain ) { - // InternalErDslParser.g:133:4: (lv_domain_3_0= ruleDomain ) - // InternalErDslParser.g:134:5: lv_domain_3_0= ruleDomain + // InternalErDslParser.g:144:4: (lv_domain_3_0= ruleDomain ) + // InternalErDslParser.g:145:5: lv_domain_3_0= ruleDomain { newCompositeNode(grammarAccess.getERModelAccess().getDomainDomainParserRuleCall_1_0()); @@ -347,8 +370,8 @@ public final EObject ruleERModel() throws RecognitionException { newLeafNode(otherlv_4, grammarAccess.getERModelAccess().getSemicolonKeyword_2()); - // InternalErDslParser.g:155:3: (otherlv_5= Entities otherlv_6= LeftCurlyBracket ) - // InternalErDslParser.g:156:4: otherlv_5= Entities otherlv_6= LeftCurlyBracket + // InternalErDslParser.g:166:3: (otherlv_5= Entities otherlv_6= LeftCurlyBracket ) + // InternalErDslParser.g:167:4: otherlv_5= Entities otherlv_6= LeftCurlyBracket { otherlv_5=(Token)match(input,Entities,FOLLOW_7); @@ -361,7 +384,7 @@ public final EObject ruleERModel() throws RecognitionException { } - // InternalErDslParser.g:165:3: ( (lv_entities_7_0= ruleEntity ) )+ + // InternalErDslParser.g:176:3: ( (lv_entities_7_0= ruleEntity ) )+ int cnt3=0; loop3: do { @@ -375,10 +398,10 @@ public final EObject ruleERModel() throws RecognitionException { switch (alt3) { case 1 : - // InternalErDslParser.g:166:4: (lv_entities_7_0= ruleEntity ) + // InternalErDslParser.g:177:4: (lv_entities_7_0= ruleEntity ) { - // InternalErDslParser.g:166:4: (lv_entities_7_0= ruleEntity ) - // InternalErDslParser.g:167:5: lv_entities_7_0= ruleEntity + // InternalErDslParser.g:177:4: (lv_entities_7_0= ruleEntity ) + // InternalErDslParser.g:178:5: lv_entities_7_0= ruleEntity { newCompositeNode(grammarAccess.getERModelAccess().getEntitiesEntityParserRuleCall_4_0()); @@ -415,8 +438,8 @@ public final EObject ruleERModel() throws RecognitionException { cnt3++; } while (true); - // InternalErDslParser.g:184:3: (otherlv_8= RightCurlyBracket otherlv_9= Semicolon ) - // InternalErDslParser.g:185:4: otherlv_8= RightCurlyBracket otherlv_9= Semicolon + // InternalErDslParser.g:195:3: (otherlv_8= RightCurlyBracket otherlv_9= Semicolon ) + // InternalErDslParser.g:196:4: otherlv_8= RightCurlyBracket otherlv_9= Semicolon { otherlv_8=(Token)match(input,RightCurlyBracket,FOLLOW_4); @@ -429,8 +452,8 @@ public final EObject ruleERModel() throws RecognitionException { } - // InternalErDslParser.g:194:3: (otherlv_10= Relationships otherlv_11= LeftCurlyBracket ) - // InternalErDslParser.g:195:4: otherlv_10= Relationships otherlv_11= LeftCurlyBracket + // InternalErDslParser.g:205:3: (otherlv_10= Relationships otherlv_11= LeftCurlyBracket ) + // InternalErDslParser.g:206:4: otherlv_10= Relationships otherlv_11= LeftCurlyBracket { otherlv_10=(Token)match(input,Relationships,FOLLOW_7); @@ -443,7 +466,7 @@ public final EObject ruleERModel() throws RecognitionException { } - // InternalErDslParser.g:204:3: ( (lv_relations_12_0= ruleRelation ) )* + // InternalErDslParser.g:215:3: ( (lv_relations_12_0= ruleRelation ) )* loop4: do { int alt4=2; @@ -456,10 +479,10 @@ public final EObject ruleERModel() throws RecognitionException { switch (alt4) { case 1 : - // InternalErDslParser.g:205:4: (lv_relations_12_0= ruleRelation ) + // InternalErDslParser.g:216:4: (lv_relations_12_0= ruleRelation ) { - // InternalErDslParser.g:205:4: (lv_relations_12_0= ruleRelation ) - // InternalErDslParser.g:206:5: lv_relations_12_0= ruleRelation + // InternalErDslParser.g:216:4: (lv_relations_12_0= ruleRelation ) + // InternalErDslParser.g:217:5: lv_relations_12_0= ruleRelation { newCompositeNode(grammarAccess.getERModelAccess().getRelationsRelationParserRuleCall_7_0()); @@ -492,8 +515,8 @@ public final EObject ruleERModel() throws RecognitionException { } } while (true); - // InternalErDslParser.g:223:3: (otherlv_13= RightCurlyBracket otherlv_14= Semicolon ) - // InternalErDslParser.g:224:4: otherlv_13= RightCurlyBracket otherlv_14= Semicolon + // InternalErDslParser.g:234:3: (otherlv_13= RightCurlyBracket otherlv_14= Semicolon ) + // InternalErDslParser.g:235:4: otherlv_13= RightCurlyBracket otherlv_14= Semicolon { otherlv_13=(Token)match(input,RightCurlyBracket,FOLLOW_4); @@ -529,7 +552,7 @@ public final EObject ruleERModel() throws RecognitionException { // $ANTLR start "entryRuleDomain" - // InternalErDslParser.g:237:1: entryRuleDomain returns [EObject current=null] : iv_ruleDomain= ruleDomain EOF ; + // InternalErDslParser.g:248:1: entryRuleDomain returns [EObject current=null] : iv_ruleDomain= ruleDomain EOF ; public final EObject entryRuleDomain() throws RecognitionException { EObject current = null; @@ -537,8 +560,8 @@ public final EObject entryRuleDomain() throws RecognitionException { try { - // InternalErDslParser.g:237:47: (iv_ruleDomain= ruleDomain EOF ) - // InternalErDslParser.g:238:2: iv_ruleDomain= ruleDomain EOF + // InternalErDslParser.g:248:47: (iv_ruleDomain= ruleDomain EOF ) + // InternalErDslParser.g:249:2: iv_ruleDomain= ruleDomain EOF { newCompositeNode(grammarAccess.getDomainRule()); pushFollow(FOLLOW_1); @@ -565,7 +588,7 @@ public final EObject entryRuleDomain() throws RecognitionException { // $ANTLR start "ruleDomain" - // InternalErDslParser.g:244:1: ruleDomain returns [EObject current=null] : (otherlv_0= Domain ( (lv_name_1_0= RULE_ID ) ) ) ; + // InternalErDslParser.g:255:1: ruleDomain returns [EObject current=null] : (otherlv_0= Domain ( (lv_name_1_0= RULE_ID ) ) ) ; public final EObject ruleDomain() throws RecognitionException { EObject current = null; @@ -576,21 +599,21 @@ public final EObject ruleDomain() throws RecognitionException { enterRule(); try { - // InternalErDslParser.g:250:2: ( (otherlv_0= Domain ( (lv_name_1_0= RULE_ID ) ) ) ) - // InternalErDslParser.g:251:2: (otherlv_0= Domain ( (lv_name_1_0= RULE_ID ) ) ) + // InternalErDslParser.g:261:2: ( (otherlv_0= Domain ( (lv_name_1_0= RULE_ID ) ) ) ) + // InternalErDslParser.g:262:2: (otherlv_0= Domain ( (lv_name_1_0= RULE_ID ) ) ) { - // InternalErDslParser.g:251:2: (otherlv_0= Domain ( (lv_name_1_0= RULE_ID ) ) ) - // InternalErDslParser.g:252:3: otherlv_0= Domain ( (lv_name_1_0= RULE_ID ) ) + // InternalErDslParser.g:262:2: (otherlv_0= Domain ( (lv_name_1_0= RULE_ID ) ) ) + // InternalErDslParser.g:263:3: otherlv_0= Domain ( (lv_name_1_0= RULE_ID ) ) { otherlv_0=(Token)match(input,Domain,FOLLOW_8); newLeafNode(otherlv_0, grammarAccess.getDomainAccess().getDomainKeyword_0()); - // InternalErDslParser.g:256:3: ( (lv_name_1_0= RULE_ID ) ) - // InternalErDslParser.g:257:4: (lv_name_1_0= RULE_ID ) + // InternalErDslParser.g:267:3: ( (lv_name_1_0= RULE_ID ) ) + // InternalErDslParser.g:268:4: (lv_name_1_0= RULE_ID ) { - // InternalErDslParser.g:257:4: (lv_name_1_0= RULE_ID ) - // InternalErDslParser.g:258:5: lv_name_1_0= RULE_ID + // InternalErDslParser.g:268:4: (lv_name_1_0= RULE_ID ) + // InternalErDslParser.g:269:5: lv_name_1_0= RULE_ID { lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_2); @@ -635,7 +658,7 @@ public final EObject ruleDomain() throws RecognitionException { // $ANTLR start "entryRuleAttribute" - // InternalErDslParser.g:278:1: entryRuleAttribute returns [EObject current=null] : iv_ruleAttribute= ruleAttribute EOF ; + // InternalErDslParser.g:289:1: entryRuleAttribute returns [EObject current=null] : iv_ruleAttribute= ruleAttribute EOF ; public final EObject entryRuleAttribute() throws RecognitionException { EObject current = null; @@ -643,8 +666,8 @@ public final EObject entryRuleAttribute() throws RecognitionException { try { - // InternalErDslParser.g:278:50: (iv_ruleAttribute= ruleAttribute EOF ) - // InternalErDslParser.g:279:2: iv_ruleAttribute= ruleAttribute EOF + // InternalErDslParser.g:289:50: (iv_ruleAttribute= ruleAttribute EOF ) + // InternalErDslParser.g:290:2: iv_ruleAttribute= ruleAttribute EOF { newCompositeNode(grammarAccess.getAttributeRule()); pushFollow(FOLLOW_1); @@ -671,7 +694,7 @@ public final EObject entryRuleAttribute() throws RecognitionException { // $ANTLR start "ruleAttribute" - // InternalErDslParser.g:285:1: ruleAttribute returns [EObject current=null] : ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_type_1_0= ruleDataType ) ) ( (lv_isKey_2_0= IsIdentifier ) )? ) ; + // InternalErDslParser.g:296: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; @@ -684,17 +707,17 @@ public final EObject ruleAttribute() throws RecognitionException { enterRule(); try { - // InternalErDslParser.g:291:2: ( ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_type_1_0= ruleDataType ) ) ( (lv_isKey_2_0= IsIdentifier ) )? ) ) - // InternalErDslParser.g:292:2: ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_type_1_0= ruleDataType ) ) ( (lv_isKey_2_0= IsIdentifier ) )? ) + // InternalErDslParser.g:302:2: ( ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_type_1_0= ruleDataType ) ) ( (lv_isKey_2_0= IsIdentifier ) )? ) ) + // InternalErDslParser.g:303:2: ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_type_1_0= ruleDataType ) ) ( (lv_isKey_2_0= IsIdentifier ) )? ) { - // InternalErDslParser.g:292:2: ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_type_1_0= ruleDataType ) ) ( (lv_isKey_2_0= IsIdentifier ) )? ) - // InternalErDslParser.g:293:3: ( (lv_name_0_0= RULE_ID ) ) ( (lv_type_1_0= ruleDataType ) ) ( (lv_isKey_2_0= IsIdentifier ) )? + // InternalErDslParser.g:303:2: ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_type_1_0= ruleDataType ) ) ( (lv_isKey_2_0= IsIdentifier ) )? ) + // InternalErDslParser.g:304:3: ( (lv_name_0_0= RULE_ID ) ) ( (lv_type_1_0= ruleDataType ) ) ( (lv_isKey_2_0= IsIdentifier ) )? { - // InternalErDslParser.g:293:3: ( (lv_name_0_0= RULE_ID ) ) - // InternalErDslParser.g:294:4: (lv_name_0_0= RULE_ID ) + // InternalErDslParser.g:304:3: ( (lv_name_0_0= RULE_ID ) ) + // InternalErDslParser.g:305:4: (lv_name_0_0= RULE_ID ) { - // InternalErDslParser.g:294:4: (lv_name_0_0= RULE_ID ) - // InternalErDslParser.g:295:5: lv_name_0_0= RULE_ID + // InternalErDslParser.g:305:4: (lv_name_0_0= RULE_ID ) + // InternalErDslParser.g:306:5: lv_name_0_0= RULE_ID { lv_name_0_0=(Token)match(input,RULE_ID,FOLLOW_12); @@ -716,11 +739,11 @@ public final EObject ruleAttribute() throws RecognitionException { } - // InternalErDslParser.g:311:3: ( (lv_type_1_0= ruleDataType ) ) - // InternalErDslParser.g:312:4: (lv_type_1_0= ruleDataType ) + // InternalErDslParser.g:322:3: ( (lv_type_1_0= ruleDataType ) ) + // InternalErDslParser.g:323:4: (lv_type_1_0= ruleDataType ) { - // InternalErDslParser.g:312:4: (lv_type_1_0= ruleDataType ) - // InternalErDslParser.g:313:5: lv_type_1_0= ruleDataType + // InternalErDslParser.g:323:4: (lv_type_1_0= ruleDataType ) + // InternalErDslParser.g:324:5: lv_type_1_0= ruleDataType { newCompositeNode(grammarAccess.getAttributeAccess().getTypeDataTypeEnumRuleCall_1_0()); @@ -747,7 +770,7 @@ public final EObject ruleAttribute() throws RecognitionException { } - // InternalErDslParser.g:330:3: ( (lv_isKey_2_0= IsIdentifier ) )? + // InternalErDslParser.g:341:3: ( (lv_isKey_2_0= IsIdentifier ) )? int alt5=2; int LA5_0 = input.LA(1); @@ -756,10 +779,10 @@ public final EObject ruleAttribute() throws RecognitionException { } switch (alt5) { case 1 : - // InternalErDslParser.g:331:4: (lv_isKey_2_0= IsIdentifier ) + // InternalErDslParser.g:342:4: (lv_isKey_2_0= IsIdentifier ) { - // InternalErDslParser.g:331:4: (lv_isKey_2_0= IsIdentifier ) - // InternalErDslParser.g:332:5: lv_isKey_2_0= IsIdentifier + // InternalErDslParser.g:342:4: (lv_isKey_2_0= IsIdentifier ) + // InternalErDslParser.g:343:5: lv_isKey_2_0= IsIdentifier { lv_isKey_2_0=(Token)match(input,IsIdentifier,FOLLOW_2); @@ -803,7 +826,7 @@ public final EObject ruleAttribute() throws RecognitionException { // $ANTLR start "entryRuleEntity" - // InternalErDslParser.g:348:1: entryRuleEntity returns [EObject current=null] : iv_ruleEntity= ruleEntity EOF ; + // InternalErDslParser.g:359:1: entryRuleEntity returns [EObject current=null] : iv_ruleEntity= ruleEntity EOF ; public final EObject entryRuleEntity() throws RecognitionException { EObject current = null; @@ -811,8 +834,8 @@ public final EObject entryRuleEntity() throws RecognitionException { try { - // InternalErDslParser.g:348:47: (iv_ruleEntity= ruleEntity EOF ) - // InternalErDslParser.g:349:2: iv_ruleEntity= ruleEntity EOF + // InternalErDslParser.g:359:47: (iv_ruleEntity= ruleEntity EOF ) + // InternalErDslParser.g:360:2: iv_ruleEntity= ruleEntity EOF { newCompositeNode(grammarAccess.getEntityRule()); pushFollow(FOLLOW_1); @@ -839,7 +862,7 @@ public final EObject entryRuleEntity() throws RecognitionException { // $ANTLR start "ruleEntity" - // InternalErDslParser.g:355:1: ruleEntity returns [EObject current=null] : ( ( (lv_name_0_0= RULE_ID ) ) (otherlv_1= Is ( ( (lv_generalization_2_1= TotalDisjoint | lv_generalization_2_2= TotalOverlapped | lv_generalization_2_3= PartialDisjoint | lv_generalization_2_4= PartialOverlapped ) ) ) ( (otherlv_3= RULE_ID ) ) )? (otherlv_4= LeftCurlyBracket ( (lv_attributes_5_0= ruleAttribute ) ) (otherlv_6= Comma ( (lv_attributes_7_0= ruleAttribute ) ) )* otherlv_8= RightCurlyBracket )? ) ; + // InternalErDslParser.g:366:1: ruleEntity returns [EObject current=null] : ( ( (lv_name_0_0= RULE_ID ) ) (otherlv_1= Is ( ( (lv_generalization_2_1= TotalDisjoint | lv_generalization_2_2= TotalOverlapped | lv_generalization_2_3= PartialDisjoint | lv_generalization_2_4= PartialOverlapped ) ) ) ( (otherlv_3= RULE_ID ) ) )? (otherlv_4= LeftCurlyBracket ( (lv_attributes_5_0= ruleAttribute ) ) (otherlv_6= Comma ( (lv_attributes_7_0= ruleAttribute ) ) )* otherlv_8= RightCurlyBracket )? ) ; public final EObject ruleEntity() throws RecognitionException { EObject current = null; @@ -862,17 +885,17 @@ public final EObject ruleEntity() throws RecognitionException { enterRule(); try { - // InternalErDslParser.g:361:2: ( ( ( (lv_name_0_0= RULE_ID ) ) (otherlv_1= Is ( ( (lv_generalization_2_1= TotalDisjoint | lv_generalization_2_2= TotalOverlapped | lv_generalization_2_3= PartialDisjoint | lv_generalization_2_4= PartialOverlapped ) ) ) ( (otherlv_3= RULE_ID ) ) )? (otherlv_4= LeftCurlyBracket ( (lv_attributes_5_0= ruleAttribute ) ) (otherlv_6= Comma ( (lv_attributes_7_0= ruleAttribute ) ) )* otherlv_8= RightCurlyBracket )? ) ) - // InternalErDslParser.g:362:2: ( ( (lv_name_0_0= RULE_ID ) ) (otherlv_1= Is ( ( (lv_generalization_2_1= TotalDisjoint | lv_generalization_2_2= TotalOverlapped | lv_generalization_2_3= PartialDisjoint | lv_generalization_2_4= PartialOverlapped ) ) ) ( (otherlv_3= RULE_ID ) ) )? (otherlv_4= LeftCurlyBracket ( (lv_attributes_5_0= ruleAttribute ) ) (otherlv_6= Comma ( (lv_attributes_7_0= ruleAttribute ) ) )* otherlv_8= RightCurlyBracket )? ) + // InternalErDslParser.g:372:2: ( ( ( (lv_name_0_0= RULE_ID ) ) (otherlv_1= Is ( ( (lv_generalization_2_1= TotalDisjoint | lv_generalization_2_2= TotalOverlapped | lv_generalization_2_3= PartialDisjoint | lv_generalization_2_4= PartialOverlapped ) ) ) ( (otherlv_3= RULE_ID ) ) )? (otherlv_4= LeftCurlyBracket ( (lv_attributes_5_0= ruleAttribute ) ) (otherlv_6= Comma ( (lv_attributes_7_0= ruleAttribute ) ) )* otherlv_8= RightCurlyBracket )? ) ) + // InternalErDslParser.g:373:2: ( ( (lv_name_0_0= RULE_ID ) ) (otherlv_1= Is ( ( (lv_generalization_2_1= TotalDisjoint | lv_generalization_2_2= TotalOverlapped | lv_generalization_2_3= PartialDisjoint | lv_generalization_2_4= PartialOverlapped ) ) ) ( (otherlv_3= RULE_ID ) ) )? (otherlv_4= LeftCurlyBracket ( (lv_attributes_5_0= ruleAttribute ) ) (otherlv_6= Comma ( (lv_attributes_7_0= ruleAttribute ) ) )* otherlv_8= RightCurlyBracket )? ) { - // InternalErDslParser.g:362:2: ( ( (lv_name_0_0= RULE_ID ) ) (otherlv_1= Is ( ( (lv_generalization_2_1= TotalDisjoint | lv_generalization_2_2= TotalOverlapped | lv_generalization_2_3= PartialDisjoint | lv_generalization_2_4= PartialOverlapped ) ) ) ( (otherlv_3= RULE_ID ) ) )? (otherlv_4= LeftCurlyBracket ( (lv_attributes_5_0= ruleAttribute ) ) (otherlv_6= Comma ( (lv_attributes_7_0= ruleAttribute ) ) )* otherlv_8= RightCurlyBracket )? ) - // InternalErDslParser.g:363:3: ( (lv_name_0_0= RULE_ID ) ) (otherlv_1= Is ( ( (lv_generalization_2_1= TotalDisjoint | lv_generalization_2_2= TotalOverlapped | lv_generalization_2_3= PartialDisjoint | lv_generalization_2_4= PartialOverlapped ) ) ) ( (otherlv_3= RULE_ID ) ) )? (otherlv_4= LeftCurlyBracket ( (lv_attributes_5_0= ruleAttribute ) ) (otherlv_6= Comma ( (lv_attributes_7_0= ruleAttribute ) ) )* otherlv_8= RightCurlyBracket )? + // InternalErDslParser.g:373:2: ( ( (lv_name_0_0= RULE_ID ) ) (otherlv_1= Is ( ( (lv_generalization_2_1= TotalDisjoint | lv_generalization_2_2= TotalOverlapped | lv_generalization_2_3= PartialDisjoint | lv_generalization_2_4= PartialOverlapped ) ) ) ( (otherlv_3= RULE_ID ) ) )? (otherlv_4= LeftCurlyBracket ( (lv_attributes_5_0= ruleAttribute ) ) (otherlv_6= Comma ( (lv_attributes_7_0= ruleAttribute ) ) )* otherlv_8= RightCurlyBracket )? ) + // InternalErDslParser.g:374:3: ( (lv_name_0_0= RULE_ID ) ) (otherlv_1= Is ( ( (lv_generalization_2_1= TotalDisjoint | lv_generalization_2_2= TotalOverlapped | lv_generalization_2_3= PartialDisjoint | lv_generalization_2_4= PartialOverlapped ) ) ) ( (otherlv_3= RULE_ID ) ) )? (otherlv_4= LeftCurlyBracket ( (lv_attributes_5_0= ruleAttribute ) ) (otherlv_6= Comma ( (lv_attributes_7_0= ruleAttribute ) ) )* otherlv_8= RightCurlyBracket )? { - // InternalErDslParser.g:363:3: ( (lv_name_0_0= RULE_ID ) ) - // InternalErDslParser.g:364:4: (lv_name_0_0= RULE_ID ) + // InternalErDslParser.g:374:3: ( (lv_name_0_0= RULE_ID ) ) + // InternalErDslParser.g:375:4: (lv_name_0_0= RULE_ID ) { - // InternalErDslParser.g:364:4: (lv_name_0_0= RULE_ID ) - // InternalErDslParser.g:365:5: lv_name_0_0= RULE_ID + // InternalErDslParser.g:375:4: (lv_name_0_0= RULE_ID ) + // InternalErDslParser.g:376:5: lv_name_0_0= RULE_ID { lv_name_0_0=(Token)match(input,RULE_ID,FOLLOW_14); @@ -894,7 +917,7 @@ public final EObject ruleEntity() throws RecognitionException { } - // InternalErDslParser.g:381:3: (otherlv_1= Is ( ( (lv_generalization_2_1= TotalDisjoint | lv_generalization_2_2= TotalOverlapped | lv_generalization_2_3= PartialDisjoint | lv_generalization_2_4= PartialOverlapped ) ) ) ( (otherlv_3= RULE_ID ) ) )? + // InternalErDslParser.g:392:3: (otherlv_1= Is ( ( (lv_generalization_2_1= TotalDisjoint | lv_generalization_2_2= TotalOverlapped | lv_generalization_2_3= PartialDisjoint | lv_generalization_2_4= PartialOverlapped ) ) ) ( (otherlv_3= RULE_ID ) ) )? int alt7=2; int LA7_0 = input.LA(1); @@ -903,19 +926,19 @@ public final EObject ruleEntity() throws RecognitionException { } switch (alt7) { case 1 : - // InternalErDslParser.g:382:4: otherlv_1= Is ( ( (lv_generalization_2_1= TotalDisjoint | lv_generalization_2_2= TotalOverlapped | lv_generalization_2_3= PartialDisjoint | lv_generalization_2_4= PartialOverlapped ) ) ) ( (otherlv_3= RULE_ID ) ) + // InternalErDslParser.g:393:4: otherlv_1= Is ( ( (lv_generalization_2_1= TotalDisjoint | lv_generalization_2_2= TotalOverlapped | lv_generalization_2_3= PartialDisjoint | lv_generalization_2_4= PartialOverlapped ) ) ) ( (otherlv_3= RULE_ID ) ) { otherlv_1=(Token)match(input,Is,FOLLOW_15); newLeafNode(otherlv_1, grammarAccess.getEntityAccess().getIsKeyword_1_0()); - // InternalErDslParser.g:386:4: ( ( (lv_generalization_2_1= TotalDisjoint | lv_generalization_2_2= TotalOverlapped | lv_generalization_2_3= PartialDisjoint | lv_generalization_2_4= PartialOverlapped ) ) ) - // InternalErDslParser.g:387:5: ( (lv_generalization_2_1= TotalDisjoint | lv_generalization_2_2= TotalOverlapped | lv_generalization_2_3= PartialDisjoint | lv_generalization_2_4= PartialOverlapped ) ) + // InternalErDslParser.g:397:4: ( ( (lv_generalization_2_1= TotalDisjoint | lv_generalization_2_2= TotalOverlapped | lv_generalization_2_3= PartialDisjoint | lv_generalization_2_4= PartialOverlapped ) ) ) + // InternalErDslParser.g:398:5: ( (lv_generalization_2_1= TotalDisjoint | lv_generalization_2_2= TotalOverlapped | lv_generalization_2_3= PartialDisjoint | lv_generalization_2_4= PartialOverlapped ) ) { - // InternalErDslParser.g:387:5: ( (lv_generalization_2_1= TotalDisjoint | lv_generalization_2_2= TotalOverlapped | lv_generalization_2_3= PartialDisjoint | lv_generalization_2_4= PartialOverlapped ) ) - // InternalErDslParser.g:388:6: (lv_generalization_2_1= TotalDisjoint | lv_generalization_2_2= TotalOverlapped | lv_generalization_2_3= PartialDisjoint | lv_generalization_2_4= PartialOverlapped ) + // InternalErDslParser.g:398:5: ( (lv_generalization_2_1= TotalDisjoint | lv_generalization_2_2= TotalOverlapped | lv_generalization_2_3= PartialDisjoint | lv_generalization_2_4= PartialOverlapped ) ) + // InternalErDslParser.g:399:6: (lv_generalization_2_1= TotalDisjoint | lv_generalization_2_2= TotalOverlapped | lv_generalization_2_3= PartialDisjoint | lv_generalization_2_4= PartialOverlapped ) { - // InternalErDslParser.g:388:6: (lv_generalization_2_1= TotalDisjoint | lv_generalization_2_2= TotalOverlapped | lv_generalization_2_3= PartialDisjoint | lv_generalization_2_4= PartialOverlapped ) + // InternalErDslParser.g:399:6: (lv_generalization_2_1= TotalDisjoint | lv_generalization_2_2= TotalOverlapped | lv_generalization_2_3= PartialDisjoint | lv_generalization_2_4= PartialOverlapped ) int alt6=4; switch ( input.LA(1) ) { case TotalDisjoint: @@ -947,7 +970,7 @@ public final EObject ruleEntity() throws RecognitionException { switch (alt6) { case 1 : - // InternalErDslParser.g:389:7: lv_generalization_2_1= TotalDisjoint + // InternalErDslParser.g:400:7: lv_generalization_2_1= TotalDisjoint { lv_generalization_2_1=(Token)match(input,TotalDisjoint,FOLLOW_8); @@ -963,7 +986,7 @@ public final EObject ruleEntity() throws RecognitionException { } break; case 2 : - // InternalErDslParser.g:400:7: lv_generalization_2_2= TotalOverlapped + // InternalErDslParser.g:411:7: lv_generalization_2_2= TotalOverlapped { lv_generalization_2_2=(Token)match(input,TotalOverlapped,FOLLOW_8); @@ -979,7 +1002,7 @@ public final EObject ruleEntity() throws RecognitionException { } break; case 3 : - // InternalErDslParser.g:411:7: lv_generalization_2_3= PartialDisjoint + // InternalErDslParser.g:422:7: lv_generalization_2_3= PartialDisjoint { lv_generalization_2_3=(Token)match(input,PartialDisjoint,FOLLOW_8); @@ -995,7 +1018,7 @@ public final EObject ruleEntity() throws RecognitionException { } break; case 4 : - // InternalErDslParser.g:422:7: lv_generalization_2_4= PartialOverlapped + // InternalErDslParser.g:433:7: lv_generalization_2_4= PartialOverlapped { lv_generalization_2_4=(Token)match(input,PartialOverlapped,FOLLOW_8); @@ -1019,11 +1042,11 @@ public final EObject ruleEntity() throws RecognitionException { } - // InternalErDslParser.g:435:4: ( (otherlv_3= RULE_ID ) ) - // InternalErDslParser.g:436:5: (otherlv_3= RULE_ID ) + // InternalErDslParser.g:446:4: ( (otherlv_3= RULE_ID ) ) + // InternalErDslParser.g:447:5: (otherlv_3= RULE_ID ) { - // InternalErDslParser.g:436:5: (otherlv_3= RULE_ID ) - // InternalErDslParser.g:437:6: otherlv_3= RULE_ID + // InternalErDslParser.g:447:5: (otherlv_3= RULE_ID ) + // InternalErDslParser.g:448:6: otherlv_3= RULE_ID { if (current==null) { @@ -1046,7 +1069,7 @@ public final EObject ruleEntity() throws RecognitionException { } - // InternalErDslParser.g:449:3: (otherlv_4= LeftCurlyBracket ( (lv_attributes_5_0= ruleAttribute ) ) (otherlv_6= Comma ( (lv_attributes_7_0= ruleAttribute ) ) )* otherlv_8= RightCurlyBracket )? + // InternalErDslParser.g:460:3: (otherlv_4= LeftCurlyBracket ( (lv_attributes_5_0= ruleAttribute ) ) (otherlv_6= Comma ( (lv_attributes_7_0= ruleAttribute ) ) )* otherlv_8= RightCurlyBracket )? int alt9=2; int LA9_0 = input.LA(1); @@ -1055,17 +1078,17 @@ public final EObject ruleEntity() throws RecognitionException { } switch (alt9) { case 1 : - // InternalErDslParser.g:450:4: otherlv_4= LeftCurlyBracket ( (lv_attributes_5_0= ruleAttribute ) ) (otherlv_6= Comma ( (lv_attributes_7_0= ruleAttribute ) ) )* otherlv_8= RightCurlyBracket + // InternalErDslParser.g:461:4: otherlv_4= LeftCurlyBracket ( (lv_attributes_5_0= ruleAttribute ) ) (otherlv_6= Comma ( (lv_attributes_7_0= ruleAttribute ) ) )* otherlv_8= RightCurlyBracket { otherlv_4=(Token)match(input,LeftCurlyBracket,FOLLOW_8); newLeafNode(otherlv_4, grammarAccess.getEntityAccess().getLeftCurlyBracketKeyword_2_0()); - // InternalErDslParser.g:454:4: ( (lv_attributes_5_0= ruleAttribute ) ) - // InternalErDslParser.g:455:5: (lv_attributes_5_0= ruleAttribute ) + // InternalErDslParser.g:465:4: ( (lv_attributes_5_0= ruleAttribute ) ) + // InternalErDslParser.g:466:5: (lv_attributes_5_0= ruleAttribute ) { - // InternalErDslParser.g:455:5: (lv_attributes_5_0= ruleAttribute ) - // InternalErDslParser.g:456:6: lv_attributes_5_0= ruleAttribute + // InternalErDslParser.g:466:5: (lv_attributes_5_0= ruleAttribute ) + // InternalErDslParser.g:467:6: lv_attributes_5_0= ruleAttribute { newCompositeNode(grammarAccess.getEntityAccess().getAttributesAttributeParserRuleCall_2_1_0()); @@ -1092,7 +1115,7 @@ public final EObject ruleEntity() throws RecognitionException { } - // InternalErDslParser.g:473:4: (otherlv_6= Comma ( (lv_attributes_7_0= ruleAttribute ) ) )* + // InternalErDslParser.g:484:4: (otherlv_6= Comma ( (lv_attributes_7_0= ruleAttribute ) ) )* loop8: do { int alt8=2; @@ -1105,17 +1128,17 @@ public final EObject ruleEntity() throws RecognitionException { switch (alt8) { case 1 : - // InternalErDslParser.g:474:5: otherlv_6= Comma ( (lv_attributes_7_0= ruleAttribute ) ) + // InternalErDslParser.g:485:5: otherlv_6= Comma ( (lv_attributes_7_0= ruleAttribute ) ) { otherlv_6=(Token)match(input,Comma,FOLLOW_8); newLeafNode(otherlv_6, grammarAccess.getEntityAccess().getCommaKeyword_2_2_0()); - // InternalErDslParser.g:478:5: ( (lv_attributes_7_0= ruleAttribute ) ) - // InternalErDslParser.g:479:6: (lv_attributes_7_0= ruleAttribute ) + // InternalErDslParser.g:489:5: ( (lv_attributes_7_0= ruleAttribute ) ) + // InternalErDslParser.g:490:6: (lv_attributes_7_0= ruleAttribute ) { - // InternalErDslParser.g:479:6: (lv_attributes_7_0= ruleAttribute ) - // InternalErDslParser.g:480:7: lv_attributes_7_0= ruleAttribute + // InternalErDslParser.g:490:6: (lv_attributes_7_0= ruleAttribute ) + // InternalErDslParser.g:491:7: lv_attributes_7_0= ruleAttribute { newCompositeNode(grammarAccess.getEntityAccess().getAttributesAttributeParserRuleCall_2_2_1_0()); @@ -1184,7 +1207,7 @@ public final EObject ruleEntity() throws RecognitionException { // $ANTLR start "entryRuleRelation" - // InternalErDslParser.g:507:1: entryRuleRelation returns [EObject current=null] : iv_ruleRelation= ruleRelation EOF ; + // InternalErDslParser.g:518:1: entryRuleRelation returns [EObject current=null] : iv_ruleRelation= ruleRelation EOF ; public final EObject entryRuleRelation() throws RecognitionException { EObject current = null; @@ -1192,8 +1215,8 @@ public final EObject entryRuleRelation() throws RecognitionException { try { - // InternalErDslParser.g:507:49: (iv_ruleRelation= ruleRelation EOF ) - // InternalErDslParser.g:508:2: iv_ruleRelation= ruleRelation EOF + // InternalErDslParser.g:518:49: (iv_ruleRelation= ruleRelation EOF ) + // InternalErDslParser.g:519:2: iv_ruleRelation= ruleRelation EOF { newCompositeNode(grammarAccess.getRelationRule()); pushFollow(FOLLOW_1); @@ -1220,7 +1243,7 @@ public final EObject entryRuleRelation() throws RecognitionException { // $ANTLR start "ruleRelation" - // InternalErDslParser.g:514:1: ruleRelation returns [EObject current=null] : ( ( (lv_name_0_0= RULE_ID ) )? (otherlv_1= LeftSquareBracket ( (lv_leftEnding_2_0= ruleRelationSideLeft ) ) otherlv_3= Relates ( (lv_rightEnding_4_0= ruleRelationSideRight ) ) otherlv_5= RightSquareBracket ) (otherlv_6= LeftCurlyBracket ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= Comma ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= RightCurlyBracket )* ) ; + // InternalErDslParser.g:525:1: ruleRelation returns [EObject current=null] : ( ( (lv_name_0_0= RULE_ID ) )? (otherlv_1= LeftSquareBracket ( (lv_leftEnding_2_0= ruleRelationSideLeft ) ) otherlv_3= Relates ( (lv_rightEnding_4_0= ruleRelationSideRight ) ) otherlv_5= RightSquareBracket ) (otherlv_6= LeftCurlyBracket ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= Comma ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= RightCurlyBracket )* ) ; public final EObject ruleRelation() throws RecognitionException { EObject current = null; @@ -1244,13 +1267,13 @@ public final EObject ruleRelation() throws RecognitionException { enterRule(); try { - // InternalErDslParser.g:520:2: ( ( ( (lv_name_0_0= RULE_ID ) )? (otherlv_1= LeftSquareBracket ( (lv_leftEnding_2_0= ruleRelationSideLeft ) ) otherlv_3= Relates ( (lv_rightEnding_4_0= ruleRelationSideRight ) ) otherlv_5= RightSquareBracket ) (otherlv_6= LeftCurlyBracket ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= Comma ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= RightCurlyBracket )* ) ) - // InternalErDslParser.g:521:2: ( ( (lv_name_0_0= RULE_ID ) )? (otherlv_1= LeftSquareBracket ( (lv_leftEnding_2_0= ruleRelationSideLeft ) ) otherlv_3= Relates ( (lv_rightEnding_4_0= ruleRelationSideRight ) ) otherlv_5= RightSquareBracket ) (otherlv_6= LeftCurlyBracket ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= Comma ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= RightCurlyBracket )* ) + // InternalErDslParser.g:531:2: ( ( ( (lv_name_0_0= RULE_ID ) )? (otherlv_1= LeftSquareBracket ( (lv_leftEnding_2_0= ruleRelationSideLeft ) ) otherlv_3= Relates ( (lv_rightEnding_4_0= ruleRelationSideRight ) ) otherlv_5= RightSquareBracket ) (otherlv_6= LeftCurlyBracket ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= Comma ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= RightCurlyBracket )* ) ) + // InternalErDslParser.g:532:2: ( ( (lv_name_0_0= RULE_ID ) )? (otherlv_1= LeftSquareBracket ( (lv_leftEnding_2_0= ruleRelationSideLeft ) ) otherlv_3= Relates ( (lv_rightEnding_4_0= ruleRelationSideRight ) ) otherlv_5= RightSquareBracket ) (otherlv_6= LeftCurlyBracket ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= Comma ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= RightCurlyBracket )* ) { - // InternalErDslParser.g:521:2: ( ( (lv_name_0_0= RULE_ID ) )? (otherlv_1= LeftSquareBracket ( (lv_leftEnding_2_0= ruleRelationSideLeft ) ) otherlv_3= Relates ( (lv_rightEnding_4_0= ruleRelationSideRight ) ) otherlv_5= RightSquareBracket ) (otherlv_6= LeftCurlyBracket ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= Comma ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= RightCurlyBracket )* ) - // InternalErDslParser.g:522:3: ( (lv_name_0_0= RULE_ID ) )? (otherlv_1= LeftSquareBracket ( (lv_leftEnding_2_0= ruleRelationSideLeft ) ) otherlv_3= Relates ( (lv_rightEnding_4_0= ruleRelationSideRight ) ) otherlv_5= RightSquareBracket ) (otherlv_6= LeftCurlyBracket ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= Comma ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= RightCurlyBracket )* + // InternalErDslParser.g:532:2: ( ( (lv_name_0_0= RULE_ID ) )? (otherlv_1= LeftSquareBracket ( (lv_leftEnding_2_0= ruleRelationSideLeft ) ) otherlv_3= Relates ( (lv_rightEnding_4_0= ruleRelationSideRight ) ) otherlv_5= RightSquareBracket ) (otherlv_6= LeftCurlyBracket ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= Comma ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= RightCurlyBracket )* ) + // InternalErDslParser.g:533:3: ( (lv_name_0_0= RULE_ID ) )? (otherlv_1= LeftSquareBracket ( (lv_leftEnding_2_0= ruleRelationSideLeft ) ) otherlv_3= Relates ( (lv_rightEnding_4_0= ruleRelationSideRight ) ) otherlv_5= RightSquareBracket ) (otherlv_6= LeftCurlyBracket ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= Comma ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= RightCurlyBracket )* { - // InternalErDslParser.g:522:3: ( (lv_name_0_0= RULE_ID ) )? + // InternalErDslParser.g:533:3: ( (lv_name_0_0= RULE_ID ) )? int alt10=2; int LA10_0 = input.LA(1); @@ -1259,10 +1282,10 @@ public final EObject ruleRelation() throws RecognitionException { } switch (alt10) { case 1 : - // InternalErDslParser.g:523:4: (lv_name_0_0= RULE_ID ) + // InternalErDslParser.g:534:4: (lv_name_0_0= RULE_ID ) { - // InternalErDslParser.g:523:4: (lv_name_0_0= RULE_ID ) - // InternalErDslParser.g:524:5: lv_name_0_0= RULE_ID + // InternalErDslParser.g:534:4: (lv_name_0_0= RULE_ID ) + // InternalErDslParser.g:535:5: lv_name_0_0= RULE_ID { lv_name_0_0=(Token)match(input,RULE_ID,FOLLOW_18); @@ -1287,18 +1310,18 @@ public final EObject ruleRelation() throws RecognitionException { } - // InternalErDslParser.g:540:3: (otherlv_1= LeftSquareBracket ( (lv_leftEnding_2_0= ruleRelationSideLeft ) ) otherlv_3= Relates ( (lv_rightEnding_4_0= ruleRelationSideRight ) ) otherlv_5= RightSquareBracket ) - // InternalErDslParser.g:541:4: otherlv_1= LeftSquareBracket ( (lv_leftEnding_2_0= ruleRelationSideLeft ) ) otherlv_3= Relates ( (lv_rightEnding_4_0= ruleRelationSideRight ) ) otherlv_5= RightSquareBracket + // InternalErDslParser.g:551:3: (otherlv_1= LeftSquareBracket ( (lv_leftEnding_2_0= ruleRelationSideLeft ) ) otherlv_3= Relates ( (lv_rightEnding_4_0= ruleRelationSideRight ) ) otherlv_5= RightSquareBracket ) + // InternalErDslParser.g:552:4: otherlv_1= LeftSquareBracket ( (lv_leftEnding_2_0= ruleRelationSideLeft ) ) otherlv_3= Relates ( (lv_rightEnding_4_0= ruleRelationSideRight ) ) otherlv_5= RightSquareBracket { otherlv_1=(Token)match(input,LeftSquareBracket,FOLLOW_8); newLeafNode(otherlv_1, grammarAccess.getRelationAccess().getLeftSquareBracketKeyword_1_0()); - // InternalErDslParser.g:545:4: ( (lv_leftEnding_2_0= ruleRelationSideLeft ) ) - // InternalErDslParser.g:546:5: (lv_leftEnding_2_0= ruleRelationSideLeft ) + // InternalErDslParser.g:556:4: ( (lv_leftEnding_2_0= ruleRelationSideLeft ) ) + // InternalErDslParser.g:557:5: (lv_leftEnding_2_0= ruleRelationSideLeft ) { - // InternalErDslParser.g:546:5: (lv_leftEnding_2_0= ruleRelationSideLeft ) - // InternalErDslParser.g:547:6: lv_leftEnding_2_0= ruleRelationSideLeft + // InternalErDslParser.g:557:5: (lv_leftEnding_2_0= ruleRelationSideLeft ) + // InternalErDslParser.g:558:6: lv_leftEnding_2_0= ruleRelationSideLeft { newCompositeNode(grammarAccess.getRelationAccess().getLeftEndingRelationSideLeftParserRuleCall_1_1_0()); @@ -1329,11 +1352,11 @@ public final EObject ruleRelation() throws RecognitionException { newLeafNode(otherlv_3, grammarAccess.getRelationAccess().getRelatesKeyword_1_2()); - // InternalErDslParser.g:568:4: ( (lv_rightEnding_4_0= ruleRelationSideRight ) ) - // InternalErDslParser.g:569:5: (lv_rightEnding_4_0= ruleRelationSideRight ) + // InternalErDslParser.g:579:4: ( (lv_rightEnding_4_0= ruleRelationSideRight ) ) + // InternalErDslParser.g:580:5: (lv_rightEnding_4_0= ruleRelationSideRight ) { - // InternalErDslParser.g:569:5: (lv_rightEnding_4_0= ruleRelationSideRight ) - // InternalErDslParser.g:570:6: lv_rightEnding_4_0= ruleRelationSideRight + // InternalErDslParser.g:580:5: (lv_rightEnding_4_0= ruleRelationSideRight ) + // InternalErDslParser.g:581:6: lv_rightEnding_4_0= ruleRelationSideRight { newCompositeNode(grammarAccess.getRelationAccess().getRightEndingRelationSideRightParserRuleCall_1_3_0()); @@ -1367,7 +1390,7 @@ public final EObject ruleRelation() throws RecognitionException { } - // InternalErDslParser.g:592:3: (otherlv_6= LeftCurlyBracket ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= Comma ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= RightCurlyBracket )* + // InternalErDslParser.g:603:3: (otherlv_6= LeftCurlyBracket ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= Comma ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= RightCurlyBracket )* loop12: do { int alt12=2; @@ -1380,17 +1403,17 @@ public final EObject ruleRelation() throws RecognitionException { switch (alt12) { case 1 : - // InternalErDslParser.g:593:4: otherlv_6= LeftCurlyBracket ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= Comma ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= RightCurlyBracket + // InternalErDslParser.g:604:4: otherlv_6= LeftCurlyBracket ( (lv_attributes_7_0= ruleAttribute ) ) (otherlv_8= Comma ( (lv_attributes_9_0= ruleAttribute ) ) )* otherlv_10= RightCurlyBracket { otherlv_6=(Token)match(input,LeftCurlyBracket,FOLLOW_8); newLeafNode(otherlv_6, grammarAccess.getRelationAccess().getLeftCurlyBracketKeyword_2_0()); - // InternalErDslParser.g:597:4: ( (lv_attributes_7_0= ruleAttribute ) ) - // InternalErDslParser.g:598:5: (lv_attributes_7_0= ruleAttribute ) + // InternalErDslParser.g:608:4: ( (lv_attributes_7_0= ruleAttribute ) ) + // InternalErDslParser.g:609:5: (lv_attributes_7_0= ruleAttribute ) { - // InternalErDslParser.g:598:5: (lv_attributes_7_0= ruleAttribute ) - // InternalErDslParser.g:599:6: lv_attributes_7_0= ruleAttribute + // InternalErDslParser.g:609:5: (lv_attributes_7_0= ruleAttribute ) + // InternalErDslParser.g:610:6: lv_attributes_7_0= ruleAttribute { newCompositeNode(grammarAccess.getRelationAccess().getAttributesAttributeParserRuleCall_2_1_0()); @@ -1417,7 +1440,7 @@ public final EObject ruleRelation() throws RecognitionException { } - // InternalErDslParser.g:616:4: (otherlv_8= Comma ( (lv_attributes_9_0= ruleAttribute ) ) )* + // InternalErDslParser.g:627:4: (otherlv_8= Comma ( (lv_attributes_9_0= ruleAttribute ) ) )* loop11: do { int alt11=2; @@ -1430,17 +1453,17 @@ public final EObject ruleRelation() throws RecognitionException { switch (alt11) { case 1 : - // InternalErDslParser.g:617:5: otherlv_8= Comma ( (lv_attributes_9_0= ruleAttribute ) ) + // InternalErDslParser.g:628:5: otherlv_8= Comma ( (lv_attributes_9_0= ruleAttribute ) ) { otherlv_8=(Token)match(input,Comma,FOLLOW_8); newLeafNode(otherlv_8, grammarAccess.getRelationAccess().getCommaKeyword_2_2_0()); - // InternalErDslParser.g:621:5: ( (lv_attributes_9_0= ruleAttribute ) ) - // InternalErDslParser.g:622:6: (lv_attributes_9_0= ruleAttribute ) + // InternalErDslParser.g:632:5: ( (lv_attributes_9_0= ruleAttribute ) ) + // InternalErDslParser.g:633:6: (lv_attributes_9_0= ruleAttribute ) { - // InternalErDslParser.g:622:6: (lv_attributes_9_0= ruleAttribute ) - // InternalErDslParser.g:623:7: lv_attributes_9_0= ruleAttribute + // InternalErDslParser.g:633:6: (lv_attributes_9_0= ruleAttribute ) + // InternalErDslParser.g:634:7: lv_attributes_9_0= ruleAttribute { newCompositeNode(grammarAccess.getRelationAccess().getAttributesAttributeParserRuleCall_2_2_1_0()); @@ -1512,7 +1535,7 @@ public final EObject ruleRelation() throws RecognitionException { // $ANTLR start "entryRuleRelationSideRight" - // InternalErDslParser.g:650:1: entryRuleRelationSideRight returns [EObject current=null] : iv_ruleRelationSideRight= ruleRelationSideRight EOF ; + // InternalErDslParser.g:661:1: entryRuleRelationSideRight returns [EObject current=null] : iv_ruleRelationSideRight= ruleRelationSideRight EOF ; public final EObject entryRuleRelationSideRight() throws RecognitionException { EObject current = null; @@ -1520,8 +1543,8 @@ public final EObject entryRuleRelationSideRight() throws RecognitionException { try { - // InternalErDslParser.g:650:58: (iv_ruleRelationSideRight= ruleRelationSideRight EOF ) - // InternalErDslParser.g:651:2: iv_ruleRelationSideRight= ruleRelationSideRight EOF + // InternalErDslParser.g:661:58: (iv_ruleRelationSideRight= ruleRelationSideRight EOF ) + // InternalErDslParser.g:662:2: iv_ruleRelationSideRight= ruleRelationSideRight EOF { newCompositeNode(grammarAccess.getRelationSideRightRule()); pushFollow(FOLLOW_1); @@ -1548,7 +1571,7 @@ public final EObject entryRuleRelationSideRight() throws RecognitionException { // $ANTLR start "ruleRelationSideRight" - // InternalErDslParser.g:657:1: ruleRelationSideRight returns [EObject current=null] : ( ( ( ( (lv_cardinality_0_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_0_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_0_3= N | lv_cardinality_0_4= N_1 ) ) ) ( (otherlv_1= RULE_ID ) ) ) | ( (otherlv_2= RULE_ID ) ) ) ; + // InternalErDslParser.g:668:1: ruleRelationSideRight returns [EObject current=null] : ( ( ( ( (lv_cardinality_0_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_0_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_0_3= N | lv_cardinality_0_4= N_1 ) ) ) ( (otherlv_1= RULE_ID ) ) ) | ( (otherlv_2= RULE_ID ) ) ) ; public final EObject ruleRelationSideRight() throws RecognitionException { EObject current = null; @@ -1563,10 +1586,10 @@ public final EObject ruleRelationSideRight() throws RecognitionException { enterRule(); try { - // InternalErDslParser.g:663:2: ( ( ( ( ( (lv_cardinality_0_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_0_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_0_3= N | lv_cardinality_0_4= N_1 ) ) ) ( (otherlv_1= RULE_ID ) ) ) | ( (otherlv_2= RULE_ID ) ) ) ) - // InternalErDslParser.g:664:2: ( ( ( ( (lv_cardinality_0_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_0_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_0_3= N | lv_cardinality_0_4= N_1 ) ) ) ( (otherlv_1= RULE_ID ) ) ) | ( (otherlv_2= RULE_ID ) ) ) + // InternalErDslParser.g:674:2: ( ( ( ( ( (lv_cardinality_0_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_0_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_0_3= N | lv_cardinality_0_4= N_1 ) ) ) ( (otherlv_1= RULE_ID ) ) ) | ( (otherlv_2= RULE_ID ) ) ) ) + // InternalErDslParser.g:675:2: ( ( ( ( (lv_cardinality_0_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_0_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_0_3= N | lv_cardinality_0_4= N_1 ) ) ) ( (otherlv_1= RULE_ID ) ) ) | ( (otherlv_2= RULE_ID ) ) ) { - // InternalErDslParser.g:664:2: ( ( ( ( (lv_cardinality_0_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_0_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_0_3= N | lv_cardinality_0_4= N_1 ) ) ) ( (otherlv_1= RULE_ID ) ) ) | ( (otherlv_2= RULE_ID ) ) ) + // InternalErDslParser.g:675:2: ( ( ( ( (lv_cardinality_0_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_0_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_0_3= N | lv_cardinality_0_4= N_1 ) ) ) ( (otherlv_1= RULE_ID ) ) ) | ( (otherlv_2= RULE_ID ) ) ) int alt14=2; int LA14_0 = input.LA(1); @@ -1584,18 +1607,18 @@ else if ( (LA14_0==RULE_ID) ) { } switch (alt14) { case 1 : - // InternalErDslParser.g:665:3: ( ( ( (lv_cardinality_0_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_0_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_0_3= N | lv_cardinality_0_4= N_1 ) ) ) ( (otherlv_1= RULE_ID ) ) ) + // InternalErDslParser.g:676:3: ( ( ( (lv_cardinality_0_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_0_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_0_3= N | lv_cardinality_0_4= N_1 ) ) ) ( (otherlv_1= RULE_ID ) ) ) { - // InternalErDslParser.g:665:3: ( ( ( (lv_cardinality_0_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_0_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_0_3= N | lv_cardinality_0_4= N_1 ) ) ) ( (otherlv_1= RULE_ID ) ) ) - // InternalErDslParser.g:666:4: ( ( (lv_cardinality_0_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_0_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_0_3= N | lv_cardinality_0_4= N_1 ) ) ) ( (otherlv_1= RULE_ID ) ) + // InternalErDslParser.g:676:3: ( ( ( (lv_cardinality_0_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_0_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_0_3= N | lv_cardinality_0_4= N_1 ) ) ) ( (otherlv_1= RULE_ID ) ) ) + // InternalErDslParser.g:677:4: ( ( (lv_cardinality_0_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_0_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_0_3= N | lv_cardinality_0_4= N_1 ) ) ) ( (otherlv_1= RULE_ID ) ) { - // InternalErDslParser.g:666:4: ( ( (lv_cardinality_0_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_0_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_0_3= N | lv_cardinality_0_4= N_1 ) ) ) - // InternalErDslParser.g:667:5: ( (lv_cardinality_0_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_0_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_0_3= N | lv_cardinality_0_4= N_1 ) ) + // InternalErDslParser.g:677:4: ( ( (lv_cardinality_0_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_0_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_0_3= N | lv_cardinality_0_4= N_1 ) ) ) + // InternalErDslParser.g:678:5: ( (lv_cardinality_0_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_0_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_0_3= N | lv_cardinality_0_4= N_1 ) ) { - // InternalErDslParser.g:667:5: ( (lv_cardinality_0_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_0_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_0_3= N | lv_cardinality_0_4= N_1 ) ) - // InternalErDslParser.g:668:6: (lv_cardinality_0_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_0_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_0_3= N | lv_cardinality_0_4= N_1 ) + // InternalErDslParser.g:678:5: ( (lv_cardinality_0_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_0_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_0_3= N | lv_cardinality_0_4= N_1 ) ) + // InternalErDslParser.g:679:6: (lv_cardinality_0_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_0_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_0_3= N | lv_cardinality_0_4= N_1 ) { - // InternalErDslParser.g:668:6: (lv_cardinality_0_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_0_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_0_3= N | lv_cardinality_0_4= N_1 ) + // InternalErDslParser.g:679:6: (lv_cardinality_0_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_0_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_0_3= N | lv_cardinality_0_4= N_1 ) int alt13=4; switch ( input.LA(1) ) { case LeftParenthesisDigitZeroColonDigitOneRightParenthesis: @@ -1627,7 +1650,7 @@ else if ( (LA14_0==RULE_ID) ) { switch (alt13) { case 1 : - // InternalErDslParser.g:669:7: lv_cardinality_0_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis + // InternalErDslParser.g:680:7: lv_cardinality_0_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis { lv_cardinality_0_1=(Token)match(input,LeftParenthesisDigitZeroColonDigitOneRightParenthesis,FOLLOW_8); @@ -1643,7 +1666,7 @@ else if ( (LA14_0==RULE_ID) ) { } break; case 2 : - // InternalErDslParser.g:680:7: lv_cardinality_0_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis + // InternalErDslParser.g:691:7: lv_cardinality_0_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis { lv_cardinality_0_2=(Token)match(input,LeftParenthesisDigitOneColonDigitOneRightParenthesis,FOLLOW_8); @@ -1659,7 +1682,7 @@ else if ( (LA14_0==RULE_ID) ) { } break; case 3 : - // InternalErDslParser.g:691:7: lv_cardinality_0_3= N + // InternalErDslParser.g:702:7: lv_cardinality_0_3= N { lv_cardinality_0_3=(Token)match(input,N,FOLLOW_8); @@ -1675,7 +1698,7 @@ else if ( (LA14_0==RULE_ID) ) { } break; case 4 : - // InternalErDslParser.g:702:7: lv_cardinality_0_4= N_1 + // InternalErDslParser.g:713:7: lv_cardinality_0_4= N_1 { lv_cardinality_0_4=(Token)match(input,N_1,FOLLOW_8); @@ -1699,11 +1722,11 @@ else if ( (LA14_0==RULE_ID) ) { } - // InternalErDslParser.g:715:4: ( (otherlv_1= RULE_ID ) ) - // InternalErDslParser.g:716:5: (otherlv_1= RULE_ID ) + // InternalErDslParser.g:726:4: ( (otherlv_1= RULE_ID ) ) + // InternalErDslParser.g:727:5: (otherlv_1= RULE_ID ) { - // InternalErDslParser.g:716:5: (otherlv_1= RULE_ID ) - // InternalErDslParser.g:717:6: otherlv_1= RULE_ID + // InternalErDslParser.g:727:5: (otherlv_1= RULE_ID ) + // InternalErDslParser.g:728:6: otherlv_1= RULE_ID { if (current==null) { @@ -1727,13 +1750,13 @@ else if ( (LA14_0==RULE_ID) ) { } break; case 2 : - // InternalErDslParser.g:730:3: ( (otherlv_2= RULE_ID ) ) + // InternalErDslParser.g:741:3: ( (otherlv_2= RULE_ID ) ) { - // InternalErDslParser.g:730:3: ( (otherlv_2= RULE_ID ) ) - // InternalErDslParser.g:731:4: (otherlv_2= RULE_ID ) + // InternalErDslParser.g:741:3: ( (otherlv_2= RULE_ID ) ) + // InternalErDslParser.g:742:4: (otherlv_2= RULE_ID ) { - // InternalErDslParser.g:731:4: (otherlv_2= RULE_ID ) - // InternalErDslParser.g:732:5: otherlv_2= RULE_ID + // InternalErDslParser.g:742:4: (otherlv_2= RULE_ID ) + // InternalErDslParser.g:743:5: otherlv_2= RULE_ID { if (current==null) { @@ -1776,7 +1799,7 @@ else if ( (LA14_0==RULE_ID) ) { // $ANTLR start "entryRuleRelationSideLeft" - // InternalErDslParser.g:747:1: entryRuleRelationSideLeft returns [EObject current=null] : iv_ruleRelationSideLeft= ruleRelationSideLeft EOF ; + // InternalErDslParser.g:758:1: entryRuleRelationSideLeft returns [EObject current=null] : iv_ruleRelationSideLeft= ruleRelationSideLeft EOF ; public final EObject entryRuleRelationSideLeft() throws RecognitionException { EObject current = null; @@ -1784,8 +1807,8 @@ public final EObject entryRuleRelationSideLeft() throws RecognitionException { try { - // InternalErDslParser.g:747:57: (iv_ruleRelationSideLeft= ruleRelationSideLeft EOF ) - // InternalErDslParser.g:748:2: iv_ruleRelationSideLeft= ruleRelationSideLeft EOF + // InternalErDslParser.g:758:57: (iv_ruleRelationSideLeft= ruleRelationSideLeft EOF ) + // InternalErDslParser.g:759:2: iv_ruleRelationSideLeft= ruleRelationSideLeft EOF { newCompositeNode(grammarAccess.getRelationSideLeftRule()); pushFollow(FOLLOW_1); @@ -1812,7 +1835,7 @@ public final EObject entryRuleRelationSideLeft() throws RecognitionException { // $ANTLR start "ruleRelationSideLeft" - // InternalErDslParser.g:754:1: ruleRelationSideLeft returns [EObject current=null] : ( ( (otherlv_0= RULE_ID ) ) | ( ( (otherlv_1= RULE_ID ) ) ( ( (lv_cardinality_2_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_2_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_2_3= N | lv_cardinality_2_4= N_1 ) ) ) ) ) ; + // InternalErDslParser.g:765:1: ruleRelationSideLeft returns [EObject current=null] : ( ( (otherlv_0= RULE_ID ) ) | ( ( (otherlv_1= RULE_ID ) ) ( ( (lv_cardinality_2_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_2_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_2_3= N | lv_cardinality_2_4= N_1 ) ) ) ) ) ; public final EObject ruleRelationSideLeft() throws RecognitionException { EObject current = null; @@ -1827,22 +1850,22 @@ public final EObject ruleRelationSideLeft() throws RecognitionException { enterRule(); try { - // InternalErDslParser.g:760:2: ( ( ( (otherlv_0= RULE_ID ) ) | ( ( (otherlv_1= RULE_ID ) ) ( ( (lv_cardinality_2_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_2_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_2_3= N | lv_cardinality_2_4= N_1 ) ) ) ) ) ) - // InternalErDslParser.g:761:2: ( ( (otherlv_0= RULE_ID ) ) | ( ( (otherlv_1= RULE_ID ) ) ( ( (lv_cardinality_2_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_2_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_2_3= N | lv_cardinality_2_4= N_1 ) ) ) ) ) + // InternalErDslParser.g:771:2: ( ( ( (otherlv_0= RULE_ID ) ) | ( ( (otherlv_1= RULE_ID ) ) ( ( (lv_cardinality_2_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_2_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_2_3= N | lv_cardinality_2_4= N_1 ) ) ) ) ) ) + // InternalErDslParser.g:772:2: ( ( (otherlv_0= RULE_ID ) ) | ( ( (otherlv_1= RULE_ID ) ) ( ( (lv_cardinality_2_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_2_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_2_3= N | lv_cardinality_2_4= N_1 ) ) ) ) ) { - // InternalErDslParser.g:761:2: ( ( (otherlv_0= RULE_ID ) ) | ( ( (otherlv_1= RULE_ID ) ) ( ( (lv_cardinality_2_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_2_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_2_3= N | lv_cardinality_2_4= N_1 ) ) ) ) ) + // InternalErDslParser.g:772:2: ( ( (otherlv_0= RULE_ID ) ) | ( ( (otherlv_1= RULE_ID ) ) ( ( (lv_cardinality_2_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_2_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_2_3= N | lv_cardinality_2_4= N_1 ) ) ) ) ) int alt16=2; int LA16_0 = input.LA(1); if ( (LA16_0==RULE_ID) ) { int LA16_1 = input.LA(2); - if ( (LA16_1==EOF||LA16_1==Relates) ) { - alt16=1; - } - else if ( ((LA16_1>=LeftParenthesisDigitZeroColonDigitOneRightParenthesis && LA16_1<=N_1)) ) { + if ( ((LA16_1>=LeftParenthesisDigitZeroColonDigitOneRightParenthesis && LA16_1<=N_1)) ) { alt16=2; } + else if ( (LA16_1==EOF||LA16_1==Relates) ) { + alt16=1; + } else { NoViableAltException nvae = new NoViableAltException("", 16, 1, input); @@ -1858,13 +1881,13 @@ else if ( ((LA16_1>=LeftParenthesisDigitZeroColonDigitOneRightParenthesis && LA1 } switch (alt16) { case 1 : - // InternalErDslParser.g:762:3: ( (otherlv_0= RULE_ID ) ) + // InternalErDslParser.g:773:3: ( (otherlv_0= RULE_ID ) ) { - // InternalErDslParser.g:762:3: ( (otherlv_0= RULE_ID ) ) - // InternalErDslParser.g:763:4: (otherlv_0= RULE_ID ) + // InternalErDslParser.g:773:3: ( (otherlv_0= RULE_ID ) ) + // InternalErDslParser.g:774:4: (otherlv_0= RULE_ID ) { - // InternalErDslParser.g:763:4: (otherlv_0= RULE_ID ) - // InternalErDslParser.g:764:5: otherlv_0= RULE_ID + // InternalErDslParser.g:774:4: (otherlv_0= RULE_ID ) + // InternalErDslParser.g:775:5: otherlv_0= RULE_ID { if (current==null) { @@ -1885,16 +1908,16 @@ else if ( ((LA16_1>=LeftParenthesisDigitZeroColonDigitOneRightParenthesis && LA1 } break; case 2 : - // InternalErDslParser.g:776:3: ( ( (otherlv_1= RULE_ID ) ) ( ( (lv_cardinality_2_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_2_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_2_3= N | lv_cardinality_2_4= N_1 ) ) ) ) + // InternalErDslParser.g:787:3: ( ( (otherlv_1= RULE_ID ) ) ( ( (lv_cardinality_2_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_2_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_2_3= N | lv_cardinality_2_4= N_1 ) ) ) ) { - // InternalErDslParser.g:776:3: ( ( (otherlv_1= RULE_ID ) ) ( ( (lv_cardinality_2_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_2_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_2_3= N | lv_cardinality_2_4= N_1 ) ) ) ) - // InternalErDslParser.g:777:4: ( (otherlv_1= RULE_ID ) ) ( ( (lv_cardinality_2_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_2_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_2_3= N | lv_cardinality_2_4= N_1 ) ) ) + // InternalErDslParser.g:787:3: ( ( (otherlv_1= RULE_ID ) ) ( ( (lv_cardinality_2_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_2_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_2_3= N | lv_cardinality_2_4= N_1 ) ) ) ) + // InternalErDslParser.g:788:4: ( (otherlv_1= RULE_ID ) ) ( ( (lv_cardinality_2_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_2_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_2_3= N | lv_cardinality_2_4= N_1 ) ) ) { - // InternalErDslParser.g:777:4: ( (otherlv_1= RULE_ID ) ) - // InternalErDslParser.g:778:5: (otherlv_1= RULE_ID ) + // InternalErDslParser.g:788:4: ( (otherlv_1= RULE_ID ) ) + // InternalErDslParser.g:789:5: (otherlv_1= RULE_ID ) { - // InternalErDslParser.g:778:5: (otherlv_1= RULE_ID ) - // InternalErDslParser.g:779:6: otherlv_1= RULE_ID + // InternalErDslParser.g:789:5: (otherlv_1= RULE_ID ) + // InternalErDslParser.g:790:6: otherlv_1= RULE_ID { if (current==null) { @@ -1911,13 +1934,13 @@ else if ( ((LA16_1>=LeftParenthesisDigitZeroColonDigitOneRightParenthesis && LA1 } - // InternalErDslParser.g:790:4: ( ( (lv_cardinality_2_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_2_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_2_3= N | lv_cardinality_2_4= N_1 ) ) ) - // InternalErDslParser.g:791:5: ( (lv_cardinality_2_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_2_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_2_3= N | lv_cardinality_2_4= N_1 ) ) + // InternalErDslParser.g:801:4: ( ( (lv_cardinality_2_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_2_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_2_3= N | lv_cardinality_2_4= N_1 ) ) ) + // InternalErDslParser.g:802:5: ( (lv_cardinality_2_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_2_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_2_3= N | lv_cardinality_2_4= N_1 ) ) { - // InternalErDslParser.g:791:5: ( (lv_cardinality_2_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_2_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_2_3= N | lv_cardinality_2_4= N_1 ) ) - // InternalErDslParser.g:792:6: (lv_cardinality_2_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_2_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_2_3= N | lv_cardinality_2_4= N_1 ) + // InternalErDslParser.g:802:5: ( (lv_cardinality_2_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_2_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_2_3= N | lv_cardinality_2_4= N_1 ) ) + // InternalErDslParser.g:803:6: (lv_cardinality_2_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_2_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_2_3= N | lv_cardinality_2_4= N_1 ) { - // InternalErDslParser.g:792:6: (lv_cardinality_2_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_2_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_2_3= N | lv_cardinality_2_4= N_1 ) + // InternalErDslParser.g:803:6: (lv_cardinality_2_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis | lv_cardinality_2_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis | lv_cardinality_2_3= N | lv_cardinality_2_4= N_1 ) int alt15=4; switch ( input.LA(1) ) { case LeftParenthesisDigitZeroColonDigitOneRightParenthesis: @@ -1949,7 +1972,7 @@ else if ( ((LA16_1>=LeftParenthesisDigitZeroColonDigitOneRightParenthesis && LA1 switch (alt15) { case 1 : - // InternalErDslParser.g:793:7: lv_cardinality_2_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis + // InternalErDslParser.g:804:7: lv_cardinality_2_1= LeftParenthesisDigitZeroColonDigitOneRightParenthesis { lv_cardinality_2_1=(Token)match(input,LeftParenthesisDigitZeroColonDigitOneRightParenthesis,FOLLOW_2); @@ -1965,7 +1988,7 @@ else if ( ((LA16_1>=LeftParenthesisDigitZeroColonDigitOneRightParenthesis && LA1 } break; case 2 : - // InternalErDslParser.g:804:7: lv_cardinality_2_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis + // InternalErDslParser.g:815:7: lv_cardinality_2_2= LeftParenthesisDigitOneColonDigitOneRightParenthesis { lv_cardinality_2_2=(Token)match(input,LeftParenthesisDigitOneColonDigitOneRightParenthesis,FOLLOW_2); @@ -1981,7 +2004,7 @@ else if ( ((LA16_1>=LeftParenthesisDigitZeroColonDigitOneRightParenthesis && LA1 } break; case 3 : - // InternalErDslParser.g:815:7: lv_cardinality_2_3= N + // InternalErDslParser.g:826:7: lv_cardinality_2_3= N { lv_cardinality_2_3=(Token)match(input,N,FOLLOW_2); @@ -1997,7 +2020,7 @@ else if ( ((LA16_1>=LeftParenthesisDigitZeroColonDigitOneRightParenthesis && LA1 } break; case 4 : - // InternalErDslParser.g:826:7: lv_cardinality_2_4= N_1 + // InternalErDslParser.g:837:7: lv_cardinality_2_4= N_1 { lv_cardinality_2_4=(Token)match(input,N_1,FOLLOW_2); @@ -2050,7 +2073,7 @@ else if ( ((LA16_1>=LeftParenthesisDigitZeroColonDigitOneRightParenthesis && LA1 // $ANTLR start "ruleDataType" - // InternalErDslParser.g:844: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 ) ) ; + // InternalErDslParser.g:855: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; @@ -2066,10 +2089,10 @@ public final Enumerator ruleDataType() throws RecognitionException { enterRule(); try { - // InternalErDslParser.g:850:2: ( ( (enumLiteral_0= Int ) | (enumLiteral_1= Double ) | (enumLiteral_2= Money ) | (enumLiteral_3= String ) | (enumLiteral_4= Boolean ) | (enumLiteral_5= Datetime ) | (enumLiteral_6= File ) ) ) - // InternalErDslParser.g:851:2: ( (enumLiteral_0= Int ) | (enumLiteral_1= Double ) | (enumLiteral_2= Money ) | (enumLiteral_3= String ) | (enumLiteral_4= Boolean ) | (enumLiteral_5= Datetime ) | (enumLiteral_6= File ) ) + // InternalErDslParser.g:861:2: ( ( (enumLiteral_0= Int ) | (enumLiteral_1= Double ) | (enumLiteral_2= Money ) | (enumLiteral_3= String ) | (enumLiteral_4= Boolean ) | (enumLiteral_5= Datetime ) | (enumLiteral_6= File ) ) ) + // InternalErDslParser.g:862:2: ( (enumLiteral_0= Int ) | (enumLiteral_1= Double ) | (enumLiteral_2= Money ) | (enumLiteral_3= String ) | (enumLiteral_4= Boolean ) | (enumLiteral_5= Datetime ) | (enumLiteral_6= File ) ) { - // InternalErDslParser.g:851:2: ( (enumLiteral_0= Int ) | (enumLiteral_1= Double ) | (enumLiteral_2= Money ) | (enumLiteral_3= String ) | (enumLiteral_4= Boolean ) | (enumLiteral_5= Datetime ) | (enumLiteral_6= File ) ) + // InternalErDslParser.g:862:2: ( (enumLiteral_0= Int ) | (enumLiteral_1= Double ) | (enumLiteral_2= Money ) | (enumLiteral_3= String ) | (enumLiteral_4= Boolean ) | (enumLiteral_5= Datetime ) | (enumLiteral_6= File ) ) int alt17=7; switch ( input.LA(1) ) { case Int: @@ -2116,10 +2139,10 @@ public final Enumerator ruleDataType() throws RecognitionException { switch (alt17) { case 1 : - // InternalErDslParser.g:852:3: (enumLiteral_0= Int ) + // InternalErDslParser.g:863:3: (enumLiteral_0= Int ) { - // InternalErDslParser.g:852:3: (enumLiteral_0= Int ) - // InternalErDslParser.g:853:4: enumLiteral_0= Int + // InternalErDslParser.g:863:3: (enumLiteral_0= Int ) + // InternalErDslParser.g:864:4: enumLiteral_0= Int { enumLiteral_0=(Token)match(input,Int,FOLLOW_2); @@ -2133,10 +2156,10 @@ public final Enumerator ruleDataType() throws RecognitionException { } break; case 2 : - // InternalErDslParser.g:860:3: (enumLiteral_1= Double ) + // InternalErDslParser.g:871:3: (enumLiteral_1= Double ) { - // InternalErDslParser.g:860:3: (enumLiteral_1= Double ) - // InternalErDslParser.g:861:4: enumLiteral_1= Double + // InternalErDslParser.g:871:3: (enumLiteral_1= Double ) + // InternalErDslParser.g:872:4: enumLiteral_1= Double { enumLiteral_1=(Token)match(input,Double,FOLLOW_2); @@ -2150,10 +2173,10 @@ public final Enumerator ruleDataType() throws RecognitionException { } break; case 3 : - // InternalErDslParser.g:868:3: (enumLiteral_2= Money ) + // InternalErDslParser.g:879:3: (enumLiteral_2= Money ) { - // InternalErDslParser.g:868:3: (enumLiteral_2= Money ) - // InternalErDslParser.g:869:4: enumLiteral_2= Money + // InternalErDslParser.g:879:3: (enumLiteral_2= Money ) + // InternalErDslParser.g:880:4: enumLiteral_2= Money { enumLiteral_2=(Token)match(input,Money,FOLLOW_2); @@ -2167,10 +2190,10 @@ public final Enumerator ruleDataType() throws RecognitionException { } break; case 4 : - // InternalErDslParser.g:876:3: (enumLiteral_3= String ) + // InternalErDslParser.g:887:3: (enumLiteral_3= String ) { - // InternalErDslParser.g:876:3: (enumLiteral_3= String ) - // InternalErDslParser.g:877:4: enumLiteral_3= String + // InternalErDslParser.g:887:3: (enumLiteral_3= String ) + // InternalErDslParser.g:888:4: enumLiteral_3= String { enumLiteral_3=(Token)match(input,String,FOLLOW_2); @@ -2184,10 +2207,10 @@ public final Enumerator ruleDataType() throws RecognitionException { } break; case 5 : - // InternalErDslParser.g:884:3: (enumLiteral_4= Boolean ) + // InternalErDslParser.g:895:3: (enumLiteral_4= Boolean ) { - // InternalErDslParser.g:884:3: (enumLiteral_4= Boolean ) - // InternalErDslParser.g:885:4: enumLiteral_4= Boolean + // InternalErDslParser.g:895:3: (enumLiteral_4= Boolean ) + // InternalErDslParser.g:896:4: enumLiteral_4= Boolean { enumLiteral_4=(Token)match(input,Boolean,FOLLOW_2); @@ -2201,10 +2224,10 @@ public final Enumerator ruleDataType() throws RecognitionException { } break; case 6 : - // InternalErDslParser.g:892:3: (enumLiteral_5= Datetime ) + // InternalErDslParser.g:903:3: (enumLiteral_5= Datetime ) { - // InternalErDslParser.g:892:3: (enumLiteral_5= Datetime ) - // InternalErDslParser.g:893:4: enumLiteral_5= Datetime + // InternalErDslParser.g:903:3: (enumLiteral_5= Datetime ) + // InternalErDslParser.g:904:4: enumLiteral_5= Datetime { enumLiteral_5=(Token)match(input,Datetime,FOLLOW_2); @@ -2218,10 +2241,10 @@ public final Enumerator ruleDataType() throws RecognitionException { } break; case 7 : - // InternalErDslParser.g:900:3: (enumLiteral_6= File ) + // InternalErDslParser.g:911:3: (enumLiteral_6= File ) { - // InternalErDslParser.g:900:3: (enumLiteral_6= File ) - // InternalErDslParser.g:901:4: enumLiteral_6= File + // InternalErDslParser.g:911:3: (enumLiteral_6= File ) + // InternalErDslParser.g:912:4: enumLiteral_6= File { enumLiteral_6=(Token)match(input,File,FOLLOW_2); @@ -2262,25 +2285,25 @@ public final Enumerator ruleDataType() throws RecognitionException { 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[]{0x0000000009000900L}); - public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000080000000L}); - public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000020000L}); + public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000000012008900L}); + public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000100000000L}); + public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000040000L}); public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000400000000L}); - public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000001000000000L}); - public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000001800000000L}); + public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000800000000L}); + public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000002000000000L}); + public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000003000000000L}); public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000000200L}); - public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000001900000000L}); - public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x00000000160CC000L}); + public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000003200000000L}); + public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x000000002C194000L}); public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000000402L}); - public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000420000002L}); + public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000840000002L}); public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x00000000000000F0L}); - public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000400000002L}); - public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000840000000L}); - public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000100000000L}); - public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000001000F00000L}); - public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000200000000L}); - public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000000F00000L}); + public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000800000002L}); + public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000001080000000L}); + public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000200000000L}); + public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000000020000L}); + public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000002001E00000L}); + public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000400000000L}); + public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000001E00000L}); } \ No newline at end of file diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslParser.tokens b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslParser.tokens index 0f8e2ab..5e30ce7 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslParser.tokens +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/internal/InternalErDslParser.tokens @@ -1,39 +1,40 @@ -'(0:1)'=20 -'(0:N)'=21 -'(1:1)'=22 -'(1:N)'=23 -','=30 -';'=31 -'All'=27 -'Domain'=17 +'(0:1)'=21 +'(0:N)'=22 +'(1:1)'=23 +'(1:N)'=24 +','=31 +';'=32 +'All'=28 +'Diagram'=15 +'Domain'=18 'Entities'=12 'Generate'=13 'LogicalSchema'=8 -'MySQL'=24 +'MySQL'=25 'PostgreSQL'=11 'Relationships'=9 -'['=32 -']'=33 -'boolean'=15 +'['=33 +']'=34 +'boolean'=16 'datetime'=14 -'double'=18 -'file'=26 -'int'=28 -'is'=29 +'double'=19 +'file'=27 +'int'=29 +'is'=30 'isIdentifier'=10 -'money'=25 +'money'=26 'partial/disjoint'=5 'partial/overlapped'=4 -'relates'=16 -'string'=19 +'relates'=17 +'string'=20 'total/disjoint'=7 'total/overlapped'=6 -'{'=34 -'}'=35 -RULE_ANY_OTHER=42 -RULE_ID=36 -RULE_INT=37 -RULE_ML_COMMENT=39 -RULE_SL_COMMENT=40 -RULE_STRING=38 -RULE_WS=41 +'{'=35 +'}'=36 +RULE_ANY_OTHER=43 +RULE_ID=37 +RULE_INT=38 +RULE_ML_COMMENT=40 +RULE_SL_COMMENT=41 +RULE_STRING=39 +RULE_WS=42 diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.g b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.g index 97b3e04..5631509 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.g +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.g @@ -33,6 +33,8 @@ Generate : ('G'|'g')('E'|'e')('N'|'n')('E'|'e')('R'|'r')('A'|'a')('T'|'t')('E'|' Datetime : ('D'|'d')('A'|'a')('T'|'t')('E'|'e')('T'|'t')('I'|'i')('M'|'m')('E'|'e'); +Diagram : ('D'|'d')('I'|'i')('A'|'a')('G'|'g')('R'|'r')('A'|'a')('M'|'m'); + Boolean : ('B'|'b')('O'|'o')('O'|'o')('L'|'l')('E'|'e')('A'|'a')('N'|'n'); Relates : ('R'|'r')('E'|'e')('L'|'l')('A'|'a')('T'|'t')('E'|'e')('S'|'s'); diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.java b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.java index dbcdf90..074d1b1 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.java +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.java @@ -12,46 +12,47 @@ @SuppressWarnings("all") public class InternalErDslLexer extends Lexer { - public static final int All=27; - public static final int N_1=23; + public static final int All=28; + public static final int N_1=24; public static final int PostgreSQL=11; - public static final int PartialDisjoint=5; - public static final int Is=29; - public static final int RULE_STRING=38; - public static final int String=19; - public static final int LeftParenthesisDigitZeroColonDigitOneRightParenthesis=20; - public static final int N=21; - public static final int Int=28; - public static final int RULE_SL_COMMENT=40; + public static final int String=20; public static final int TotalOverlapped=6; - public static final int Money=25; - public static final int Comma=30; + public static final int MySQL=25; + public static final int Boolean=16; + public static final int RightSquareBracket=34; + public static final int Relates=17; + public static final int RULE_ID=37; + public static final int PartialOverlapped=4; + public static final int LogicalSchema=8; + public static final int IsIdentifier=10; + public static final int Double=19; + public static final int RULE_INT=38; + public static final int RULE_ML_COMMENT=40; + public static final int LeftSquareBracket=33; + public static final int Domain=18; + public static final int File=27; + public static final int PartialDisjoint=5; + public static final int Is=30; + public static final int RULE_STRING=39; + public static final int LeftParenthesisDigitZeroColonDigitOneRightParenthesis=21; + public static final int N=22; + public static final int Int=29; + public static final int RULE_SL_COMMENT=41; + public static final int Money=26; + public static final int Comma=31; public static final int Relationships=9; public static final int Generate=13; - public static final int MySQL=24; - public static final int RightCurlyBracket=35; - public static final int Boolean=15; + public static final int RightCurlyBracket=36; public static final int EOF=-1; public static final int TotalDisjoint=7; - public static final int RightSquareBracket=33; public static final int Datetime=14; - public static final int Relates=16; - public static final int RULE_ID=36; - public static final int RULE_WS=41; - public static final int LeftCurlyBracket=34; - public static final int PartialOverlapped=4; - public static final int LogicalSchema=8; - public static final int RULE_ANY_OTHER=42; - public static final int IsIdentifier=10; - public static final int Double=18; + public static final int RULE_WS=42; + public static final int LeftCurlyBracket=35; + public static final int RULE_ANY_OTHER=43; public static final int Entities=12; - public static final int LeftParenthesisDigitOneColonDigitOneRightParenthesis=22; - public static final int Semicolon=31; - public static final int RULE_INT=37; - public static final int RULE_ML_COMMENT=39; - public static final int LeftSquareBracket=32; - public static final int Domain=17; - public static final int File=26; + public static final int Diagram=15; + public static final int LeftParenthesisDigitOneColonDigitOneRightParenthesis=23; + public static final int Semicolon=32; // delegates // delegators @@ -1467,13 +1468,95 @@ public final void mDatetime() throws RecognitionException { } // $ANTLR end "Datetime" + // $ANTLR start "Diagram" + public final void mDiagram() throws RecognitionException { + try { + int _type = Diagram; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalErDslLexer.g:36:9: ( ( 'D' | 'd' ) ( 'I' | 'i' ) ( 'A' | 'a' ) ( 'G' | 'g' ) ( 'R' | 'r' ) ( 'A' | 'a' ) ( 'M' | 'm' ) ) + // InternalErDslLexer.g:36:11: ( 'D' | 'd' ) ( 'I' | 'i' ) ( 'A' | 'a' ) ( 'G' | 'g' ) ( 'R' | 'r' ) ( 'A' | 'a' ) ( 'M' | 'm' ) + { + if ( input.LA(1)=='D'||input.LA(1)=='d' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='I'||input.LA(1)=='i' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='G'||input.LA(1)=='g' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='M'||input.LA(1)=='m' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "Diagram" + // $ANTLR start "Boolean" public final void mBoolean() throws RecognitionException { try { int _type = Boolean; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:36:9: ( ( 'B' | 'b' ) ( 'O' | 'o' ) ( 'O' | 'o' ) ( 'L' | 'l' ) ( 'E' | 'e' ) ( 'A' | 'a' ) ( 'N' | 'n' ) ) - // InternalErDslLexer.g:36:11: ( 'B' | 'b' ) ( 'O' | 'o' ) ( 'O' | 'o' ) ( 'L' | 'l' ) ( 'E' | 'e' ) ( 'A' | 'a' ) ( 'N' | 'n' ) + // InternalErDslLexer.g:38:9: ( ( 'B' | 'b' ) ( 'O' | 'o' ) ( 'O' | 'o' ) ( 'L' | 'l' ) ( 'E' | 'e' ) ( 'A' | 'a' ) ( 'N' | 'n' ) ) + // InternalErDslLexer.g:38:11: ( 'B' | 'b' ) ( 'O' | 'o' ) ( 'O' | 'o' ) ( 'L' | 'l' ) ( 'E' | 'e' ) ( 'A' | 'a' ) ( 'N' | 'n' ) { if ( input.LA(1)=='B'||input.LA(1)=='b' ) { input.consume(); @@ -1554,8 +1637,8 @@ public final void mRelates() throws RecognitionException { try { int _type = Relates; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:38:9: ( ( 'R' | 'r' ) ( 'E' | 'e' ) ( 'L' | 'l' ) ( 'A' | 'a' ) ( 'T' | 't' ) ( 'E' | 'e' ) ( 'S' | 's' ) ) - // InternalErDslLexer.g:38:11: ( 'R' | 'r' ) ( 'E' | 'e' ) ( 'L' | 'l' ) ( 'A' | 'a' ) ( 'T' | 't' ) ( 'E' | 'e' ) ( 'S' | 's' ) + // InternalErDslLexer.g:40:9: ( ( 'R' | 'r' ) ( 'E' | 'e' ) ( 'L' | 'l' ) ( 'A' | 'a' ) ( 'T' | 't' ) ( 'E' | 'e' ) ( 'S' | 's' ) ) + // InternalErDslLexer.g:40:11: ( 'R' | 'r' ) ( 'E' | 'e' ) ( 'L' | 'l' ) ( 'A' | 'a' ) ( 'T' | 't' ) ( 'E' | 'e' ) ( 'S' | 's' ) { if ( input.LA(1)=='R'||input.LA(1)=='r' ) { input.consume(); @@ -1636,8 +1719,8 @@ public final void mDomain() throws RecognitionException { try { int _type = Domain; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:40:8: ( ( 'D' | 'd' ) ( 'O' | 'o' ) ( 'M' | 'm' ) ( 'A' | 'a' ) ( 'I' | 'i' ) ( 'N' | 'n' ) ) - // InternalErDslLexer.g:40:10: ( 'D' | 'd' ) ( 'O' | 'o' ) ( 'M' | 'm' ) ( 'A' | 'a' ) ( 'I' | 'i' ) ( 'N' | 'n' ) + // InternalErDslLexer.g:42:8: ( ( 'D' | 'd' ) ( 'O' | 'o' ) ( 'M' | 'm' ) ( 'A' | 'a' ) ( 'I' | 'i' ) ( 'N' | 'n' ) ) + // InternalErDslLexer.g:42:10: ( 'D' | 'd' ) ( 'O' | 'o' ) ( 'M' | 'm' ) ( 'A' | 'a' ) ( 'I' | 'i' ) ( 'N' | 'n' ) { if ( input.LA(1)=='D'||input.LA(1)=='d' ) { input.consume(); @@ -1709,8 +1792,8 @@ public final void mDouble() throws RecognitionException { try { int _type = Double; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:42:8: ( ( 'D' | 'd' ) ( 'O' | 'o' ) ( 'U' | 'u' ) ( 'B' | 'b' ) ( 'L' | 'l' ) ( 'E' | 'e' ) ) - // InternalErDslLexer.g:42:10: ( 'D' | 'd' ) ( 'O' | 'o' ) ( 'U' | 'u' ) ( 'B' | 'b' ) ( 'L' | 'l' ) ( 'E' | 'e' ) + // InternalErDslLexer.g:44:8: ( ( 'D' | 'd' ) ( 'O' | 'o' ) ( 'U' | 'u' ) ( 'B' | 'b' ) ( 'L' | 'l' ) ( 'E' | 'e' ) ) + // InternalErDslLexer.g:44:10: ( 'D' | 'd' ) ( 'O' | 'o' ) ( 'U' | 'u' ) ( 'B' | 'b' ) ( 'L' | 'l' ) ( 'E' | 'e' ) { if ( input.LA(1)=='D'||input.LA(1)=='d' ) { input.consume(); @@ -1782,8 +1865,8 @@ public final void mString() throws RecognitionException { try { int _type = String; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:44:8: ( ( 'S' | 's' ) ( 'T' | 't' ) ( 'R' | 'r' ) ( 'I' | 'i' ) ( 'N' | 'n' ) ( 'G' | 'g' ) ) - // InternalErDslLexer.g:44:10: ( 'S' | 's' ) ( 'T' | 't' ) ( 'R' | 'r' ) ( 'I' | 'i' ) ( 'N' | 'n' ) ( 'G' | 'g' ) + // InternalErDslLexer.g:46:8: ( ( 'S' | 's' ) ( 'T' | 't' ) ( 'R' | 'r' ) ( 'I' | 'i' ) ( 'N' | 'n' ) ( 'G' | 'g' ) ) + // InternalErDslLexer.g:46:10: ( 'S' | 's' ) ( 'T' | 't' ) ( 'R' | 'r' ) ( 'I' | 'i' ) ( 'N' | 'n' ) ( 'G' | 'g' ) { if ( input.LA(1)=='S'||input.LA(1)=='s' ) { input.consume(); @@ -1855,8 +1938,8 @@ public final void mLeftParenthesisDigitZeroColonDigitOneRightParenthesis() throw try { int _type = LeftParenthesisDigitZeroColonDigitOneRightParenthesis; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:46:55: ( '(' '0' ':' '1' ')' ) - // InternalErDslLexer.g:46:57: '(' '0' ':' '1' ')' + // InternalErDslLexer.g:48:55: ( '(' '0' ':' '1' ')' ) + // InternalErDslLexer.g:48:57: '(' '0' ':' '1' ')' { match('('); match('0'); @@ -1879,8 +1962,8 @@ public final void mN() throws RecognitionException { try { int _type = N; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:48:3: ( '(' '0' ':' ( 'N' | 'n' ) ')' ) - // InternalErDslLexer.g:48:5: '(' '0' ':' ( 'N' | 'n' ) ')' + // InternalErDslLexer.g:50:3: ( '(' '0' ':' ( 'N' | 'n' ) ')' ) + // InternalErDslLexer.g:50:5: '(' '0' ':' ( 'N' | 'n' ) ')' { match('('); match('0'); @@ -1911,8 +1994,8 @@ public final void mLeftParenthesisDigitOneColonDigitOneRightParenthesis() throws try { int _type = LeftParenthesisDigitOneColonDigitOneRightParenthesis; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:50:54: ( '(' '1' ':' '1' ')' ) - // InternalErDslLexer.g:50:56: '(' '1' ':' '1' ')' + // InternalErDslLexer.g:52:54: ( '(' '1' ':' '1' ')' ) + // InternalErDslLexer.g:52:56: '(' '1' ':' '1' ')' { match('('); match('1'); @@ -1935,8 +2018,8 @@ public final void mN_1() throws RecognitionException { try { int _type = N_1; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:52:5: ( '(' '1' ':' ( 'N' | 'n' ) ')' ) - // InternalErDslLexer.g:52:7: '(' '1' ':' ( 'N' | 'n' ) ')' + // InternalErDslLexer.g:54:5: ( '(' '1' ':' ( 'N' | 'n' ) ')' ) + // InternalErDslLexer.g:54:7: '(' '1' ':' ( 'N' | 'n' ) ')' { match('('); match('1'); @@ -1967,8 +2050,8 @@ public final void mMySQL() throws RecognitionException { try { int _type = MySQL; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:54:7: ( ( 'M' | 'm' ) ( 'Y' | 'y' ) ( 'S' | 's' ) ( 'Q' | 'q' ) ( 'L' | 'l' ) ) - // InternalErDslLexer.g:54:9: ( 'M' | 'm' ) ( 'Y' | 'y' ) ( 'S' | 's' ) ( 'Q' | 'q' ) ( 'L' | 'l' ) + // InternalErDslLexer.g:56:7: ( ( 'M' | 'm' ) ( 'Y' | 'y' ) ( 'S' | 's' ) ( 'Q' | 'q' ) ( 'L' | 'l' ) ) + // InternalErDslLexer.g:56:9: ( 'M' | 'm' ) ( 'Y' | 'y' ) ( 'S' | 's' ) ( 'Q' | 'q' ) ( 'L' | 'l' ) { if ( input.LA(1)=='M'||input.LA(1)=='m' ) { input.consume(); @@ -2031,8 +2114,8 @@ public final void mMoney() throws RecognitionException { try { int _type = Money; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:56:7: ( ( 'M' | 'm' ) ( 'O' | 'o' ) ( 'N' | 'n' ) ( 'E' | 'e' ) ( 'Y' | 'y' ) ) - // InternalErDslLexer.g:56:9: ( 'M' | 'm' ) ( 'O' | 'o' ) ( 'N' | 'n' ) ( 'E' | 'e' ) ( 'Y' | 'y' ) + // InternalErDslLexer.g:58:7: ( ( 'M' | 'm' ) ( 'O' | 'o' ) ( 'N' | 'n' ) ( 'E' | 'e' ) ( 'Y' | 'y' ) ) + // InternalErDslLexer.g:58:9: ( 'M' | 'm' ) ( 'O' | 'o' ) ( 'N' | 'n' ) ( 'E' | 'e' ) ( 'Y' | 'y' ) { if ( input.LA(1)=='M'||input.LA(1)=='m' ) { input.consume(); @@ -2095,8 +2178,8 @@ public final void mFile() throws RecognitionException { try { int _type = File; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:58:6: ( ( 'F' | 'f' ) ( 'I' | 'i' ) ( 'L' | 'l' ) ( 'E' | 'e' ) ) - // InternalErDslLexer.g:58:8: ( 'F' | 'f' ) ( 'I' | 'i' ) ( 'L' | 'l' ) ( 'E' | 'e' ) + // InternalErDslLexer.g:60:6: ( ( 'F' | 'f' ) ( 'I' | 'i' ) ( 'L' | 'l' ) ( 'E' | 'e' ) ) + // InternalErDslLexer.g:60:8: ( 'F' | 'f' ) ( 'I' | 'i' ) ( 'L' | 'l' ) ( 'E' | 'e' ) { if ( input.LA(1)=='F'||input.LA(1)=='f' ) { input.consume(); @@ -2150,8 +2233,8 @@ public final void mAll() throws RecognitionException { try { int _type = All; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:60:5: ( ( 'A' | 'a' ) ( 'L' | 'l' ) ( 'L' | 'l' ) ) - // InternalErDslLexer.g:60:7: ( 'A' | 'a' ) ( 'L' | 'l' ) ( 'L' | 'l' ) + // InternalErDslLexer.g:62:5: ( ( 'A' | 'a' ) ( 'L' | 'l' ) ( 'L' | 'l' ) ) + // InternalErDslLexer.g:62:7: ( 'A' | 'a' ) ( 'L' | 'l' ) ( 'L' | 'l' ) { if ( input.LA(1)=='A'||input.LA(1)=='a' ) { input.consume(); @@ -2196,8 +2279,8 @@ public final void mInt() throws RecognitionException { try { int _type = Int; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:62:5: ( ( 'I' | 'i' ) ( 'N' | 'n' ) ( 'T' | 't' ) ) - // InternalErDslLexer.g:62:7: ( 'I' | 'i' ) ( 'N' | 'n' ) ( 'T' | 't' ) + // InternalErDslLexer.g:64:5: ( ( 'I' | 'i' ) ( 'N' | 'n' ) ( 'T' | 't' ) ) + // InternalErDslLexer.g:64:7: ( 'I' | 'i' ) ( 'N' | 'n' ) ( 'T' | 't' ) { if ( input.LA(1)=='I'||input.LA(1)=='i' ) { input.consume(); @@ -2242,8 +2325,8 @@ public final void mIs() throws RecognitionException { try { int _type = Is; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:64:4: ( ( 'I' | 'i' ) ( 'S' | 's' ) ) - // InternalErDslLexer.g:64:6: ( 'I' | 'i' ) ( 'S' | 's' ) + // InternalErDslLexer.g:66:4: ( ( 'I' | 'i' ) ( 'S' | 's' ) ) + // InternalErDslLexer.g:66:6: ( 'I' | 'i' ) ( 'S' | 's' ) { if ( input.LA(1)=='I'||input.LA(1)=='i' ) { input.consume(); @@ -2279,8 +2362,8 @@ public final void mComma() throws RecognitionException { try { int _type = Comma; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:66:7: ( ',' ) - // InternalErDslLexer.g:66:9: ',' + // InternalErDslLexer.g:68:7: ( ',' ) + // InternalErDslLexer.g:68:9: ',' { match(','); @@ -2299,8 +2382,8 @@ public final void mSemicolon() throws RecognitionException { try { int _type = Semicolon; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:68:11: ( ';' ) - // InternalErDslLexer.g:68:13: ';' + // InternalErDslLexer.g:70:11: ( ';' ) + // InternalErDslLexer.g:70:13: ';' { match(';'); @@ -2319,8 +2402,8 @@ public final void mLeftSquareBracket() throws RecognitionException { try { int _type = LeftSquareBracket; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:70:19: ( '[' ) - // InternalErDslLexer.g:70:21: '[' + // InternalErDslLexer.g:72:19: ( '[' ) + // InternalErDslLexer.g:72:21: '[' { match('['); @@ -2339,8 +2422,8 @@ public final void mRightSquareBracket() throws RecognitionException { try { int _type = RightSquareBracket; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:72:20: ( ']' ) - // InternalErDslLexer.g:72:22: ']' + // InternalErDslLexer.g:74:20: ( ']' ) + // InternalErDslLexer.g:74:22: ']' { match(']'); @@ -2359,8 +2442,8 @@ public final void mLeftCurlyBracket() throws RecognitionException { try { int _type = LeftCurlyBracket; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:74:18: ( '{' ) - // InternalErDslLexer.g:74:20: '{' + // InternalErDslLexer.g:76:18: ( '{' ) + // InternalErDslLexer.g:76:20: '{' { match('{'); @@ -2379,8 +2462,8 @@ public final void mRightCurlyBracket() throws RecognitionException { try { int _type = RightCurlyBracket; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:76:19: ( '}' ) - // InternalErDslLexer.g:76:21: '}' + // InternalErDslLexer.g:78:19: ( '}' ) + // InternalErDslLexer.g:78:21: '}' { match('}'); @@ -2399,10 +2482,10 @@ public final void mRULE_ID() throws RecognitionException { try { int _type = RULE_ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:78:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* ) - // InternalErDslLexer.g:78:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* + // InternalErDslLexer.g:80:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* ) + // InternalErDslLexer.g:80:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* { - // InternalErDslLexer.g:78:11: ( '^' )? + // InternalErDslLexer.g:80:11: ( '^' )? int alt1=2; int LA1_0 = input.LA(1); @@ -2411,7 +2494,7 @@ public final void mRULE_ID() throws RecognitionException { } switch (alt1) { case 1 : - // InternalErDslLexer.g:78:11: '^' + // InternalErDslLexer.g:80:11: '^' { match('^'); @@ -2429,7 +2512,7 @@ public final void mRULE_ID() throws RecognitionException { recover(mse); throw mse;} - // InternalErDslLexer.g:78:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* + // InternalErDslLexer.g:80:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* loop2: do { int alt2=2; @@ -2478,10 +2561,10 @@ public final void mRULE_INT() throws RecognitionException { try { int _type = RULE_INT; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:80:10: ( ( '0' .. '9' )+ ) - // InternalErDslLexer.g:80:12: ( '0' .. '9' )+ + // InternalErDslLexer.g:82:10: ( ( '0' .. '9' )+ ) + // InternalErDslLexer.g:82:12: ( '0' .. '9' )+ { - // InternalErDslLexer.g:80:12: ( '0' .. '9' )+ + // InternalErDslLexer.g:82:12: ( '0' .. '9' )+ int cnt3=0; loop3: do { @@ -2495,7 +2578,7 @@ public final void mRULE_INT() throws RecognitionException { switch (alt3) { case 1 : - // InternalErDslLexer.g:80:13: '0' .. '9' + // InternalErDslLexer.g:82:13: '0' .. '9' { matchRange('0','9'); @@ -2527,10 +2610,10 @@ public final void mRULE_STRING() throws RecognitionException { try { int _type = RULE_STRING; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:82:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) ) - // InternalErDslLexer.g:82:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) + // InternalErDslLexer.g:84:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) ) + // InternalErDslLexer.g:84:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) { - // InternalErDslLexer.g:82:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) + // InternalErDslLexer.g:84:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) int alt6=2; int LA6_0 = input.LA(1); @@ -2548,10 +2631,10 @@ else if ( (LA6_0=='\'') ) { } switch (alt6) { case 1 : - // InternalErDslLexer.g:82:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' + // InternalErDslLexer.g:84:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' { match('\"'); - // InternalErDslLexer.g:82:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* + // InternalErDslLexer.g:84:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* loop4: do { int alt4=3; @@ -2567,7 +2650,7 @@ else if ( ((LA4_0>='\u0000' && LA4_0<='!')||(LA4_0>='#' && LA4_0<='[')||(LA4_0>= switch (alt4) { case 1 : - // InternalErDslLexer.g:82:21: '\\\\' . + // InternalErDslLexer.g:84:21: '\\\\' . { match('\\'); matchAny(); @@ -2575,7 +2658,7 @@ else if ( ((LA4_0>='\u0000' && LA4_0<='!')||(LA4_0>='#' && LA4_0<='[')||(LA4_0>= } break; case 2 : - // InternalErDslLexer.g:82:28: ~ ( ( '\\\\' | '\"' ) ) + // InternalErDslLexer.g:84:28: ~ ( ( '\\\\' | '\"' ) ) { if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { input.consume(); @@ -2600,10 +2683,10 @@ else if ( ((LA4_0>='\u0000' && LA4_0<='!')||(LA4_0>='#' && LA4_0<='[')||(LA4_0>= } break; case 2 : - // InternalErDslLexer.g:82:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' + // InternalErDslLexer.g:84:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' { match('\''); - // InternalErDslLexer.g:82:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* + // InternalErDslLexer.g:84:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* loop5: do { int alt5=3; @@ -2619,7 +2702,7 @@ else if ( ((LA5_0>='\u0000' && LA5_0<='&')||(LA5_0>='(' && LA5_0<='[')||(LA5_0>= switch (alt5) { case 1 : - // InternalErDslLexer.g:82:54: '\\\\' . + // InternalErDslLexer.g:84:54: '\\\\' . { match('\\'); matchAny(); @@ -2627,7 +2710,7 @@ else if ( ((LA5_0>='\u0000' && LA5_0<='&')||(LA5_0>='(' && LA5_0<='[')||(LA5_0>= } break; case 2 : - // InternalErDslLexer.g:82:61: ~ ( ( '\\\\' | '\\'' ) ) + // InternalErDslLexer.g:84:61: ~ ( ( '\\\\' | '\\'' ) ) { if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { input.consume(); @@ -2670,12 +2753,12 @@ public final void mRULE_ML_COMMENT() throws RecognitionException { try { int _type = RULE_ML_COMMENT; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:84:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) - // InternalErDslLexer.g:84:19: '/*' ( options {greedy=false; } : . )* '*/' + // InternalErDslLexer.g:86:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) + // InternalErDslLexer.g:86:19: '/*' ( options {greedy=false; } : . )* '*/' { match("/*"); - // InternalErDslLexer.g:84:24: ( options {greedy=false; } : . )* + // InternalErDslLexer.g:86:24: ( options {greedy=false; } : . )* loop7: do { int alt7=2; @@ -2700,7 +2783,7 @@ else if ( ((LA7_0>='\u0000' && LA7_0<=')')||(LA7_0>='+' && LA7_0<='\uFFFF')) ) { switch (alt7) { case 1 : - // InternalErDslLexer.g:84:52: . + // InternalErDslLexer.g:86:52: . { matchAny(); @@ -2730,12 +2813,12 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { try { int _type = RULE_SL_COMMENT; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:86:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) - // InternalErDslLexer.g:86:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? + // InternalErDslLexer.g:88:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) + // InternalErDslLexer.g:88:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? { match("//"); - // InternalErDslLexer.g:86:24: (~ ( ( '\\n' | '\\r' ) ) )* + // InternalErDslLexer.g:88:24: (~ ( ( '\\n' | '\\r' ) ) )* loop8: do { int alt8=2; @@ -2748,7 +2831,7 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { switch (alt8) { case 1 : - // InternalErDslLexer.g:86:24: ~ ( ( '\\n' | '\\r' ) ) + // InternalErDslLexer.g:88: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(); @@ -2768,7 +2851,7 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { } } while (true); - // InternalErDslLexer.g:86:40: ( ( '\\r' )? '\\n' )? + // InternalErDslLexer.g:88:40: ( ( '\\r' )? '\\n' )? int alt10=2; int LA10_0 = input.LA(1); @@ -2777,9 +2860,9 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { } switch (alt10) { case 1 : - // InternalErDslLexer.g:86:41: ( '\\r' )? '\\n' + // InternalErDslLexer.g:88:41: ( '\\r' )? '\\n' { - // InternalErDslLexer.g:86:41: ( '\\r' )? + // InternalErDslLexer.g:88:41: ( '\\r' )? int alt9=2; int LA9_0 = input.LA(1); @@ -2788,7 +2871,7 @@ public final void mRULE_SL_COMMENT() throws RecognitionException { } switch (alt9) { case 1 : - // InternalErDslLexer.g:86:41: '\\r' + // InternalErDslLexer.g:88:41: '\\r' { match('\r'); @@ -2820,10 +2903,10 @@ public final void mRULE_WS() throws RecognitionException { try { int _type = RULE_WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:88:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) - // InternalErDslLexer.g:88:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + // InternalErDslLexer.g:90:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) + // InternalErDslLexer.g:90:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ { - // InternalErDslLexer.g:88:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + // InternalErDslLexer.g:90:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ int cnt11=0; loop11: do { @@ -2877,8 +2960,8 @@ public final void mRULE_ANY_OTHER() throws RecognitionException { try { int _type = RULE_ANY_OTHER; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalErDslLexer.g:90:16: ( . ) - // InternalErDslLexer.g:90:18: . + // InternalErDslLexer.g:92:16: ( . ) + // InternalErDslLexer.g:92:18: . { matchAny(); @@ -2893,8 +2976,8 @@ public final void mRULE_ANY_OTHER() throws RecognitionException { // $ANTLR end "RULE_ANY_OTHER" public void mTokens() throws RecognitionException { - // InternalErDslLexer.g:1:8: ( PartialOverlapped | PartialDisjoint | TotalOverlapped | TotalDisjoint | LogicalSchema | Relationships | IsIdentifier | PostgreSQL | Entities | Generate | Datetime | Boolean | Relates | Domain | Double | String | LeftParenthesisDigitZeroColonDigitOneRightParenthesis | N | LeftParenthesisDigitOneColonDigitOneRightParenthesis | N_1 | MySQL | Money | File | All | Int | Is | Comma | Semicolon | LeftSquareBracket | RightSquareBracket | LeftCurlyBracket | RightCurlyBracket | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER ) - int alt12=39; + // InternalErDslLexer.g:1:8: ( PartialOverlapped | PartialDisjoint | TotalOverlapped | TotalDisjoint | LogicalSchema | Relationships | IsIdentifier | PostgreSQL | Entities | Generate | Datetime | Diagram | Boolean | Relates | Domain | Double | String | LeftParenthesisDigitZeroColonDigitOneRightParenthesis | N | LeftParenthesisDigitOneColonDigitOneRightParenthesis | N_1 | MySQL | Money | File | All | Int | Is | Comma | Semicolon | LeftSquareBracket | RightSquareBracket | LeftCurlyBracket | RightCurlyBracket | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER ) + int alt12=40; alt12 = dfa12.predict(input); switch (alt12) { case 1 : @@ -2975,196 +3058,203 @@ public void mTokens() throws RecognitionException { } break; case 12 : - // InternalErDslLexer.g:1:153: Boolean + // InternalErDslLexer.g:1:153: Diagram { - mBoolean(); + mDiagram(); } break; case 13 : - // InternalErDslLexer.g:1:161: Relates + // InternalErDslLexer.g:1:161: Boolean { - mRelates(); + mBoolean(); } break; case 14 : - // InternalErDslLexer.g:1:169: Domain + // InternalErDslLexer.g:1:169: Relates { - mDomain(); + mRelates(); } break; case 15 : - // InternalErDslLexer.g:1:176: Double + // InternalErDslLexer.g:1:177: Domain { - mDouble(); + mDomain(); } break; case 16 : - // InternalErDslLexer.g:1:183: String + // InternalErDslLexer.g:1:184: Double { - mString(); + mDouble(); } break; case 17 : - // InternalErDslLexer.g:1:190: LeftParenthesisDigitZeroColonDigitOneRightParenthesis + // InternalErDslLexer.g:1:191: String { - mLeftParenthesisDigitZeroColonDigitOneRightParenthesis(); + mString(); } break; case 18 : - // InternalErDslLexer.g:1:244: N + // InternalErDslLexer.g:1:198: LeftParenthesisDigitZeroColonDigitOneRightParenthesis { - mN(); + mLeftParenthesisDigitZeroColonDigitOneRightParenthesis(); } break; case 19 : - // InternalErDslLexer.g:1:246: LeftParenthesisDigitOneColonDigitOneRightParenthesis + // InternalErDslLexer.g:1:252: N { - mLeftParenthesisDigitOneColonDigitOneRightParenthesis(); + mN(); } break; case 20 : - // InternalErDslLexer.g:1:299: N_1 + // InternalErDslLexer.g:1:254: LeftParenthesisDigitOneColonDigitOneRightParenthesis { - mN_1(); + mLeftParenthesisDigitOneColonDigitOneRightParenthesis(); } break; case 21 : - // InternalErDslLexer.g:1:303: MySQL + // InternalErDslLexer.g:1:307: N_1 { - mMySQL(); + mN_1(); } break; case 22 : - // InternalErDslLexer.g:1:309: Money + // InternalErDslLexer.g:1:311: MySQL { - mMoney(); + mMySQL(); } break; case 23 : - // InternalErDslLexer.g:1:315: File + // InternalErDslLexer.g:1:317: Money { - mFile(); + mMoney(); } break; case 24 : - // InternalErDslLexer.g:1:320: All + // InternalErDslLexer.g:1:323: File { - mAll(); + mFile(); } break; case 25 : - // InternalErDslLexer.g:1:324: Int + // InternalErDslLexer.g:1:328: All { - mInt(); + mAll(); } break; case 26 : - // InternalErDslLexer.g:1:328: Is + // InternalErDslLexer.g:1:332: Int { - mIs(); + mInt(); } break; case 27 : - // InternalErDslLexer.g:1:331: Comma + // InternalErDslLexer.g:1:336: Is { - mComma(); + mIs(); } break; case 28 : - // InternalErDslLexer.g:1:337: Semicolon + // InternalErDslLexer.g:1:339: Comma { - mSemicolon(); + mComma(); } break; case 29 : - // InternalErDslLexer.g:1:347: LeftSquareBracket + // InternalErDslLexer.g:1:345: Semicolon { - mLeftSquareBracket(); + mSemicolon(); } break; case 30 : - // InternalErDslLexer.g:1:365: RightSquareBracket + // InternalErDslLexer.g:1:355: LeftSquareBracket { - mRightSquareBracket(); + mLeftSquareBracket(); } break; case 31 : - // InternalErDslLexer.g:1:384: LeftCurlyBracket + // InternalErDslLexer.g:1:373: RightSquareBracket { - mLeftCurlyBracket(); + mRightSquareBracket(); } break; case 32 : - // InternalErDslLexer.g:1:401: RightCurlyBracket + // InternalErDslLexer.g:1:392: LeftCurlyBracket { - mRightCurlyBracket(); + mLeftCurlyBracket(); } break; case 33 : - // InternalErDslLexer.g:1:419: RULE_ID + // InternalErDslLexer.g:1:409: RightCurlyBracket { - mRULE_ID(); + mRightCurlyBracket(); } break; case 34 : - // InternalErDslLexer.g:1:427: RULE_INT + // InternalErDslLexer.g:1:427: RULE_ID { - mRULE_INT(); + mRULE_ID(); } break; case 35 : - // InternalErDslLexer.g:1:436: RULE_STRING + // InternalErDslLexer.g:1:435: RULE_INT { - mRULE_STRING(); + mRULE_INT(); } break; case 36 : - // InternalErDslLexer.g:1:448: RULE_ML_COMMENT + // InternalErDslLexer.g:1:444: RULE_STRING { - mRULE_ML_COMMENT(); + mRULE_STRING(); } break; case 37 : - // InternalErDslLexer.g:1:464: RULE_SL_COMMENT + // InternalErDslLexer.g:1:456: RULE_ML_COMMENT { - mRULE_SL_COMMENT(); + mRULE_ML_COMMENT(); } break; case 38 : - // InternalErDslLexer.g:1:480: RULE_WS + // InternalErDslLexer.g:1:472: RULE_SL_COMMENT { - mRULE_WS(); + mRULE_SL_COMMENT(); } break; case 39 : - // InternalErDslLexer.g:1:488: RULE_ANY_OTHER + // InternalErDslLexer.g:1:488: RULE_WS + { + mRULE_WS(); + + } + break; + case 40 : + // InternalErDslLexer.g:1:496: RULE_ANY_OTHER { mRULE_ANY_OTHER(); @@ -3178,17 +3268,17 @@ public void mTokens() throws RecognitionException { protected DFA12 dfa12 = new DFA12(this); static final String DFA12_eotS = - "\1\uffff\12\37\1\34\3\37\6\uffff\1\34\2\uffff\3\34\2\uffff\2\37\1\uffff\3\37\1\102\7\37\2\uffff\4\37\13\uffff\6\37\1\uffff\1\127\7\37\2\uffff\3\37\1\146\6\37\1\uffff\7\37\4\uffff\2\37\1\166\1\uffff\15\37\1\u0085\1\u0086\1\uffff\2\37\1\uffff\7\37\1\u0092\1\u0093\1\37\1\u0095\2\uffff\2\37\2\uffff\2\37\1\u009a\4\37\2\uffff\1\u009f\2\uffff\3\37\1\uffff\1\37\1\u00a6\1\u00a7\1\u00a8\3\uffff\4\37\3\uffff\1\u00ad\3\37\1\uffff\5\37\1\u00b6\1\u00b7\1\u00b8\3\uffff"; + "\1\uffff\12\37\1\34\3\37\6\uffff\1\34\2\uffff\3\34\2\uffff\2\37\1\uffff\3\37\1\103\10\37\2\uffff\4\37\13\uffff\6\37\1\uffff\1\131\10\37\2\uffff\3\37\1\151\6\37\1\uffff\10\37\4\uffff\2\37\1\172\1\uffff\16\37\1\u008a\1\u008b\1\uffff\2\37\1\uffff\10\37\1\u0098\1\u0099\1\37\1\u009b\2\uffff\2\37\2\uffff\2\37\1\u00a0\4\37\1\u00a5\2\uffff\1\u00a6\2\uffff\3\37\1\uffff\1\37\1\u00ad\1\u00ae\1\u00af\4\uffff\4\37\3\uffff\1\u00b4\3\37\1\uffff\5\37\1\u00bd\1\u00be\1\u00bf\3\uffff"; static final String DFA12_eofS = - "\u00b9\uffff"; + "\u00c0\uffff"; static final String DFA12_minS = - "\1\0\1\101\2\117\1\105\2\116\1\105\1\101\1\117\1\124\1\60\1\117\1\111\1\114\6\uffff\1\101\2\uffff\2\0\1\52\2\uffff\1\122\1\123\1\uffff\1\124\1\107\1\114\1\60\2\124\1\116\1\124\1\115\1\117\1\122\2\72\1\123\1\116\2\114\13\uffff\2\124\1\101\1\111\1\101\1\104\1\uffff\1\60\1\111\2\105\1\101\1\102\1\114\1\111\2\61\1\121\2\105\1\60\1\111\1\107\1\114\1\103\1\124\1\105\1\uffff\1\124\1\122\1\124\1\111\1\114\1\105\1\116\4\uffff\1\114\1\131\1\60\1\uffff\1\101\1\122\1\57\1\101\1\105\1\116\1\111\1\101\1\111\1\116\1\105\1\101\1\107\2\60\1\uffff\1\114\1\105\1\104\1\114\1\117\1\123\1\124\1\105\1\124\1\115\2\60\1\116\1\60\2\uffff\1\57\1\123\2\uffff\1\123\1\116\1\60\1\111\1\123\2\105\2\uffff\1\60\1\uffff\1\104\1\121\1\103\1\123\1\uffff\1\106\3\60\3\uffff\1\114\2\110\1\111\3\uffff\1\60\1\105\1\111\1\105\1\uffff\1\115\1\120\1\122\1\101\1\123\3\60\3\uffff"; + "\1\0\1\101\2\117\1\105\2\116\1\105\1\101\1\117\1\124\1\60\1\117\1\111\1\114\6\uffff\1\101\2\uffff\2\0\1\52\2\uffff\1\122\1\123\1\uffff\1\124\1\107\1\114\1\60\2\124\1\116\1\124\1\101\1\115\1\117\1\122\2\72\1\123\1\116\2\114\13\uffff\2\124\1\101\1\111\1\101\1\104\1\uffff\1\60\1\111\2\105\1\107\1\101\1\102\1\114\1\111\2\61\1\121\2\105\1\60\1\111\1\107\1\114\1\103\1\124\1\105\1\uffff\1\124\1\122\1\124\1\122\1\111\1\114\1\105\1\116\4\uffff\1\114\1\131\1\60\1\uffff\1\101\1\122\1\57\1\101\1\105\1\116\1\111\1\101\1\111\1\101\1\116\1\105\1\101\1\107\2\60\1\uffff\1\114\1\105\1\104\1\114\1\117\1\123\1\124\1\105\1\124\2\115\2\60\1\116\1\60\2\uffff\1\57\1\123\2\uffff\1\123\1\116\1\60\1\111\1\123\2\105\1\60\2\uffff\1\60\1\uffff\1\104\1\121\1\103\1\123\1\uffff\1\106\3\60\4\uffff\1\114\2\110\1\111\3\uffff\1\60\1\105\1\111\1\105\1\uffff\1\115\1\120\1\122\1\101\1\123\3\60\3\uffff"; static final String DFA12_maxS = - "\1\uffff\3\157\1\145\1\163\1\156\1\145\2\157\1\164\1\61\1\171\1\151\1\154\6\uffff\1\172\2\uffff\2\uffff\1\57\2\uffff\1\162\1\163\1\uffff\1\164\1\147\1\154\1\172\2\164\1\156\1\164\1\165\1\157\1\162\2\72\1\163\1\156\2\154\13\uffff\2\164\1\141\1\151\1\141\1\144\1\uffff\1\172\1\151\2\145\1\141\1\142\1\154\1\151\2\156\1\161\2\145\1\172\1\151\1\147\1\154\1\143\1\164\1\145\1\uffff\1\164\1\162\1\164\1\151\1\154\1\145\1\156\4\uffff\1\154\1\171\1\172\1\uffff\1\141\1\162\1\57\1\141\1\151\1\156\1\151\1\141\1\151\1\156\1\145\1\141\1\147\2\172\1\uffff\1\154\1\145\1\157\1\154\1\157\1\163\1\164\1\145\1\164\1\155\2\172\1\156\1\172\2\uffff\1\57\1\163\2\uffff\1\163\1\156\1\172\1\151\1\163\2\145\2\uffff\1\172\1\uffff\1\157\1\161\1\143\1\163\1\uffff\1\146\3\172\3\uffff\1\154\2\150\1\151\3\uffff\1\172\1\145\1\151\1\145\1\uffff\1\155\1\160\1\162\1\141\1\163\3\172\3\uffff"; + "\1\uffff\3\157\1\145\1\163\1\156\1\145\2\157\1\164\1\61\1\171\1\151\1\154\6\uffff\1\172\2\uffff\2\uffff\1\57\2\uffff\1\162\1\163\1\uffff\1\164\1\147\1\154\1\172\2\164\1\156\1\164\1\141\1\165\1\157\1\162\2\72\1\163\1\156\2\154\13\uffff\2\164\1\141\1\151\1\141\1\144\1\uffff\1\172\1\151\2\145\1\147\1\141\1\142\1\154\1\151\2\156\1\161\2\145\1\172\1\151\1\147\1\154\1\143\1\164\1\145\1\uffff\1\164\1\162\1\164\1\162\1\151\1\154\1\145\1\156\4\uffff\1\154\1\171\1\172\1\uffff\1\141\1\162\1\57\1\141\1\151\1\156\1\151\1\141\1\151\1\141\1\156\1\145\1\141\1\147\2\172\1\uffff\1\154\1\145\1\157\1\154\1\157\1\163\1\164\1\145\1\164\2\155\2\172\1\156\1\172\2\uffff\1\57\1\163\2\uffff\1\163\1\156\1\172\1\151\1\163\2\145\1\172\2\uffff\1\172\1\uffff\1\157\1\161\1\143\1\163\1\uffff\1\146\3\172\4\uffff\1\154\2\150\1\151\3\uffff\1\172\1\145\1\151\1\145\1\uffff\1\155\1\160\1\162\1\141\1\163\3\172\3\uffff"; static final String DFA12_acceptS = - "\17\uffff\1\33\1\34\1\35\1\36\1\37\1\40\1\uffff\1\41\1\42\3\uffff\1\46\1\47\2\uffff\1\41\21\uffff\1\33\1\34\1\35\1\36\1\37\1\40\1\42\1\43\1\44\1\45\1\46\6\uffff\1\32\24\uffff\1\31\7\uffff\1\21\1\22\1\23\1\24\3\uffff\1\30\17\uffff\1\27\16\uffff\1\25\1\26\2\uffff\1\3\1\4\7\uffff\1\16\1\17\1\uffff\1\20\4\uffff\1\15\4\uffff\1\14\1\1\1\2\4\uffff\1\11\1\12\1\13\4\uffff\1\10\10\uffff\1\7\1\5\1\6"; + "\17\uffff\1\34\1\35\1\36\1\37\1\40\1\41\1\uffff\1\42\1\43\3\uffff\1\47\1\50\2\uffff\1\42\22\uffff\1\34\1\35\1\36\1\37\1\40\1\41\1\43\1\44\1\45\1\46\1\47\6\uffff\1\33\25\uffff\1\32\10\uffff\1\22\1\23\1\24\1\25\3\uffff\1\31\20\uffff\1\30\17\uffff\1\26\1\27\2\uffff\1\3\1\4\10\uffff\1\17\1\20\1\uffff\1\21\4\uffff\1\16\4\uffff\1\14\1\15\1\1\1\2\4\uffff\1\11\1\12\1\13\4\uffff\1\10\10\uffff\1\7\1\5\1\6"; static final String DFA12_specialS = - "\1\2\27\uffff\1\1\1\0\u009f\uffff}>"; + "\1\2\27\uffff\1\1\1\0\u00a6\uffff}>"; static final String[] DFA12_transitionS = { "\11\34\2\33\2\34\1\33\22\34\1\33\1\34\1\30\4\34\1\31\1\13\3\34\1\17\2\34\1\32\12\27\1\34\1\20\5\34\1\16\1\11\1\26\1\10\1\6\1\15\1\7\1\26\1\5\2\26\1\3\1\14\2\26\1\1\1\26\1\4\1\12\1\2\6\26\1\21\1\34\1\22\1\25\1\26\1\34\1\16\1\11\1\26\1\10\1\6\1\15\1\7\1\26\1\5\2\26\1\3\1\14\2\26\1\1\1\26\1\4\1\12\1\2\6\26\1\23\1\34\1\24\uff82\34", "\1\35\15\uffff\1\36\21\uffff\1\35\15\uffff\1\36", @@ -3198,13 +3288,13 @@ public void mTokens() throws RecognitionException { "\1\44\4\uffff\1\43\32\uffff\1\44\4\uffff\1\43", "\1\45\37\uffff\1\45", "\1\46\37\uffff\1\46", - "\1\47\15\uffff\1\50\21\uffff\1\47\15\uffff\1\50", - "\1\51\37\uffff\1\51", + "\1\47\7\uffff\1\50\5\uffff\1\51\21\uffff\1\47\7\uffff\1\50\5\uffff\1\51", "\1\52\37\uffff\1\52", - "\1\53\1\54", - "\1\56\11\uffff\1\55\25\uffff\1\56\11\uffff\1\55", - "\1\57\37\uffff\1\57", + "\1\53\37\uffff\1\53", + "\1\54\1\55", + "\1\57\11\uffff\1\56\25\uffff\1\57\11\uffff\1\56", "\1\60\37\uffff\1\60", + "\1\61\37\uffff\1\61", "", "", "", @@ -3214,31 +3304,32 @@ public void mTokens() throws RecognitionException { "\32\37\4\uffff\1\37\1\uffff\32\37", "", "", - "\0\70", - "\0\70", - "\1\71\4\uffff\1\72", + "\0\71", + "\0\71", + "\1\72\4\uffff\1\73", "", "", - "\1\74\37\uffff\1\74", "\1\75\37\uffff\1\75", - "", "\1\76\37\uffff\1\76", + "", "\1\77\37\uffff\1\77", "\1\100\37\uffff\1\100", - "\12\37\7\uffff\10\37\1\101\21\37\4\uffff\1\37\1\uffff\10\37\1\101\21\37", - "\1\103\37\uffff\1\103", + "\1\101\37\uffff\1\101", + "\12\37\7\uffff\10\37\1\102\21\37\4\uffff\1\37\1\uffff\10\37\1\102\21\37", "\1\104\37\uffff\1\104", "\1\105\37\uffff\1\105", "\1\106\37\uffff\1\106", - "\1\107\7\uffff\1\110\27\uffff\1\107\7\uffff\1\110", - "\1\111\37\uffff\1\111", - "\1\112\37\uffff\1\112", - "\1\113", - "\1\114", - "\1\115\37\uffff\1\115", - "\1\116\37\uffff\1\116", + "\1\107\37\uffff\1\107", + "\1\110\37\uffff\1\110", + "\1\111\7\uffff\1\112\27\uffff\1\111\7\uffff\1\112", + "\1\113\37\uffff\1\113", + "\1\114\37\uffff\1\114", + "\1\115", + "\1\116", "\1\117\37\uffff\1\117", "\1\120\37\uffff\1\120", + "\1\121\37\uffff\1\121", + "\1\122\37\uffff\1\122", "", "", "", @@ -3250,125 +3341,131 @@ public void mTokens() throws RecognitionException { "", "", "", - "\1\121\37\uffff\1\121", - "\1\122\37\uffff\1\122", "\1\123\37\uffff\1\123", "\1\124\37\uffff\1\124", "\1\125\37\uffff\1\125", "\1\126\37\uffff\1\126", + "\1\127\37\uffff\1\127", + "\1\130\37\uffff\1\130", "", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "\1\130\37\uffff\1\130", - "\1\131\37\uffff\1\131", "\1\132\37\uffff\1\132", "\1\133\37\uffff\1\133", "\1\134\37\uffff\1\134", "\1\135\37\uffff\1\135", "\1\136\37\uffff\1\136", - "\1\137\34\uffff\1\140\37\uffff\1\140", - "\1\141\34\uffff\1\142\37\uffff\1\142", - "\1\143\37\uffff\1\143", - "\1\144\37\uffff\1\144", - "\1\145\37\uffff\1\145", - "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", + "\1\137\37\uffff\1\137", + "\1\140\37\uffff\1\140", + "\1\141\37\uffff\1\141", + "\1\142\34\uffff\1\143\37\uffff\1\143", + "\1\144\34\uffff\1\145\37\uffff\1\145", + "\1\146\37\uffff\1\146", "\1\147\37\uffff\1\147", "\1\150\37\uffff\1\150", - "\1\151\37\uffff\1\151", + "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "\1\152\37\uffff\1\152", "\1\153\37\uffff\1\153", "\1\154\37\uffff\1\154", - "", "\1\155\37\uffff\1\155", "\1\156\37\uffff\1\156", "\1\157\37\uffff\1\157", + "", "\1\160\37\uffff\1\160", "\1\161\37\uffff\1\161", "\1\162\37\uffff\1\162", "\1\163\37\uffff\1\163", + "\1\164\37\uffff\1\164", + "\1\165\37\uffff\1\165", + "\1\166\37\uffff\1\166", + "\1\167\37\uffff\1\167", "", "", "", "", - "\1\164\37\uffff\1\164", - "\1\165\37\uffff\1\165", + "\1\170\37\uffff\1\170", + "\1\171\37\uffff\1\171", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "", - "\1\167\37\uffff\1\167", - "\1\170\37\uffff\1\170", - "\1\171", - "\1\172\37\uffff\1\172", - "\1\174\3\uffff\1\173\33\uffff\1\174\3\uffff\1\173", - "\1\175\37\uffff\1\175", + "\1\173\37\uffff\1\173", + "\1\174\37\uffff\1\174", + "\1\175", "\1\176\37\uffff\1\176", - "\1\177\37\uffff\1\177", - "\1\u0080\37\uffff\1\u0080", + "\1\u0080\3\uffff\1\177\33\uffff\1\u0080\3\uffff\1\177", "\1\u0081\37\uffff\1\u0081", "\1\u0082\37\uffff\1\u0082", "\1\u0083\37\uffff\1\u0083", "\1\u0084\37\uffff\1\u0084", + "\1\u0085\37\uffff\1\u0085", + "\1\u0086\37\uffff\1\u0086", + "\1\u0087\37\uffff\1\u0087", + "\1\u0088\37\uffff\1\u0088", + "\1\u0089\37\uffff\1\u0089", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "", - "\1\u0087\37\uffff\1\u0087", - "\1\u0088\37\uffff\1\u0088", - "\1\u008a\12\uffff\1\u0089\24\uffff\1\u008a\12\uffff\1\u0089", - "\1\u008b\37\uffff\1\u008b", "\1\u008c\37\uffff\1\u008c", "\1\u008d\37\uffff\1\u008d", - "\1\u008e\37\uffff\1\u008e", - "\1\u008f\37\uffff\1\u008f", + "\1\u008f\12\uffff\1\u008e\24\uffff\1\u008f\12\uffff\1\u008e", "\1\u0090\37\uffff\1\u0090", "\1\u0091\37\uffff\1\u0091", + "\1\u0092\37\uffff\1\u0092", + "\1\u0093\37\uffff\1\u0093", + "\1\u0094\37\uffff\1\u0094", + "\1\u0095\37\uffff\1\u0095", + "\1\u0096\37\uffff\1\u0096", + "\1\u0097\37\uffff\1\u0097", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "\1\u0094\37\uffff\1\u0094", + "\1\u009a\37\uffff\1\u009a", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "", "", - "\1\u0096", - "\1\u0097\37\uffff\1\u0097", - "", - "", - "\1\u0098\37\uffff\1\u0098", - "\1\u0099\37\uffff\1\u0099", - "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "\1\u009b\37\uffff\1\u009b", - "\1\u009c\37\uffff\1\u009c", + "\1\u009c", "\1\u009d\37\uffff\1\u009d", - "\1\u009e\37\uffff\1\u009e", "", "", + "\1\u009e\37\uffff\1\u009e", + "\1\u009f\37\uffff\1\u009f", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "", - "\1\u00a1\12\uffff\1\u00a0\24\uffff\1\u00a1\12\uffff\1\u00a0", + "\1\u00a1\37\uffff\1\u00a1", "\1\u00a2\37\uffff\1\u00a2", "\1\u00a3\37\uffff\1\u00a3", "\1\u00a4\37\uffff\1\u00a4", - "", - "\1\u00a5\37\uffff\1\u00a5", - "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "", "", + "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "", + "\1\u00a8\12\uffff\1\u00a7\24\uffff\1\u00a8\12\uffff\1\u00a7", "\1\u00a9\37\uffff\1\u00a9", "\1\u00aa\37\uffff\1\u00aa", "\1\u00ab\37\uffff\1\u00ab", + "", "\1\u00ac\37\uffff\1\u00ac", + "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", + "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", + "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "", "", "", - "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", - "\1\u00ae\37\uffff\1\u00ae", - "\1\u00af\37\uffff\1\u00af", - "\1\u00b0\37\uffff\1\u00b0", "", + "\1\u00b0\37\uffff\1\u00b0", "\1\u00b1\37\uffff\1\u00b1", "\1\u00b2\37\uffff\1\u00b2", "\1\u00b3\37\uffff\1\u00b3", - "\1\u00b4\37\uffff\1\u00b4", + "", + "", + "", + "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "\1\u00b5\37\uffff\1\u00b5", + "\1\u00b6\37\uffff\1\u00b6", + "\1\u00b7\37\uffff\1\u00b7", + "", + "\1\u00b8\37\uffff\1\u00b8", + "\1\u00b9\37\uffff\1\u00b9", + "\1\u00ba\37\uffff\1\u00ba", + "\1\u00bb\37\uffff\1\u00bb", + "\1\u00bc\37\uffff\1\u00bc", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", @@ -3407,7 +3504,7 @@ public DFA12(BaseRecognizer recognizer) { this.transition = DFA12_transition; } public String getDescription() { - return "1:1: Tokens : ( PartialOverlapped | PartialDisjoint | TotalOverlapped | TotalDisjoint | LogicalSchema | Relationships | IsIdentifier | PostgreSQL | Entities | Generate | Datetime | Boolean | Relates | Domain | Double | String | LeftParenthesisDigitZeroColonDigitOneRightParenthesis | N | LeftParenthesisDigitOneColonDigitOneRightParenthesis | N_1 | MySQL | Money | File | All | Int | Is | Comma | Semicolon | LeftSquareBracket | RightSquareBracket | LeftCurlyBracket | RightCurlyBracket | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );"; + return "1:1: Tokens : ( PartialOverlapped | PartialDisjoint | TotalOverlapped | TotalDisjoint | LogicalSchema | Relationships | IsIdentifier | PostgreSQL | Entities | Generate | Datetime | Diagram | Boolean | Relates | Domain | Double | String | LeftParenthesisDigitZeroColonDigitOneRightParenthesis | N | LeftParenthesisDigitOneColonDigitOneRightParenthesis | N_1 | MySQL | Money | File | All | Int | Is | Comma | Semicolon | LeftSquareBracket | RightSquareBracket | LeftCurlyBracket | RightCurlyBracket | 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; @@ -3417,7 +3514,7 @@ public int specialStateTransition(int s, IntStream _input) throws NoViableAltExc int LA12_25 = input.LA(1); s = -1; - if ( ((LA12_25>='\u0000' && LA12_25<='\uFFFF')) ) {s = 56;} + if ( ((LA12_25>='\u0000' && LA12_25<='\uFFFF')) ) {s = 57;} else s = 28; @@ -3427,7 +3524,7 @@ public int specialStateTransition(int s, IntStream _input) throws NoViableAltExc int LA12_24 = input.LA(1); s = -1; - if ( ((LA12_24>='\u0000' && LA12_24<='\uFFFF')) ) {s = 56;} + if ( ((LA12_24>='\u0000' && LA12_24<='\uFFFF')) ) {s = 57;} else s = 28; diff --git a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.tokens b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.tokens index 722968a..f36691d 100644 --- a/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.tokens +++ b/org.xtext.unipampa.erdsl/src-gen/org/xtext/unipampa/erdsl/parser/antlr/lexer/InternalErDslLexer.tokens @@ -1,39 +1,40 @@ -All=27 -Boolean=15 -Comma=30 +All=28 +Boolean=16 +Comma=31 Datetime=14 -Domain=17 -Double=18 +Diagram=15 +Domain=18 +Double=19 Entities=12 -File=26 +File=27 Generate=13 -Int=28 -Is=29 +Int=29 +Is=30 IsIdentifier=10 -LeftCurlyBracket=34 -LeftParenthesisDigitOneColonDigitOneRightParenthesis=22 -LeftParenthesisDigitZeroColonDigitOneRightParenthesis=20 -LeftSquareBracket=32 +LeftCurlyBracket=35 +LeftParenthesisDigitOneColonDigitOneRightParenthesis=23 +LeftParenthesisDigitZeroColonDigitOneRightParenthesis=21 +LeftSquareBracket=33 LogicalSchema=8 -Money=25 -MySQL=24 -N=21 -N_1=23 +Money=26 +MySQL=25 +N=22 +N_1=24 PartialDisjoint=5 PartialOverlapped=4 PostgreSQL=11 -RULE_ANY_OTHER=42 -RULE_ID=36 -RULE_INT=37 -RULE_ML_COMMENT=39 -RULE_SL_COMMENT=40 -RULE_STRING=38 -RULE_WS=41 -Relates=16 +RULE_ANY_OTHER=43 +RULE_ID=37 +RULE_INT=38 +RULE_ML_COMMENT=40 +RULE_SL_COMMENT=41 +RULE_STRING=39 +RULE_WS=42 +Relates=17 Relationships=9 -RightCurlyBracket=35 -RightSquareBracket=33 -Semicolon=31 -String=19 +RightCurlyBracket=36 +RightSquareBracket=34 +Semicolon=32 +String=20 TotalDisjoint=7 TotalOverlapped=6 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 ad9aee9..c2b344c 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 @@ -100,7 +100,7 @@ protected void sequence_Domain(ISerializationContext context, Domain semanticObj * * Constraint: * ( - * (targetGenerator='LogicalSchema' | targetGenerator='PostgreSQL' | targetGenerator='MySQL' | targetGenerator='All')? + * (targetGenerator='LogicalSchema' | targetGenerator='PostgreSQL' | targetGenerator='MySQL' | targetGenerator='Diagram' | targetGenerator='All')? * domain=Domain * entities+=Entity+ * relations+=Relation* 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 4507597..0e5c5f2 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 @@ -35,7 +35,8 @@ public class ERModelElements extends AbstractParserRuleElementFinder { private final Keyword cTargetGeneratorLogicalSchemaKeyword_0_1_0_0 = (Keyword)cTargetGeneratorAlternatives_0_1_0.eContents().get(0); private final Keyword cTargetGeneratorPostgreSQLKeyword_0_1_0_1 = (Keyword)cTargetGeneratorAlternatives_0_1_0.eContents().get(1); private final Keyword cTargetGeneratorMySQLKeyword_0_1_0_2 = (Keyword)cTargetGeneratorAlternatives_0_1_0.eContents().get(2); - private final Keyword cTargetGeneratorAllKeyword_0_1_0_3 = (Keyword)cTargetGeneratorAlternatives_0_1_0.eContents().get(3); + private final Keyword cTargetGeneratorDiagramKeyword_0_1_0_3 = (Keyword)cTargetGeneratorAlternatives_0_1_0.eContents().get(3); + private final Keyword cTargetGeneratorAllKeyword_0_1_0_4 = (Keyword)cTargetGeneratorAlternatives_0_1_0.eContents().get(4); private final Keyword cSemicolonKeyword_0_2 = (Keyword)cGroup_0.eContents().get(2); private final Assignment cDomainAssignment_1 = (Assignment)cGroup.eContents().get(1); private final RuleCall cDomainDomainParserRuleCall_1_0 = (RuleCall)cDomainAssignment_1.eContents().get(0); @@ -58,28 +59,28 @@ public class ERModelElements extends AbstractParserRuleElementFinder { private final Keyword cSemicolonKeyword_8_1 = (Keyword)cGroup_8.eContents().get(1); //ERModel: - // ('Generate' targetGenerator= ('LogicalSchema' | 'PostgreSQL' | 'MySQL' | 'All') ';')? + // ('Generate' targetGenerator= ('LogicalSchema' | 'PostgreSQL' | 'MySQL' | 'Diagram' | 'All') ';')? // domain=Domain ';' // ('Entities' '{') entities+=Entity+ ('}' ';') // ('Relationships' '{') relations+=Relation* ('}' ';'); @Override public ParserRule getRule() { return rule; } - //('Generate' targetGenerator= ('LogicalSchema' | 'PostgreSQL' | 'MySQL' | 'All') ';')? + //('Generate' targetGenerator= ('LogicalSchema' | 'PostgreSQL' | 'MySQL' | 'Diagram' | 'All') ';')? //domain=Domain ';' //('Entities' '{') entities+=Entity+ ('}' ';') //('Relationships' '{') relations+=Relation* ('}' ';') public Group getGroup() { return cGroup; } - //('Generate' targetGenerator= ('LogicalSchema' | 'PostgreSQL' | 'MySQL' | 'All') ';')? + //('Generate' targetGenerator= ('LogicalSchema' | 'PostgreSQL' | 'MySQL' | 'Diagram' | 'All') ';')? public Group getGroup_0() { return cGroup_0; } //'Generate' public Keyword getGenerateKeyword_0_0() { return cGenerateKeyword_0_0; } - //targetGenerator= ('LogicalSchema' | 'PostgreSQL' | 'MySQL' | 'All') + //targetGenerator= ('LogicalSchema' | 'PostgreSQL' | 'MySQL' | 'Diagram' | 'All') public Assignment getTargetGeneratorAssignment_0_1() { return cTargetGeneratorAssignment_0_1; } - //('LogicalSchema' | 'PostgreSQL' | 'MySQL' | 'All') + //('LogicalSchema' | 'PostgreSQL' | 'MySQL' | 'Diagram' | 'All') public Alternatives getTargetGeneratorAlternatives_0_1_0() { return cTargetGeneratorAlternatives_0_1_0; } //'LogicalSchema' @@ -91,8 +92,11 @@ public class ERModelElements extends AbstractParserRuleElementFinder { //'MySQL' public Keyword getTargetGeneratorMySQLKeyword_0_1_0_2() { return cTargetGeneratorMySQLKeyword_0_1_0_2; } + //'Diagram' + public Keyword getTargetGeneratorDiagramKeyword_0_1_0_3() { return cTargetGeneratorDiagramKeyword_0_1_0_3; } + //'All' - public Keyword getTargetGeneratorAllKeyword_0_1_0_3() { return cTargetGeneratorAllKeyword_0_1_0_3; } + public Keyword getTargetGeneratorAllKeyword_0_1_0_4() { return cTargetGeneratorAllKeyword_0_1_0_4; } //';' public Keyword getSemicolonKeyword_0_2() { return cSemicolonKeyword_0_2; } @@ -339,7 +343,6 @@ public class RelationElements extends AbstractParserRuleElementFinder { private final RuleCall cAttributesAttributeParserRuleCall_2_2_1_0 = (RuleCall)cAttributesAssignment_2_2_1.eContents().get(0); private final Keyword cRightCurlyBracketKeyword_2_3 = (Keyword)cGroup_2.eContents().get(3); - ////generalization=('TD' | 'TO' | 'PD' | 'PO') //Relation: // (name=ID)? ('[' leftEnding=RelationSideLeft // 'relates' @@ -678,7 +681,7 @@ public TerminalsGrammarAccess getTerminalsGrammarAccess() { //ERModel: - // ('Generate' targetGenerator= ('LogicalSchema' | 'PostgreSQL' | 'MySQL' | 'All') ';')? + // ('Generate' targetGenerator= ('LogicalSchema' | 'PostgreSQL' | 'MySQL' | 'Diagram' | 'All') ';')? // domain=Domain ';' // ('Entities' '{') entities+=Entity+ ('}' ';') // ('Relationships' '{') relations+=Relation* ('}' ';'); @@ -722,7 +725,6 @@ public ParserRule getEntityRule() { return getEntityAccess().getRule(); } - ////generalization=('TD' | 'TO' | 'PD' | 'PO') //Relation: // (name=ID)? ('[' leftEnding=RelationSideLeft // 'relates' 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 60d0b8a..e8a7c8a 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 @@ -3,7 +3,7 @@ grammar org.xtext.unipampa.erdsl.ErDsl with org.eclipse.xtext.common.Terminals generate erDsl "http://www.xtext.org/unipampa/erdsl/ErDsl" ERModel: - ('Generate' targetGenerator= ('LogicalSchema' | 'PostgreSQL' | 'MySQL' | 'All') ';')? + ('Generate' targetGenerator= ('LogicalSchema' | 'PostgreSQL' | 'MySQL' | 'Diagram' | 'All') ';')? domain=Domain ';' ('Entities' '{') entities+=Entity+ ('}' ';') ('Relationships' '{') relations+=Relation* ('}' ';'); @@ -18,7 +18,6 @@ Entity: name=ID ('is' generalization=('total/disjoint' | 'total/overlapped' | 'partial/disjoint' | 'partial/overlapped') is=[Entity])? ('{' attributes+=Attribute (',' attributes+=Attribute)* '}')?; -//generalization=('TD' | 'TO' | 'PD' | 'PO') Relation: (name=ID)? ('[' leftEnding=RelationSideLeft 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 672974e..50a2c00 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 @@ -25,774 +25,43 @@ import java.io.ByteArrayInputStream */ class ErDslGenerator extends AbstractGenerator { - val myListFKs = new ArrayList(); - var globalFKcounter_1to1 = 0; - var globalFKcounter_1toN = 0; - var counter = 0; - var AuxCounterA = 0; - var AuxCounterB = 0; - var boolean auxT1 = false; - var boolean auxT2 = false; - var StringBuilder stringBuilderAlterTblNtoN = new StringBuilder; - var StringBuilder stringBuilderAlterTblTernary = new StringBuilder; - - var Entity lEnt; - var Entity rEnt; - var Relation lRel; - var Relation rRel; - val htmlGenerator = new HtmlFileGenerator; val postGreSqlGenerator = new PostgresqlFileGenerator; val MySqlGenerator = new MysqlFileGenerator; val PlantUmlGenerator = new PlantUmlFileGenerator; - - + override void doGenerate(Resource resource, IFileSystemAccess2 fsa, IGeneratorContext context) { - - val modeloER = resource.contents.get(0) as ERModel - + + val modeloER = resource.contents.get(0) as ERModel + if (!modeloER.targetGenerator.isNullOrEmpty && !modeloER.targetGenerator.equalsIgnoreCase("all")) { + switch (modeloER.targetGenerator.toString) { + case modeloER.targetGenerator.toString.equalsIgnoreCase("logicalschema"): { + this.htmlGenerator.doGenerate(resource, fsa, context) } + case modeloER.targetGenerator.toString.equalsIgnoreCase("postgresql"): { + this.postGreSqlGenerator.doGenerate(resource, fsa, context) } + case modeloER.targetGenerator.toString.equalsIgnoreCase("mysql"): { + this.MySqlGenerator.doGenerate(resource, fsa, context) } } } else { + this.htmlGenerator.doGenerate(resource, fsa, context) + this.postGreSqlGenerator.doGenerate(resource, fsa, context) + this.MySqlGenerator.doGenerate(resource, fsa, context) + this.PlantUmlGenerator.doGenerate(resource, fsa, context) } - } - - /** - * LOGICAL SCHEMA (HTML) GENERATOR CODE - */ - def CreateLogical(ERModel modeloER) ''' - «htmlHead» - «htmlModelDomain(modeloER)» - «htmlModelEntities(modeloER)» - «htmlModelRelationships(modeloER)» - -


    -

    - -   Resulting 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)» - «FOR auxAttributes : aux.attributes» - «IF auxAttributes.isIsKey» - «auxAttributes.name»*, - «ENDIF» - «ENDFOR» - «««Antigo code: na mudança acima proposta pelo Bernardino, usa a exata mesma chave do pai, não o nome da tabela - ««« «aux.name»*, - «ENDIF» - «ENDFOR» - «ENDIF» - - «FOR attribute : entity.attributes SEPARATOR ", "» - «IF attribute.isIsKey» - «attribute.name»* - «ELSEIF !attribute.isIsKey» - «attribute.name» - «ENDIF» - «ENDFOR» - - «FOR relation : modeloER.relations» - - «IF ((relation.leftEnding.cardinality.equalsIgnoreCase('(0:1)') || relation.leftEnding.cardinality.equalsIgnoreCase('(1:1)')) - && - (relation.rightEnding.cardinality.equalsIgnoreCase('(0:1)') || relation.rightEnding.cardinality.equalsIgnoreCase('(1:1)')))» - - «IF relation.rightEnding.target.toString.equalsIgnoreCase(entity.name)» - «FOR aux : modeloER.entities» - «IF relation.leftEnding.target.toString.equalsIgnoreCase(aux.name)» - «IF aux.is === null» - «FOR aux2 : aux.attributes» - «IF aux2.isIsKey» - , «relation.leftEnding.target.toString»_fk - «ENDIF» - «ENDFOR» - «ELSEIF !(aux.is === null)» - , «aux.is.toString»_fk - «ENDIF» - «ENDIF» - «ENDFOR» - «ENDIF» - «ENDIF» - - «ENDFOR» - - «FOR relation : modeloER.relations» - «IF (((relation.leftEnding.cardinality.equalsIgnoreCase('(0:1)') || relation.leftEnding.cardinality.equalsIgnoreCase('(1:1)')) - && - (relation.rightEnding.cardinality.equalsIgnoreCase('(0:N)') || relation.rightEnding.cardinality.equalsIgnoreCase('(1:N)')))) - - || - - (((relation.leftEnding.cardinality.equalsIgnoreCase('(0:N)') || relation.leftEnding.cardinality.equalsIgnoreCase('(1:N)')) - && - (relation.rightEnding.cardinality.equalsIgnoreCase('(0:1)') || relation.rightEnding.cardinality.equalsIgnoreCase('(1:1)'))))» - - «IF relation.rightEnding.target.toString.equalsIgnoreCase(entity.name)» - «FOR aux : modeloER.entities» - «IF relation.leftEnding.target.toString.equalsIgnoreCase(aux.name)» - «IF aux.is === null» - , «aux.name»_fk - «ELSEIF !(aux.is === null)» - «IF relation.leftEnding.target.toString.equalsIgnoreCase(relation.rightEnding.target.toString)» - , «relation.name.toString»_fk - «ELSEIF !relation.leftEnding.target.toString.equalsIgnoreCase(relation.rightEnding.target.toString)» - , «relation.leftEnding.target.toString»_fk - «ENDIF» - «ENDIF» - «ENDIF» - «ENDFOR» - «ENDIF» - «ENDIF» - - «ENDFOR» - - «ENDFOR» - «/** - * - * 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» ( - id«relation.leftEnding.target.toString.toUpperCase»«relation.rightEnding.target.toString»*, - «ELSEIF !relation.name.nullOrEmpty» -
    «relation.name.toUpperCase» ( - id«relation.name»*, - «ENDIF» - - «FOR entity : modeloER.entities» - - «IF relation.leftEnding.target.toString.equalsIgnoreCase(entity.name) && (relation.leftEnding.target.toString !== relation.rightEnding.target.toString)» - ««« «FOR attribute : entity.attributes» - ««« «IF attribute.isIsKey» - «relation.leftEnding.target.toString»_fk, - ««« «ENDIF» - ««« «ENDFOR» - «ENDIF» - - «IF relation.rightEnding.target.toString.equalsIgnoreCase(entity.name) && (relation.rightEnding.target.toString !== relation.leftEnding.target.toString)» - ««« «FOR attribute : entity.attributes» - ««« «IF attribute.isIsKey» - «relation.rightEnding.target.toString»_fk - ««« «ENDIF» - ««« «ENDFOR» - «ENDIF» - - «/** - * - * Display of self-relationships N:N - * - */» - «IF relation.leftEnding.target.toString.equalsIgnoreCase(entity.name) && (relation.leftEnding.target.toString.equalsIgnoreCase(relation.rightEnding.target.toString))» - - «FOR attribute : entity.attributes» - «IF attribute.isIsKey» - «attribute.name»__fk1, - «ENDIF» - «ENDFOR» - «ENDIF» - - «IF relation.rightEnding.target.toString.equalsIgnoreCase(entity.name) && (relation.rightEnding.target.toString.equalsIgnoreCase(relation.leftEnding.target.toString))» - «FOR attribute : entity.attributes» - «IF attribute.isIsKey» - «attribute.name»__fk2 - «ENDIF» - «ENDFOR» - «ENDIF» - - «ENDFOR» - - «/** - * - * Display of attributes of N: N relationships - * - */» - «FOR attribute : relation.attributes» - «IF !attribute.name.nullOrEmpty && attribute.isIsKey» - , «attribute.name»* - «ENDIF» - «ENDFOR» - - «FOR attribute : relation.attributes» - «IF !attribute.name.nullOrEmpty && !attribute.isIsKey» - , «attribute.name» - «ENDIF» - «ENDFOR» - - )
    - - «ENDIF» - «ENDFOR» -
    - «/** - * - * Formation of entities from ternary relations - * - */» - «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)')))» - «FOR aux : modeloER.relations» - - «IF (!relation.name.nullOrEmpty) && (relation.name.equals(aux.leftEnding.target.toString))» - «aux.name.toUpperCase» ( - id«aux.name»*, - «aux.leftEnding.target.toString»_FK, - ««« *, - «FOR aux2 : modeloER.entities» - «IF aux.rightEnding.target.toString.equalsIgnoreCase(aux2.name)» - «aux2»_FK - ««« * - «/** - * - * Display ternary attributes - * - */» - «FOR attribute : aux.attributes» - «IF !attribute.name.nullOrEmpty && attribute.isIsKey» - , «attribute.name»* - «ENDIF» - «ENDFOR» - - «FOR attribute : aux.attributes» - «IF !attribute.name.nullOrEmpty && !attribute.isIsKey» - , «attribute.name» - «ENDIF» - «ENDFOR» - )
    - «ENDIF» - «ENDFOR» - «ELSEIF (!relation.name.nullOrEmpty) && (relation.name.equals(aux.rightEnding.target.toString))» - «aux.name.toUpperCase» ( - «aux.rightEnding.target.toString»_FK, - ««« * - «FOR aux2 : modeloER.entities» - «IF aux.leftEnding.target.toString.equalsIgnoreCase(aux2.name)» - «aux2»_FK - ««« * - «/** - * - * Display ternary attributes - * - */» - «FOR attribute : relation.attributes» - «IF !attribute.name.nullOrEmpty && attribute.isIsKey» - , «attribute.name»* - «ENDIF» - «ENDFOR» - - «FOR attribute : relation.attributes» - «IF !attribute.name.nullOrEmpty && !attribute.isIsKey» - , «attribute.name» - «ENDIF» - «ENDFOR» - )
    - «ENDIF» - «ENDFOR» - «ENDIF» - - - «ENDFOR» - «ENDIF» - «ENDFOR» -

    -
    - - ««« «/** - ««« * - ««« * Display of previously modeled relationships - ««« * - ««« */» - «««
    - «««

    - ««« - «««   Modelled Relationships - «««

    - «««
    - «««

    - ««« «FOR relation : modeloER.relations SEPARATOR "
    "» - ««« «IF relation.name.nullOrEmpty»_UnnamedEntity_«ELSEIF !relation.name.nullOrEmpty»«relation.name»«ENDIF» «relation.leftEnding.cardinality.toString» «relation.leftEnding.target» relates «relation.rightEnding.target.toString» «relation.rightEnding.cardinality» - ««« «ENDFOR» - «««

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

    - -   Mapped References -

    -
    -

    - «FOR relation : modeloER.relations SEPARATOR "
    "» - «/** - * - * - * - */» - - ««« Relationships 1:1 - «IF (relation.leftEnding.cardinality.equalsIgnoreCase('(0:1)') && relation.rightEnding.cardinality.equalsIgnoreCase('(0:1)'))» - Relationship: «IF relation.name.nullOrEmpty»_UnnamedEntity_«ELSEIF !relation.name.nullOrEmpty»«relation.name»«ENDIF» «relation.leftEnding.cardinality.toString» «relation.leftEnding.target» relates «relation.rightEnding.target.toString» «relation.rightEnding.cardinality»
    - - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.rightEnding.target.toString.toUpperCase» references «relation.leftEnding.target.toString.toUpperCase» -
    - «ENDIF» - - «IF (relation.leftEnding.cardinality.equalsIgnoreCase('(0:1)') && relation.rightEnding.cardinality.equalsIgnoreCase('(1:1)'))» - Relationship: «IF relation.name.nullOrEmpty»_UnnamedEntity_«ELSEIF !relation.name.nullOrEmpty»«relation.name»«ENDIF» «relation.leftEnding.cardinality.toString» «relation.leftEnding.target» relates «relation.rightEnding.target.toString» «relation.rightEnding.cardinality»
    - - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.rightEnding.target.toString.toUpperCase» references «relation.leftEnding.target.toString.toUpperCase» -
    - «ENDIF» - - «IF (relation.leftEnding.cardinality.equalsIgnoreCase('(1:1)') && relation.rightEnding.cardinality.equalsIgnoreCase('(0:1)'))» - Relationship: «IF relation.name.nullOrEmpty»_UnnamedEntity_«ELSEIF !relation.name.nullOrEmpty»«relation.name»«ENDIF» «relation.leftEnding.cardinality.toString» «relation.leftEnding.target» relates «relation.rightEnding.target.toString» «relation.rightEnding.cardinality»
    - - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.rightEnding.target.toString.toUpperCase» references «relation.leftEnding.target.toString.toUpperCase» -
    - «ENDIF» - - «IF (relation.leftEnding.cardinality.equalsIgnoreCase('(1:1)') && relation.rightEnding.cardinality.equalsIgnoreCase('(1:1)'))» - Relationship: «IF relation.name.nullOrEmpty»_UnnamedEntity_«ELSEIF !relation.name.nullOrEmpty»«relation.name»«ENDIF» «relation.leftEnding.cardinality.toString» «relation.leftEnding.target» relates «relation.rightEnding.target.toString» «relation.rightEnding.cardinality»
    - - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.rightEnding.target.toString.toUpperCase» references «relation.leftEnding.target.toString.toUpperCase» -
    - «ENDIF» - - - ««« Relationships 1:N - «IF (relation.leftEnding.cardinality.equalsIgnoreCase('(0:1)') && relation.rightEnding.cardinality.equalsIgnoreCase('(0:N)'))» - Relationship: «IF relation.name.nullOrEmpty»_UnnamedEntity_«ELSEIF !relation.name.nullOrEmpty»«relation.name»«ENDIF» «relation.leftEnding.cardinality.toString» «relation.leftEnding.target» relates «relation.rightEnding.target.toString» «relation.rightEnding.cardinality»
    - «FOR aux : modeloER.entities» - «IF aux.name.equalsIgnoreCase(relation.leftEnding.target.toString)» - «IF aux.is === null» - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.rightEnding.target.toString.toUpperCase» references «relation.leftEnding.target.toString.toUpperCase» - «ELSEIF !(aux.is === null)» - «IF relation.leftEnding.target.toString.equals(relation.rightEnding.target.toString)» - Attribute "«relation.name»_fk" in «relation.rightEnding.target.toString.toUpperCase» references «aux.is.toString.toUpperCase» - «ELSE» - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.rightEnding.target.toString.toUpperCase» references «aux.is.toString.toUpperCase» - «ENDIF» - «ENDIF» - «ENDIF» - «ENDFOR» - «FOR aux : modeloER.relations» - «IF aux.name.equalsIgnoreCase(relation.leftEnding.target.toString)» - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.name.toUpperCase» references «relation.leftEnding.target.toString.toUpperCase»
    - Attribute "«relation.rightEnding.target.toString»_fk" in «relation.name.toUpperCase» references «relation.rightEnding.target.toString.toUpperCase» - «ELSEIF aux.name.equalsIgnoreCase(relation.rightEnding.target.toString)» - Attribute "«relation.rightEnding.target.toString»_fk" in «relation.name.toUpperCase» references «relation.rightEnding.target.toString.toUpperCase»
    - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.name.toUpperCase» references «relation.leftEnding.target.toString.toUpperCase» - «ENDIF» - «ENDFOR» -
    - «ENDIF» - - «IF (relation.leftEnding.cardinality.equalsIgnoreCase('(0:1)') && relation.rightEnding.cardinality.equalsIgnoreCase('(1:N)'))» - Relationship: «IF relation.name.nullOrEmpty»_UnnamedEntity_«ELSEIF !relation.name.nullOrEmpty»«relation.name»«ENDIF» «relation.leftEnding.cardinality.toString» «relation.leftEnding.target» relates «relation.rightEnding.target.toString» «relation.rightEnding.cardinality»
    - «FOR aux : modeloER.entities» - «IF aux.name.equalsIgnoreCase(relation.leftEnding.target.toString)» - «IF aux.is === null» - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.rightEnding.target.toString.toUpperCase» references «relation.leftEnding.target.toString.toUpperCase» - «ELSEIF !(aux.is === null)» - «IF relation.leftEnding.target.toString.equals(relation.rightEnding.target.toString)» - Attribute "«relation.name»_fk" in «relation.rightEnding.target.toString.toUpperCase» references «aux.is.toString.toUpperCase» - «ELSE» - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.rightEnding.target.toString.toUpperCase» references «aux.is.toString.toUpperCase» - «ENDIF» - «ENDIF» - «ENDIF» - «ENDFOR» - «FOR aux : modeloER.relations» - «IF aux.name.equalsIgnoreCase(relation.leftEnding.target.toString)» - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.name.toUpperCase» references «relation.leftEnding.target.toString.toUpperCase»
    - Attribute "«relation.rightEnding.target.toString»_fk" in «relation.name.toUpperCase» references «relation.rightEnding.target.toString.toUpperCase» - «ELSEIF aux.name.equalsIgnoreCase(relation.rightEnding.target.toString)» - Attribute "«relation.rightEnding.target.toString»_fk" in «relation.name.toUpperCase» references «relation.rightEnding.target.toString.toUpperCase»
    - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.name.toUpperCase» references «relation.leftEnding.target.toString.toUpperCase» - «ENDIF» - «ENDFOR» -
    - «ENDIF» - - «IF (relation.leftEnding.cardinality.equalsIgnoreCase('(1:1)') && relation.rightEnding.cardinality.equalsIgnoreCase('(0:N)'))» - Relationship: «IF relation.name.nullOrEmpty»_UnnamedEntity_«ELSEIF !relation.name.nullOrEmpty»«relation.name»«ENDIF» «relation.leftEnding.cardinality.toString» «relation.leftEnding.target» relates «relation.rightEnding.target.toString» «relation.rightEnding.cardinality»
    - «FOR aux : modeloER.entities» - «IF aux.name.equalsIgnoreCase(relation.leftEnding.target.toString)» - «IF aux.is === null» - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.rightEnding.target.toString.toUpperCase» references «relation.leftEnding.target.toString.toUpperCase» - «ELSEIF !(aux.is === null)» - «IF relation.leftEnding.target.toString.equals(relation.rightEnding.target.toString)» - Attribute "«relation.name»_fk" in «relation.rightEnding.target.toString.toUpperCase» references «aux.is.toString.toUpperCase» - «ELSE» - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.rightEnding.target.toString.toUpperCase» references «aux.is.toString.toUpperCase» - «ENDIF» - «ENDIF» - «ENDIF» - «ENDFOR» - «FOR aux : modeloER.relations» - «IF aux.name.equalsIgnoreCase(relation.leftEnding.target.toString)» - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.name.toUpperCase» references «relation.leftEnding.target.toString.toUpperCase»
    - Attribute "«relation.rightEnding.target.toString»_fk" in «relation.name.toUpperCase» references «relation.rightEnding.target.toString.toUpperCase» - «ELSEIF aux.name.equalsIgnoreCase(relation.rightEnding.target.toString)» - Attribute "«relation.rightEnding.target.toString»_fk" in «relation.name.toUpperCase» references «relation.rightEnding.target.toString.toUpperCase»
    - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.name.toUpperCase» references «relation.leftEnding.target.toString.toUpperCase» - «ENDIF» - «ENDFOR» -
    - «ENDIF» - - «IF (relation.leftEnding.cardinality.equalsIgnoreCase('(1:1)') && relation.rightEnding.cardinality.equalsIgnoreCase('(1:N)'))» - Relationship: «IF relation.name.nullOrEmpty»_UnnamedEntity_«ELSEIF !relation.name.nullOrEmpty»«relation.name»«ENDIF» «relation.leftEnding.cardinality.toString» «relation.leftEnding.target» relates «relation.rightEnding.target.toString» «relation.rightEnding.cardinality»
    - «FOR aux : modeloER.entities» - «IF aux.name.equalsIgnoreCase(relation.leftEnding.target.toString)» - «IF aux.is === null» - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.rightEnding.target.toString.toUpperCase» references «relation.leftEnding.target.toString.toUpperCase» - «ELSEIF !(aux.is === null)» - «IF relation.leftEnding.target.toString.equals(relation.rightEnding.target.toString)» - Attribute "«relation.name»_fk" in «relation.rightEnding.target.toString.toUpperCase» references «aux.is.toString.toUpperCase» - «ELSE» - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.rightEnding.target.toString.toUpperCase» references «aux.is.toString.toUpperCase» - «ENDIF» - «ENDIF» - «ENDIF» - «ENDFOR» - «FOR aux : modeloER.relations» - «IF aux.name.equalsIgnoreCase(relation.leftEnding.target.toString)» - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.name.toUpperCase» references «relation.leftEnding.target.toString.toUpperCase»
    - Attribute "«relation.rightEnding.target.toString»_fk" in «relation.name.toUpperCase» references «relation.rightEnding.target.toString.toUpperCase» - «ELSEIF aux.name.equalsIgnoreCase(relation.rightEnding.target.toString)» - Attribute "«relation.rightEnding.target.toString»_fk" in «relation.name.toUpperCase» references «relation.rightEnding.target.toString.toUpperCase»
    - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.name.toUpperCase» references «relation.leftEnding.target.toString.toUpperCase» - «ENDIF» - «ENDFOR» -
    - «ENDIF» - - «IF (relation.leftEnding.cardinality.equalsIgnoreCase('(0:N)') && relation.rightEnding.cardinality.equalsIgnoreCase('(0:1)'))» - Relationship: «IF relation.name.nullOrEmpty»_UnnamedEntity_«ELSEIF !relation.name.nullOrEmpty»«relation.name»«ENDIF» «relation.leftEnding.cardinality.toString» «relation.leftEnding.target» relates «relation.rightEnding.target.toString» «relation.rightEnding.cardinality»
    - «FOR aux : modeloER.entities» - «IF aux.name.equalsIgnoreCase(relation.leftEnding.target.toString)» - «IF aux.is === null» - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.rightEnding.target.toString.toUpperCase» references «relation.leftEnding.target.toString.toUpperCase» - «ELSEIF !(aux.is === null)» - «IF relation.leftEnding.target.toString.equals(relation.rightEnding.target.toString)» - Attribute "«relation.name»_fk" in «relation.rightEnding.target.toString.toUpperCase» references «aux.is.toString.toUpperCase» - «ELSE» - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.rightEnding.target.toString.toUpperCase» references «aux.is.toString.toUpperCase» - «ENDIF» - «ENDIF» - «ENDIF» - «ENDFOR» - «FOR aux : modeloER.relations» - «IF aux.name.equalsIgnoreCase(relation.leftEnding.target.toString)» - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.name.toUpperCase» references «relation.leftEnding.target.toString.toUpperCase»
    - Attribute "«relation.rightEnding.target.toString»_fk" in «relation.name.toUpperCase» references «relation.rightEnding.target.toString.toUpperCase» - «ELSEIF aux.name.equalsIgnoreCase(relation.rightEnding.target.toString)» - Attribute "«relation.rightEnding.target.toString»_fk" in «relation.name.toUpperCase» references «relation.rightEnding.target.toString.toUpperCase»
    - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.name.toUpperCase» references «relation.leftEnding.target.toString.toUpperCase» - «ENDIF» - «ENDFOR» -
    - «ENDIF» - - «IF (relation.leftEnding.cardinality.equalsIgnoreCase('(1:N)') && relation.rightEnding.cardinality.equalsIgnoreCase('(0:1)'))» - Relationship: «IF relation.name.nullOrEmpty»_UnnamedEntity_«ELSEIF !relation.name.nullOrEmpty»«relation.name»«ENDIF» «relation.leftEnding.cardinality.toString» «relation.leftEnding.target» relates «relation.rightEnding.target.toString» «relation.rightEnding.cardinality»
    - «FOR aux : modeloER.entities» - «IF aux.name.equalsIgnoreCase(relation.leftEnding.target.toString)» - «IF aux.is === null» - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.rightEnding.target.toString.toUpperCase» references «relation.leftEnding.target.toString.toUpperCase» - «ELSEIF !(aux.is === null)» - «IF relation.leftEnding.target.toString.equals(relation.rightEnding.target.toString)» - Attribute "«relation.name»_fk" in «relation.rightEnding.target.toString.toUpperCase» references «aux.is.toString.toUpperCase» - «ELSE» - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.rightEnding.target.toString.toUpperCase» references «aux.is.toString.toUpperCase» - «ENDIF» - «ENDIF» - «ENDIF» - «ENDFOR» - «FOR aux : modeloER.relations» - «IF aux.name.equalsIgnoreCase(relation.leftEnding.target.toString)» - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.name.toUpperCase» references «relation.leftEnding.target.toString.toUpperCase»
    - Attribute "«relation.rightEnding.target.toString»_fk" in «relation.name.toUpperCase» references «relation.rightEnding.target.toString.toUpperCase» - «ELSEIF aux.name.equalsIgnoreCase(relation.rightEnding.target.toString)» - Attribute "«relation.rightEnding.target.toString»_fk" in «relation.name.toUpperCase» references «relation.rightEnding.target.toString.toUpperCase»
    - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.name.toUpperCase» references «relation.leftEnding.target.toString.toUpperCase» - «ENDIF» - «ENDFOR» -
    - «ENDIF» - - «IF (relation.leftEnding.cardinality.equalsIgnoreCase('(0:N)') && relation.rightEnding.cardinality.equalsIgnoreCase('(1:1)'))» - Relationship: «IF relation.name.nullOrEmpty»_UnnamedEntity_«ELSEIF !relation.name.nullOrEmpty»«relation.name»«ENDIF» «relation.leftEnding.cardinality.toString» «relation.leftEnding.target» relates «relation.rightEnding.target.toString» «relation.rightEnding.cardinality»
    - «FOR aux : modeloER.entities» - «IF aux.name.equalsIgnoreCase(relation.leftEnding.target.toString)» - «IF aux.is === null» - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.rightEnding.target.toString.toUpperCase» references «relation.leftEnding.target.toString.toUpperCase» - «ELSEIF !(aux.is === null)» - «IF relation.leftEnding.target.toString.equals(relation.rightEnding.target.toString)» - Attribute "«relation.name»_fk" in «relation.rightEnding.target.toString.toUpperCase» references «aux.is.toString.toUpperCase» - «ELSE» - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.rightEnding.target.toString.toUpperCase» references «aux.is.toString.toUpperCase» - «ENDIF» - «ENDIF» - «ENDIF» - «ENDFOR» - «FOR aux : modeloER.relations» - «IF aux.name.equalsIgnoreCase(relation.leftEnding.target.toString)» - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.name.toUpperCase» references «relation.leftEnding.target.toString.toUpperCase»
    - Attribute "«relation.rightEnding.target.toString»_fk" in «relation.name.toUpperCase» references «relation.rightEnding.target.toString.toUpperCase» - «ELSEIF aux.name.equalsIgnoreCase(relation.rightEnding.target.toString)» - Attribute "«relation.rightEnding.target.toString»_fk" in «relation.name.toUpperCase» references «relation.rightEnding.target.toString.toUpperCase»
    - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.name.toUpperCase» references «relation.leftEnding.target.toString.toUpperCase» - «ENDIF» - «ENDFOR» -
    - «ENDIF» - - «IF (relation.leftEnding.cardinality.equalsIgnoreCase('(1:N)') && relation.rightEnding.cardinality.equalsIgnoreCase('(1:1)'))» - Relationship: «IF relation.name.nullOrEmpty»_UnnamedEntity_«ELSEIF !relation.name.nullOrEmpty»«relation.name»«ENDIF» «relation.leftEnding.cardinality.toString» «relation.leftEnding.target» relates «relation.rightEnding.target.toString» «relation.rightEnding.cardinality»
    - «FOR aux : modeloER.entities» - «IF aux.name.equalsIgnoreCase(relation.leftEnding.target.toString)» - «IF aux.is === null» - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.rightEnding.target.toString.toUpperCase» references «relation.leftEnding.target.toString.toUpperCase» - «ELSEIF !(aux.is === null)» - «IF relation.leftEnding.target.toString.equals(relation.rightEnding.target.toString)» - Attribute "«relation.name»_fk" in «relation.rightEnding.target.toString.toUpperCase» references «aux.is.toString.toUpperCase» - «ELSE» - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.rightEnding.target.toString.toUpperCase» references «aux.is.toString.toUpperCase» - «ENDIF» - «ENDIF» - «ENDIF» - «ENDFOR» - «FOR aux : modeloER.relations» - «IF aux.name.equalsIgnoreCase(relation.leftEnding.target.toString)» - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.name.toUpperCase» references «relation.leftEnding.target.toString.toUpperCase»
    - Attribute "«relation.rightEnding.target.toString»_fk" in «relation.name.toUpperCase» references «relation.rightEnding.target.toString.toUpperCase» - «ELSEIF aux.name.equalsIgnoreCase(relation.rightEnding.target.toString)» - Attribute "«relation.rightEnding.target.toString»_fk" in «relation.name.toUpperCase» references «relation.rightEnding.target.toString.toUpperCase»
    - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.name.toUpperCase» references «relation.leftEnding.target.toString.toUpperCase» - «ENDIF» - «ENDFOR» -
    - «ENDIF» - - - ««« Relationships N:N - «IF (relation.leftEnding.cardinality.equalsIgnoreCase('(0:N)') && relation.rightEnding.cardinality.equalsIgnoreCase('(0:N)'))» - Relationship: «IF relation.name.nullOrEmpty»_UnnamedEntity_«ELSEIF !relation.name.nullOrEmpty»«relation.name»«ENDIF» «relation.leftEnding.cardinality.toString» «relation.leftEnding.target» relates «relation.rightEnding.target.toString» «relation.rightEnding.cardinality»
    - - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.name.toUpperCase» references «relation.leftEnding.target.toString.toUpperCase» -
    - Attribute "«relation.rightEnding.target.toString»_fk" In «relation.name.toUpperCase» references «relation.rightEnding.target.toString.toUpperCase» -
    - «ENDIF» - - «IF (relation.leftEnding.cardinality.equalsIgnoreCase('(0:N)') && relation.rightEnding.cardinality.equalsIgnoreCase('(1:N)'))» - Relationship: «IF relation.name.nullOrEmpty»_UnnamedEntity_«ELSEIF !relation.name.nullOrEmpty»«relation.name»«ENDIF» «relation.leftEnding.cardinality.toString» «relation.leftEnding.target» relates «relation.rightEnding.target.toString» «relation.rightEnding.cardinality»
    - - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.name.toUpperCase» references «relation.leftEnding.target.toString.toUpperCase» -
    - Attribute "«relation.rightEnding.target.toString»_fk" In «relation.name.toUpperCase» references «relation.rightEnding.target.toString.toUpperCase» -
    - «ENDIF» - - «IF (relation.leftEnding.cardinality.equalsIgnoreCase('(1:N)') && relation.rightEnding.cardinality.equalsIgnoreCase('(0:N)'))» - Relationship: «IF relation.name.nullOrEmpty»_UnnamedEntity_«ELSEIF !relation.name.nullOrEmpty»«relation.name»«ENDIF» «relation.leftEnding.cardinality.toString» «relation.leftEnding.target» relates «relation.rightEnding.target.toString» «relation.rightEnding.cardinality»
    - - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.name.toUpperCase» references «relation.leftEnding.target.toString.toUpperCase» -
    - Attribute "«relation.rightEnding.target.toString»_fk" In «relation.name.toUpperCase» references «relation.rightEnding.target.toString.toUpperCase» -
    - «ENDIF» - - «IF (relation.leftEnding.cardinality.equalsIgnoreCase('(1:N)') && relation.rightEnding.cardinality.equalsIgnoreCase('(1:N)'))» - Modelled Relationship: «IF relation.name.nullOrEmpty»_UnnamedEntity_«ELSEIF !relation.name.nullOrEmpty»«relation.name»«ENDIF» «relation.leftEnding.cardinality.toString» «relation.leftEnding.target» relates «relation.rightEnding.target.toString» «relation.rightEnding.cardinality»
    - - Attribute "«relation.leftEnding.target.toString»_fk" in «relation.name.toUpperCase» references «relation.leftEnding.target.toString.toUpperCase» -
    - Attribute "«relation.rightEnding.target.toString»_fk" In «relation.name.toUpperCase» references «relation.rightEnding.target.toString.toUpperCase» -
    - «ENDIF» - - - «ENDFOR» - - «htmlFooter» - ''' - - def private htmlHead () ''' - - - - ERtext Logical schema - - - - - - - - - - -

    -

    LOGICAL SCHEMA

    -
    - ''' - - def private htmlFooter()''' -

    -
    - - - - ''' - - /** - * Display of the modeled domain (database name) - **/ - def private htmlModelDomain (ERModel m) ''' -

    - -   Modelled Domain -

    -
    -

    «m.domain.name.toUpperCase»

    -
    - - ''' - - /** - * - * Display of modeled entities (tables) - * - */ - def private htmlModelEntities (ERModel m) ''' -
    -

    - -   Resulting Entities -

    -
    -

    - «FOR entity : m.entities SEPARATOR " )

    " AFTER ")
    "» - «htmlEntityNameTag(entity)» ( «htmlModelAtributes(entity)» - «ENDFOR» -

    - ''' - def private htmlEntityNameTag (Entity e) ''' - «e.name.toUpperCase» - ''' - - def private htmlModelAtributes (Entity e) ''' - «FOR att : e.attributes SEPARATOR ", "» - «IF att.isIsKey» - «htmlRedAttributeForPK(att)» - «ELSE» - «att.name» - «ENDIF» - «ENDFOR» - ''' - - def private htmlRedAttributeForPK (Attribute a) ''' - «a.name.toLowerCase»* - ''' - - def private htmlModelRelationships (ERModel m) ''' -
    -

    - -   Mapped References -

    -
    -

    - «FOR relation : m.relations SEPARATOR "

    "» - «IF relation.leftEnding.target instanceof Entity» - «{lEnt = relation.leftEnding.target as Entity;null}» - «ELSE» - «{lRel = relation.leftEnding.target as Relation;null}» - «ENDIF» - «IF relation.rightEnding.target instanceof Entity» - «{rEnt = relation.rightEnding.target as Entity;null}» - «ELSE» - «{rRel = relation.rightEnding.target as Relation;null}» - «ENDIF» - -««« // FIXME: precisa implementar a funçao de concatenação para relaçao sem nome - - Relationship: «IF relation.name.nullOrEmpty» _UnnamedEntity_ «ELSEIF !relation.name.nullOrEmpty»«relation.name»«ENDIF» - «IF !(lEnt === null)» - «lEnt.name» - «ELSEIF !(lRel === null)» - «lRel.name» - «ENDIF» - «relation.leftEnding.cardinality.toString» relates «relation.rightEnding.cardinality» - «IF !(rEnt === null)» - «rEnt.name» - «ELSEIF !(rRel === null)» - «rRel.name» - «ENDIF» -
    - - «{lEnt = null;null}»«{rEnt = null;null}» - «{lRel = null;null}»«{rRel = null;null}» - «ENDFOR» - -

    - - ''' } diff --git a/org.xtext.unipampa.erdsl/src/org/xtext/unipampa/erdsl/generator/HtmlFileGenerator.xtend b/org.xtext.unipampa.erdsl/src/org/xtext/unipampa/erdsl/generator/HtmlFileGenerator.xtend index f3900ff..d5234cf 100644 --- a/org.xtext.unipampa.erdsl/src/org/xtext/unipampa/erdsl/generator/HtmlFileGenerator.xtend +++ b/org.xtext.unipampa.erdsl/src/org/xtext/unipampa/erdsl/generator/HtmlFileGenerator.xtend @@ -11,11 +11,6 @@ import org.xtext.unipampa.erdsl.erDsl.Attribute class HtmlFileGenerator extends AbstractGenerator { - var Entity lEnt; - var Entity rEnt; - var Relation lRel; - var Relation rRel; - override doGenerate(Resource input, IFileSystemAccess2 fsa, IGeneratorContext context) { val modeloER = input.contents.get(0) as ERModel @@ -24,7 +19,7 @@ class HtmlFileGenerator extends AbstractGenerator { } - def CreateLogical(ERModel modeloER) ''' + def CreateLogical(ERModel modeloER) ''' «html_Head» «html_DomainMapping(modeloER)» @@ -32,7 +27,7 @@ class HtmlFileGenerator extends AbstractGenerator { «html_EntitiesMapping(modeloER)» «html_RelationshipsMapping(modeloER)» - + «html_Footer» ''' @@ -52,14 +47,54 @@ class HtmlFileGenerator extends AbstractGenerator { + body { + background: #ffffff; + border: 1px solid black, padding: 5px 0 5px 0 + } + + .title { + font: bold 160% serif; + color: #0066FF; + padding: 10px 0 10px 0; + text-align: center; + background: #ccc8c8 + } + + .stitle { + font: bold 120% sans-serif; + color: #0044DD; + padding: 10px 0 10px 0 + } + + .sstitle { + font: bold 120% serif; + color: #000000; + background: #efefef; + padding: 5px 0 5px 0; + padding-left: 20px; + } + + .field { + font: 100% sans-serif; + color: #000000; + padding: 2px; + padding-left: 50px; + border: 0px solid black + } + + .value { + font: 100% sans-serif; + color: #505050 + } + + footer { + text-align: center; + padding: 3px; + border: 1px; + background-color: #ccc8c8; + color: white; + } +
    @@ -68,12 +103,10 @@ class HtmlFileGenerator extends AbstractGenerator { ''' def private html_Footer()''' -

    -
    - + ''' @@ -83,10 +116,10 @@ class HtmlFileGenerator extends AbstractGenerator { def private html_DomainMapping (ERModel m) '''

    -   Modelled Domain +   Domain

    -

    «m.domain.name.toUpperCase»

    +

    «m.domain.name.toUpperCase»

    ''' @@ -100,23 +133,25 @@ class HtmlFileGenerator extends AbstractGenerator {

    -   Resulting Entities +   Entities

    - «FOR entity : m.entities SEPARATOR " )

    " AFTER ")
    "» - «html_EntityNameTag(entity)» ( «html_AtributesMapping(m, entity)» + «FOR entity : m.entities SEPARATOR " ]

    " AFTER "]
    "» + «html_EntityNameTag(entity.name)» [ «html_AtributesMapping(m, entity)» «ENDFOR» «html_NtoN_EntityCreation(m)» - + «html_Ternary_EntityCreation(m)»

    ''' - def private html_EntityNameTag (Entity e) ''' - «e.name.toUpperCase» + + def private html_EntityNameTag (String o) ''' + «o.toUpperCase» ''' + /** * * Verification and display of primary (PK) and, at the same time, foreign (FK) @@ -126,36 +161,38 @@ class HtmlFileGenerator extends AbstractGenerator { * @param e The analyzed entity. */ def private html_AtributesMapping (ERModel m, Entity e) ''' - «FOR att : e.attributes SEPARATOR ", "» - «IF att.isIsKey» - «html_AttributeStyleForPK(att)» - «ELSE» - «att.name» - «ENDIF» + «var boolean hasPK = false» + «FOR att : e.attributes.filter[isIsKey] SEPARATOR " | "» + «html_AttributeStyleForPK(att)» + «{hasPK=true;null}» + «ENDFOR» + + «FOR att : e.attributes.filter[!isIsKey] BEFORE if (hasPK) {" | "} SEPARATOR " | "» + «att.name» «ENDFOR» + «{hasPK=false;null}» + «IF e.is !== null» - «FOR PKInherited : e.is.attributes» - «IF PKInherited.isIsKey» - , «html_AttributeStyleForInheritedPK(PKInherited)» - «ENDIF» + «FOR PKInherited : e.is.attributes.filter[isIsKey] BEFORE " | " SEPARATOR " | "» + «html_AttributeStyleForInheritedPK(PKInherited)» «ENDFOR» «ENDIF» «html_1To1_RefCheck(m, e)» «html_1ToN_RefCheck(m, e)» ''' - def private html_AttributeStyleForPK (Attribute a) ''' - «a.name.toLowerCase» - ''' + def private html_AttributeStyleForPK (Attribute a) ''' «a.name.toLowerCase»''' - def private html_AttributeStyleForInheritedPK (Attribute a) ''' - «a.name.toLowerCase» - ''' + def private html_AttributeStyleForInheritedPK (Attribute a) ''' «a.name.toLowerCase»''' - def private html_AttributeStyleForFK (Attribute a) ''' - «a.name.toLowerCase» + def private html_AttributeStyleForInheritedPK (Entity e) ''' + «FOR attribute : e.attributes.filter[isIsKey] SEPARATOR " | "» + «attribute.name.toLowerCase» + «ENDFOR» ''' + def private html_AttributeStyleForFK (Attribute a) ''' «a.name.toLowerCase»''' + def private html_1To1_RefCheck(ERModel m, Entity e) ''' «FOR relation : m.relations» «IF ((relation.leftEnding.cardinality.equalsIgnoreCase('(0:1)') || relation.leftEnding.cardinality.equalsIgnoreCase('(1:1)')) @@ -165,15 +202,22 @@ class HtmlFileGenerator extends AbstractGenerator { «FOR aux : m.entities» «IF relation.leftEnding.target.toString.equalsIgnoreCase(aux.name)» «IF aux.is === null» - «FOR aux2 : aux.attributes» - «IF aux2.isIsKey» «/*FIXME precisa implementar um autogenerate para casos em que a tabela foi modelada sem chave primária e sem herança*/» - , «html_AttributeStyleForFK(aux2)»_fk#1:1=1 - «ENDIF» - «ENDFOR» + «IF !relation.leftEnding.target.toString.equalsIgnoreCase(relation.rightEnding.target.toString)» + «FOR aux2 : aux.attributes.filter[isIsKey] BEFORE " | " SEPARATOR " | "» + «html_AttributeStyleForFK(aux2)»_fk + «ENDFOR» + «ELSE» + «html_ListPKtoFK_SelfRelationship(aux, relation.name.toLowerCase)» + «ENDIF» + + «/*FIXME precisa implementar um autogenerate para casos em que a tabela foi modelada sem chave primária e sem herança*/» + «ELSEIF aux.is !== null» - «FOR aux3 : aux.is.attributes» - «IF aux3.isIsKey» - , «html_AttributeStyleForFK(aux3)»_fk#1:1=2 + «FOR aux3 : aux.is.attributes.filter[isIsKey] BEFORE " | " SEPARATOR " | "» + «IF !relation.leftEnding.target.toString.equalsIgnoreCase(relation.rightEnding.target.toString)» + «html_AttributeStyleForFK(aux3)»_fk + «ELSE» + «html_AttributeStyleForFK(aux3)+"_"+relation.name.toLowerCase»_fk «ENDIF» «ENDFOR» «ENDIF» @@ -195,15 +239,17 @@ class HtmlFileGenerator extends AbstractGenerator { «FOR aux : m.entities» «IF relation.leftEnding.target.toString.equalsIgnoreCase(aux.name)» «IF aux.is === null» -««« , «aux.name»_fk 1 - «html_ListPKtoFK(aux)»#1 + «IF !relation.leftEnding.target.toString.equalsIgnoreCase(relation.rightEnding.target.toString)» + «html_ListPKtoFK(aux)» + «ELSE» + «html_ListPKtoFK_SelfRelationship(aux, relation.name.toLowerCase)» + «ENDIF» «ELSEIF aux.is !== null» «IF relation.leftEnding.target.toString.equalsIgnoreCase(relation.rightEnding.target.toString)» - , «relation.name.toString»_fk#2 + «html_ListPKtoFK_SelfRelationship(aux, relation.name.toLowerCase)» «ELSEIF !relation.leftEnding.target.toString.equalsIgnoreCase(relation.rightEnding.target.toString)» -««« , «relation.leftEnding.target.toString»_fk 3 «{temp = relation.leftEnding.target as Entity; null;}» - «html_ListPKtoFK(temp.is)»#3 + «html_ListPKtoFK(temp.is)» «ENDIF» «ENDIF» «ENDIF» @@ -217,14 +263,20 @@ class HtmlFileGenerator extends AbstractGenerator { «FOR aux : m.entities» «IF relation.rightEnding.target.toString.equalsIgnoreCase(aux.name)» «IF aux.is === null» - «html_ListPKtoFK(aux)»#4 + «IF !relation.leftEnding.target.toString.equalsIgnoreCase(relation.rightEnding.target.toString)» + «html_ListPKtoFK(aux)» + «ELSE» + «html_ListPKtoFK_SelfRelationship(aux, relation.name.toLowerCase)» + «ENDIF» «ELSEIF aux.is !== null» - «IF relation.rightEnding.target.toString.equalsIgnoreCase(relation.leftEnding.target.toString)» - , «relation.name.toString»_fk#5 + «IF relation.rightEnding.target.toString.equalsIgnoreCase(relation.leftEnding.target.toString)» + + «/*FIXME verificar a questão de autorelacionamento de entidades que tem mais de uma pk */» + + «html_ListPKtoFK_SelfRelationship(aux, relation.name.toLowerCase)» «ELSEIF !relation.rightEnding.target.toString.equalsIgnoreCase(relation.leftEnding.target.toString)» -««« , «relation.leftEnding.target.toString»_fk 6 - «{temp = relation.leftEnding.target as Entity; null;}» - «html_ListPKtoFK(temp.is)»#6 + «{temp = relation.rightEnding.target as Entity; null;}» + «html_ListPKtoFK(temp.is)» «ENDIF» «ENDIF» «ENDIF» @@ -250,81 +302,149 @@ class HtmlFileGenerator extends AbstractGenerator { «IF relation.leftEnding.target instanceof Entity && relation.rightEnding.target instanceof Entity» «IF relation.name.nullOrEmpty» -
    «relation.leftEnding.target.toString.toUpperCase»_«relation.rightEnding.target.toString.toUpperCase» ( +
    «html_EntityNameTag(relation.leftEnding.target.toString.toUpperCase+"_"+relation.rightEnding.target.toString.toUpperCase)» [ «ELSEIF !relation.name.nullOrEmpty» -
    «relation.name.toUpperCase» ( +
    «html_EntityNameTag(relation.name)» [ «ENDIF» + «FOR entity : m.entities» - - «IF relation.leftEnding.target.toString.equalsIgnoreCase(entity.name) && (relation.leftEnding.target.toString !== relation.rightEnding.target.toString)» - ««« «FOR attribute : entity.attributes» - ««« «IF attribute.isIsKey» - «relation.leftEnding.target.toString»_fk, - ««« «ENDIF» - ««« «ENDFOR» + «IF relation.leftEnding.target.toString.equalsIgnoreCase(entity.name) && !(relation.leftEnding.target.toString.equalsIgnoreCase(relation.rightEnding.target.toString))» + «FOR attribute : entity.attributes.filter[isIsKey] SEPARATOR " | "» + «html_AttributeStyleForInheritedPK(attribute)»_fk + «ENDFOR» «ENDIF» - - «IF relation.rightEnding.target.toString.equalsIgnoreCase(entity.name) && (relation.rightEnding.target.toString !== relation.leftEnding.target.toString)» - ««« «FOR attribute : entity.attributes» - ««« «IF attribute.isIsKey» - «relation.rightEnding.target.toString»_fk - ««« «ENDIF» - ««« «ENDFOR» + «ENDFOR» + + «FOR entity : m.entities» + «IF relation.rightEnding.target.toString.equalsIgnoreCase(entity.name) && !(relation.leftEnding.target.toString.equalsIgnoreCase(relation.rightEnding.target.toString))» + «FOR attribute : entity.attributes.filter[isIsKey] BEFORE " | " SEPARATOR " | "» + «html_AttributeStyleForInheritedPK(attribute)»_fk + «ENDFOR» «ENDIF» - + «ENDFOR» + + «FOR entity : m.entities» «/** * * Display of self-relationships N:N * */» «IF relation.leftEnding.target.toString.equalsIgnoreCase(entity.name) && (relation.leftEnding.target.toString.equalsIgnoreCase(relation.rightEnding.target.toString))» - «FOR attribute : entity.attributes» - «IF attribute.isIsKey» - «attribute.name»__fk1, - «ENDIF» + «FOR attribute : entity.attributes.filter[isKey] SEPARATOR " | "» + «html_AttributeStyleForInheritedPK(attribute)»_fk_1 «ENDFOR» «ENDIF» «IF relation.rightEnding.target.toString.equalsIgnoreCase(entity.name) && (relation.rightEnding.target.toString.equalsIgnoreCase(relation.leftEnding.target.toString))» - «FOR attribute : entity.attributes» - «IF attribute.isIsKey» - «attribute.name»__fk2 - «ENDIF» + «FOR attribute : entity.attributes.filter[isIsKey] BEFORE " | " SEPARATOR " | "» + «html_AttributeStyleForInheritedPK(attribute)»_fk_2 «ENDFOR» «ENDIF» «ENDFOR» «/** * - * Display of attributes of N: N relationships + * Display of attributes of N:N relationships * */» - «FOR attribute : relation.attributes» - «IF !attribute.name.nullOrEmpty && attribute.isIsKey» - , «attribute.name»* - «ENDIF» + «FOR attribute : relation.attributes.filter[i| !i.name.nullOrEmpty && i.isIsKey] BEFORE " | " SEPARATOR " | "» + «html_AttributeStyleForPK(attribute)» «ENDFOR» - - «FOR attribute : relation.attributes» - «IF !attribute.name.nullOrEmpty && !attribute.isIsKey» - , «attribute.name» - «ENDIF» + «FOR attribute : relation.attributes.filter[i| !i.name.nullOrEmpty && !i.isIsKey] BEFORE " | " SEPARATOR " | "» + «attribute.name.toLowerCase» «ENDFOR» - - )
    - + ]
    «ENDIF» «ENDIF» - «ENDFOR» -
    + «ENDFOR» + ''' + + def private html_Ternary_EntityCreation (ERModel m) ''' + «/* Var para manipular o relacionamento N para N */» + «var Relation tempRel» + + «/* Busca uma relação que tem outra relação em um dos lados */» + «FOR relation : m.relations.filter[i| i.leftEnding.target instanceof Relation || i.rightEnding.target instanceof Relation] SEPARATOR "]
    " AFTER "]
    "» + + «IF relation.name.nullOrEmpty» + +
    «html_EntityNameTag(relation.leftEnding.target.toString.toUpperCase+"_"+relation.rightEnding.target.toString.toUpperCase)» [ + + «ELSEIF !relation.name.nullOrEmpty» + +
    «html_EntityNameTag(relation.name)» [ + + «ENDIF» + + «/* Busca o lado dessa relação que aponta para uma entidade */» + «IF relation.leftEnding.target instanceof Entity» + + «html_AttributeStyleForInheritedPK(relation.leftEnding.target as Entity)» + + «ELSEIF relation.rightEnding.target instanceof Entity» + + «html_AttributeStyleForInheritedPK(relation.rightEnding.target as Entity)» + + «ENDIF» + + | + + «IF relation.leftEnding.target instanceof Relation» + + «{tempRel = relation.leftEnding.target as Relation; null}» + + «html_AttributeStyleForInheritedPK(tempRel.leftEnding.target as Entity)» + | + «html_AttributeStyleForInheritedPK(tempRel.rightEnding.target as Entity)» + + «ELSEIF relation.rightEnding.target instanceof Relation» + + «{tempRel = relation.rightEnding.target as Relation; null}» + + «html_AttributeStyleForInheritedPK(tempRel.leftEnding.target as Entity)» + | + «html_AttributeStyleForInheritedPK(tempRel.rightEnding.target as Entity)» + «ENDIF» + + + + «/* Se a relação tiver PKs ou atributos, escreve. */» + «FOR attribute : relation.attributes.filter[isIsKey] BEFORE " | " SEPARATOR " | "» + + «html_AttributeStyleForPK(attribute)» + «ENDFOR» + + «FOR attribute : relation.attributes.filter[!isIsKey] BEFORE " | " SEPARATOR " | "» + + «attribute.name.toLowerCase» + + «ENDFOR» + + «ENDFOR» ''' def private html_ListPKtoFK (Entity e) ''' - «FOR att : e.attributes» - «IF att.isIsKey» - , «att.name»_fk - «ENDIF» + «FOR att : e.attributes.filter[isIsKey] BEFORE " | " SEPARATOR " | "» + «att.name.toLowerCase»_fk + «ENDFOR» + ''' + + def private html_ListPKtoFK_Alt (Entity e) ''' + «FOR att : e.attributes.filter[isIsKey] SEPARATOR " , "» + «att.name.toLowerCase»_fk + «ENDFOR» + ''' + + def private html_ListPKtoFK_SelfRelationship (Entity e, String r) ''' + «FOR att : e.attributes.filter[isIsKey] BEFORE " | " SEPARATOR " | "» + «att.name.toLowerCase+"_"+r»_fk + «ENDFOR» + ''' + + def private html_ListPKtoFK_SelfRelationship_Alt (Entity e, String r) ''' + «FOR att : e.attributes.filter[isIsKey] SEPARATOR " , "» + «att.name.toLowerCase+"_"+r»_fk «ENDFOR» ''' @@ -332,46 +452,260 @@ class HtmlFileGenerator extends AbstractGenerator {

    -   Mapped References +   References

    - «FOR relation : m.relations SEPARATOR "

    "» - «IF relation.leftEnding.target instanceof Entity» - «{lEnt = relation.leftEnding.target as Entity;null}» - «ELSE» - «{lRel = relation.leftEnding.target as Relation;null}» - «ENDIF» - «IF relation.rightEnding.target instanceof Entity» - «{rEnt = relation.rightEnding.target as Entity;null}» - «ELSE» - «{rRel = relation.rightEnding.target as Relation;null}» - «ENDIF» + + «html_GeneralizationSpecialization_Relationship(m)» + «html_1To1_Relationships(m)» + «html_1ToN_Relationships(m)» + «html_NToN_Relationships(m)» + «html_Ternary_Relationships(m)» +

    + ''' - «/* FIXME: precisa implementar a funçao de concatenação para relaçao sem nome */» + def private html_GeneralizationSpecialization_Relationship(ERModel m) ''' + «FOR subclass : m.entities.filter[i|i.is !== null]» +
    + # Generalization/Specialization

    + Attribute ( + «FOR superclassAtt : subclass.is.attributes.filter[isIsKey] SEPARATOR " , "» + «superclassAtt.name.toLowerCase» + «ENDFOR» + ) in «html_EntityNameTag(subclass.toString)» references «html_EntityNameTag(subclass.is.toString)» +
    + «ENDFOR» + ''' + + def private html_BinaryRelationshipNameStyle(String nameRel, String leftNameRel, String rightNameRel, String leftCardinaltyRel, String rightCardinaltyRel) ''' +
    + ## Binary Relationship

    + «IF nameRel.blank» _UnnamedEntity_ «ELSEIF !nameRel.blank»«nameRel.toUpperCase»«ENDIF» + «leftNameRel.toUpperCase+" "+leftCardinaltyRel.toUpperCase» relates «rightCardinaltyRel.toUpperCase+" "+ rightNameRel.toUpperCase» +
    +
    + ''' + + def private html_1To1_Relationships (ERModel m) ''' + «FOR relation : m.relations.filter[i|i.leftEnding.target instanceof Entity && i.rightEnding.target instanceof Entity]» + «IF ((relation.leftEnding.cardinality.equalsIgnoreCase('(0:1)') || relation.leftEnding.cardinality.equalsIgnoreCase('(1:1)')) + && + (relation.rightEnding.cardinality.equalsIgnoreCase('(0:1)') || relation.rightEnding.cardinality.equalsIgnoreCase('(1:1)')))» + + «html_BinaryRelationshipNameStyle(relation.name, relation.leftEnding.target.toString, relation.rightEnding.target.toString, relation.leftEnding.cardinality, relation.rightEnding.cardinality)» - Relationship: «IF relation.name.nullOrEmpty» _UnnamedEntity_ «ELSEIF !relation.name.nullOrEmpty»«relation.name»«ENDIF» - «IF this.lEnt !== null» - «this.lEnt.name» - «ELSEIF this.lRel !== null» - «this.lRel.name» - «ENDIF» - «relation.leftEnding.cardinality.toString» relates «relation.rightEnding.cardinality» - «IF this.rEnt !== null» - «this.rEnt.name» - «ELSEIF this.rRel !== null» - «this.rRel.name» - «ENDIF» -
    - - «{this.lEnt = null;null}»«{this.rEnt = null;null}» - «{this.lRel = null;null}»«{this.rRel = null;null}» + Attribute ( + «FOR aux : m.entities» + «IF relation.leftEnding.target.toString.equalsIgnoreCase(aux.name)» + «IF aux.is === null» + «IF !relation.leftEnding.target.toString.equalsIgnoreCase(relation.rightEnding.target.toString)» + «FOR aux2 : aux.attributes.filter[isIsKey]» + «aux2.name.toLowerCase»_fk + «ENDFOR» + «ELSE» + «html_ListPKtoFK_SelfRelationship(aux, relation.name.toLowerCase)» + «ENDIF» + «ELSEIF aux.is !== null» + «FOR aux3 : aux.is.attributes.filter[isIsKey] SEPARATOR " , "» + «IF !relation.leftEnding.target.toString.equalsIgnoreCase(relation.rightEnding.target.toString)» + «aux3.name.toLowerCase»_fk + «ELSE» + «aux3.name.toLowerCase+"_"+relation.name.toLowerCase»_fk + «ENDIF» + «ENDFOR» + «ENDIF» + «ENDIF» + «ENDFOR» + ) in «html_EntityNameTag(relation.rightEnding.target.toString)» references «html_EntityNameTag(relation.leftEnding.target.toString)» +
    + «ENDIF» «ENDFOR» + ''' + + def private html_1ToN_Relationships (ERModel m) ''' + «var Entity temp» + «FOR relation : m.relations.filter[i|i.leftEnding.target instanceof Entity && i.rightEnding.target instanceof Entity]» + «IF (((relation.leftEnding.cardinality.equalsIgnoreCase('(0:1)') || relation.leftEnding.cardinality.equalsIgnoreCase('(1:1)')) + && + (relation.rightEnding.cardinality.equalsIgnoreCase('(0:N)') || relation.rightEnding.cardinality.equalsIgnoreCase('(1:N)'))))» + + «html_BinaryRelationshipNameStyle(relation.name, relation.leftEnding.target.toString, relation.rightEnding.target.toString, relation.leftEnding.cardinality, relation.rightEnding.cardinality)» + + Attribute ( + «FOR aux : m.entities» + «IF relation.leftEnding.target.toString.equalsIgnoreCase(aux.name)» + «IF aux.is === null» + «IF !relation.leftEnding.target.toString.equalsIgnoreCase(relation.rightEnding.target.toString)» + «html_ListPKtoFK_Alt(aux)» + «ELSEIF relation.leftEnding.target.toString.equalsIgnoreCase(relation.rightEnding.target.toString)» + «html_ListPKtoFK_SelfRelationship_Alt(aux, relation.name.toLowerCase)» + «ENDIF» + «ELSEIF aux.is !== null» + «IF relation.leftEnding.target.toString.equalsIgnoreCase(relation.rightEnding.target.toString)» + «html_ListPKtoFK_SelfRelationship_Alt(aux, relation.name.toLowerCase)» + «ELSEIF !relation.leftEnding.target.toString.equalsIgnoreCase(relation.rightEnding.target.toString)» + «{temp = relation.leftEnding.target as Entity; null;}» + «html_ListPKtoFK_Alt(temp.is)» + «ENDIF» + «ENDIF» + «ENDIF» + «ENDFOR» + ) in «html_EntityNameTag(relation.rightEnding.target.toString)» references «html_EntityNameTag(relation.leftEnding.target.toString)» +
    + «ELSEIF (((relation.leftEnding.cardinality.equalsIgnoreCase('(0:N)') || relation.leftEnding.cardinality.equalsIgnoreCase('(1:N)')) + && + (relation.rightEnding.cardinality.equalsIgnoreCase('(0:1)') || relation.rightEnding.cardinality.equalsIgnoreCase('(1:1)'))))» + + «html_BinaryRelationshipNameStyle(relation.name, relation.leftEnding.target.toString, relation.rightEnding.target.toString, relation.leftEnding.cardinality, relation.rightEnding.cardinality)» + + Attribute ( + «FOR aux : m.entities» + «IF relation.rightEnding.target.toString.equalsIgnoreCase(aux.name)» + «IF aux.is === null» + «IF !relation.leftEnding.target.toString.equalsIgnoreCase(relation.rightEnding.target.toString)» + «html_ListPKtoFK_Alt(aux)» + «ELSEIF relation.leftEnding.target.toString.equalsIgnoreCase(relation.rightEnding.target.toString)» + «html_ListPKtoFK_SelfRelationship_Alt(aux, relation.name.toLowerCase)» + «ENDIF» + «ELSEIF aux.is !== null» + «IF relation.rightEnding.target.toString.equalsIgnoreCase(relation.leftEnding.target.toString)» + + «/*FIXME verificar a questão de autorelacionamento de entidades que tem mais de uma pk */» + + «html_ListPKtoFK_SelfRelationship_Alt(aux, relation.name.toLowerCase)» + «ELSEIF !relation.rightEnding.target.toString.equalsIgnoreCase(relation.leftEnding.target.toString)» + «{temp = relation.rightEnding.target as Entity; null;}» + «html_ListPKtoFK_Alt(temp.is)» + «ENDIF» + «ENDIF» + «ENDIF» + «ENDFOR» + ) in «html_EntityNameTag(relation.leftEnding.target.toString)» references «html_EntityNameTag(relation.rightEnding.target.toString)» +
    + «ENDIF» + «ENDFOR» + ''' + + def private html_NToN_Relationships(ERModel m) ''' - + «FOR relation : m.relations.filter[i|i.leftEnding.target instanceof Entity && i.rightEnding.target instanceof Entity]» + + «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)')))» + + «html_BinaryRelationshipNameStyle(relation.name, relation.leftEnding.target.toString, relation.rightEnding.target.toString, relation.leftEnding.cardinality, relation.rightEnding.cardinality)» + + Attribute ( + + «html_ListPKtoFK_Alt(relation.leftEnding.target as Entity)» + + ) in «html_EntityNameTag(relation.name)» references «html_EntityNameTag(relation.leftEnding.target.toString)» +

    + + Attribute ( + + «html_ListPKtoFK_Alt(relation.rightEnding.target as Entity)» + + ) in «html_EntityNameTag(relation.name)» references «html_EntityNameTag(relation.rightEnding.target.toString)» +
    + + «ENDIF» + + «ENDFOR» + ''' + + def private html_Ternary_Relationships(ERModel m) ''' + «FOR relation : m.relations.filter[i|i.leftEnding.target instanceof Relation || i.rightEnding.target instanceof Relation] SEPARATOR "### Ternary Relationship

    + + «IF relation.name.nullOrEmpty» _Unnamed_ «ELSEIF !relation.name.nullOrEmpty»«relation.name.toUpperCase»«ENDIF» + «relation.leftEnding.target.toString.toUpperCase+" "+relation.leftEnding.cardinality.toString.toUpperCase» relates «relation.rightEnding.cardinality.toUpperCase+" "+ relation.rightEnding.target.toString.toUpperCase» +
    + «html_Ternary_Relationships_Attributes(m, relation)» + «ENDFOR» ''' + def private html_Ternary_Relationships_Attributes(ERModel m, Relation r)''' + «var Entity objEntity» + «var Relation objRelation» + + Attribute ( + + «IF r.leftEnding.target instanceof Entity» + + «{objEntity = r.leftEnding.target as Entity; null}» + + «FOR att : objEntity.attributes.filter[isIsKey] SEPARATOR " , "» + «att.name.toString.toLowerCase» + «ENDFOR» + + ) in «html_EntityNameTag(r.name)» references «html_EntityNameTag(r.leftEnding.target.toString)» +

    + + «ELSEIF r.rightEnding.target instanceof Entity» + + «{objEntity = r.rightEnding.target as Entity; null}» + + «FOR att : objEntity.attributes.filter[isIsKey] SEPARATOR " , "» + «att.name.toString.toLowerCase» + «ENDFOR» + +
    ) in «html_EntityNameTag(r.name)» references «html_EntityNameTag(r.rightEnding.target.toString)» +

    + + «ENDIF» + + + + + «IF r.leftEnding.target instanceof Relation» + + «{objRelation = r.leftEnding.target as Relation; null}» + + «{objEntity = objRelation.leftEnding.target as Entity; null}» + + Attribute ( + + «FOR att : objEntity.attributes.filter[isIsKey] SEPARATOR " , " AFTER " , "» + «att.name.toString.toLowerCase» + «ENDFOR» + + «{objEntity = objRelation.rightEnding.target as Entity; null}» + + «FOR att : objEntity.attributes.filter[isIsKey] SEPARATOR " , "» + «att.name.toString.toLowerCase» + «ENDFOR» + + ) in «html_EntityNameTag(r.name)» references «html_EntityNameTag(r.leftEnding.target.toString)» +

    + + «ELSEIF r.rightEnding.target instanceof Relation» + + «{objRelation = r.rightEnding.target as Relation; null}» + + «{objEntity = objRelation.leftEnding.target as Entity; null}» + + Attribute ( + + «FOR att : objEntity.attributes.filter[isIsKey] SEPARATOR " , " AFTER " , "» + «att.name.toString.toLowerCase» + «ENDFOR» + + «{objEntity = objRelation.rightEnding.target as Entity; null}» + + «FOR att : objEntity.attributes.filter[isIsKey] SEPARATOR " , "» + «att.name.toString.toLowerCase» + «ENDFOR» + + ) in «html_EntityNameTag(r.name)» references «html_EntityNameTag(r.rightEnding.target.toString)» +

    + + «ENDIF» + + ''' } diff --git a/org.xtext.unipampa.erdsl/src/org/xtext/unipampa/erdsl/generator/PostgresqlFileGenerator.xtend b/org.xtext.unipampa.erdsl/src/org/xtext/unipampa/erdsl/generator/PostgresqlFileGenerator.xtend index 6e56fd6..3a1986d 100644 --- a/org.xtext.unipampa.erdsl/src/org/xtext/unipampa/erdsl/generator/PostgresqlFileGenerator.xtend +++ b/org.xtext.unipampa.erdsl/src/org/xtext/unipampa/erdsl/generator/PostgresqlFileGenerator.xtend @@ -50,8 +50,7 @@ class PostgresqlFileGenerator extends AbstractGenerator { -- Database: «e.domain.name.toUpperCase» -- DROP DATABASE «e.domain.name.toUpperCase»; CREATE DATABASE «e.domain.name.toUpperCase» - WITH - OWNER = postgres + WITH OWNER = postgres ENCODING = 'UTF8' TABLESPACE = pg_default CONNECTION LIMIT = -1; «var ListExendPKsLenght = 0» 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 baa22901914c001babff275b779d87c80ef1c330..fca9f8c830d88f74443ccd55a7eae7dfc5da3ad5 100644 GIT binary patch delta 64 zcmZqRZQ$h%@MdNaVc_84V0f@lZ6mKH6El$BY{}#dVbrrYGJ-@VA7(WN(|=j*!L&V_ FBLF*Y6aoMM delta 64 zcmZqRZQ$h%@MdNaVc_84VED01bR(}O6El$BY{}#dVbrrYGJ-@VA7(WN(|=j*!L&V_ FBLGl@6v6-i 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 ac27aee2aaf91dbc5e4fd6102e577368d9d03eec..7423d590e26a935a5787c9563092c45c01f15e7e 100644 GIT binary patch delta 64 zcmbQpKarm|z?+#xgn@&DgWa GyCVQJ;S)Ci delta 64 zcmbQpKarm|z?+#xgn@&DgW<<6(T%*K%*;S~vnsPb6POXsTEz%rOuoWq4yO6o?ZI>a GyCVQe_Y?O3 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 96e6d6f8e1b6f836c99b66a76769609dbe1ee414..1a28eb16a52a6804bc2278b0997dfa676942d355 100644 GIT binary patch literal 3591 zcmZwIYit}>8OHH>XJ?!lCf)mby^gcCch}miuW_9EZZqDUtC9+p&?2=|5UEy4>gM8x z)*q0K2vJL)&%v=j;Y4V+R)>8d^FszjS2iGY9q^+WW|%y+iYh z4?emu^w9i)`Nh3Q4lWM4i_W79{w)sj>H`nPsE1;TN)=U8XzpAv8=w9Eu1aj~oc&xp z9sR<7uC-mE`Y!)l8D7xX?ON@2Low=y6WJ{Lqlxw?KbeO1rCI6*QGL}8b2(nR($~?U zX!Wz{rl|gtICM15jp`TMaye2PCtF!+{bDQHx_&9YHTa!^StRB9W1r6tpjac{bKHCZCJV6-d!m0nm-N{i;C8`FVhq?9!Wrd zPH>~fa-mS*P5+f=sg314+PXe3=Khnx%5T{BY}ulyPHLpHlQ(^-wJB=6mWFa^Zq!)o z*s_IGr`FC=8*A-o>$)W723oQ5J@=nmXLwW3Np#zFWs~zEJ$ex5BYJl?|Byva!b1C) z#f_ZyHt3USR?O)#g-p!JBBv(Wr=v#B$X2Xe%wujMx}54PW-up#;Q(eRw=ExjrByyPakr+J${G!}d8IYo1RXRma3 z^Dq8nKhV>|SN^>{C%lcx>t>-VRp|Nv-tm9qSb9C)6gfAGVr2pCruh0-Ow7q5*T`Y+ zZ^@{+hWOqPxuuC{7dNp3tuhKFhoe2+3Qlm7IKi#p1UHEjHi+B-oZuG32?IDmh}?Qx zbh=w>!=Ck&P>MzFo)(-p*#gZs7E7bNv|exN8Rwt3H9zdGx%aDMitf%&l}gM#rD~O* z_OYT+LC7qXc#AzIOLZTUMD9us?Gs6~l}uCQp0c0?F?UMLLFAsduT-}2fuFOVuJ!YY z=j~&a9`-TYsnrzCyS&_i|CFAY@i5{2<3nmg-)XMD9B|v@a#m-pMpYo?=0( znDZ1d2a#u$&|biKo|O_x@h;?bByswWqCLqQPxA{_-4{e#7{kRc*gjuF^=?DH#oB0J zpAz#HGSzCNjF67WHJ!zSlE^z8NBd12O%{18WwfhhZo0Q(30W-ij*D0QcN256$UCKB zKV;Xphef4DdsI%D#)Qq58KW-{Rrv?b~_R#|r}kkqSaOCLh*WJSd6$&t}mM zWzl4jf1-@`g)%qYKVb=3Eb_l*LSHs9CyV^k8rriOnk@2PG|*NJG+E^Te9qcF%8&hh z`}oKx-{OjWba)5*mFbZYMGIoJ;o(RnRxF4Wg$hFEFuxS<6_cd~F-a6`&Y``YMBAKc zih^zn`jwdL7IP2<{q1OPx8sEVlu(LA!Hj{^|7t*cvO9M0>2Hhn)cDSwtoQ7IZ=nXa zA*sGPcITaZi>ICvRG>MS0VM8Q`QXqysfvM6}IjMiG_rU%bkLKcgHvnJGS zVonwXKhV(nG&ETh{MbO-ZlKAc;F|sZ_!K|rU32<4|3{{N@E3Y;ZESp;?{)9!uBz=>EMri$^6<@NOLK{y3T}3T~9q_LaHm!3|5uVo_+A&=E75+aL1$7pP1k~oYYxrSd~O!e-`bTESf9|?K0Zg zGB-W6Eg_3V;Vu*Up@}(J6yBquy{4hbqVPTg?Yw~|i^BcmlaqXhx5j2?`40QDLRlev z0RJtWrH1<@QFt&By%7Jm2{c(0E=M0g^{EUwp0azA`!Y|?j`2R35CyT<9_yGP* z4NVq>&)@?Dnt>*Z!ZTA-Q=|sjNt^%hEzabH^S7)|@n6OutHWw|W`imGb{f5qUhf-C t;j3lzzB0NVzG?|uFohRPc+^~<-)IVdt)bi6df#XYFB#~rvEDbD{s*8eieLZ$ literal 165452 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%0D0PE!Td4H&tAb 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
    3{GT%c;#&XV2%d&J)4uQGF?6CckzlWy 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 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 f48ee0fe179863f91e74c420d0233fe5a8f274f9..a303f6b7a3bbd99f47b56e9d8c1360bca0d2deed 100644 GIT binary patch literal 4068 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 M@49-PUyXks5C{YsECSSK}AIn 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 literal 11346 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 U diff --git a/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/.MysqlFileGenerator.xtendbin b/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/.MysqlFileGenerator.xtendbin index f40ac0f43c1a7b9ad210cc9633fc298952a2d332..203153038acaef648de1117acb1718a514a2e114 100644 GIT binary patch delta 66 zcmX@KpYhOsM&1B#W)=|!4h{~62Mg6U^2+%$1L@6r{;lj_#(^b delta 66 zcmX@KpYhOsM&1B#W)=|!4h{~695K0#ymJ1`Kzg&De=9qfu`SGp1H_oj8gCA!?c?pi IbYr|D05Y%;`v3p{ diff --git a/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/.PlantUmlFileGenerator.xtendbin b/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/.PlantUmlFileGenerator.xtendbin index bffacc4578bacad35fde8afd85066a393056774a..f38e9a46eb6ae00289b6783893c8324363a0c7a1 100644 GIT binary patch delta 64 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 literal 152065 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 z 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 diff --git a/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/.PostgresqlFileGenerator.xtendbin b/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/.PostgresqlFileGenerator.xtendbin index 7893654df21363a133e633987fd073b96931ff78..48ced06df88d74d9aab04924c64dcdbe6e82d4ea 100644 GIT binary patch delta 18868 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 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 a401ade..32b019a 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,19 +3,13 @@ */ package org.xtext.unipampa.erdsl.generator; -import java.util.ArrayList; -import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.xtend2.lib.StringConcatenation; 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; -import org.xtext.unipampa.erdsl.erDsl.Relation; /** * Generates code from your model files on save. @@ -24,34 +18,6 @@ */ @SuppressWarnings("all") public class ErDslGenerator extends AbstractGenerator { - private final ArrayList myListFKs = new ArrayList(); - - private int globalFKcounter_1to1 = 0; - - private int globalFKcounter_1toN = 0; - - private int counter = 0; - - private int AuxCounterA = 0; - - private int AuxCounterB = 0; - - private boolean auxT1 = false; - - private boolean auxT2 = false; - - private StringBuilder stringBuilderAlterTblNtoN = new StringBuilder(); - - private StringBuilder stringBuilderAlterTblTernary = new StringBuilder(); - - private Entity lEnt; - - private Entity rEnt; - - private Relation lRel; - - private Relation rRel; - private final HtmlFileGenerator htmlGenerator = new HtmlFileGenerator(); private final PostgresqlFileGenerator postGreSqlGenerator = new PostgresqlFileGenerator(); @@ -93,2866 +59,4 @@ public void doGenerate(final Resource resource, final IFileSystemAccess2 fsa, fi this.PlantUmlGenerator.doGenerate(resource, fsa, context); } } - - /** - * LOGICAL SCHEMA (HTML) GENERATOR CODE - */ - public CharSequence CreateLogical(final ERModel modeloER) { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("\t"); - CharSequence _htmlHead = this.htmlHead(); - _builder.append(_htmlHead, "\t"); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - CharSequence _htmlModelDomain = this.htmlModelDomain(modeloER); - _builder.append(_htmlModelDomain, "\t"); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - CharSequence _htmlModelEntities = this.htmlModelEntities(modeloER); - _builder.append(_htmlModelEntities, "\t"); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - CharSequence _htmlModelRelationships = this.htmlModelRelationships(modeloER); - _builder.append(_htmlModelRelationships, "\t"); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("
    "); - _builder.newLine(); - _builder.append("\t"); - _builder.append("

    "); - _builder.newLine(); - _builder.append("\t"); - _builder.append(""); - _builder.newLine(); - _builder.append("\t"); - _builder.append("  Resulting Entities"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("

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

    "); - _builder.newLine(); - { - EList _entities = modeloER.getEntities(); - boolean _hasElements = false; - for(final Entity entity : _entities) { - if (!_hasElements) { - _hasElements = true; - } else { - _builder.appendImmediate(" )

    ", ""); - } - _builder.append("\t\t"); - _builder.append(""); - String _upperCase = entity.getName().toUpperCase(); - _builder.append(_upperCase, "\t\t"); - _builder.append(" ("); - _builder.newLineIfNotEmpty(); - _builder.append("\t\t"); - _builder.newLine(); - { - Entity _is = entity.getIs(); - boolean _tripleEquals = (_is == null); - boolean _not = (!_tripleEquals); - if (_not) { - { - EList _entities_1 = modeloER.getEntities(); - for(final Entity aux : _entities_1) { - { - boolean _equalsIgnoreCase = aux.getName().equalsIgnoreCase(entity.getIs().toString()); - if (_equalsIgnoreCase) { - { - EList _attributes = aux.getAttributes(); - for(final Attribute auxAttributes : _attributes) { - { - boolean _isIsKey = auxAttributes.isIsKey(); - if (_isIsKey) { - _builder.append("\t\t"); - _builder.append(""); - String _name = auxAttributes.getName(); - _builder.append(_name, "\t\t"); - _builder.append("*, "); - _builder.newLineIfNotEmpty(); - } - } - } - } - } - } - } - } - } - } - _builder.append("\t\t\t"); - _builder.newLine(); - { - EList _attributes_1 = entity.getAttributes(); - boolean _hasElements_1 = false; - for(final Attribute attribute : _attributes_1) { - if (!_hasElements_1) { - _hasElements_1 = true; - } else { - _builder.appendImmediate(", ", "\t\t"); - } - { - boolean _isIsKey_1 = attribute.isIsKey(); - if (_isIsKey_1) { - _builder.append("\t\t"); - _builder.append(""); - String _name_1 = attribute.getName(); - _builder.append(_name_1, "\t\t"); - _builder.append("*"); - _builder.newLineIfNotEmpty(); - } else { - boolean _isIsKey_2 = attribute.isIsKey(); - boolean _not_1 = (!_isIsKey_2); - if (_not_1) { - _builder.append("\t\t"); - String _name_2 = attribute.getName(); - _builder.append(_name_2, "\t\t"); - _builder.newLineIfNotEmpty(); - } - } - } - } - } - _builder.append("\t\t"); - _builder.newLine(); - { - EList _relations = modeloER.getRelations(); - for(final Relation relation : _relations) { - _builder.append("\t\t"); - _builder.newLine(); - { - if (((relation.getLeftEnding().getCardinality().equalsIgnoreCase("(0:1)") || relation.getLeftEnding().getCardinality().equalsIgnoreCase("(1:1)")) && (relation.getRightEnding().getCardinality().equalsIgnoreCase("(0:1)") || relation.getRightEnding().getCardinality().equalsIgnoreCase("(1:1)")))) { - _builder.append("\t\t"); - _builder.newLine(); - { - boolean _equalsIgnoreCase_1 = relation.getRightEnding().getTarget().toString().equalsIgnoreCase(entity.getName()); - if (_equalsIgnoreCase_1) { - { - EList _entities_2 = modeloER.getEntities(); - for(final Entity aux_1 : _entities_2) { - { - boolean _equalsIgnoreCase_2 = relation.getLeftEnding().getTarget().toString().equalsIgnoreCase(aux_1.getName()); - if (_equalsIgnoreCase_2) { - { - Entity _is_1 = aux_1.getIs(); - boolean _tripleEquals_1 = (_is_1 == null); - if (_tripleEquals_1) { - { - EList _attributes_2 = aux_1.getAttributes(); - for(final Attribute aux2 : _attributes_2) { - { - boolean _isIsKey_3 = aux2.isIsKey(); - if (_isIsKey_3) { - _builder.append("\t\t"); - _builder.append(", "); - String _string = relation.getLeftEnding().getTarget().toString(); - _builder.append(_string, "\t\t"); - _builder.append("_fk"); - _builder.newLineIfNotEmpty(); - } - } - } - } - } else { - Entity _is_2 = aux_1.getIs(); - boolean _tripleEquals_2 = (_is_2 == null); - boolean _not_2 = (!_tripleEquals_2); - if (_not_2) { - _builder.append("\t\t"); - _builder.append(", "); - String _string_1 = aux_1.getIs().toString(); - _builder.append(_string_1, "\t\t"); - _builder.append("_fk"); - _builder.newLineIfNotEmpty(); - } - } - } - } - } - } - } - } - } - } - } - _builder.append("\t\t"); - _builder.newLine(); - } - } - _builder.newLine(); - { - EList _relations_1 = modeloER.getRelations(); - for(final Relation relation_1 : _relations_1) { - { - if ((((relation_1.getLeftEnding().getCardinality().equalsIgnoreCase("(0:1)") || relation_1.getLeftEnding().getCardinality().equalsIgnoreCase("(1:1)")) && (relation_1.getRightEnding().getCardinality().equalsIgnoreCase("(0:N)") || relation_1.getRightEnding().getCardinality().equalsIgnoreCase("(1:N)"))) || ((relation_1.getLeftEnding().getCardinality().equalsIgnoreCase("(0:N)") || relation_1.getLeftEnding().getCardinality().equalsIgnoreCase("(1:N)")) && (relation_1.getRightEnding().getCardinality().equalsIgnoreCase("(0:1)") || relation_1.getRightEnding().getCardinality().equalsIgnoreCase("(1:1)"))))) { - _builder.append("\t\t"); - _builder.newLine(); - { - boolean _equalsIgnoreCase_3 = relation_1.getRightEnding().getTarget().toString().equalsIgnoreCase(entity.getName()); - if (_equalsIgnoreCase_3) { - { - EList _entities_3 = modeloER.getEntities(); - for(final Entity aux_2 : _entities_3) { - { - boolean _equalsIgnoreCase_4 = relation_1.getLeftEnding().getTarget().toString().equalsIgnoreCase(aux_2.getName()); - if (_equalsIgnoreCase_4) { - { - Entity _is_3 = aux_2.getIs(); - boolean _tripleEquals_3 = (_is_3 == null); - if (_tripleEquals_3) { - _builder.append("\t\t"); - _builder.append(", "); - String _name_3 = aux_2.getName(); - _builder.append(_name_3, "\t\t"); - _builder.append("_fk"); - _builder.newLineIfNotEmpty(); - } else { - Entity _is_4 = aux_2.getIs(); - boolean _tripleEquals_4 = (_is_4 == null); - boolean _not_3 = (!_tripleEquals_4); - if (_not_3) { - { - boolean _equalsIgnoreCase_5 = relation_1.getLeftEnding().getTarget().toString().equalsIgnoreCase(relation_1.getRightEnding().getTarget().toString()); - if (_equalsIgnoreCase_5) { - _builder.append("\t\t"); - _builder.append(", "); - String _string_2 = relation_1.getName().toString(); - _builder.append(_string_2, "\t\t"); - _builder.append("_fk"); - _builder.newLineIfNotEmpty(); - } else { - boolean _equalsIgnoreCase_6 = relation_1.getLeftEnding().getTarget().toString().equalsIgnoreCase(relation_1.getRightEnding().getTarget().toString()); - boolean _not_4 = (!_equalsIgnoreCase_6); - if (_not_4) { - _builder.append("\t\t"); - _builder.append(", "); - String _string_3 = relation_1.getLeftEnding().getTarget().toString(); - _builder.append(_string_3, "\t\t"); - _builder.append("_fk"); - _builder.newLineIfNotEmpty(); - } - } - } - } - } - } - } - } - } - } - } - } - } - } - _builder.append("\t\t"); - _builder.newLine(); - } - } - _builder.append("\t\t"); - _builder.newLine(); - } - if (_hasElements) { - _builder.append(")
    ", "\t"); - } - } - _builder.append("\t"); - _builder.newLine(); - { - EList _relations_2 = modeloER.getRelations(); - for(final Relation relation_2 : _relations_2) { - { - if (((relation_2.getLeftEnding().getCardinality().equalsIgnoreCase("(0:N)") || relation_2.getLeftEnding().getCardinality().equalsIgnoreCase("(1:N)")) && (relation_2.getRightEnding().getCardinality().equalsIgnoreCase("(0:N)") || relation_2.getRightEnding().getCardinality().equalsIgnoreCase("(1:N)")))) { - { - boolean _isNullOrEmpty = StringExtensions.isNullOrEmpty(relation_2.getName()); - if (_isNullOrEmpty) { - _builder.append("\t\t\t"); - _builder.append("
    "); - String _upperCase_1 = relation_2.getLeftEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_1, "\t\t\t"); - String _upperCase_2 = relation_2.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_2, "\t\t\t"); - _builder.append(" ("); - _builder.newLineIfNotEmpty(); - _builder.append("\t\t\t"); - _builder.append("id"); - String _upperCase_3 = relation_2.getLeftEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_3, "\t\t\t"); - String _string_4 = relation_2.getRightEnding().getTarget().toString(); - _builder.append(_string_4, "\t\t\t"); - _builder.append("*,"); - _builder.newLineIfNotEmpty(); - } else { - boolean _isNullOrEmpty_1 = StringExtensions.isNullOrEmpty(relation_2.getName()); - boolean _not_5 = (!_isNullOrEmpty_1); - if (_not_5) { - _builder.append("\t\t\t"); - _builder.append("
    "); - String _upperCase_4 = relation_2.getName().toUpperCase(); - _builder.append(_upperCase_4, "\t\t\t"); - _builder.append(" ("); - _builder.newLineIfNotEmpty(); - _builder.append("\t\t\t"); - _builder.append("id"); - String _name_4 = relation_2.getName(); - _builder.append(_name_4, "\t\t\t"); - _builder.append("*,"); - _builder.newLineIfNotEmpty(); - } - } - } - _builder.append("\t\t\t"); - _builder.newLine(); - { - EList _entities_4 = modeloER.getEntities(); - for(final Entity entity_1 : _entities_4) { - _builder.append("\t\t\t"); - _builder.newLine(); - { - if ((relation_2.getLeftEnding().getTarget().toString().equalsIgnoreCase(entity_1.getName()) && (relation_2.getLeftEnding().getTarget().toString() != relation_2.getRightEnding().getTarget().toString()))) { - _builder.append("\t\t\t"); - _builder.append(""); - String _string_5 = relation_2.getLeftEnding().getTarget().toString(); - _builder.append(_string_5, "\t\t\t"); - _builder.append("_fk,"); - _builder.newLineIfNotEmpty(); - } - } - _builder.append("\t\t\t"); - _builder.newLine(); - { - if ((relation_2.getRightEnding().getTarget().toString().equalsIgnoreCase(entity_1.getName()) && (relation_2.getRightEnding().getTarget().toString() != relation_2.getLeftEnding().getTarget().toString()))) { - _builder.append("\t\t\t"); - _builder.append(""); - String _string_6 = relation_2.getRightEnding().getTarget().toString(); - _builder.append(_string_6, "\t\t\t"); - _builder.append("_fk"); - _builder.newLineIfNotEmpty(); - } - } - _builder.append("\t\t\t"); - _builder.newLine(); - _builder.append("\t\t\t"); - _builder.append("\t\t\t\t"); - _builder.newLine(); - { - if ((relation_2.getLeftEnding().getTarget().toString().equalsIgnoreCase(entity_1.getName()) && relation_2.getLeftEnding().getTarget().toString().equalsIgnoreCase(relation_2.getRightEnding().getTarget().toString()))) { - _builder.append("\t\t\t"); - _builder.newLine(); - { - EList _attributes_3 = entity_1.getAttributes(); - for(final Attribute attribute_1 : _attributes_3) { - { - boolean _isIsKey_4 = attribute_1.isIsKey(); - if (_isIsKey_4) { - _builder.append("\t\t\t"); - _builder.append(""); - String _name_5 = attribute_1.getName(); - _builder.append(_name_5, "\t\t\t"); - _builder.append("__fk1,"); - _builder.newLineIfNotEmpty(); - } - } - } - } - } - } - _builder.append("\t\t\t"); - _builder.newLine(); - { - if ((relation_2.getRightEnding().getTarget().toString().equalsIgnoreCase(entity_1.getName()) && relation_2.getRightEnding().getTarget().toString().equalsIgnoreCase(relation_2.getLeftEnding().getTarget().toString()))) { - { - EList _attributes_4 = entity_1.getAttributes(); - for(final Attribute attribute_2 : _attributes_4) { - { - boolean _isIsKey_5 = attribute_2.isIsKey(); - if (_isIsKey_5) { - _builder.append("\t\t\t"); - _builder.append(""); - String _name_6 = attribute_2.getName(); - _builder.append(_name_6, "\t\t\t"); - _builder.append("__fk2"); - _builder.newLineIfNotEmpty(); - } - } - } - } - } - } - _builder.append("\t\t\t"); - _builder.append("\t\t"); - _builder.newLine(); - } - } - _builder.append("\t\t\t"); - _builder.newLine(); - _builder.append("\t\t\t\t\t\t"); - _builder.newLine(); - { - EList _attributes_5 = relation_2.getAttributes(); - for(final Attribute attribute_3 : _attributes_5) { - { - if (((!StringExtensions.isNullOrEmpty(attribute_3.getName())) && attribute_3.isIsKey())) { - _builder.append("\t\t\t"); - _builder.append(", "); - String _name_7 = attribute_3.getName(); - _builder.append(_name_7, "\t\t\t"); - _builder.append("*"); - _builder.newLineIfNotEmpty(); - } - } - } - } - _builder.newLine(); - { - EList _attributes_6 = relation_2.getAttributes(); - for(final Attribute attribute_4 : _attributes_6) { - { - if (((!StringExtensions.isNullOrEmpty(attribute_4.getName())) && (!attribute_4.isIsKey()))) { - _builder.append("\t\t\t"); - _builder.append(", "); - String _name_8 = attribute_4.getName(); - _builder.append(_name_8, "\t\t\t"); - _builder.newLineIfNotEmpty(); - } - } - } - } - _builder.append("\t\t\t\t\t"); - _builder.newLine(); - _builder.append("\t\t\t"); - _builder.append(")
    "); - _builder.newLine(); - _builder.append("\t\t\t"); - _builder.newLine(); - } - } - } - } - _builder.append("\t"); - _builder.append("
    "); - _builder.newLine(); - _builder.append("\t"); - _builder.newLine(); - { - EList _relations_3 = modeloER.getRelations(); - for(final Relation relation_3 : _relations_3) { - { - if (((relation_3.getLeftEnding().getCardinality().equalsIgnoreCase("(0:N)") || relation_3.getLeftEnding().getCardinality().equalsIgnoreCase("(1:N)")) && (relation_3.getRightEnding().getCardinality().equalsIgnoreCase("(0:N)") || relation_3.getRightEnding().getCardinality().equalsIgnoreCase("(1:N)")))) { - { - EList _relations_4 = modeloER.getRelations(); - for(final Relation aux_3 : _relations_4) { - _builder.append("\t"); - _builder.newLine(); - { - if (((!StringExtensions.isNullOrEmpty(relation_3.getName())) && relation_3.getName().equals(aux_3.getLeftEnding().getTarget().toString()))) { - _builder.append("\t"); - _builder.append(""); - String _upperCase_5 = aux_3.getName().toUpperCase(); - _builder.append(_upperCase_5, "\t"); - _builder.append(" ("); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - _builder.append("id"); - String _name_9 = aux_3.getName(); - _builder.append(_name_9, "\t"); - _builder.append("*, "); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - _builder.append(""); - String _string_7 = aux_3.getLeftEnding().getTarget().toString(); - _builder.append(_string_7, "\t"); - _builder.append("_FK, "); - _builder.newLineIfNotEmpty(); - { - EList _entities_5 = modeloER.getEntities(); - for(final Entity aux2_1 : _entities_5) { - { - boolean _equalsIgnoreCase_7 = aux_3.getRightEnding().getTarget().toString().equalsIgnoreCase(aux2_1.getName()); - if (_equalsIgnoreCase_7) { - _builder.append("\t\t\t"); - _builder.append(""); - _builder.append(aux2_1, "\t\t\t"); - _builder.append("_FK"); - _builder.newLineIfNotEmpty(); - _builder.append("\t\t\t\t"); - _builder.newLine(); - { - EList _attributes_7 = aux_3.getAttributes(); - for(final Attribute attribute_5 : _attributes_7) { - { - if (((!StringExtensions.isNullOrEmpty(attribute_5.getName())) && attribute_5.isIsKey())) { - _builder.append("\t\t\t"); - _builder.append(", "); - String _name_10 = attribute_5.getName(); - _builder.append(_name_10, "\t\t\t"); - _builder.append("*"); - _builder.newLineIfNotEmpty(); - } - } - } - } - _builder.newLine(); - { - EList _attributes_8 = aux_3.getAttributes(); - for(final Attribute attribute_6 : _attributes_8) { - { - if (((!StringExtensions.isNullOrEmpty(attribute_6.getName())) && (!attribute_6.isIsKey()))) { - _builder.append("\t\t\t"); - _builder.append(", "); - String _name_11 = attribute_6.getName(); - _builder.append(_name_11, "\t\t\t"); - _builder.newLineIfNotEmpty(); - } - } - } - } - _builder.append("\t\t\t"); - _builder.append(")
    "); - _builder.newLine(); - } - } - } - } - } else { - if (((!StringExtensions.isNullOrEmpty(relation_3.getName())) && relation_3.getName().equals(aux_3.getRightEnding().getTarget().toString()))) { - _builder.append("\t"); - String _upperCase_6 = aux_3.getName().toUpperCase(); - _builder.append(_upperCase_6, "\t"); - _builder.append(" ("); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - _builder.append(""); - String _string_8 = aux_3.getRightEnding().getTarget().toString(); - _builder.append(_string_8, "\t"); - _builder.append("_FK,"); - _builder.newLineIfNotEmpty(); - { - EList _entities_6 = modeloER.getEntities(); - for(final Entity aux2_2 : _entities_6) { - { - boolean _equalsIgnoreCase_8 = aux_3.getLeftEnding().getTarget().toString().equalsIgnoreCase(aux2_2.getName()); - if (_equalsIgnoreCase_8) { - _builder.append("\t\t\t"); - _builder.append(""); - _builder.append(aux2_2, "\t\t\t"); - _builder.append("_FK"); - _builder.newLineIfNotEmpty(); - _builder.append("\t\t\t\t"); - _builder.newLine(); - { - EList _attributes_9 = relation_3.getAttributes(); - for(final Attribute attribute_7 : _attributes_9) { - { - if (((!StringExtensions.isNullOrEmpty(attribute_7.getName())) && attribute_7.isIsKey())) { - _builder.append("\t\t\t"); - _builder.append(", "); - String _name_12 = attribute_7.getName(); - _builder.append(_name_12, "\t\t\t"); - _builder.append("*"); - _builder.newLineIfNotEmpty(); - } - } - } - } - _builder.newLine(); - { - EList _attributes_10 = relation_3.getAttributes(); - for(final Attribute attribute_8 : _attributes_10) { - { - if (((!StringExtensions.isNullOrEmpty(attribute_8.getName())) && (!attribute_8.isIsKey()))) { - _builder.append("\t\t\t"); - _builder.append(", "); - String _name_13 = attribute_8.getName(); - _builder.append(_name_13, "\t\t\t"); - _builder.newLineIfNotEmpty(); - } - } - } - } - _builder.append("\t\t\t"); - _builder.append(")
    "); - _builder.newLine(); - } - } - } - } - } - } - } - _builder.append("\t"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("\t\t\t"); - _builder.newLine(); - } - } - } - } - } - } - _builder.append("\t"); - _builder.append("

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

    "); - _builder.newLine(); - _builder.append("\t"); - _builder.append(""); - _builder.newLine(); - _builder.append("\t"); - _builder.append("  Mapped References"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("

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

    "); - _builder.newLine(); - { - EList _relations_5 = modeloER.getRelations(); - boolean _hasElements_2 = false; - for(final Relation relation_4 : _relations_5) { - if (!_hasElements_2) { - _hasElements_2 = true; - } else { - _builder.appendImmediate("
    ", ""); - } - _builder.append("\t\t\t"); - _builder.newLine(); - _builder.append("\t\t "); - _builder.newLine(); - { - if ((relation_4.getLeftEnding().getCardinality().equalsIgnoreCase("(0:1)") && relation_4.getRightEnding().getCardinality().equalsIgnoreCase("(0:1)"))) { - _builder.append("Relationship: "); - { - boolean _isNullOrEmpty_2 = StringExtensions.isNullOrEmpty(relation_4.getName()); - if (_isNullOrEmpty_2) { - _builder.append("_UnnamedEntity_"); - } else { - boolean _isNullOrEmpty_3 = StringExtensions.isNullOrEmpty(relation_4.getName()); - boolean _not_6 = (!_isNullOrEmpty_3); - if (_not_6) { - String _name_14 = relation_4.getName(); - _builder.append(_name_14); - } - } - } - _builder.append(" "); - String _string_9 = relation_4.getLeftEnding().getCardinality().toString(); - _builder.append(_string_9); - _builder.append(" "); - EObject _target = relation_4.getLeftEnding().getTarget(); - _builder.append(_target); - _builder.append(" relates "); - String _string_10 = relation_4.getRightEnding().getTarget().toString(); - _builder.append(_string_10); - _builder.append(" "); - String _cardinality = relation_4.getRightEnding().getCardinality(); - _builder.append(_cardinality); - _builder.append("
    "); - _builder.newLineIfNotEmpty(); - _builder.newLine(); - _builder.append("Attribute \""); - String _string_11 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_11); - _builder.append("_fk\" in "); - String _upperCase_7 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_7); - _builder.append(" references "); - String _upperCase_8 = relation_4.getLeftEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_8); - _builder.append(""); - _builder.newLineIfNotEmpty(); - _builder.append("
    "); - _builder.newLine(); - } - } - _builder.append("\t"); - _builder.newLine(); - { - if ((relation_4.getLeftEnding().getCardinality().equalsIgnoreCase("(0:1)") && relation_4.getRightEnding().getCardinality().equalsIgnoreCase("(1:1)"))) { - _builder.append("\t"); - _builder.append("Relationship: "); - { - boolean _isNullOrEmpty_4 = StringExtensions.isNullOrEmpty(relation_4.getName()); - if (_isNullOrEmpty_4) { - _builder.append("_UnnamedEntity_"); - } else { - boolean _isNullOrEmpty_5 = StringExtensions.isNullOrEmpty(relation_4.getName()); - boolean _not_7 = (!_isNullOrEmpty_5); - if (_not_7) { - String _name_15 = relation_4.getName(); - _builder.append(_name_15, "\t"); - } - } - } - _builder.append(" "); - String _string_12 = relation_4.getLeftEnding().getCardinality().toString(); - _builder.append(_string_12, "\t"); - _builder.append(" "); - EObject _target_1 = relation_4.getLeftEnding().getTarget(); - _builder.append(_target_1, "\t"); - _builder.append(" relates "); - String _string_13 = relation_4.getRightEnding().getTarget().toString(); - _builder.append(_string_13, "\t"); - _builder.append(" "); - String _cardinality_1 = relation_4.getRightEnding().getCardinality(); - _builder.append(_cardinality_1, "\t"); - _builder.append("
    "); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_14 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_14, "\t"); - _builder.append("_fk\" in "); - String _upperCase_9 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_9, "\t"); - _builder.append(" references "); - String _upperCase_10 = relation_4.getLeftEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_10, "\t"); - _builder.append(""); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - _builder.append("
    "); - _builder.newLine(); - } - } - _builder.newLine(); - { - if ((relation_4.getLeftEnding().getCardinality().equalsIgnoreCase("(1:1)") && relation_4.getRightEnding().getCardinality().equalsIgnoreCase("(0:1)"))) { - _builder.append("\t"); - _builder.append("Relationship: "); - { - boolean _isNullOrEmpty_6 = StringExtensions.isNullOrEmpty(relation_4.getName()); - if (_isNullOrEmpty_6) { - _builder.append("_UnnamedEntity_"); - } else { - boolean _isNullOrEmpty_7 = StringExtensions.isNullOrEmpty(relation_4.getName()); - boolean _not_8 = (!_isNullOrEmpty_7); - if (_not_8) { - String _name_16 = relation_4.getName(); - _builder.append(_name_16, "\t"); - } - } - } - _builder.append(" "); - String _string_15 = relation_4.getLeftEnding().getCardinality().toString(); - _builder.append(_string_15, "\t"); - _builder.append(" "); - EObject _target_2 = relation_4.getLeftEnding().getTarget(); - _builder.append(_target_2, "\t"); - _builder.append(" relates "); - String _string_16 = relation_4.getRightEnding().getTarget().toString(); - _builder.append(_string_16, "\t"); - _builder.append(" "); - String _cardinality_2 = relation_4.getRightEnding().getCardinality(); - _builder.append(_cardinality_2, "\t"); - _builder.append("
    "); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_17 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_17, "\t"); - _builder.append("_fk\" in "); - String _upperCase_11 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_11, "\t"); - _builder.append(" references "); - String _upperCase_12 = relation_4.getLeftEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_12, "\t"); - _builder.append(""); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - _builder.append("
    "); - _builder.newLine(); - } - } - _builder.newLine(); - { - if ((relation_4.getLeftEnding().getCardinality().equalsIgnoreCase("(1:1)") && relation_4.getRightEnding().getCardinality().equalsIgnoreCase("(1:1)"))) { - _builder.append("\t"); - _builder.append("Relationship: "); - { - boolean _isNullOrEmpty_8 = StringExtensions.isNullOrEmpty(relation_4.getName()); - if (_isNullOrEmpty_8) { - _builder.append("_UnnamedEntity_"); - } else { - boolean _isNullOrEmpty_9 = StringExtensions.isNullOrEmpty(relation_4.getName()); - boolean _not_9 = (!_isNullOrEmpty_9); - if (_not_9) { - String _name_17 = relation_4.getName(); - _builder.append(_name_17, "\t"); - } - } - } - _builder.append(" "); - String _string_18 = relation_4.getLeftEnding().getCardinality().toString(); - _builder.append(_string_18, "\t"); - _builder.append(" "); - EObject _target_3 = relation_4.getLeftEnding().getTarget(); - _builder.append(_target_3, "\t"); - _builder.append(" relates "); - String _string_19 = relation_4.getRightEnding().getTarget().toString(); - _builder.append(_string_19, "\t"); - _builder.append(" "); - String _cardinality_3 = relation_4.getRightEnding().getCardinality(); - _builder.append(_cardinality_3, "\t"); - _builder.append("
    "); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_20 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_20, "\t"); - _builder.append("_fk\" in "); - String _upperCase_13 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_13, "\t"); - _builder.append(" references "); - String _upperCase_14 = relation_4.getLeftEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_14, "\t"); - _builder.append(""); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - _builder.append("
    "); - _builder.newLine(); - } - } - _builder.append("\t"); - _builder.newLine(); - _builder.append("\t"); - _builder.newLine(); - { - if ((relation_4.getLeftEnding().getCardinality().equalsIgnoreCase("(0:1)") && relation_4.getRightEnding().getCardinality().equalsIgnoreCase("(0:N)"))) { - _builder.append("Relationship: "); - { - boolean _isNullOrEmpty_10 = StringExtensions.isNullOrEmpty(relation_4.getName()); - if (_isNullOrEmpty_10) { - _builder.append("_UnnamedEntity_"); - } else { - boolean _isNullOrEmpty_11 = StringExtensions.isNullOrEmpty(relation_4.getName()); - boolean _not_10 = (!_isNullOrEmpty_11); - if (_not_10) { - String _name_18 = relation_4.getName(); - _builder.append(_name_18); - } - } - } - _builder.append(" "); - String _string_21 = relation_4.getLeftEnding().getCardinality().toString(); - _builder.append(_string_21); - _builder.append(" "); - EObject _target_4 = relation_4.getLeftEnding().getTarget(); - _builder.append(_target_4); - _builder.append(" relates "); - String _string_22 = relation_4.getRightEnding().getTarget().toString(); - _builder.append(_string_22); - _builder.append(" "); - String _cardinality_4 = relation_4.getRightEnding().getCardinality(); - _builder.append(_cardinality_4); - _builder.append("
    "); - _builder.newLineIfNotEmpty(); - { - EList _entities_7 = modeloER.getEntities(); - for(final Entity aux_4 : _entities_7) { - { - boolean _equalsIgnoreCase_9 = aux_4.getName().equalsIgnoreCase(relation_4.getLeftEnding().getTarget().toString()); - if (_equalsIgnoreCase_9) { - { - Entity _is_5 = aux_4.getIs(); - boolean _tripleEquals_5 = (_is_5 == null); - if (_tripleEquals_5) { - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_23 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_23, "\t"); - _builder.append("_fk\" in "); - String _upperCase_15 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_15, "\t"); - _builder.append(" references "); - String _upperCase_16 = relation_4.getLeftEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_16, "\t"); - _builder.append("\t"); - _builder.newLineIfNotEmpty(); - } else { - Entity _is_6 = aux_4.getIs(); - boolean _tripleEquals_6 = (_is_6 == null); - boolean _not_11 = (!_tripleEquals_6); - if (_not_11) { - { - boolean _equals = relation_4.getLeftEnding().getTarget().toString().equals(relation_4.getRightEnding().getTarget().toString()); - if (_equals) { - _builder.append("\t"); - _builder.append("Attribute \""); - String _name_19 = relation_4.getName(); - _builder.append(_name_19, "\t"); - _builder.append("_fk\" in "); - String _upperCase_17 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_17, "\t"); - _builder.append(" references "); - String _upperCase_18 = aux_4.getIs().toString().toUpperCase(); - _builder.append(_upperCase_18, "\t"); - _builder.append(""); - _builder.newLineIfNotEmpty(); - } else { - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_24 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_24, "\t"); - _builder.append("_fk\" in "); - String _upperCase_19 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_19, "\t"); - _builder.append(" references "); - String _upperCase_20 = aux_4.getIs().toString().toUpperCase(); - _builder.append(_upperCase_20, "\t"); - _builder.append(""); - _builder.newLineIfNotEmpty(); - } - } - } - } - } - } - } - } - } - { - EList _relations_6 = modeloER.getRelations(); - for(final Relation aux_5 : _relations_6) { - { - boolean _equalsIgnoreCase_10 = aux_5.getName().equalsIgnoreCase(relation_4.getLeftEnding().getTarget().toString()); - if (_equalsIgnoreCase_10) { - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_25 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_25, "\t"); - _builder.append("_fk\" in "); - String _upperCase_21 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_21, "\t"); - _builder.append(" references "); - String _upperCase_22 = relation_4.getLeftEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_22, "\t"); - _builder.append("
    "); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_26 = relation_4.getRightEnding().getTarget().toString(); - _builder.append(_string_26, "\t"); - _builder.append("_fk\" in "); - String _upperCase_23 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_23, "\t"); - _builder.append(" references "); - String _upperCase_24 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_24, "\t"); - _builder.append("\t"); - _builder.newLineIfNotEmpty(); - } else { - boolean _equalsIgnoreCase_11 = aux_5.getName().equalsIgnoreCase(relation_4.getRightEnding().getTarget().toString()); - if (_equalsIgnoreCase_11) { - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_27 = relation_4.getRightEnding().getTarget().toString(); - _builder.append(_string_27, "\t"); - _builder.append("_fk\" in "); - String _upperCase_25 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_25, "\t"); - _builder.append(" references "); - String _upperCase_26 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_26, "\t"); - _builder.append("
    "); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_28 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_28, "\t"); - _builder.append("_fk\" in "); - String _upperCase_27 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_27, "\t"); - _builder.append(" references "); - String _upperCase_28 = relation_4.getLeftEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_28, "\t"); - _builder.append("\t\t"); - _builder.newLineIfNotEmpty(); - } - } - } - } - } - _builder.append("
    "); - _builder.newLine(); - } - } - _builder.append("\t\t"); - _builder.newLine(); - { - if ((relation_4.getLeftEnding().getCardinality().equalsIgnoreCase("(0:1)") && relation_4.getRightEnding().getCardinality().equalsIgnoreCase("(1:N)"))) { - _builder.append("\t"); - _builder.append("Relationship: "); - { - boolean _isNullOrEmpty_12 = StringExtensions.isNullOrEmpty(relation_4.getName()); - if (_isNullOrEmpty_12) { - _builder.append("_UnnamedEntity_"); - } else { - boolean _isNullOrEmpty_13 = StringExtensions.isNullOrEmpty(relation_4.getName()); - boolean _not_12 = (!_isNullOrEmpty_13); - if (_not_12) { - String _name_20 = relation_4.getName(); - _builder.append(_name_20, "\t"); - } - } - } - _builder.append(" "); - String _string_29 = relation_4.getLeftEnding().getCardinality().toString(); - _builder.append(_string_29, "\t"); - _builder.append(" "); - EObject _target_5 = relation_4.getLeftEnding().getTarget(); - _builder.append(_target_5, "\t"); - _builder.append(" relates "); - String _string_30 = relation_4.getRightEnding().getTarget().toString(); - _builder.append(_string_30, "\t"); - _builder.append(" "); - String _cardinality_5 = relation_4.getRightEnding().getCardinality(); - _builder.append(_cardinality_5, "\t"); - _builder.append("
    "); - _builder.newLineIfNotEmpty(); - { - EList _entities_8 = modeloER.getEntities(); - for(final Entity aux_6 : _entities_8) { - { - boolean _equalsIgnoreCase_12 = aux_6.getName().equalsIgnoreCase(relation_4.getLeftEnding().getTarget().toString()); - if (_equalsIgnoreCase_12) { - { - Entity _is_7 = aux_6.getIs(); - boolean _tripleEquals_7 = (_is_7 == null); - if (_tripleEquals_7) { - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_31 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_31, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_29 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_29, "\t\t"); - _builder.append(" references "); - String _upperCase_30 = relation_4.getLeftEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_30, "\t\t"); - _builder.append("\t"); - _builder.newLineIfNotEmpty(); - } else { - Entity _is_8 = aux_6.getIs(); - boolean _tripleEquals_8 = (_is_8 == null); - boolean _not_13 = (!_tripleEquals_8); - if (_not_13) { - { - boolean _equals_1 = relation_4.getLeftEnding().getTarget().toString().equals(relation_4.getRightEnding().getTarget().toString()); - if (_equals_1) { - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _name_21 = relation_4.getName(); - _builder.append(_name_21, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_31 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_31, "\t\t"); - _builder.append(" references "); - String _upperCase_32 = aux_6.getIs().toString().toUpperCase(); - _builder.append(_upperCase_32, "\t\t"); - _builder.append(""); - _builder.newLineIfNotEmpty(); - } else { - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_32 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_32, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_33 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_33, "\t\t"); - _builder.append(" references "); - String _upperCase_34 = aux_6.getIs().toString().toUpperCase(); - _builder.append(_upperCase_34, "\t\t"); - _builder.append(""); - _builder.newLineIfNotEmpty(); - } - } - } - } - } - } - } - } - } - { - EList _relations_7 = modeloER.getRelations(); - for(final Relation aux_7 : _relations_7) { - { - boolean _equalsIgnoreCase_13 = aux_7.getName().equalsIgnoreCase(relation_4.getLeftEnding().getTarget().toString()); - if (_equalsIgnoreCase_13) { - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_33 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_33, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_35 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_35, "\t\t"); - _builder.append(" references "); - String _upperCase_36 = relation_4.getLeftEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_36, "\t\t"); - _builder.append("
    "); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_34 = relation_4.getRightEnding().getTarget().toString(); - _builder.append(_string_34, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_37 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_37, "\t\t"); - _builder.append(" references "); - String _upperCase_38 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_38, "\t\t"); - _builder.append("\t"); - _builder.newLineIfNotEmpty(); - } else { - boolean _equalsIgnoreCase_14 = aux_7.getName().equalsIgnoreCase(relation_4.getRightEnding().getTarget().toString()); - if (_equalsIgnoreCase_14) { - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_35 = relation_4.getRightEnding().getTarget().toString(); - _builder.append(_string_35, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_39 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_39, "\t\t"); - _builder.append(" references "); - String _upperCase_40 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_40, "\t\t"); - _builder.append("
    "); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_36 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_36, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_41 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_41, "\t\t"); - _builder.append(" references "); - String _upperCase_42 = relation_4.getLeftEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_42, "\t\t"); - _builder.append("\t\t"); - _builder.newLineIfNotEmpty(); - } - } - } - } - } - _builder.append("\t"); - _builder.append("
    "); - _builder.newLine(); - } - } - _builder.append("\t"); - _builder.newLine(); - { - if ((relation_4.getLeftEnding().getCardinality().equalsIgnoreCase("(1:1)") && relation_4.getRightEnding().getCardinality().equalsIgnoreCase("(0:N)"))) { - _builder.append("\t"); - _builder.append("Relationship: "); - { - boolean _isNullOrEmpty_14 = StringExtensions.isNullOrEmpty(relation_4.getName()); - if (_isNullOrEmpty_14) { - _builder.append("_UnnamedEntity_"); - } else { - boolean _isNullOrEmpty_15 = StringExtensions.isNullOrEmpty(relation_4.getName()); - boolean _not_14 = (!_isNullOrEmpty_15); - if (_not_14) { - String _name_22 = relation_4.getName(); - _builder.append(_name_22, "\t"); - } - } - } - _builder.append(" "); - String _string_37 = relation_4.getLeftEnding().getCardinality().toString(); - _builder.append(_string_37, "\t"); - _builder.append(" "); - EObject _target_6 = relation_4.getLeftEnding().getTarget(); - _builder.append(_target_6, "\t"); - _builder.append(" relates "); - String _string_38 = relation_4.getRightEnding().getTarget().toString(); - _builder.append(_string_38, "\t"); - _builder.append(" "); - String _cardinality_6 = relation_4.getRightEnding().getCardinality(); - _builder.append(_cardinality_6, "\t"); - _builder.append("
    "); - _builder.newLineIfNotEmpty(); - { - EList _entities_9 = modeloER.getEntities(); - for(final Entity aux_8 : _entities_9) { - { - boolean _equalsIgnoreCase_15 = aux_8.getName().equalsIgnoreCase(relation_4.getLeftEnding().getTarget().toString()); - if (_equalsIgnoreCase_15) { - { - Entity _is_9 = aux_8.getIs(); - boolean _tripleEquals_9 = (_is_9 == null); - if (_tripleEquals_9) { - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_39 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_39, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_43 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_43, "\t\t"); - _builder.append(" references "); - String _upperCase_44 = relation_4.getLeftEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_44, "\t\t"); - _builder.append("\t"); - _builder.newLineIfNotEmpty(); - } else { - Entity _is_10 = aux_8.getIs(); - boolean _tripleEquals_10 = (_is_10 == null); - boolean _not_15 = (!_tripleEquals_10); - if (_not_15) { - { - boolean _equals_2 = relation_4.getLeftEnding().getTarget().toString().equals(relation_4.getRightEnding().getTarget().toString()); - if (_equals_2) { - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _name_23 = relation_4.getName(); - _builder.append(_name_23, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_45 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_45, "\t\t"); - _builder.append(" references "); - String _upperCase_46 = aux_8.getIs().toString().toUpperCase(); - _builder.append(_upperCase_46, "\t\t"); - _builder.append(""); - _builder.newLineIfNotEmpty(); - } else { - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_40 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_40, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_47 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_47, "\t\t"); - _builder.append(" references "); - String _upperCase_48 = aux_8.getIs().toString().toUpperCase(); - _builder.append(_upperCase_48, "\t\t"); - _builder.append(""); - _builder.newLineIfNotEmpty(); - } - } - } - } - } - } - } - } - } - { - EList _relations_8 = modeloER.getRelations(); - for(final Relation aux_9 : _relations_8) { - { - boolean _equalsIgnoreCase_16 = aux_9.getName().equalsIgnoreCase(relation_4.getLeftEnding().getTarget().toString()); - if (_equalsIgnoreCase_16) { - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_41 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_41, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_49 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_49, "\t\t"); - _builder.append(" references "); - String _upperCase_50 = relation_4.getLeftEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_50, "\t\t"); - _builder.append("
    "); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_42 = relation_4.getRightEnding().getTarget().toString(); - _builder.append(_string_42, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_51 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_51, "\t\t"); - _builder.append(" references "); - String _upperCase_52 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_52, "\t\t"); - _builder.append("\t"); - _builder.newLineIfNotEmpty(); - } else { - boolean _equalsIgnoreCase_17 = aux_9.getName().equalsIgnoreCase(relation_4.getRightEnding().getTarget().toString()); - if (_equalsIgnoreCase_17) { - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_43 = relation_4.getRightEnding().getTarget().toString(); - _builder.append(_string_43, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_53 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_53, "\t\t"); - _builder.append(" references "); - String _upperCase_54 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_54, "\t\t"); - _builder.append("
    "); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_44 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_44, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_55 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_55, "\t\t"); - _builder.append(" references "); - String _upperCase_56 = relation_4.getLeftEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_56, "\t\t"); - _builder.append("\t\t"); - _builder.newLineIfNotEmpty(); - } - } - } - } - } - _builder.append("\t"); - _builder.append("
    "); - _builder.newLine(); - } - } - _builder.append("\t"); - _builder.newLine(); - { - if ((relation_4.getLeftEnding().getCardinality().equalsIgnoreCase("(1:1)") && relation_4.getRightEnding().getCardinality().equalsIgnoreCase("(1:N)"))) { - _builder.append("\t"); - _builder.append("Relationship: "); - { - boolean _isNullOrEmpty_16 = StringExtensions.isNullOrEmpty(relation_4.getName()); - if (_isNullOrEmpty_16) { - _builder.append("_UnnamedEntity_"); - } else { - boolean _isNullOrEmpty_17 = StringExtensions.isNullOrEmpty(relation_4.getName()); - boolean _not_16 = (!_isNullOrEmpty_17); - if (_not_16) { - String _name_24 = relation_4.getName(); - _builder.append(_name_24, "\t"); - } - } - } - _builder.append(" "); - String _string_45 = relation_4.getLeftEnding().getCardinality().toString(); - _builder.append(_string_45, "\t"); - _builder.append(" "); - EObject _target_7 = relation_4.getLeftEnding().getTarget(); - _builder.append(_target_7, "\t"); - _builder.append(" relates "); - String _string_46 = relation_4.getRightEnding().getTarget().toString(); - _builder.append(_string_46, "\t"); - _builder.append(" "); - String _cardinality_7 = relation_4.getRightEnding().getCardinality(); - _builder.append(_cardinality_7, "\t"); - _builder.append("
    "); - _builder.newLineIfNotEmpty(); - { - EList _entities_10 = modeloER.getEntities(); - for(final Entity aux_10 : _entities_10) { - { - boolean _equalsIgnoreCase_18 = aux_10.getName().equalsIgnoreCase(relation_4.getLeftEnding().getTarget().toString()); - if (_equalsIgnoreCase_18) { - { - Entity _is_11 = aux_10.getIs(); - boolean _tripleEquals_11 = (_is_11 == null); - if (_tripleEquals_11) { - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_47 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_47, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_57 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_57, "\t\t"); - _builder.append(" references "); - String _upperCase_58 = relation_4.getLeftEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_58, "\t\t"); - _builder.append("\t"); - _builder.newLineIfNotEmpty(); - } else { - Entity _is_12 = aux_10.getIs(); - boolean _tripleEquals_12 = (_is_12 == null); - boolean _not_17 = (!_tripleEquals_12); - if (_not_17) { - { - boolean _equals_3 = relation_4.getLeftEnding().getTarget().toString().equals(relation_4.getRightEnding().getTarget().toString()); - if (_equals_3) { - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _name_25 = relation_4.getName(); - _builder.append(_name_25, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_59 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_59, "\t\t"); - _builder.append(" references "); - String _upperCase_60 = aux_10.getIs().toString().toUpperCase(); - _builder.append(_upperCase_60, "\t\t"); - _builder.append(""); - _builder.newLineIfNotEmpty(); - } else { - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_48 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_48, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_61 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_61, "\t\t"); - _builder.append(" references "); - String _upperCase_62 = aux_10.getIs().toString().toUpperCase(); - _builder.append(_upperCase_62, "\t\t"); - _builder.append(""); - _builder.newLineIfNotEmpty(); - } - } - } - } - } - } - } - } - } - { - EList _relations_9 = modeloER.getRelations(); - for(final Relation aux_11 : _relations_9) { - { - boolean _equalsIgnoreCase_19 = aux_11.getName().equalsIgnoreCase(relation_4.getLeftEnding().getTarget().toString()); - if (_equalsIgnoreCase_19) { - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_49 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_49, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_63 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_63, "\t\t"); - _builder.append(" references "); - String _upperCase_64 = relation_4.getLeftEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_64, "\t\t"); - _builder.append("
    "); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_50 = relation_4.getRightEnding().getTarget().toString(); - _builder.append(_string_50, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_65 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_65, "\t\t"); - _builder.append(" references "); - String _upperCase_66 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_66, "\t\t"); - _builder.append("\t"); - _builder.newLineIfNotEmpty(); - } else { - boolean _equalsIgnoreCase_20 = aux_11.getName().equalsIgnoreCase(relation_4.getRightEnding().getTarget().toString()); - if (_equalsIgnoreCase_20) { - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_51 = relation_4.getRightEnding().getTarget().toString(); - _builder.append(_string_51, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_67 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_67, "\t\t"); - _builder.append(" references "); - String _upperCase_68 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_68, "\t\t"); - _builder.append("
    "); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_52 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_52, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_69 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_69, "\t\t"); - _builder.append(" references "); - String _upperCase_70 = relation_4.getLeftEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_70, "\t\t"); - _builder.append("\t\t"); - _builder.newLineIfNotEmpty(); - } - } - } - } - } - _builder.append("\t"); - _builder.append("
    "); - _builder.newLine(); - } - } - _builder.newLine(); - { - if ((relation_4.getLeftEnding().getCardinality().equalsIgnoreCase("(0:N)") && relation_4.getRightEnding().getCardinality().equalsIgnoreCase("(0:1)"))) { - _builder.append("\t"); - _builder.append("Relationship: "); - { - boolean _isNullOrEmpty_18 = StringExtensions.isNullOrEmpty(relation_4.getName()); - if (_isNullOrEmpty_18) { - _builder.append("_UnnamedEntity_"); - } else { - boolean _isNullOrEmpty_19 = StringExtensions.isNullOrEmpty(relation_4.getName()); - boolean _not_18 = (!_isNullOrEmpty_19); - if (_not_18) { - String _name_26 = relation_4.getName(); - _builder.append(_name_26, "\t"); - } - } - } - _builder.append(" "); - String _string_53 = relation_4.getLeftEnding().getCardinality().toString(); - _builder.append(_string_53, "\t"); - _builder.append(" "); - EObject _target_8 = relation_4.getLeftEnding().getTarget(); - _builder.append(_target_8, "\t"); - _builder.append(" relates "); - String _string_54 = relation_4.getRightEnding().getTarget().toString(); - _builder.append(_string_54, "\t"); - _builder.append(" "); - String _cardinality_8 = relation_4.getRightEnding().getCardinality(); - _builder.append(_cardinality_8, "\t"); - _builder.append("
    "); - _builder.newLineIfNotEmpty(); - { - EList _entities_11 = modeloER.getEntities(); - for(final Entity aux_12 : _entities_11) { - { - boolean _equalsIgnoreCase_21 = aux_12.getName().equalsIgnoreCase(relation_4.getLeftEnding().getTarget().toString()); - if (_equalsIgnoreCase_21) { - { - Entity _is_13 = aux_12.getIs(); - boolean _tripleEquals_13 = (_is_13 == null); - if (_tripleEquals_13) { - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_55 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_55, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_71 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_71, "\t\t"); - _builder.append(" references "); - String _upperCase_72 = relation_4.getLeftEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_72, "\t\t"); - _builder.append("\t"); - _builder.newLineIfNotEmpty(); - } else { - Entity _is_14 = aux_12.getIs(); - boolean _tripleEquals_14 = (_is_14 == null); - boolean _not_19 = (!_tripleEquals_14); - if (_not_19) { - { - boolean _equals_4 = relation_4.getLeftEnding().getTarget().toString().equals(relation_4.getRightEnding().getTarget().toString()); - if (_equals_4) { - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _name_27 = relation_4.getName(); - _builder.append(_name_27, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_73 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_73, "\t\t"); - _builder.append(" references "); - String _upperCase_74 = aux_12.getIs().toString().toUpperCase(); - _builder.append(_upperCase_74, "\t\t"); - _builder.append(""); - _builder.newLineIfNotEmpty(); - } else { - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_56 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_56, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_75 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_75, "\t\t"); - _builder.append(" references "); - String _upperCase_76 = aux_12.getIs().toString().toUpperCase(); - _builder.append(_upperCase_76, "\t\t"); - _builder.append(""); - _builder.newLineIfNotEmpty(); - } - } - } - } - } - } - } - } - } - { - EList _relations_10 = modeloER.getRelations(); - for(final Relation aux_13 : _relations_10) { - { - boolean _equalsIgnoreCase_22 = aux_13.getName().equalsIgnoreCase(relation_4.getLeftEnding().getTarget().toString()); - if (_equalsIgnoreCase_22) { - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_57 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_57, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_77 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_77, "\t\t"); - _builder.append(" references "); - String _upperCase_78 = relation_4.getLeftEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_78, "\t\t"); - _builder.append("
    "); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_58 = relation_4.getRightEnding().getTarget().toString(); - _builder.append(_string_58, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_79 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_79, "\t\t"); - _builder.append(" references "); - String _upperCase_80 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_80, "\t\t"); - _builder.append("\t"); - _builder.newLineIfNotEmpty(); - } else { - boolean _equalsIgnoreCase_23 = aux_13.getName().equalsIgnoreCase(relation_4.getRightEnding().getTarget().toString()); - if (_equalsIgnoreCase_23) { - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_59 = relation_4.getRightEnding().getTarget().toString(); - _builder.append(_string_59, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_81 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_81, "\t\t"); - _builder.append(" references "); - String _upperCase_82 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_82, "\t\t"); - _builder.append("
    "); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_60 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_60, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_83 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_83, "\t\t"); - _builder.append(" references "); - String _upperCase_84 = relation_4.getLeftEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_84, "\t\t"); - _builder.append("\t\t"); - _builder.newLineIfNotEmpty(); - } - } - } - } - } - _builder.append("\t"); - _builder.append("
    "); - _builder.newLine(); - } - } - _builder.newLine(); - { - if ((relation_4.getLeftEnding().getCardinality().equalsIgnoreCase("(1:N)") && relation_4.getRightEnding().getCardinality().equalsIgnoreCase("(0:1)"))) { - _builder.append("\t"); - _builder.append("Relationship: "); - { - boolean _isNullOrEmpty_20 = StringExtensions.isNullOrEmpty(relation_4.getName()); - if (_isNullOrEmpty_20) { - _builder.append("_UnnamedEntity_"); - } else { - boolean _isNullOrEmpty_21 = StringExtensions.isNullOrEmpty(relation_4.getName()); - boolean _not_20 = (!_isNullOrEmpty_21); - if (_not_20) { - String _name_28 = relation_4.getName(); - _builder.append(_name_28, "\t"); - } - } - } - _builder.append(" "); - String _string_61 = relation_4.getLeftEnding().getCardinality().toString(); - _builder.append(_string_61, "\t"); - _builder.append(" "); - EObject _target_9 = relation_4.getLeftEnding().getTarget(); - _builder.append(_target_9, "\t"); - _builder.append(" relates "); - String _string_62 = relation_4.getRightEnding().getTarget().toString(); - _builder.append(_string_62, "\t"); - _builder.append(" "); - String _cardinality_9 = relation_4.getRightEnding().getCardinality(); - _builder.append(_cardinality_9, "\t"); - _builder.append("
    "); - _builder.newLineIfNotEmpty(); - { - EList _entities_12 = modeloER.getEntities(); - for(final Entity aux_14 : _entities_12) { - { - boolean _equalsIgnoreCase_24 = aux_14.getName().equalsIgnoreCase(relation_4.getLeftEnding().getTarget().toString()); - if (_equalsIgnoreCase_24) { - { - Entity _is_15 = aux_14.getIs(); - boolean _tripleEquals_15 = (_is_15 == null); - if (_tripleEquals_15) { - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_63 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_63, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_85 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_85, "\t\t"); - _builder.append(" references "); - String _upperCase_86 = relation_4.getLeftEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_86, "\t\t"); - _builder.append("\t"); - _builder.newLineIfNotEmpty(); - } else { - Entity _is_16 = aux_14.getIs(); - boolean _tripleEquals_16 = (_is_16 == null); - boolean _not_21 = (!_tripleEquals_16); - if (_not_21) { - { - boolean _equals_5 = relation_4.getLeftEnding().getTarget().toString().equals(relation_4.getRightEnding().getTarget().toString()); - if (_equals_5) { - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _name_29 = relation_4.getName(); - _builder.append(_name_29, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_87 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_87, "\t\t"); - _builder.append(" references "); - String _upperCase_88 = aux_14.getIs().toString().toUpperCase(); - _builder.append(_upperCase_88, "\t\t"); - _builder.append(""); - _builder.newLineIfNotEmpty(); - } else { - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_64 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_64, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_89 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_89, "\t\t"); - _builder.append(" references "); - String _upperCase_90 = aux_14.getIs().toString().toUpperCase(); - _builder.append(_upperCase_90, "\t\t"); - _builder.append(""); - _builder.newLineIfNotEmpty(); - } - } - } - } - } - } - } - } - } - { - EList _relations_11 = modeloER.getRelations(); - for(final Relation aux_15 : _relations_11) { - { - boolean _equalsIgnoreCase_25 = aux_15.getName().equalsIgnoreCase(relation_4.getLeftEnding().getTarget().toString()); - if (_equalsIgnoreCase_25) { - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_65 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_65, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_91 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_91, "\t\t"); - _builder.append(" references "); - String _upperCase_92 = relation_4.getLeftEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_92, "\t\t"); - _builder.append("
    "); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_66 = relation_4.getRightEnding().getTarget().toString(); - _builder.append(_string_66, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_93 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_93, "\t\t"); - _builder.append(" references "); - String _upperCase_94 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_94, "\t\t"); - _builder.append("\t"); - _builder.newLineIfNotEmpty(); - } else { - boolean _equalsIgnoreCase_26 = aux_15.getName().equalsIgnoreCase(relation_4.getRightEnding().getTarget().toString()); - if (_equalsIgnoreCase_26) { - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_67 = relation_4.getRightEnding().getTarget().toString(); - _builder.append(_string_67, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_95 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_95, "\t\t"); - _builder.append(" references "); - String _upperCase_96 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_96, "\t\t"); - _builder.append("
    "); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_68 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_68, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_97 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_97, "\t\t"); - _builder.append(" references "); - String _upperCase_98 = relation_4.getLeftEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_98, "\t\t"); - _builder.append("\t\t"); - _builder.newLineIfNotEmpty(); - } - } - } - } - } - _builder.append("\t"); - _builder.append("
    "); - _builder.newLine(); - } - } - _builder.append("\t"); - _builder.newLine(); - { - if ((relation_4.getLeftEnding().getCardinality().equalsIgnoreCase("(0:N)") && relation_4.getRightEnding().getCardinality().equalsIgnoreCase("(1:1)"))) { - _builder.append("\t"); - _builder.append("Relationship: "); - { - boolean _isNullOrEmpty_22 = StringExtensions.isNullOrEmpty(relation_4.getName()); - if (_isNullOrEmpty_22) { - _builder.append("_UnnamedEntity_"); - } else { - boolean _isNullOrEmpty_23 = StringExtensions.isNullOrEmpty(relation_4.getName()); - boolean _not_22 = (!_isNullOrEmpty_23); - if (_not_22) { - String _name_30 = relation_4.getName(); - _builder.append(_name_30, "\t"); - } - } - } - _builder.append(" "); - String _string_69 = relation_4.getLeftEnding().getCardinality().toString(); - _builder.append(_string_69, "\t"); - _builder.append(" "); - EObject _target_10 = relation_4.getLeftEnding().getTarget(); - _builder.append(_target_10, "\t"); - _builder.append(" relates "); - String _string_70 = relation_4.getRightEnding().getTarget().toString(); - _builder.append(_string_70, "\t"); - _builder.append(" "); - String _cardinality_10 = relation_4.getRightEnding().getCardinality(); - _builder.append(_cardinality_10, "\t"); - _builder.append("
    "); - _builder.newLineIfNotEmpty(); - { - EList _entities_13 = modeloER.getEntities(); - for(final Entity aux_16 : _entities_13) { - { - boolean _equalsIgnoreCase_27 = aux_16.getName().equalsIgnoreCase(relation_4.getLeftEnding().getTarget().toString()); - if (_equalsIgnoreCase_27) { - { - Entity _is_17 = aux_16.getIs(); - boolean _tripleEquals_17 = (_is_17 == null); - if (_tripleEquals_17) { - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_71 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_71, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_99 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_99, "\t\t"); - _builder.append(" references "); - String _upperCase_100 = relation_4.getLeftEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_100, "\t\t"); - _builder.append("\t"); - _builder.newLineIfNotEmpty(); - } else { - Entity _is_18 = aux_16.getIs(); - boolean _tripleEquals_18 = (_is_18 == null); - boolean _not_23 = (!_tripleEquals_18); - if (_not_23) { - { - boolean _equals_6 = relation_4.getLeftEnding().getTarget().toString().equals(relation_4.getRightEnding().getTarget().toString()); - if (_equals_6) { - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _name_31 = relation_4.getName(); - _builder.append(_name_31, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_101 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_101, "\t\t"); - _builder.append(" references "); - String _upperCase_102 = aux_16.getIs().toString().toUpperCase(); - _builder.append(_upperCase_102, "\t\t"); - _builder.append(""); - _builder.newLineIfNotEmpty(); - } else { - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_72 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_72, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_103 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_103, "\t\t"); - _builder.append(" references "); - String _upperCase_104 = aux_16.getIs().toString().toUpperCase(); - _builder.append(_upperCase_104, "\t\t"); - _builder.append(""); - _builder.newLineIfNotEmpty(); - } - } - } - } - } - } - } - } - } - { - EList _relations_12 = modeloER.getRelations(); - for(final Relation aux_17 : _relations_12) { - { - boolean _equalsIgnoreCase_28 = aux_17.getName().equalsIgnoreCase(relation_4.getLeftEnding().getTarget().toString()); - if (_equalsIgnoreCase_28) { - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_73 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_73, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_105 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_105, "\t\t"); - _builder.append(" references "); - String _upperCase_106 = relation_4.getLeftEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_106, "\t\t"); - _builder.append("
    "); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_74 = relation_4.getRightEnding().getTarget().toString(); - _builder.append(_string_74, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_107 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_107, "\t\t"); - _builder.append(" references "); - String _upperCase_108 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_108, "\t\t"); - _builder.append("\t"); - _builder.newLineIfNotEmpty(); - } else { - boolean _equalsIgnoreCase_29 = aux_17.getName().equalsIgnoreCase(relation_4.getRightEnding().getTarget().toString()); - if (_equalsIgnoreCase_29) { - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_75 = relation_4.getRightEnding().getTarget().toString(); - _builder.append(_string_75, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_109 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_109, "\t\t"); - _builder.append(" references "); - String _upperCase_110 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_110, "\t\t"); - _builder.append("
    "); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_76 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_76, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_111 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_111, "\t\t"); - _builder.append(" references "); - String _upperCase_112 = relation_4.getLeftEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_112, "\t\t"); - _builder.append("\t\t"); - _builder.newLineIfNotEmpty(); - } - } - } - } - } - _builder.append("\t"); - _builder.append("
    "); - _builder.newLine(); - } - } - _builder.append("\t"); - _builder.newLine(); - { - if ((relation_4.getLeftEnding().getCardinality().equalsIgnoreCase("(1:N)") && relation_4.getRightEnding().getCardinality().equalsIgnoreCase("(1:1)"))) { - _builder.append("\t"); - _builder.append("Relationship: "); - { - boolean _isNullOrEmpty_24 = StringExtensions.isNullOrEmpty(relation_4.getName()); - if (_isNullOrEmpty_24) { - _builder.append("_UnnamedEntity_"); - } else { - boolean _isNullOrEmpty_25 = StringExtensions.isNullOrEmpty(relation_4.getName()); - boolean _not_24 = (!_isNullOrEmpty_25); - if (_not_24) { - String _name_32 = relation_4.getName(); - _builder.append(_name_32, "\t"); - } - } - } - _builder.append(" "); - String _string_77 = relation_4.getLeftEnding().getCardinality().toString(); - _builder.append(_string_77, "\t"); - _builder.append(" "); - EObject _target_11 = relation_4.getLeftEnding().getTarget(); - _builder.append(_target_11, "\t"); - _builder.append(" relates "); - String _string_78 = relation_4.getRightEnding().getTarget().toString(); - _builder.append(_string_78, "\t"); - _builder.append(" "); - String _cardinality_11 = relation_4.getRightEnding().getCardinality(); - _builder.append(_cardinality_11, "\t"); - _builder.append("
    "); - _builder.newLineIfNotEmpty(); - { - EList _entities_14 = modeloER.getEntities(); - for(final Entity aux_18 : _entities_14) { - { - boolean _equalsIgnoreCase_30 = aux_18.getName().equalsIgnoreCase(relation_4.getLeftEnding().getTarget().toString()); - if (_equalsIgnoreCase_30) { - { - Entity _is_19 = aux_18.getIs(); - boolean _tripleEquals_19 = (_is_19 == null); - if (_tripleEquals_19) { - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_79 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_79, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_113 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_113, "\t\t"); - _builder.append(" references "); - String _upperCase_114 = relation_4.getLeftEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_114, "\t\t"); - _builder.append("\t"); - _builder.newLineIfNotEmpty(); - } else { - Entity _is_20 = aux_18.getIs(); - boolean _tripleEquals_20 = (_is_20 == null); - boolean _not_25 = (!_tripleEquals_20); - if (_not_25) { - { - boolean _equals_7 = relation_4.getLeftEnding().getTarget().toString().equals(relation_4.getRightEnding().getTarget().toString()); - if (_equals_7) { - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _name_33 = relation_4.getName(); - _builder.append(_name_33, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_115 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_115, "\t\t"); - _builder.append(" references "); - String _upperCase_116 = aux_18.getIs().toString().toUpperCase(); - _builder.append(_upperCase_116, "\t\t"); - _builder.append(""); - _builder.newLineIfNotEmpty(); - } else { - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_80 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_80, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_117 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_117, "\t\t"); - _builder.append(" references "); - String _upperCase_118 = aux_18.getIs().toString().toUpperCase(); - _builder.append(_upperCase_118, "\t\t"); - _builder.append(""); - _builder.newLineIfNotEmpty(); - } - } - } - } - } - } - } - } - } - { - EList _relations_13 = modeloER.getRelations(); - for(final Relation aux_19 : _relations_13) { - { - boolean _equalsIgnoreCase_31 = aux_19.getName().equalsIgnoreCase(relation_4.getLeftEnding().getTarget().toString()); - if (_equalsIgnoreCase_31) { - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_81 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_81, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_119 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_119, "\t\t"); - _builder.append(" references "); - String _upperCase_120 = relation_4.getLeftEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_120, "\t\t"); - _builder.append("
    "); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_82 = relation_4.getRightEnding().getTarget().toString(); - _builder.append(_string_82, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_121 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_121, "\t\t"); - _builder.append(" references "); - String _upperCase_122 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_122, "\t\t"); - _builder.append("\t"); - _builder.newLineIfNotEmpty(); - } else { - boolean _equalsIgnoreCase_32 = aux_19.getName().equalsIgnoreCase(relation_4.getRightEnding().getTarget().toString()); - if (_equalsIgnoreCase_32) { - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_83 = relation_4.getRightEnding().getTarget().toString(); - _builder.append(_string_83, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_123 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_123, "\t\t"); - _builder.append(" references "); - String _upperCase_124 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_124, "\t\t"); - _builder.append("
    "); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_84 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_84, "\t\t"); - _builder.append("_fk\" in "); - String _upperCase_125 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_125, "\t\t"); - _builder.append(" references "); - String _upperCase_126 = relation_4.getLeftEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_126, "\t\t"); - _builder.append("\t\t"); - _builder.newLineIfNotEmpty(); - } - } - } - } - } - _builder.append("\t"); - _builder.append("
    \t"); - _builder.newLine(); - } - } - _builder.newLine(); - _builder.newLine(); - { - if ((relation_4.getLeftEnding().getCardinality().equalsIgnoreCase("(0:N)") && relation_4.getRightEnding().getCardinality().equalsIgnoreCase("(0:N)"))) { - _builder.append("Relationship: "); - { - boolean _isNullOrEmpty_26 = StringExtensions.isNullOrEmpty(relation_4.getName()); - if (_isNullOrEmpty_26) { - _builder.append("_UnnamedEntity_"); - } else { - boolean _isNullOrEmpty_27 = StringExtensions.isNullOrEmpty(relation_4.getName()); - boolean _not_26 = (!_isNullOrEmpty_27); - if (_not_26) { - String _name_34 = relation_4.getName(); - _builder.append(_name_34); - } - } - } - _builder.append(" "); - String _string_85 = relation_4.getLeftEnding().getCardinality().toString(); - _builder.append(_string_85); - _builder.append(" "); - EObject _target_12 = relation_4.getLeftEnding().getTarget(); - _builder.append(_target_12); - _builder.append(" relates "); - String _string_86 = relation_4.getRightEnding().getTarget().toString(); - _builder.append(_string_86); - _builder.append(" "); - String _cardinality_12 = relation_4.getRightEnding().getCardinality(); - _builder.append(_cardinality_12); - _builder.append("
    "); - _builder.newLineIfNotEmpty(); - _builder.newLine(); - _builder.append("Attribute \""); - String _string_87 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_87); - _builder.append("_fk\" in "); - String _upperCase_127 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_127); - _builder.append(" references "); - String _upperCase_128 = relation_4.getLeftEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_128); - _builder.append(""); - _builder.newLineIfNotEmpty(); - _builder.append("
    "); - _builder.newLine(); - _builder.append("Attribute \""); - String _string_88 = relation_4.getRightEnding().getTarget().toString(); - _builder.append(_string_88); - _builder.append("_fk\" In "); - String _upperCase_129 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_129); - _builder.append(" references "); - String _upperCase_130 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_130); - _builder.append("\t\t"); - _builder.newLineIfNotEmpty(); - _builder.append("
    "); - _builder.newLine(); - } - } - _builder.append("\t"); - _builder.newLine(); - { - if ((relation_4.getLeftEnding().getCardinality().equalsIgnoreCase("(0:N)") && relation_4.getRightEnding().getCardinality().equalsIgnoreCase("(1:N)"))) { - _builder.append("\t"); - _builder.append("Relationship: "); - { - boolean _isNullOrEmpty_28 = StringExtensions.isNullOrEmpty(relation_4.getName()); - if (_isNullOrEmpty_28) { - _builder.append("_UnnamedEntity_"); - } else { - boolean _isNullOrEmpty_29 = StringExtensions.isNullOrEmpty(relation_4.getName()); - boolean _not_27 = (!_isNullOrEmpty_29); - if (_not_27) { - String _name_35 = relation_4.getName(); - _builder.append(_name_35, "\t"); - } - } - } - _builder.append(" "); - String _string_89 = relation_4.getLeftEnding().getCardinality().toString(); - _builder.append(_string_89, "\t"); - _builder.append(" "); - EObject _target_13 = relation_4.getLeftEnding().getTarget(); - _builder.append(_target_13, "\t"); - _builder.append(" relates "); - String _string_90 = relation_4.getRightEnding().getTarget().toString(); - _builder.append(_string_90, "\t"); - _builder.append(" "); - String _cardinality_13 = relation_4.getRightEnding().getCardinality(); - _builder.append(_cardinality_13, "\t"); - _builder.append("
    "); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_91 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_91, "\t"); - _builder.append("_fk\" in "); - String _upperCase_131 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_131, "\t"); - _builder.append(" references "); - String _upperCase_132 = relation_4.getLeftEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_132, "\t"); - _builder.append(""); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - _builder.append("
    "); - _builder.newLine(); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_92 = relation_4.getRightEnding().getTarget().toString(); - _builder.append(_string_92, "\t"); - _builder.append("_fk\" In "); - String _upperCase_133 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_133, "\t"); - _builder.append(" references "); - String _upperCase_134 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_134, "\t"); - _builder.append("\t"); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - _builder.append("
    "); - _builder.newLine(); - } - } - _builder.append("\t"); - _builder.newLine(); - { - if ((relation_4.getLeftEnding().getCardinality().equalsIgnoreCase("(1:N)") && relation_4.getRightEnding().getCardinality().equalsIgnoreCase("(0:N)"))) { - _builder.append("\t"); - _builder.append("Relationship: "); - { - boolean _isNullOrEmpty_30 = StringExtensions.isNullOrEmpty(relation_4.getName()); - if (_isNullOrEmpty_30) { - _builder.append("_UnnamedEntity_"); - } else { - boolean _isNullOrEmpty_31 = StringExtensions.isNullOrEmpty(relation_4.getName()); - boolean _not_28 = (!_isNullOrEmpty_31); - if (_not_28) { - String _name_36 = relation_4.getName(); - _builder.append(_name_36, "\t"); - } - } - } - _builder.append(" "); - String _string_93 = relation_4.getLeftEnding().getCardinality().toString(); - _builder.append(_string_93, "\t"); - _builder.append(" "); - EObject _target_14 = relation_4.getLeftEnding().getTarget(); - _builder.append(_target_14, "\t"); - _builder.append(" relates "); - String _string_94 = relation_4.getRightEnding().getTarget().toString(); - _builder.append(_string_94, "\t"); - _builder.append(" "); - String _cardinality_14 = relation_4.getRightEnding().getCardinality(); - _builder.append(_cardinality_14, "\t"); - _builder.append("
    "); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_95 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_95, "\t"); - _builder.append("_fk\" in "); - String _upperCase_135 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_135, "\t"); - _builder.append(" references "); - String _upperCase_136 = relation_4.getLeftEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_136, "\t"); - _builder.append(""); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - _builder.append("
    "); - _builder.newLine(); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_96 = relation_4.getRightEnding().getTarget().toString(); - _builder.append(_string_96, "\t"); - _builder.append("_fk\" In "); - String _upperCase_137 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_137, "\t"); - _builder.append(" references "); - String _upperCase_138 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_138, "\t"); - _builder.append("\t"); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - _builder.append("
    "); - _builder.newLine(); - } - } - _builder.newLine(); - { - if ((relation_4.getLeftEnding().getCardinality().equalsIgnoreCase("(1:N)") && relation_4.getRightEnding().getCardinality().equalsIgnoreCase("(1:N)"))) { - _builder.append("\t"); - _builder.append("Modelled Relationship: "); - { - boolean _isNullOrEmpty_32 = StringExtensions.isNullOrEmpty(relation_4.getName()); - if (_isNullOrEmpty_32) { - _builder.append("_UnnamedEntity_"); - } else { - boolean _isNullOrEmpty_33 = StringExtensions.isNullOrEmpty(relation_4.getName()); - boolean _not_29 = (!_isNullOrEmpty_33); - if (_not_29) { - String _name_37 = relation_4.getName(); - _builder.append(_name_37, "\t"); - } - } - } - _builder.append(" "); - String _string_97 = relation_4.getLeftEnding().getCardinality().toString(); - _builder.append(_string_97, "\t"); - _builder.append(" "); - EObject _target_15 = relation_4.getLeftEnding().getTarget(); - _builder.append(_target_15, "\t"); - _builder.append(" relates "); - String _string_98 = relation_4.getRightEnding().getTarget().toString(); - _builder.append(_string_98, "\t"); - _builder.append(" "); - String _cardinality_15 = relation_4.getRightEnding().getCardinality(); - _builder.append(_cardinality_15, "\t"); - _builder.append("
    "); - _builder.newLineIfNotEmpty(); - _builder.append("\t\t"); - _builder.newLine(); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_99 = relation_4.getLeftEnding().getTarget().toString(); - _builder.append(_string_99, "\t"); - _builder.append("_fk\" in "); - String _upperCase_139 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_139, "\t"); - _builder.append(" references "); - String _upperCase_140 = relation_4.getLeftEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_140, "\t"); - _builder.append(""); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - _builder.append("
    "); - _builder.newLine(); - _builder.append("\t"); - _builder.append("Attribute \""); - String _string_100 = relation_4.getRightEnding().getTarget().toString(); - _builder.append(_string_100, "\t"); - _builder.append("_fk\" In "); - String _upperCase_141 = relation_4.getName().toUpperCase(); - _builder.append(_upperCase_141, "\t"); - _builder.append(" references "); - String _upperCase_142 = relation_4.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_142, "\t"); - _builder.append(""); - _builder.newLineIfNotEmpty(); - _builder.append("\t"); - _builder.append("
    "); - _builder.newLine(); - } - } - _builder.append("\t"); - _builder.newLine(); - _builder.append("\t\t"); - _builder.newLine(); - } - } - _builder.newLine(); - CharSequence _htmlFooter = this.htmlFooter(); - _builder.append(_htmlFooter); - _builder.newLineIfNotEmpty(); - return _builder; - } - - private CharSequence htmlHead() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append(""); - _builder.newLine(); - _builder.append("\t"); - _builder.append(""); - _builder.newLine(); - _builder.append("\t"); - _builder.append(""); - _builder.newLine(); - _builder.append("\t\t"); - _builder.append("ERtext Logical schema"); - _builder.newLine(); - _builder.append("\t\t"); - _builder.append(""); - _builder.newLine(); - _builder.append("\t\t"); - _builder.append(""); - _builder.newLine(); - _builder.append("\t\t"); - _builder.append(""); - _builder.newLine(); - _builder.append("\t\t"); - _builder.append(""); - _builder.newLine(); - _builder.append("\t\t"); - _builder.append(""); - _builder.newLine(); - _builder.append("\t\t"); - _builder.append(""); - _builder.newLine(); - _builder.append("\t\t"); - _builder.newLine(); - _builder.append("\t\t"); - _builder.append(""); - _builder.newLine(); - _builder.append("\t"); - _builder.append(""); - _builder.newLine(); - _builder.append("\t"); - _builder.append(" "); - _builder.newLine(); - _builder.append("\t"); - _builder.append("

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

    LOGICAL SCHEMA

    "); - _builder.newLine(); - _builder.append("\t"); - _builder.append("
    \t\t"); - _builder.newLine(); - return _builder; - } - - private CharSequence htmlFooter() { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("

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

    github.com/ProjetoDSL/ERDSL

    "); - _builder.newLine(); - _builder.append("\t"); - _builder.append("
    "); - _builder.newLine(); - _builder.append(""); - _builder.newLine(); - return _builder; - } - - /** - * Display of the modeled domain (database name) - */ - private CharSequence htmlModelDomain(final ERModel m) { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("

    "); - _builder.newLine(); - _builder.append(""); - _builder.newLine(); - _builder.append("  Modelled Domain"); - _builder.newLine(); - _builder.append("

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

    "); - String _upperCase = m.getDomain().getName().toUpperCase(); - _builder.append(_upperCase); - _builder.append("

    "); - _builder.newLineIfNotEmpty(); - _builder.append("
    \t"); - _builder.newLine(); - _builder.newLine(); - return _builder; - } - - /** - * Display of modeled entities (tables) - */ - private CharSequence htmlModelEntities(final ERModel m) { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("
    "); - _builder.newLine(); - _builder.append("

    "); - _builder.newLine(); - _builder.append(""); - _builder.newLine(); - _builder.append("  Resulting Entities"); - _builder.newLine(); - _builder.append("

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

    "); - _builder.newLine(); - { - EList _entities = m.getEntities(); - boolean _hasElements = false; - for(final Entity entity : _entities) { - if (!_hasElements) { - _hasElements = true; - } else { - _builder.appendImmediate(" )

    ", "\t"); - } - _builder.append("\t"); - CharSequence _htmlEntityNameTag = this.htmlEntityNameTag(entity); - _builder.append(_htmlEntityNameTag, "\t"); - _builder.append(" ( "); - CharSequence _htmlModelAtributes = this.htmlModelAtributes(entity); - _builder.append(_htmlModelAtributes, "\t"); - _builder.newLineIfNotEmpty(); - } - if (_hasElements) { - _builder.append(")
    ", "\t"); - } - } - _builder.append("

    "); - _builder.newLine(); - return _builder; - } - - private CharSequence htmlEntityNameTag(final Entity e) { - StringConcatenation _builder = new StringConcatenation(); - _builder.append(""); - String _upperCase = e.getName().toUpperCase(); - _builder.append(_upperCase); - _builder.append(""); - _builder.newLineIfNotEmpty(); - return _builder; - } - - private CharSequence htmlModelAtributes(final Entity e) { - StringConcatenation _builder = new StringConcatenation(); - { - EList _attributes = e.getAttributes(); - boolean _hasElements = false; - for(final Attribute att : _attributes) { - if (!_hasElements) { - _hasElements = true; - } else { - _builder.appendImmediate(", ", ""); - } - { - boolean _isIsKey = att.isIsKey(); - if (_isIsKey) { - CharSequence _htmlRedAttributeForPK = this.htmlRedAttributeForPK(att); - _builder.append(_htmlRedAttributeForPK); - _builder.newLineIfNotEmpty(); - } else { - String _name = att.getName(); - _builder.append(_name); - _builder.newLineIfNotEmpty(); - } - } - } - } - return _builder; - } - - private CharSequence htmlRedAttributeForPK(final Attribute a) { - StringConcatenation _builder = new StringConcatenation(); - _builder.append(""); - String _lowerCase = a.getName().toLowerCase(); - _builder.append(_lowerCase); - _builder.append("*"); - _builder.newLineIfNotEmpty(); - return _builder; - } - - private CharSequence htmlModelRelationships(final ERModel m) { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("
    "); - _builder.newLine(); - _builder.append("

    "); - _builder.newLine(); - _builder.append(""); - _builder.newLine(); - _builder.append("  Mapped References"); - _builder.newLine(); - _builder.append("

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

    \t"); - _builder.newLine(); - { - EList _relations = m.getRelations(); - boolean _hasElements = false; - for(final Relation relation : _relations) { - if (!_hasElements) { - _hasElements = true; - } else { - _builder.appendImmediate("

    ", ""); - } - { - EObject _target = relation.getLeftEnding().getTarget(); - if ((_target instanceof Entity)) { - Object _xblockexpression = null; - { - EObject _target_1 = relation.getLeftEnding().getTarget(); - this.lEnt = ((Entity) _target_1); - _xblockexpression = null; - } - _builder.append(_xblockexpression); - _builder.newLineIfNotEmpty(); - } else { - Object _xblockexpression_1 = null; - { - EObject _target_1 = relation.getLeftEnding().getTarget(); - this.lRel = ((Relation) _target_1); - _xblockexpression_1 = null; - } - _builder.append(_xblockexpression_1); - _builder.newLineIfNotEmpty(); - } - } - { - EObject _target_1 = relation.getRightEnding().getTarget(); - if ((_target_1 instanceof Entity)) { - Object _xblockexpression_2 = null; - { - EObject _target_2 = relation.getRightEnding().getTarget(); - this.rEnt = ((Entity) _target_2); - _xblockexpression_2 = null; - } - _builder.append(_xblockexpression_2); - _builder.newLineIfNotEmpty(); - } else { - Object _xblockexpression_3 = null; - { - EObject _target_2 = relation.getRightEnding().getTarget(); - this.rRel = ((Relation) _target_2); - _xblockexpression_3 = null; - } - _builder.append(_xblockexpression_3); - _builder.newLineIfNotEmpty(); - } - } - _builder.newLine(); - _builder.newLine(); - _builder.append("Relationship: "); - { - boolean _isNullOrEmpty = StringExtensions.isNullOrEmpty(relation.getName()); - if (_isNullOrEmpty) { - _builder.append(" _UnnamedEntity_ "); - } else { - boolean _isNullOrEmpty_1 = StringExtensions.isNullOrEmpty(relation.getName()); - boolean _not = (!_isNullOrEmpty_1); - if (_not) { - String _name = relation.getName(); - _builder.append(_name); - } - } - } - _builder.append(" "); - _builder.newLineIfNotEmpty(); - { - if ((!(this.lEnt == null))) { - String _name_1 = this.lEnt.getName(); - _builder.append(_name_1); - _builder.newLineIfNotEmpty(); - } else { - if ((!(this.lRel == null))) { - String _name_2 = this.lRel.getName(); - _builder.append(_name_2); - _builder.newLineIfNotEmpty(); - } - } - } - String _string = relation.getLeftEnding().getCardinality().toString(); - _builder.append(_string); - _builder.append(" relates "); - String _cardinality = relation.getRightEnding().getCardinality(); - _builder.append(_cardinality); - _builder.newLineIfNotEmpty(); - { - if ((!(this.rEnt == null))) { - String _name_3 = this.rEnt.getName(); - _builder.append(_name_3); - _builder.newLineIfNotEmpty(); - } else { - if ((!(this.rRel == null))) { - String _name_4 = this.rRel.getName(); - _builder.append(_name_4); - _builder.newLineIfNotEmpty(); - } - } - } - _builder.append("
    "); - _builder.newLine(); - _builder.newLine(); - Object _xblockexpression_4 = null; - { - this.lEnt = null; - _xblockexpression_4 = null; - } - _builder.append(_xblockexpression_4); - Object _xblockexpression_5 = null; - { - this.rEnt = null; - _xblockexpression_5 = null; - } - _builder.append(_xblockexpression_5); - _builder.newLineIfNotEmpty(); - Object _xblockexpression_6 = null; - { - this.lRel = null; - _xblockexpression_6 = null; - } - _builder.append(_xblockexpression_6); - Object _xblockexpression_7 = null; - { - this.rRel = null; - _xblockexpression_7 = null; - } - _builder.append(_xblockexpression_7); - _builder.newLineIfNotEmpty(); - } - } - _builder.newLine(); - _builder.append("

    "); - _builder.newLine(); - _builder.append("\t"); - _builder.newLine(); - return _builder; - } } diff --git a/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/HtmlFileGenerator.java b/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/HtmlFileGenerator.java index e3c268b..4c220b9 100644 --- a/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/HtmlFileGenerator.java +++ b/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/HtmlFileGenerator.java @@ -7,6 +7,8 @@ import org.eclipse.xtext.generator.AbstractGenerator; import org.eclipse.xtext.generator.IFileSystemAccess2; import org.eclipse.xtext.generator.IGeneratorContext; +import org.eclipse.xtext.xbase.lib.Functions.Function1; +import org.eclipse.xtext.xbase.lib.IterableExtensions; import org.eclipse.xtext.xbase.lib.StringExtensions; import org.xtext.unipampa.erdsl.erDsl.Attribute; import org.xtext.unipampa.erdsl.erDsl.ERModel; @@ -15,14 +17,6 @@ @SuppressWarnings("all") public class HtmlFileGenerator extends AbstractGenerator { - private Entity lEnt; - - private Entity rEnt; - - private Relation lRel; - - private Relation rRel; - @Override public void doGenerate(final Resource input, final IFileSystemAccess2 fsa, final IGeneratorContext context) { EObject _get = input.getContents().get(0); @@ -50,6 +44,7 @@ public CharSequence CreateLogical(final ERModel modeloER) { CharSequence _html_RelationshipsMapping = this.html_RelationshipsMapping(modeloER); _builder.append(_html_RelationshipsMapping); _builder.newLineIfNotEmpty(); + _builder.append("\t\t"); _builder.newLine(); CharSequence _html_Footer = this.html_Footer(); _builder.append(_html_Footer); @@ -93,28 +88,142 @@ private CharSequence html_Head() { _builder.append("\t\t"); _builder.append(""); _builder.newLine(); _builder.append("\t"); @@ -137,12 +246,6 @@ private CharSequence html_Head() { private CharSequence html_Footer() { StringConcatenation _builder = new StringConcatenation(); - _builder.append("

    "); - _builder.newLine(); - _builder.append("\t"); - _builder.newLine(); - _builder.append(""); - _builder.newLine(); _builder.append("\t"); _builder.append("
    "); _builder.newLine(); @@ -152,6 +255,8 @@ private CharSequence html_Footer() { _builder.append("\t"); _builder.append("
    "); _builder.newLine(); + _builder.append(""); + _builder.newLine(); _builder.append(""); _builder.newLine(); return _builder; @@ -166,16 +271,16 @@ private CharSequence html_DomainMapping(final ERModel m) { _builder.newLine(); _builder.append(""); _builder.newLine(); - _builder.append("  Modelled Domain"); + _builder.append("  Domain"); _builder.newLine(); _builder.append("

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

    "); + _builder.append("

    "); String _upperCase = m.getDomain().getName().toUpperCase(); _builder.append(_upperCase); - _builder.append("

    "); + _builder.append("

    "); _builder.newLineIfNotEmpty(); _builder.append("
    \t"); _builder.newLine(); @@ -194,7 +299,7 @@ private CharSequence html_EntitiesMapping(final ERModel m) { _builder.newLine(); _builder.append(""); _builder.newLine(); - _builder.append("  Resulting Entities"); + _builder.append("  Entities"); _builder.newLine(); _builder.append("

    \t "); _builder.newLine(); @@ -210,34 +315,36 @@ private CharSequence html_EntitiesMapping(final ERModel m) { if (!_hasElements) { _hasElements = true; } else { - _builder.appendImmediate(" )

    ", "\t"); + _builder.appendImmediate(" ]

    ", "\t"); } _builder.append("\t"); - CharSequence _html_EntityNameTag = this.html_EntityNameTag(entity); + CharSequence _html_EntityNameTag = this.html_EntityNameTag(entity.getName()); _builder.append(_html_EntityNameTag, "\t"); - _builder.append(" ( "); + _builder.append(" [ "); CharSequence _html_AtributesMapping = this.html_AtributesMapping(m, entity); _builder.append(_html_AtributesMapping, "\t"); _builder.newLineIfNotEmpty(); } if (_hasElements) { - _builder.append(")
    ", "\t"); + _builder.append("]
    ", "\t"); } } _builder.newLine(); CharSequence _html_NtoN_EntityCreation = this.html_NtoN_EntityCreation(m); _builder.append(_html_NtoN_EntityCreation); _builder.newLineIfNotEmpty(); - _builder.newLine(); + CharSequence _html_Ternary_EntityCreation = this.html_Ternary_EntityCreation(m); + _builder.append(_html_Ternary_EntityCreation); + _builder.newLineIfNotEmpty(); _builder.append(""); _builder.newLine(); return _builder; } - private CharSequence html_EntityNameTag(final Entity e) { + private CharSequence html_EntityNameTag(final String o) { StringConcatenation _builder = new StringConcatenation(); - _builder.append(""); - String _upperCase = e.getName().toUpperCase(); + _builder.append(""); + String _upperCase = o.toUpperCase(); _builder.append(_upperCase); _builder.append(""); _builder.newLineIfNotEmpty(); @@ -253,45 +360,84 @@ private CharSequence html_EntityNameTag(final Entity e) { */ private CharSequence html_AtributesMapping(final ERModel m, final Entity e) { StringConcatenation _builder = new StringConcatenation(); + boolean hasPK = false; + _builder.newLineIfNotEmpty(); { - EList _attributes = e.getAttributes(); + final Function1 _function = (Attribute it) -> { + return Boolean.valueOf(it.isIsKey()); + }; + Iterable _filter = IterableExtensions.filter(e.getAttributes(), _function); boolean _hasElements = false; - for(final Attribute att : _attributes) { + for(final Attribute att : _filter) { if (!_hasElements) { _hasElements = true; } else { - _builder.appendImmediate(", ", ""); + _builder.appendImmediate(" | ", ""); } + CharSequence _html_AttributeStyleForPK = this.html_AttributeStyleForPK(att); + _builder.append(_html_AttributeStyleForPK); + _builder.newLineIfNotEmpty(); + Object _xblockexpression = null; { - boolean _isIsKey = att.isIsKey(); - if (_isIsKey) { - CharSequence _html_AttributeStyleForPK = this.html_AttributeStyleForPK(att); - _builder.append(_html_AttributeStyleForPK); - _builder.newLineIfNotEmpty(); - } else { - String _name = att.getName(); - _builder.append(_name); - _builder.newLineIfNotEmpty(); + hasPK = true; + _xblockexpression = null; + } + _builder.append(_xblockexpression); + _builder.newLineIfNotEmpty(); + } + } + _builder.newLine(); + { + final Function1 _function_1 = (Attribute it) -> { + boolean _isIsKey = it.isIsKey(); + return Boolean.valueOf((!_isIsKey)); + }; + Iterable _filter_1 = IterableExtensions.filter(e.getAttributes(), _function_1); + boolean _hasElements_1 = false; + for(final Attribute att_1 : _filter_1) { + if (!_hasElements_1) { + _hasElements_1 = true; + String _xifexpression = null; + if (hasPK) { + _xifexpression = " | "; } + _builder.append(_xifexpression); + } else { + _builder.appendImmediate(" | ", ""); } + String _name = att_1.getName(); + _builder.append(_name); + _builder.newLineIfNotEmpty(); } } + Object _xblockexpression_1 = null; + { + hasPK = false; + _xblockexpression_1 = null; + } + _builder.append(_xblockexpression_1); + _builder.newLineIfNotEmpty(); + _builder.newLine(); { Entity _is = e.getIs(); boolean _tripleNotEquals = (_is != null); if (_tripleNotEquals) { { - EList _attributes_1 = e.getIs().getAttributes(); - for(final Attribute PKInherited : _attributes_1) { - { - boolean _isIsKey_1 = PKInherited.isIsKey(); - if (_isIsKey_1) { - _builder.append(", "); - CharSequence _html_AttributeStyleForInheritedPK = this.html_AttributeStyleForInheritedPK(PKInherited); - _builder.append(_html_AttributeStyleForInheritedPK); - _builder.newLineIfNotEmpty(); - } + final Function1 _function_2 = (Attribute it) -> { + return Boolean.valueOf(it.isIsKey()); + }; + Iterable _filter_2 = IterableExtensions.filter(e.getIs().getAttributes(), _function_2); + boolean _hasElements_2 = false; + for(final Attribute PKInherited : _filter_2) { + if (!_hasElements_2) { + _hasElements_2 = true; + _builder.append(" | "); + } else { + _builder.appendImmediate(" | ", ""); } + CharSequence _html_AttributeStyleForInheritedPK = this.html_AttributeStyleForInheritedPK(PKInherited); + _builder.append(_html_AttributeStyleForInheritedPK); + _builder.newLineIfNotEmpty(); } } } @@ -307,28 +453,48 @@ private CharSequence html_AtributesMapping(final ERModel m, final Entity e) { private CharSequence html_AttributeStyleForPK(final Attribute a) { StringConcatenation _builder = new StringConcatenation(); - _builder.append(""); + _builder.append(" "); String _lowerCase = a.getName().toLowerCase(); _builder.append(_lowerCase); - _builder.newLineIfNotEmpty(); return _builder; } private CharSequence html_AttributeStyleForInheritedPK(final Attribute a) { StringConcatenation _builder = new StringConcatenation(); - _builder.append(""); + _builder.append(" "); String _lowerCase = a.getName().toLowerCase(); _builder.append(_lowerCase); - _builder.newLineIfNotEmpty(); + return _builder; + } + + private CharSequence html_AttributeStyleForInheritedPK(final Entity e) { + StringConcatenation _builder = new StringConcatenation(); + { + final Function1 _function = (Attribute it) -> { + return Boolean.valueOf(it.isIsKey()); + }; + Iterable _filter = IterableExtensions.filter(e.getAttributes(), _function); + boolean _hasElements = false; + for(final Attribute attribute : _filter) { + if (!_hasElements) { + _hasElements = true; + } else { + _builder.appendImmediate(" | ", ""); + } + _builder.append(" "); + String _lowerCase = attribute.getName().toLowerCase(); + _builder.append(_lowerCase); + _builder.newLineIfNotEmpty(); + } + } return _builder; } private CharSequence html_AttributeStyleForFK(final Attribute a) { StringConcatenation _builder = new StringConcatenation(); - _builder.append(""); + _builder.append(" "); String _lowerCase = a.getName().toLowerCase(); _builder.append(_lowerCase); - _builder.newLineIfNotEmpty(); return _builder; } @@ -353,34 +519,71 @@ private CharSequence html_1To1_RefCheck(final ERModel m, final Entity e) { boolean _tripleEquals = (_is == null); if (_tripleEquals) { { - EList _attributes = aux.getAttributes(); - for(final Attribute aux2 : _attributes) { + boolean _equalsIgnoreCase_2 = relation.getLeftEnding().getTarget().toString().equalsIgnoreCase(relation.getRightEnding().getTarget().toString()); + boolean _not = (!_equalsIgnoreCase_2); + if (_not) { { - boolean _isIsKey = aux2.isIsKey(); - if (_isIsKey) { - _builder.append(", "); + final Function1 _function = (Attribute it) -> { + return Boolean.valueOf(it.isIsKey()); + }; + Iterable _filter = IterableExtensions.filter(aux.getAttributes(), _function); + boolean _hasElements = false; + for(final Attribute aux2 : _filter) { + if (!_hasElements) { + _hasElements = true; + _builder.append(" | "); + } else { + _builder.appendImmediate(" | ", ""); + } CharSequence _html_AttributeStyleForFK = this.html_AttributeStyleForFK(aux2); _builder.append(_html_AttributeStyleForFK); - _builder.append("_fk#1:1=1"); + _builder.append("_fk"); _builder.newLineIfNotEmpty(); } } + } else { + CharSequence _html_ListPKtoFK_SelfRelationship = this.html_ListPKtoFK_SelfRelationship(aux, relation.getName().toLowerCase()); + _builder.append(_html_ListPKtoFK_SelfRelationship); + _builder.newLineIfNotEmpty(); } } + _builder.append("\t\t\t\t\t\t\t"); + _builder.newLine(); + _builder.newLine(); + _builder.append("\t\t\t\t\t\t\t"); + _builder.newLine(); } else { Entity _is_1 = aux.getIs(); boolean _tripleNotEquals = (_is_1 != null); if (_tripleNotEquals) { { - EList _attributes_1 = aux.getIs().getAttributes(); - for(final Attribute aux3 : _attributes_1) { + final Function1 _function_1 = (Attribute it) -> { + return Boolean.valueOf(it.isIsKey()); + }; + Iterable _filter_1 = IterableExtensions.filter(aux.getIs().getAttributes(), _function_1); + boolean _hasElements_1 = false; + for(final Attribute aux3 : _filter_1) { + if (!_hasElements_1) { + _hasElements_1 = true; + _builder.append(" | "); + } else { + _builder.appendImmediate(" | ", ""); + } { - boolean _isIsKey_1 = aux3.isIsKey(); - if (_isIsKey_1) { - _builder.append(", "); + boolean _equalsIgnoreCase_3 = relation.getLeftEnding().getTarget().toString().equalsIgnoreCase(relation.getRightEnding().getTarget().toString()); + boolean _not_1 = (!_equalsIgnoreCase_3); + if (_not_1) { CharSequence _html_AttributeStyleForFK_1 = this.html_AttributeStyleForFK(aux3); _builder.append(_html_AttributeStyleForFK_1); - _builder.append("_fk#1:1=2"); + _builder.append("_fk"); + _builder.newLineIfNotEmpty(); + } else { + CharSequence _html_AttributeStyleForFK_2 = this.html_AttributeStyleForFK(aux3); + String _plus = (_html_AttributeStyleForFK_2 + "_"); + String _lowerCase = relation.getName().toLowerCase(); + String _plus_1 = (_plus + _lowerCase); + _builder.append(_plus_1); + _builder.append("_fk"); _builder.newLineIfNotEmpty(); } } @@ -425,26 +628,33 @@ private CharSequence html_1ToN_RefCheck(final ERModel m, final Entity e) { Entity _is = aux.getIs(); boolean _tripleEquals = (_is == null); if (_tripleEquals) { - CharSequence _html_ListPKtoFK = this.html_ListPKtoFK(aux); - _builder.append(_html_ListPKtoFK); - _builder.append("#1"); - _builder.newLineIfNotEmpty(); + { + boolean _equalsIgnoreCase_2 = relation.getLeftEnding().getTarget().toString().equalsIgnoreCase(relation.getRightEnding().getTarget().toString()); + boolean _not = (!_equalsIgnoreCase_2); + if (_not) { + CharSequence _html_ListPKtoFK = this.html_ListPKtoFK(aux); + _builder.append(_html_ListPKtoFK); + _builder.newLineIfNotEmpty(); + } else { + CharSequence _html_ListPKtoFK_SelfRelationship = this.html_ListPKtoFK_SelfRelationship(aux, relation.getName().toLowerCase()); + _builder.append(_html_ListPKtoFK_SelfRelationship); + _builder.newLineIfNotEmpty(); + } + } } else { Entity _is_1 = aux.getIs(); boolean _tripleNotEquals = (_is_1 != null); if (_tripleNotEquals) { { - boolean _equalsIgnoreCase_2 = relation.getLeftEnding().getTarget().toString().equalsIgnoreCase(relation.getRightEnding().getTarget().toString()); - if (_equalsIgnoreCase_2) { - _builder.append(", "); - String _string = relation.getName().toString(); - _builder.append(_string); - _builder.append("_fk#2"); + boolean _equalsIgnoreCase_3 = relation.getLeftEnding().getTarget().toString().equalsIgnoreCase(relation.getRightEnding().getTarget().toString()); + if (_equalsIgnoreCase_3) { + CharSequence _html_ListPKtoFK_SelfRelationship_1 = this.html_ListPKtoFK_SelfRelationship(aux, relation.getName().toLowerCase()); + _builder.append(_html_ListPKtoFK_SelfRelationship_1); _builder.newLineIfNotEmpty(); } else { - boolean _equalsIgnoreCase_3 = relation.getLeftEnding().getTarget().toString().equalsIgnoreCase(relation.getRightEnding().getTarget().toString()); - boolean _not = (!_equalsIgnoreCase_3); - if (_not) { + boolean _equalsIgnoreCase_4 = relation.getLeftEnding().getTarget().toString().equalsIgnoreCase(relation.getRightEnding().getTarget().toString()); + boolean _not_1 = (!_equalsIgnoreCase_4); + if (_not_1) { Object _xblockexpression = null; { EObject _target = relation.getLeftEnding().getTarget(); @@ -455,7 +665,6 @@ private CharSequence html_1ToN_RefCheck(final ERModel m, final Entity e) { _builder.newLineIfNotEmpty(); CharSequence _html_ListPKtoFK_1 = this.html_ListPKtoFK(temp.getIs()); _builder.append(_html_ListPKtoFK_1); - _builder.append("#3"); _builder.newLineIfNotEmpty(); } } @@ -473,41 +682,51 @@ private CharSequence html_1ToN_RefCheck(final ERModel m, final Entity e) { if (((relation.getLeftEnding().getCardinality().equalsIgnoreCase("(0:N)") || relation.getLeftEnding().getCardinality().equalsIgnoreCase("(1:N)")) && (relation.getRightEnding().getCardinality().equalsIgnoreCase("(0:1)") || relation.getRightEnding().getCardinality().equalsIgnoreCase("(1:1)")))) { _builder.newLine(); { - boolean _equalsIgnoreCase_4 = relation.getLeftEnding().getTarget().toString().equalsIgnoreCase(e.getName()); - if (_equalsIgnoreCase_4) { + boolean _equalsIgnoreCase_5 = relation.getLeftEnding().getTarget().toString().equalsIgnoreCase(e.getName()); + if (_equalsIgnoreCase_5) { { EList _entities_1 = m.getEntities(); for(final Entity aux_1 : _entities_1) { { - boolean _equalsIgnoreCase_5 = relation.getRightEnding().getTarget().toString().equalsIgnoreCase(aux_1.getName()); - if (_equalsIgnoreCase_5) { + boolean _equalsIgnoreCase_6 = relation.getRightEnding().getTarget().toString().equalsIgnoreCase(aux_1.getName()); + if (_equalsIgnoreCase_6) { { Entity _is_2 = aux_1.getIs(); boolean _tripleEquals_1 = (_is_2 == null); if (_tripleEquals_1) { - CharSequence _html_ListPKtoFK_2 = this.html_ListPKtoFK(aux_1); - _builder.append(_html_ListPKtoFK_2); - _builder.append("#4"); - _builder.newLineIfNotEmpty(); + { + boolean _equalsIgnoreCase_7 = relation.getLeftEnding().getTarget().toString().equalsIgnoreCase(relation.getRightEnding().getTarget().toString()); + boolean _not_2 = (!_equalsIgnoreCase_7); + if (_not_2) { + CharSequence _html_ListPKtoFK_2 = this.html_ListPKtoFK(aux_1); + _builder.append(_html_ListPKtoFK_2); + _builder.newLineIfNotEmpty(); + } else { + CharSequence _html_ListPKtoFK_SelfRelationship_2 = this.html_ListPKtoFK_SelfRelationship(aux_1, relation.getName().toLowerCase()); + _builder.append(_html_ListPKtoFK_SelfRelationship_2); + _builder.newLineIfNotEmpty(); + } + } } else { Entity _is_3 = aux_1.getIs(); boolean _tripleNotEquals_1 = (_is_3 != null); if (_tripleNotEquals_1) { { - boolean _equalsIgnoreCase_6 = relation.getRightEnding().getTarget().toString().equalsIgnoreCase(relation.getLeftEnding().getTarget().toString()); - if (_equalsIgnoreCase_6) { - _builder.append(", "); - String _string_1 = relation.getName().toString(); - _builder.append(_string_1); - _builder.append("_fk#5"); + boolean _equalsIgnoreCase_8 = relation.getRightEnding().getTarget().toString().equalsIgnoreCase(relation.getLeftEnding().getTarget().toString()); + if (_equalsIgnoreCase_8) { + _builder.newLine(); + _builder.newLine(); + _builder.newLine(); + CharSequence _html_ListPKtoFK_SelfRelationship_3 = this.html_ListPKtoFK_SelfRelationship(aux_1, relation.getName().toLowerCase()); + _builder.append(_html_ListPKtoFK_SelfRelationship_3); _builder.newLineIfNotEmpty(); } else { - boolean _equalsIgnoreCase_7 = relation.getRightEnding().getTarget().toString().equalsIgnoreCase(relation.getLeftEnding().getTarget().toString()); - boolean _not_1 = (!_equalsIgnoreCase_7); - if (_not_1) { + boolean _equalsIgnoreCase_9 = relation.getRightEnding().getTarget().toString().equalsIgnoreCase(relation.getLeftEnding().getTarget().toString()); + boolean _not_3 = (!_equalsIgnoreCase_9); + if (_not_3) { Object _xblockexpression_1 = null; { - EObject _target = relation.getLeftEnding().getTarget(); + EObject _target = relation.getRightEnding().getTarget(); temp = ((Entity) _target); _xblockexpression_1 = null; } @@ -515,7 +734,6 @@ private CharSequence html_1ToN_RefCheck(final ERModel m, final Entity e) { _builder.newLineIfNotEmpty(); CharSequence _html_ListPKtoFK_3 = this.html_ListPKtoFK(temp.getIs()); _builder.append(_html_ListPKtoFK_3); - _builder.append("#6"); _builder.newLineIfNotEmpty(); } } @@ -553,149 +771,182 @@ private CharSequence html_NtoN_EntityCreation(final ERModel m) { 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)")))) { { if (((relation.getLeftEnding().getTarget() instanceof Entity) && (relation.getRightEnding().getTarget() instanceof Entity))) { - _builder.append("\t\t\t"); _builder.newLine(); { boolean _isNullOrEmpty = StringExtensions.isNullOrEmpty(relation.getName()); if (_isNullOrEmpty) { - _builder.append("\t\t\t"); - _builder.append("
    "); + _builder.append("
    "); String _upperCase = relation.getLeftEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase, "\t\t\t"); - _builder.append("_"); + String _plus = (_upperCase + "_"); String _upperCase_1 = relation.getRightEnding().getTarget().toString().toUpperCase(); - _builder.append(_upperCase_1, "\t\t\t"); - _builder.append("
    ("); + String _plus_1 = (_plus + _upperCase_1); + CharSequence _html_EntityNameTag = this.html_EntityNameTag(_plus_1); + _builder.append(_html_EntityNameTag); + _builder.append(" ["); _builder.newLineIfNotEmpty(); } else { boolean _isNullOrEmpty_1 = StringExtensions.isNullOrEmpty(relation.getName()); boolean _not = (!_isNullOrEmpty_1); if (_not) { - _builder.append("\t\t\t"); - _builder.append("
    "); - String _upperCase_2 = relation.getName().toUpperCase(); - _builder.append(_upperCase_2, "\t\t\t"); - _builder.append(" ("); + _builder.append("
    "); + CharSequence _html_EntityNameTag_1 = this.html_EntityNameTag(relation.getName()); + _builder.append(_html_EntityNameTag_1); + _builder.append(" ["); _builder.newLineIfNotEmpty(); } } } + _builder.newLine(); { EList _entities = m.getEntities(); for(final Entity entity : _entities) { - _builder.append("\t\t\t"); - _builder.newLine(); { - if ((relation.getLeftEnding().getTarget().toString().equalsIgnoreCase(entity.getName()) && (relation.getLeftEnding().getTarget().toString() != relation.getRightEnding().getTarget().toString()))) { - _builder.append("\t\t\t"); - _builder.append(""); - String _string = relation.getLeftEnding().getTarget().toString(); - _builder.append(_string, "\t\t\t"); - _builder.append("_fk,"); - _builder.newLineIfNotEmpty(); + if ((relation.getLeftEnding().getTarget().toString().equalsIgnoreCase(entity.getName()) && (!relation.getLeftEnding().getTarget().toString().equalsIgnoreCase(relation.getRightEnding().getTarget().toString())))) { + { + final Function1 _function = (Attribute it) -> { + return Boolean.valueOf(it.isIsKey()); + }; + Iterable _filter = IterableExtensions.filter(entity.getAttributes(), _function); + boolean _hasElements = false; + for(final Attribute attribute : _filter) { + if (!_hasElements) { + _hasElements = true; + } else { + _builder.appendImmediate(" | ", ""); + } + CharSequence _html_AttributeStyleForInheritedPK = this.html_AttributeStyleForInheritedPK(attribute); + _builder.append(_html_AttributeStyleForInheritedPK); + _builder.append("_fk"); + _builder.newLineIfNotEmpty(); + } + } } } - _builder.append("\t\t\t"); - _builder.newLine(); + } + } + _builder.newLine(); + { + EList _entities_1 = m.getEntities(); + for(final Entity entity_1 : _entities_1) { { - if ((relation.getRightEnding().getTarget().toString().equalsIgnoreCase(entity.getName()) && (relation.getRightEnding().getTarget().toString() != relation.getLeftEnding().getTarget().toString()))) { - _builder.append("\t\t\t"); - _builder.append(""); - String _string_1 = relation.getRightEnding().getTarget().toString(); - _builder.append(_string_1, "\t\t\t"); - _builder.append("_fk"); - _builder.newLineIfNotEmpty(); + if ((relation.getRightEnding().getTarget().toString().equalsIgnoreCase(entity_1.getName()) && (!relation.getLeftEnding().getTarget().toString().equalsIgnoreCase(relation.getRightEnding().getTarget().toString())))) { + { + final Function1 _function_1 = (Attribute it) -> { + return Boolean.valueOf(it.isIsKey()); + }; + Iterable _filter_1 = IterableExtensions.filter(entity_1.getAttributes(), _function_1); + boolean _hasElements_1 = false; + for(final Attribute attribute_1 : _filter_1) { + if (!_hasElements_1) { + _hasElements_1 = true; + _builder.append(" | "); + } else { + _builder.appendImmediate(" | ", ""); + } + CharSequence _html_AttributeStyleForInheritedPK_1 = this.html_AttributeStyleForInheritedPK(attribute_1); + _builder.append(_html_AttributeStyleForInheritedPK_1); + _builder.append("_fk"); + _builder.newLineIfNotEmpty(); + } + } } } - _builder.append("\t\t\t"); - _builder.newLine(); - _builder.append("\t\t\t"); + } + } + _builder.newLine(); + { + EList _entities_2 = m.getEntities(); + for(final Entity entity_2 : _entities_2) { _builder.append("\t\t\t\t"); _builder.newLine(); { - if ((relation.getLeftEnding().getTarget().toString().equalsIgnoreCase(entity.getName()) && relation.getLeftEnding().getTarget().toString().equalsIgnoreCase(relation.getRightEnding().getTarget().toString()))) { + if ((relation.getLeftEnding().getTarget().toString().equalsIgnoreCase(entity_2.getName()) && relation.getLeftEnding().getTarget().toString().equalsIgnoreCase(relation.getRightEnding().getTarget().toString()))) { { - EList _attributes = entity.getAttributes(); - for(final Attribute attribute : _attributes) { - { - boolean _isIsKey = attribute.isIsKey(); - if (_isIsKey) { - _builder.append("\t\t\t"); - _builder.append(""); - String _name = attribute.getName(); - _builder.append(_name, "\t\t\t"); - _builder.append("__fk1,"); - _builder.newLineIfNotEmpty(); - } + final Function1 _function_2 = (Attribute it) -> { + return Boolean.valueOf(it.isIsKey()); + }; + Iterable _filter_2 = IterableExtensions.filter(entity_2.getAttributes(), _function_2); + boolean _hasElements_2 = false; + for(final Attribute attribute_2 : _filter_2) { + if (!_hasElements_2) { + _hasElements_2 = true; + } else { + _builder.appendImmediate(" | ", ""); } + CharSequence _html_AttributeStyleForInheritedPK_2 = this.html_AttributeStyleForInheritedPK(attribute_2); + _builder.append(_html_AttributeStyleForInheritedPK_2); + _builder.append("_fk_1 "); + _builder.newLineIfNotEmpty(); } } } } - _builder.append("\t\t\t"); _builder.newLine(); { - if ((relation.getRightEnding().getTarget().toString().equalsIgnoreCase(entity.getName()) && relation.getRightEnding().getTarget().toString().equalsIgnoreCase(relation.getLeftEnding().getTarget().toString()))) { + if ((relation.getRightEnding().getTarget().toString().equalsIgnoreCase(entity_2.getName()) && relation.getRightEnding().getTarget().toString().equalsIgnoreCase(relation.getLeftEnding().getTarget().toString()))) { { - EList _attributes_1 = entity.getAttributes(); - for(final Attribute attribute_1 : _attributes_1) { - { - boolean _isIsKey_1 = attribute_1.isIsKey(); - if (_isIsKey_1) { - _builder.append("\t\t\t"); - _builder.append(""); - String _name_1 = attribute_1.getName(); - _builder.append(_name_1, "\t\t\t"); - _builder.append("__fk2"); - _builder.newLineIfNotEmpty(); - } + final Function1 _function_3 = (Attribute it) -> { + return Boolean.valueOf(it.isIsKey()); + }; + Iterable _filter_3 = IterableExtensions.filter(entity_2.getAttributes(), _function_3); + boolean _hasElements_3 = false; + for(final Attribute attribute_3 : _filter_3) { + if (!_hasElements_3) { + _hasElements_3 = true; + _builder.append(" | "); + } else { + _builder.appendImmediate(" | ", ""); } + CharSequence _html_AttributeStyleForInheritedPK_3 = this.html_AttributeStyleForInheritedPK(attribute_3); + _builder.append(_html_AttributeStyleForInheritedPK_3); + _builder.append("_fk_2"); + _builder.newLineIfNotEmpty(); } } } } } } - _builder.append("\t\t\t"); _builder.newLine(); - _builder.append("\t\t\t\t\t\t"); + _builder.append("\t\t\t"); _builder.newLine(); { - EList _attributes_2 = relation.getAttributes(); - for(final Attribute attribute_2 : _attributes_2) { - { - if (((!StringExtensions.isNullOrEmpty(attribute_2.getName())) && attribute_2.isIsKey())) { - _builder.append("\t\t\t"); - _builder.append(", "); - String _name_2 = attribute_2.getName(); - _builder.append(_name_2, "\t\t\t"); - _builder.append("*"); - _builder.newLineIfNotEmpty(); - } + final Function1 _function_4 = (Attribute i) -> { + return Boolean.valueOf(((!StringExtensions.isNullOrEmpty(i.getName())) && i.isIsKey())); + }; + Iterable _filter_4 = IterableExtensions.filter(relation.getAttributes(), _function_4); + boolean _hasElements_4 = false; + for(final Attribute attribute_4 : _filter_4) { + if (!_hasElements_4) { + _hasElements_4 = true; + _builder.append(" | "); + } else { + _builder.appendImmediate(" | ", ""); } + CharSequence _html_AttributeStyleForPK = this.html_AttributeStyleForPK(attribute_4); + _builder.append(_html_AttributeStyleForPK); + _builder.newLineIfNotEmpty(); } } - _builder.newLine(); { - EList _attributes_3 = relation.getAttributes(); - for(final Attribute attribute_3 : _attributes_3) { - { - if (((!StringExtensions.isNullOrEmpty(attribute_3.getName())) && (!attribute_3.isIsKey()))) { - _builder.append("\t\t\t"); - _builder.append(", "); - String _name_3 = attribute_3.getName(); - _builder.append(_name_3, "\t\t\t"); - _builder.newLineIfNotEmpty(); - } + final Function1 _function_5 = (Attribute i) -> { + return Boolean.valueOf(((!StringExtensions.isNullOrEmpty(i.getName())) && (!i.isIsKey()))); + }; + Iterable _filter_5 = IterableExtensions.filter(relation.getAttributes(), _function_5); + boolean _hasElements_5 = false; + for(final Attribute attribute_5 : _filter_5) { + if (!_hasElements_5) { + _hasElements_5 = true; + _builder.append(" | "); + } else { + _builder.appendImmediate(" | ", ""); } + String _lowerCase = attribute_5.getName().toLowerCase(); + _builder.append(_lowerCase); + _builder.newLineIfNotEmpty(); } } - _builder.append("\t\t\t\t\t"); - _builder.newLine(); - _builder.append("\t\t\t"); - _builder.append(")
    "); - _builder.newLine(); - _builder.append("\t\t\t"); + _builder.append("]
    \t"); _builder.newLine(); } } @@ -703,189 +954,1141 @@ private CharSequence html_NtoN_EntityCreation(final ERModel m) { } } } - _builder.append("\t"); - _builder.append("
    "); - _builder.newLine(); - _builder.append("\t"); - _builder.newLine(); - return _builder; - } - - private CharSequence html_ListPKtoFK(final Entity e) { - StringConcatenation _builder = new StringConcatenation(); - { - EList _attributes = e.getAttributes(); - for(final Attribute att : _attributes) { - { - boolean _isIsKey = att.isIsKey(); - if (_isIsKey) { - _builder.append(", "); - String _name = att.getName(); - _builder.append(_name); - _builder.append("_fk"); - _builder.newLineIfNotEmpty(); - } - } - } - } return _builder; } - private CharSequence html_RelationshipsMapping(final ERModel m) { + private CharSequence html_Ternary_EntityCreation(final ERModel m) { StringConcatenation _builder = new StringConcatenation(); - _builder.append("
    "); - _builder.newLine(); - _builder.append("

    "); - _builder.newLine(); - _builder.append(""); - _builder.newLine(); - _builder.append("  Mapped References"); - _builder.newLine(); - _builder.append("

    \t "); _builder.newLine(); - _builder.append("
    \t"); + Relation tempRel = null; + _builder.newLineIfNotEmpty(); _builder.newLine(); - _builder.append("

    \t"); _builder.newLine(); { - EList _relations = m.getRelations(); + final Function1 _function = (Relation i) -> { + return Boolean.valueOf(((i.getLeftEnding().getTarget() instanceof Relation) || (i.getRightEnding().getTarget() instanceof Relation))); + }; + Iterable _filter = IterableExtensions.filter(m.getRelations(), _function); boolean _hasElements = false; - for(final Relation relation : _relations) { + for(final Relation relation : _filter) { if (!_hasElements) { _hasElements = true; } else { - _builder.appendImmediate("

    ", ""); - } - { - EObject _target = relation.getLeftEnding().getTarget(); - if ((_target instanceof Entity)) { - Object _xblockexpression = null; - { - EObject _target_1 = relation.getLeftEnding().getTarget(); - this.lEnt = ((Entity) _target_1); - _xblockexpression = null; - } - _builder.append(_xblockexpression); - _builder.newLineIfNotEmpty(); - } else { - Object _xblockexpression_1 = null; - { - EObject _target_1 = relation.getLeftEnding().getTarget(); - this.lRel = ((Relation) _target_1); - _xblockexpression_1 = null; - } - _builder.append(_xblockexpression_1); - _builder.newLineIfNotEmpty(); - } - } - { - EObject _target_1 = relation.getRightEnding().getTarget(); - if ((_target_1 instanceof Entity)) { - Object _xblockexpression_2 = null; - { - EObject _target_2 = relation.getRightEnding().getTarget(); - this.rEnt = ((Entity) _target_2); - _xblockexpression_2 = null; - } - _builder.append(_xblockexpression_2); - _builder.newLineIfNotEmpty(); - } else { - Object _xblockexpression_3 = null; - { - EObject _target_2 = relation.getRightEnding().getTarget(); - this.rRel = ((Relation) _target_2); - _xblockexpression_3 = null; - } - _builder.append(_xblockexpression_3); - _builder.newLineIfNotEmpty(); - } + _builder.appendImmediate("]
    ", ""); } _builder.newLine(); - _builder.newLine(); - _builder.newLine(); - _builder.append("Relationship: "); { boolean _isNullOrEmpty = StringExtensions.isNullOrEmpty(relation.getName()); if (_isNullOrEmpty) { - _builder.append(" _UnnamedEntity_ "); + _builder.newLine(); + _builder.append("\t"); + _builder.append("
    "); + String _upperCase = relation.getLeftEnding().getTarget().toString().toUpperCase(); + String _plus = (_upperCase + "_"); + String _upperCase_1 = relation.getRightEnding().getTarget().toString().toUpperCase(); + String _plus_1 = (_plus + _upperCase_1); + CharSequence _html_EntityNameTag = this.html_EntityNameTag(_plus_1); + _builder.append(_html_EntityNameTag, "\t"); + _builder.append(" ["); + _builder.newLineIfNotEmpty(); + _builder.newLine(); } else { boolean _isNullOrEmpty_1 = StringExtensions.isNullOrEmpty(relation.getName()); boolean _not = (!_isNullOrEmpty_1); if (_not) { - String _name = relation.getName(); - _builder.append(_name); - } - } - } - _builder.append(" "); - _builder.newLineIfNotEmpty(); - { - if ((this.lEnt != null)) { - String _name_1 = this.lEnt.getName(); - _builder.append(_name_1); - _builder.newLineIfNotEmpty(); - } else { - if ((this.lRel != null)) { - String _name_2 = this.lRel.getName(); - _builder.append(_name_2); + _builder.newLine(); + _builder.append("\t"); + _builder.append("
    "); + CharSequence _html_EntityNameTag_1 = this.html_EntityNameTag(relation.getName()); + _builder.append(_html_EntityNameTag_1, "\t"); + _builder.append(" ["); _builder.newLineIfNotEmpty(); + _builder.newLine(); } } } - String _string = relation.getLeftEnding().getCardinality().toString(); - _builder.append(_string); - _builder.append(" relates "); - String _cardinality = relation.getRightEnding().getCardinality(); - _builder.append(_cardinality); - _builder.newLineIfNotEmpty(); + _builder.newLine(); + _builder.newLine(); { - if ((this.rEnt != null)) { - String _name_3 = this.rEnt.getName(); - _builder.append(_name_3); + EObject _target = relation.getLeftEnding().getTarget(); + if ((_target instanceof Entity)) { + _builder.newLine(); + _builder.append("\t"); + EObject _target_1 = relation.getLeftEnding().getTarget(); + CharSequence _html_AttributeStyleForInheritedPK = this.html_AttributeStyleForInheritedPK(((Entity) _target_1)); + _builder.append(_html_AttributeStyleForInheritedPK, "\t"); _builder.newLineIfNotEmpty(); + _builder.newLine(); } else { - if ((this.rRel != null)) { - String _name_4 = this.rRel.getName(); - _builder.append(_name_4); + EObject _target_2 = relation.getRightEnding().getTarget(); + if ((_target_2 instanceof Entity)) { + _builder.newLine(); + _builder.append("\t"); + EObject _target_3 = relation.getRightEnding().getTarget(); + CharSequence _html_AttributeStyleForInheritedPK_1 = this.html_AttributeStyleForInheritedPK(((Entity) _target_3)); + _builder.append(_html_AttributeStyleForInheritedPK_1, "\t"); _builder.newLineIfNotEmpty(); + _builder.newLine(); } } } - _builder.append("

    "); + _builder.newLine(); + _builder.append("|"); _builder.newLine(); _builder.newLine(); - Object _xblockexpression_4 = null; { - this.lEnt = null; - _xblockexpression_4 = null; + EObject _target_4 = relation.getLeftEnding().getTarget(); + if ((_target_4 instanceof Relation)) { + _builder.newLine(); + _builder.append("\t"); + Object _xblockexpression = null; + { + EObject _target_5 = relation.getLeftEnding().getTarget(); + tempRel = ((Relation) _target_5); + _xblockexpression = null; + } + _builder.append(_xblockexpression, "\t"); + _builder.newLineIfNotEmpty(); + _builder.newLine(); + _builder.append("\t"); + EObject _target_5 = tempRel.getLeftEnding().getTarget(); + CharSequence _html_AttributeStyleForInheritedPK_2 = this.html_AttributeStyleForInheritedPK(((Entity) _target_5)); + _builder.append(_html_AttributeStyleForInheritedPK_2, "\t"); + _builder.newLineIfNotEmpty(); + _builder.append("|"); + _builder.newLine(); + _builder.append("\t"); + EObject _target_6 = tempRel.getRightEnding().getTarget(); + CharSequence _html_AttributeStyleForInheritedPK_3 = this.html_AttributeStyleForInheritedPK(((Entity) _target_6)); + _builder.append(_html_AttributeStyleForInheritedPK_3, "\t"); + _builder.newLineIfNotEmpty(); + _builder.newLine(); + } else { + EObject _target_7 = relation.getRightEnding().getTarget(); + if ((_target_7 instanceof Relation)) { + _builder.newLine(); + _builder.append("\t"); + Object _xblockexpression_1 = null; + { + EObject _target_8 = relation.getRightEnding().getTarget(); + tempRel = ((Relation) _target_8); + _xblockexpression_1 = null; + } + _builder.append(_xblockexpression_1, "\t"); + _builder.newLineIfNotEmpty(); + _builder.append("\t"); + _builder.newLine(); + _builder.append("\t"); + EObject _target_8 = tempRel.getLeftEnding().getTarget(); + CharSequence _html_AttributeStyleForInheritedPK_4 = this.html_AttributeStyleForInheritedPK(((Entity) _target_8)); + _builder.append(_html_AttributeStyleForInheritedPK_4, "\t"); + _builder.newLineIfNotEmpty(); + _builder.append("|"); + _builder.newLine(); + _builder.append("\t"); + EObject _target_9 = tempRel.getRightEnding().getTarget(); + CharSequence _html_AttributeStyleForInheritedPK_5 = this.html_AttributeStyleForInheritedPK(((Entity) _target_9)); + _builder.append(_html_AttributeStyleForInheritedPK_5, "\t"); + _builder.newLineIfNotEmpty(); + } + } } - _builder.append(_xblockexpression_4); - Object _xblockexpression_5 = null; + _builder.newLine(); + _builder.newLine(); + _builder.newLine(); + _builder.newLine(); + { + final Function1 _function_1 = (Attribute it) -> { + return Boolean.valueOf(it.isIsKey()); + }; + Iterable _filter_1 = IterableExtensions.filter(relation.getAttributes(), _function_1); + boolean _hasElements_1 = false; + for(final Attribute attribute : _filter_1) { + if (!_hasElements_1) { + _hasElements_1 = true; + _builder.append(" | "); + } else { + _builder.appendImmediate(" | ", ""); + } + _builder.newLine(); + _builder.append("\t\t"); + CharSequence _html_AttributeStyleForPK = this.html_AttributeStyleForPK(attribute); + _builder.append(_html_AttributeStyleForPK, "\t\t"); + _builder.newLineIfNotEmpty(); + _builder.newLine(); + } + } + _builder.newLine(); + { + final Function1 _function_2 = (Attribute it) -> { + boolean _isIsKey = it.isIsKey(); + return Boolean.valueOf((!_isIsKey)); + }; + Iterable _filter_2 = IterableExtensions.filter(relation.getAttributes(), _function_2); + boolean _hasElements_2 = false; + for(final Attribute attribute_1 : _filter_2) { + if (!_hasElements_2) { + _hasElements_2 = true; + _builder.append(" | "); + } else { + _builder.appendImmediate(" | ", ""); + } + _builder.newLine(); + _builder.append("\t"); + String _lowerCase = attribute_1.getName().toLowerCase(); + _builder.append(_lowerCase, "\t"); + _builder.newLineIfNotEmpty(); + _builder.newLine(); + } + } + _builder.append("\t\t"); + _builder.newLine(); + } + if (_hasElements) { + _builder.append("]
    "); + } + } + return _builder; + } + + private CharSequence html_ListPKtoFK(final Entity e) { + StringConcatenation _builder = new StringConcatenation(); + { + final Function1 _function = (Attribute it) -> { + return Boolean.valueOf(it.isIsKey()); + }; + Iterable _filter = IterableExtensions.filter(e.getAttributes(), _function); + boolean _hasElements = false; + for(final Attribute att : _filter) { + if (!_hasElements) { + _hasElements = true; + _builder.append(" | "); + } else { + _builder.appendImmediate(" | ", ""); + } + _builder.append(" "); + String _lowerCase = att.getName().toLowerCase(); + _builder.append(_lowerCase); + _builder.append("_fk"); + _builder.newLineIfNotEmpty(); + } + } + return _builder; + } + + private CharSequence html_ListPKtoFK_Alt(final Entity e) { + StringConcatenation _builder = new StringConcatenation(); + { + final Function1 _function = (Attribute it) -> { + return Boolean.valueOf(it.isIsKey()); + }; + Iterable _filter = IterableExtensions.filter(e.getAttributes(), _function); + boolean _hasElements = false; + for(final Attribute att : _filter) { + if (!_hasElements) { + _hasElements = true; + } else { + _builder.appendImmediate(" , ", ""); + } + _builder.append(""); + String _lowerCase = att.getName().toLowerCase(); + _builder.append(_lowerCase); + _builder.append("_fk"); + _builder.newLineIfNotEmpty(); + } + } + return _builder; + } + + private CharSequence html_ListPKtoFK_SelfRelationship(final Entity e, final String r) { + StringConcatenation _builder = new StringConcatenation(); + { + final Function1 _function = (Attribute it) -> { + return Boolean.valueOf(it.isIsKey()); + }; + Iterable _filter = IterableExtensions.filter(e.getAttributes(), _function); + boolean _hasElements = false; + for(final Attribute att : _filter) { + if (!_hasElements) { + _hasElements = true; + _builder.append(" | "); + } else { + _builder.appendImmediate(" | ", ""); + } + _builder.append(" "); + String _lowerCase = att.getName().toLowerCase(); + String _plus = (_lowerCase + "_"); + String _plus_1 = (_plus + r); + _builder.append(_plus_1); + _builder.append("_fk"); + _builder.newLineIfNotEmpty(); + } + } + return _builder; + } + + private CharSequence html_ListPKtoFK_SelfRelationship_Alt(final Entity e, final String r) { + StringConcatenation _builder = new StringConcatenation(); + { + final Function1 _function = (Attribute it) -> { + return Boolean.valueOf(it.isIsKey()); + }; + Iterable _filter = IterableExtensions.filter(e.getAttributes(), _function); + boolean _hasElements = false; + for(final Attribute att : _filter) { + if (!_hasElements) { + _hasElements = true; + } else { + _builder.appendImmediate(" , ", ""); + } + _builder.append(""); + String _lowerCase = att.getName().toLowerCase(); + String _plus = (_lowerCase + "_"); + String _plus_1 = (_plus + r); + _builder.append(_plus_1); + _builder.append("_fk"); + _builder.newLineIfNotEmpty(); + } + } + return _builder; + } + + private CharSequence html_RelationshipsMapping(final ERModel m) { + StringConcatenation _builder = new StringConcatenation(); + _builder.append("


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

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

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

    \t"); + _builder.newLine(); + _builder.newLine(); + CharSequence _html_GeneralizationSpecialization_Relationship = this.html_GeneralizationSpecialization_Relationship(m); + _builder.append(_html_GeneralizationSpecialization_Relationship); + _builder.newLineIfNotEmpty(); + CharSequence _html_1To1_Relationships = this.html_1To1_Relationships(m); + _builder.append(_html_1To1_Relationships); + _builder.newLineIfNotEmpty(); + CharSequence _html_1ToN_Relationships = this.html_1ToN_Relationships(m); + _builder.append(_html_1ToN_Relationships); + _builder.newLineIfNotEmpty(); + CharSequence _html_NToN_Relationships = this.html_NToN_Relationships(m); + _builder.append(_html_NToN_Relationships); + _builder.newLineIfNotEmpty(); + CharSequence _html_Ternary_Relationships = this.html_Ternary_Relationships(m); + _builder.append(_html_Ternary_Relationships); + _builder.newLineIfNotEmpty(); + _builder.append("

    "); + _builder.newLine(); + return _builder; + } + + private CharSequence html_GeneralizationSpecialization_Relationship(final ERModel m) { + StringConcatenation _builder = new StringConcatenation(); + { + final Function1 _function = (Entity i) -> { + Entity _is = i.getIs(); + return Boolean.valueOf((_is != null)); + }; + Iterable _filter = IterableExtensions.filter(m.getEntities(), _function); + for(final Entity subclass : _filter) { + _builder.append("
    "); + _builder.newLine(); + _builder.append("# Generalization/Specialization

    "); + _builder.newLine(); + _builder.append("Attribute ("); + _builder.newLine(); + { + final Function1 _function_1 = (Attribute it) -> { + return Boolean.valueOf(it.isIsKey()); + }; + Iterable _filter_1 = IterableExtensions.filter(subclass.getIs().getAttributes(), _function_1); + boolean _hasElements = false; + for(final Attribute superclassAtt : _filter_1) { + if (!_hasElements) { + _hasElements = true; + } else { + _builder.appendImmediate(" , ", ""); + } + String _lowerCase = superclassAtt.getName().toLowerCase(); + _builder.append(_lowerCase); + _builder.newLineIfNotEmpty(); + } + } + _builder.append(") in "); + CharSequence _html_EntityNameTag = this.html_EntityNameTag(subclass.toString()); + _builder.append(_html_EntityNameTag); + _builder.append(" references "); + CharSequence _html_EntityNameTag_1 = this.html_EntityNameTag(subclass.getIs().toString()); + _builder.append(_html_EntityNameTag_1); + _builder.newLineIfNotEmpty(); + _builder.append("
    "); + _builder.newLine(); + } + } + return _builder; + } + + private CharSequence html_BinaryRelationshipNameStyle(final String nameRel, final String leftNameRel, final String rightNameRel, final String leftCardinaltyRel, final String rightCardinaltyRel) { + StringConcatenation _builder = new StringConcatenation(); + _builder.append("
    "); + _builder.newLine(); + _builder.append("## Binary Relationship

    "); + _builder.newLine(); + { + boolean _isBlank = nameRel.isBlank(); + if (_isBlank) { + _builder.append(" _UnnamedEntity_ "); + } else { + boolean _isBlank_1 = nameRel.isBlank(); + boolean _not = (!_isBlank_1); + if (_not) { + String _upperCase = nameRel.toUpperCase(); + _builder.append(_upperCase); + } + } + } + _builder.append(" "); + _builder.newLineIfNotEmpty(); + String _upperCase_1 = leftNameRel.toUpperCase(); + String _plus = (_upperCase_1 + " "); + String _upperCase_2 = leftCardinaltyRel.toUpperCase(); + String _plus_1 = (_plus + _upperCase_2); + _builder.append(_plus_1); + _builder.append(" relates "); + String _upperCase_3 = rightCardinaltyRel.toUpperCase(); + String _plus_2 = (_upperCase_3 + " "); + String _upperCase_4 = rightNameRel.toUpperCase(); + String _plus_3 = (_plus_2 + _upperCase_4); + _builder.append(_plus_3); + _builder.newLineIfNotEmpty(); + _builder.append("
    "); + _builder.newLine(); + _builder.append("
    "); + _builder.newLine(); + return _builder; + } + + private CharSequence html_1To1_Relationships(final ERModel m) { + StringConcatenation _builder = new StringConcatenation(); + { + final Function1 _function = (Relation i) -> { + return Boolean.valueOf(((i.getLeftEnding().getTarget() instanceof Entity) && (i.getRightEnding().getTarget() instanceof Entity))); + }; + Iterable _filter = IterableExtensions.filter(m.getRelations(), _function); + for(final Relation relation : _filter) { + { + if (((relation.getLeftEnding().getCardinality().equalsIgnoreCase("(0:1)") || relation.getLeftEnding().getCardinality().equalsIgnoreCase("(1:1)")) && (relation.getRightEnding().getCardinality().equalsIgnoreCase("(0:1)") || relation.getRightEnding().getCardinality().equalsIgnoreCase("(1:1)")))) { + _builder.append("\t"); + _builder.newLine(); + _builder.append("\t"); + CharSequence _html_BinaryRelationshipNameStyle = this.html_BinaryRelationshipNameStyle(relation.getName(), relation.getLeftEnding().getTarget().toString(), relation.getRightEnding().getTarget().toString(), relation.getLeftEnding().getCardinality(), relation.getRightEnding().getCardinality()); + _builder.append(_html_BinaryRelationshipNameStyle, "\t"); + _builder.newLineIfNotEmpty(); + _builder.newLine(); + _builder.append("\t"); + _builder.append("Attribute ( "); + _builder.newLine(); + { + EList _entities = m.getEntities(); + for(final Entity aux : _entities) { + { + boolean _equalsIgnoreCase = relation.getLeftEnding().getTarget().toString().equalsIgnoreCase(aux.getName()); + if (_equalsIgnoreCase) { + { + Entity _is = aux.getIs(); + boolean _tripleEquals = (_is == null); + if (_tripleEquals) { + { + boolean _equalsIgnoreCase_1 = relation.getLeftEnding().getTarget().toString().equalsIgnoreCase(relation.getRightEnding().getTarget().toString()); + boolean _not = (!_equalsIgnoreCase_1); + if (_not) { + { + final Function1 _function_1 = (Attribute it) -> { + return Boolean.valueOf(it.isIsKey()); + }; + Iterable _filter_1 = IterableExtensions.filter(aux.getAttributes(), _function_1); + for(final Attribute aux2 : _filter_1) { + _builder.append("\t"); + String _lowerCase = aux2.getName().toLowerCase(); + _builder.append(_lowerCase, "\t"); + _builder.append("_fk"); + _builder.newLineIfNotEmpty(); + } + } + } else { + _builder.append("\t"); + CharSequence _html_ListPKtoFK_SelfRelationship = this.html_ListPKtoFK_SelfRelationship(aux, relation.getName().toLowerCase()); + _builder.append(_html_ListPKtoFK_SelfRelationship, "\t"); + _builder.newLineIfNotEmpty(); + } + } + } else { + Entity _is_1 = aux.getIs(); + boolean _tripleNotEquals = (_is_1 != null); + if (_tripleNotEquals) { + { + final Function1 _function_2 = (Attribute it) -> { + return Boolean.valueOf(it.isIsKey()); + }; + Iterable _filter_2 = IterableExtensions.filter(aux.getIs().getAttributes(), _function_2); + boolean _hasElements = false; + for(final Attribute aux3 : _filter_2) { + if (!_hasElements) { + _hasElements = true; + } else { + _builder.appendImmediate(" , ", "\t"); + } + { + boolean _equalsIgnoreCase_2 = relation.getLeftEnding().getTarget().toString().equalsIgnoreCase(relation.getRightEnding().getTarget().toString()); + boolean _not_1 = (!_equalsIgnoreCase_2); + if (_not_1) { + _builder.append("\t"); + String _lowerCase_1 = aux3.getName().toLowerCase(); + _builder.append(_lowerCase_1, "\t"); + _builder.append("_fk"); + _builder.newLineIfNotEmpty(); + } else { + _builder.append("\t"); + String _lowerCase_2 = aux3.getName().toLowerCase(); + String _plus = (_lowerCase_2 + "_"); + String _lowerCase_3 = relation.getName().toLowerCase(); + String _plus_1 = (_plus + _lowerCase_3); + _builder.append(_plus_1, "\t"); + _builder.append("_fk"); + _builder.newLineIfNotEmpty(); + } + } + } + } + } + } + } + } + } + } + } + _builder.append(") in "); + CharSequence _html_EntityNameTag = this.html_EntityNameTag(relation.getRightEnding().getTarget().toString()); + _builder.append(_html_EntityNameTag); + _builder.append(" references "); + CharSequence _html_EntityNameTag_1 = this.html_EntityNameTag(relation.getLeftEnding().getTarget().toString()); + _builder.append(_html_EntityNameTag_1); + _builder.newLineIfNotEmpty(); + _builder.append("
    "); + _builder.newLine(); + } + } + } + } + return _builder; + } + + private CharSequence html_1ToN_Relationships(final ERModel m) { + StringConcatenation _builder = new StringConcatenation(); + Entity temp = null; + _builder.newLineIfNotEmpty(); + { + final Function1 _function = (Relation i) -> { + return Boolean.valueOf(((i.getLeftEnding().getTarget() instanceof Entity) && (i.getRightEnding().getTarget() instanceof Entity))); + }; + Iterable _filter = IterableExtensions.filter(m.getRelations(), _function); + for(final Relation relation : _filter) { { - this.rEnt = null; - _xblockexpression_5 = null; + if (((relation.getLeftEnding().getCardinality().equalsIgnoreCase("(0:1)") || relation.getLeftEnding().getCardinality().equalsIgnoreCase("(1:1)")) && (relation.getRightEnding().getCardinality().equalsIgnoreCase("(0:N)") || relation.getRightEnding().getCardinality().equalsIgnoreCase("(1:N)")))) { + _builder.append("\t"); + _builder.newLine(); + CharSequence _html_BinaryRelationshipNameStyle = this.html_BinaryRelationshipNameStyle(relation.getName(), relation.getLeftEnding().getTarget().toString(), relation.getRightEnding().getTarget().toString(), relation.getLeftEnding().getCardinality(), relation.getRightEnding().getCardinality()); + _builder.append(_html_BinaryRelationshipNameStyle); + _builder.newLineIfNotEmpty(); + _builder.append("\t"); + _builder.newLine(); + _builder.append("Attribute ( "); + _builder.newLine(); + { + EList _entities = m.getEntities(); + for(final Entity aux : _entities) { + { + boolean _equalsIgnoreCase = relation.getLeftEnding().getTarget().toString().equalsIgnoreCase(aux.getName()); + if (_equalsIgnoreCase) { + { + Entity _is = aux.getIs(); + boolean _tripleEquals = (_is == null); + if (_tripleEquals) { + { + boolean _equalsIgnoreCase_1 = relation.getLeftEnding().getTarget().toString().equalsIgnoreCase(relation.getRightEnding().getTarget().toString()); + boolean _not = (!_equalsIgnoreCase_1); + if (_not) { + _builder.append("\t\t"); + CharSequence _html_ListPKtoFK_Alt = this.html_ListPKtoFK_Alt(aux); + _builder.append(_html_ListPKtoFK_Alt, "\t\t"); + _builder.newLineIfNotEmpty(); + } else { + boolean _equalsIgnoreCase_2 = relation.getLeftEnding().getTarget().toString().equalsIgnoreCase(relation.getRightEnding().getTarget().toString()); + if (_equalsIgnoreCase_2) { + _builder.append("\t\t"); + CharSequence _html_ListPKtoFK_SelfRelationship_Alt = this.html_ListPKtoFK_SelfRelationship_Alt(aux, relation.getName().toLowerCase()); + _builder.append(_html_ListPKtoFK_SelfRelationship_Alt, "\t\t"); + _builder.newLineIfNotEmpty(); + } + } + } + } else { + Entity _is_1 = aux.getIs(); + boolean _tripleNotEquals = (_is_1 != null); + if (_tripleNotEquals) { + { + boolean _equalsIgnoreCase_3 = relation.getLeftEnding().getTarget().toString().equalsIgnoreCase(relation.getRightEnding().getTarget().toString()); + if (_equalsIgnoreCase_3) { + _builder.append("\t\t"); + CharSequence _html_ListPKtoFK_SelfRelationship_Alt_1 = this.html_ListPKtoFK_SelfRelationship_Alt(aux, relation.getName().toLowerCase()); + _builder.append(_html_ListPKtoFK_SelfRelationship_Alt_1, "\t\t"); + _builder.newLineIfNotEmpty(); + } else { + boolean _equalsIgnoreCase_4 = relation.getLeftEnding().getTarget().toString().equalsIgnoreCase(relation.getRightEnding().getTarget().toString()); + boolean _not_1 = (!_equalsIgnoreCase_4); + if (_not_1) { + _builder.append("\t\t"); + Object _xblockexpression = null; + { + EObject _target = relation.getLeftEnding().getTarget(); + temp = ((Entity) _target); + _xblockexpression = null; + } + _builder.append(_xblockexpression, "\t\t"); + _builder.newLineIfNotEmpty(); + _builder.append("\t\t"); + CharSequence _html_ListPKtoFK_Alt_1 = this.html_ListPKtoFK_Alt(temp.getIs()); + _builder.append(_html_ListPKtoFK_Alt_1, "\t\t"); + _builder.newLineIfNotEmpty(); + } + } + } + } + } + } + } + } + } + } + _builder.append(") in "); + CharSequence _html_EntityNameTag = this.html_EntityNameTag(relation.getRightEnding().getTarget().toString()); + _builder.append(_html_EntityNameTag); + _builder.append(" references "); + CharSequence _html_EntityNameTag_1 = this.html_EntityNameTag(relation.getLeftEnding().getTarget().toString()); + _builder.append(_html_EntityNameTag_1); + _builder.newLineIfNotEmpty(); + _builder.append("
    "); + _builder.newLine(); + } else { + if (((relation.getLeftEnding().getCardinality().equalsIgnoreCase("(0:N)") || relation.getLeftEnding().getCardinality().equalsIgnoreCase("(1:N)")) && (relation.getRightEnding().getCardinality().equalsIgnoreCase("(0:1)") || relation.getRightEnding().getCardinality().equalsIgnoreCase("(1:1)")))) { + _builder.newLine(); + CharSequence _html_BinaryRelationshipNameStyle_1 = this.html_BinaryRelationshipNameStyle(relation.getName(), relation.getLeftEnding().getTarget().toString(), relation.getRightEnding().getTarget().toString(), relation.getLeftEnding().getCardinality(), relation.getRightEnding().getCardinality()); + _builder.append(_html_BinaryRelationshipNameStyle_1); + _builder.newLineIfNotEmpty(); + _builder.newLine(); + _builder.append("Attribute ("); + _builder.newLine(); + { + EList _entities_1 = m.getEntities(); + for(final Entity aux_1 : _entities_1) { + { + boolean _equalsIgnoreCase_5 = relation.getRightEnding().getTarget().toString().equalsIgnoreCase(aux_1.getName()); + if (_equalsIgnoreCase_5) { + { + Entity _is_2 = aux_1.getIs(); + boolean _tripleEquals_1 = (_is_2 == null); + if (_tripleEquals_1) { + { + boolean _equalsIgnoreCase_6 = relation.getLeftEnding().getTarget().toString().equalsIgnoreCase(relation.getRightEnding().getTarget().toString()); + boolean _not_2 = (!_equalsIgnoreCase_6); + if (_not_2) { + _builder.append("\t\t"); + CharSequence _html_ListPKtoFK_Alt_2 = this.html_ListPKtoFK_Alt(aux_1); + _builder.append(_html_ListPKtoFK_Alt_2, "\t\t"); + _builder.newLineIfNotEmpty(); + } else { + boolean _equalsIgnoreCase_7 = relation.getLeftEnding().getTarget().toString().equalsIgnoreCase(relation.getRightEnding().getTarget().toString()); + if (_equalsIgnoreCase_7) { + _builder.append("\t\t"); + CharSequence _html_ListPKtoFK_SelfRelationship_Alt_2 = this.html_ListPKtoFK_SelfRelationship_Alt(aux_1, relation.getName().toLowerCase()); + _builder.append(_html_ListPKtoFK_SelfRelationship_Alt_2, "\t\t"); + _builder.newLineIfNotEmpty(); + } + } + } + } else { + Entity _is_3 = aux_1.getIs(); + boolean _tripleNotEquals_1 = (_is_3 != null); + if (_tripleNotEquals_1) { + { + boolean _equalsIgnoreCase_8 = relation.getRightEnding().getTarget().toString().equalsIgnoreCase(relation.getLeftEnding().getTarget().toString()); + if (_equalsIgnoreCase_8) { + _builder.append("\t\t"); + _builder.newLine(); + _builder.append("\t\t"); + _builder.newLine(); + _builder.append("\t\t"); + _builder.newLine(); + _builder.append("\t\t"); + CharSequence _html_ListPKtoFK_SelfRelationship_Alt_3 = this.html_ListPKtoFK_SelfRelationship_Alt(aux_1, relation.getName().toLowerCase()); + _builder.append(_html_ListPKtoFK_SelfRelationship_Alt_3, "\t\t"); + _builder.newLineIfNotEmpty(); + } else { + boolean _equalsIgnoreCase_9 = relation.getRightEnding().getTarget().toString().equalsIgnoreCase(relation.getLeftEnding().getTarget().toString()); + boolean _not_3 = (!_equalsIgnoreCase_9); + if (_not_3) { + _builder.append("\t\t"); + Object _xblockexpression_1 = null; + { + EObject _target = relation.getRightEnding().getTarget(); + temp = ((Entity) _target); + _xblockexpression_1 = null; + } + _builder.append(_xblockexpression_1, "\t\t"); + _builder.newLineIfNotEmpty(); + _builder.append("\t\t"); + CharSequence _html_ListPKtoFK_Alt_3 = this.html_ListPKtoFK_Alt(temp.getIs()); + _builder.append(_html_ListPKtoFK_Alt_3, "\t\t"); + _builder.newLineIfNotEmpty(); + } + } + } + } + } + } + } + } + } + } + _builder.append(") in "); + CharSequence _html_EntityNameTag_2 = this.html_EntityNameTag(relation.getLeftEnding().getTarget().toString()); + _builder.append(_html_EntityNameTag_2); + _builder.append(" references "); + CharSequence _html_EntityNameTag_3 = this.html_EntityNameTag(relation.getRightEnding().getTarget().toString()); + _builder.append(_html_EntityNameTag_3); + _builder.newLineIfNotEmpty(); + _builder.append("
    "); + _builder.newLine(); + } + } + } + } + } + return _builder; + } + + private CharSequence html_NToN_Relationships(final ERModel m) { + StringConcatenation _builder = new StringConcatenation(); + _builder.newLine(); + { + final Function1 _function = (Relation i) -> { + return Boolean.valueOf(((i.getLeftEnding().getTarget() instanceof Entity) && (i.getRightEnding().getTarget() instanceof Entity))); + }; + Iterable _filter = IterableExtensions.filter(m.getRelations(), _function); + for(final Relation relation : _filter) { + _builder.newLine(); + { + 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(); + CharSequence _html_BinaryRelationshipNameStyle = this.html_BinaryRelationshipNameStyle(relation.getName(), relation.getLeftEnding().getTarget().toString(), relation.getRightEnding().getTarget().toString(), relation.getLeftEnding().getCardinality(), relation.getRightEnding().getCardinality()); + _builder.append(_html_BinaryRelationshipNameStyle); + _builder.newLineIfNotEmpty(); + _builder.newLine(); + _builder.append("Attribute ( "); + _builder.newLine(); + _builder.newLine(); + EObject _target = relation.getLeftEnding().getTarget(); + CharSequence _html_ListPKtoFK_Alt = this.html_ListPKtoFK_Alt(((Entity) _target)); + _builder.append(_html_ListPKtoFK_Alt); + _builder.newLineIfNotEmpty(); + _builder.newLine(); + _builder.append(") in "); + CharSequence _html_EntityNameTag = this.html_EntityNameTag(relation.getName()); + _builder.append(_html_EntityNameTag); + _builder.append(" references "); + CharSequence _html_EntityNameTag_1 = this.html_EntityNameTag(relation.getLeftEnding().getTarget().toString()); + _builder.append(_html_EntityNameTag_1); + _builder.newLineIfNotEmpty(); + _builder.append("

    "); + _builder.newLine(); + _builder.newLine(); + _builder.append("Attribute ( "); + _builder.newLine(); + _builder.newLine(); + EObject _target_1 = relation.getRightEnding().getTarget(); + CharSequence _html_ListPKtoFK_Alt_1 = this.html_ListPKtoFK_Alt(((Entity) _target_1)); + _builder.append(_html_ListPKtoFK_Alt_1); + _builder.append("\t\t\t"); + _builder.newLineIfNotEmpty(); + _builder.append("\t\t\t"); + _builder.newLine(); + _builder.append(") in "); + CharSequence _html_EntityNameTag_2 = this.html_EntityNameTag(relation.getName()); + _builder.append(_html_EntityNameTag_2); + _builder.append(" references "); + CharSequence _html_EntityNameTag_3 = this.html_EntityNameTag(relation.getRightEnding().getTarget().toString()); + _builder.append(_html_EntityNameTag_3); + _builder.newLineIfNotEmpty(); + _builder.append("
    "); + _builder.newLine(); + _builder.newLine(); + } + } + _builder.newLine(); + } + } + return _builder; + } + + private CharSequence html_Ternary_Relationships(final ERModel m) { + StringConcatenation _builder = new StringConcatenation(); + { + final Function1 _function = (Relation i) -> { + return Boolean.valueOf(((i.getLeftEnding().getTarget() instanceof Relation) || (i.getRightEnding().getTarget() instanceof Relation))); + }; + Iterable _filter = IterableExtensions.filter(m.getRelations(), _function); + boolean _hasElements = false; + for(final Relation relation : _filter) { + if (!_hasElements) { + _hasElements = true; + } else { + _builder.appendImmediate("### Ternary Relationship

    "); + _builder.newLine(); + _builder.newLine(); + _builder.append(""); + { + boolean _isNullOrEmpty = StringExtensions.isNullOrEmpty(relation.getName()); + if (_isNullOrEmpty) { + _builder.append(" _Unnamed_ "); + } else { + boolean _isNullOrEmpty_1 = StringExtensions.isNullOrEmpty(relation.getName()); + boolean _not = (!_isNullOrEmpty_1); + if (_not) { + String _upperCase = relation.getName().toUpperCase(); + _builder.append(_upperCase); + } + } + } + _builder.append(" "); _builder.newLineIfNotEmpty(); - Object _xblockexpression_6 = null; + String _upperCase_1 = relation.getLeftEnding().getTarget().toString().toUpperCase(); + String _plus = (_upperCase_1 + " "); + String _upperCase_2 = relation.getLeftEnding().getCardinality().toString().toUpperCase(); + String _plus_1 = (_plus + _upperCase_2); + _builder.append(_plus_1); + _builder.append(" relates "); + String _upperCase_3 = relation.getRightEnding().getCardinality().toUpperCase(); + String _plus_2 = (_upperCase_3 + " "); + String _upperCase_4 = relation.getRightEnding().getTarget().toString().toUpperCase(); + String _plus_3 = (_plus_2 + _upperCase_4); + _builder.append(_plus_3); + _builder.newLineIfNotEmpty(); + _builder.append("
    \t"); + _builder.newLine(); + CharSequence _html_Ternary_Relationships_Attributes = this.html_Ternary_Relationships_Attributes(m, relation); + _builder.append(_html_Ternary_Relationships_Attributes); + _builder.newLineIfNotEmpty(); + } + } + return _builder; + } + + private CharSequence html_Ternary_Relationships_Attributes(final ERModel m, final Relation r) { + StringConcatenation _builder = new StringConcatenation(); + Entity objEntity = null; + _builder.newLineIfNotEmpty(); + Relation objRelation = null; + _builder.newLineIfNotEmpty(); + _builder.newLine(); + _builder.append("Attribute ("); + _builder.newLine(); + _builder.newLine(); + { + EObject _target = r.getLeftEnding().getTarget(); + if ((_target instanceof Entity)) { + _builder.newLine(); + _builder.append("\t"); + Object _xblockexpression = null; { - this.lRel = null; - _xblockexpression_6 = null; + EObject _target_1 = r.getLeftEnding().getTarget(); + objEntity = ((Entity) _target_1); + _xblockexpression = null; } - _builder.append(_xblockexpression_6); - Object _xblockexpression_7 = null; + _builder.append(_xblockexpression, "\t"); + _builder.newLineIfNotEmpty(); + _builder.newLine(); { - this.rRel = null; - _xblockexpression_7 = null; + final Function1 _function = (Attribute it) -> { + return Boolean.valueOf(it.isIsKey()); + }; + Iterable _filter = IterableExtensions.filter(objEntity.getAttributes(), _function); + boolean _hasElements = false; + for(final Attribute att : _filter) { + if (!_hasElements) { + _hasElements = true; + } else { + _builder.appendImmediate(" , ", "\t"); + } + _builder.append("\t"); + String _lowerCase = att.getName().toString().toLowerCase(); + _builder.append(_lowerCase, "\t"); + _builder.newLineIfNotEmpty(); + } } - _builder.append(_xblockexpression_7); + _builder.newLine(); + _builder.append(") in "); + CharSequence _html_EntityNameTag = this.html_EntityNameTag(r.getName()); + _builder.append(_html_EntityNameTag); + _builder.append(" references "); + CharSequence _html_EntityNameTag_1 = this.html_EntityNameTag(r.getLeftEnding().getTarget().toString()); + _builder.append(_html_EntityNameTag_1); _builder.newLineIfNotEmpty(); + _builder.append("

    "); + _builder.newLine(); + _builder.newLine(); + } else { + EObject _target_1 = r.getRightEnding().getTarget(); + if ((_target_1 instanceof Entity)) { + _builder.newLine(); + _builder.append("\t"); + Object _xblockexpression_1 = null; + { + EObject _target_2 = r.getRightEnding().getTarget(); + objEntity = ((Entity) _target_2); + _xblockexpression_1 = null; + } + _builder.append(_xblockexpression_1, "\t"); + _builder.newLineIfNotEmpty(); + _builder.newLine(); + { + final Function1 _function_1 = (Attribute it) -> { + return Boolean.valueOf(it.isIsKey()); + }; + Iterable _filter_1 = IterableExtensions.filter(objEntity.getAttributes(), _function_1); + boolean _hasElements_1 = false; + for(final Attribute att_1 : _filter_1) { + if (!_hasElements_1) { + _hasElements_1 = true; + } else { + _builder.appendImmediate(" , ", "\t"); + } + _builder.append("\t"); + String _lowerCase_1 = att_1.getName().toString().toLowerCase(); + _builder.append(_lowerCase_1, "\t"); + _builder.newLineIfNotEmpty(); + } + } + _builder.newLine(); + _builder.append("
    ) in "); + CharSequence _html_EntityNameTag_2 = this.html_EntityNameTag(r.getName()); + _builder.append(_html_EntityNameTag_2); + _builder.append(" references "); + CharSequence _html_EntityNameTag_3 = this.html_EntityNameTag(r.getRightEnding().getTarget().toString()); + _builder.append(_html_EntityNameTag_3); + _builder.newLineIfNotEmpty(); + _builder.append("

    "); + _builder.newLine(); + _builder.newLine(); + } } } _builder.newLine(); - _builder.append("
    "); _builder.newLine(); - _builder.append("\t"); + _builder.newLine(); + _builder.newLine(); + { + EObject _target_2 = r.getLeftEnding().getTarget(); + if ((_target_2 instanceof Relation)) { + _builder.newLine(); + Object _xblockexpression_2 = null; + { + EObject _target_3 = r.getLeftEnding().getTarget(); + objRelation = ((Relation) _target_3); + _xblockexpression_2 = null; + } + _builder.append(_xblockexpression_2); + _builder.newLineIfNotEmpty(); + _builder.newLine(); + Object _xblockexpression_3 = null; + { + EObject _target_3 = objRelation.getLeftEnding().getTarget(); + objEntity = ((Entity) _target_3); + _xblockexpression_3 = null; + } + _builder.append(_xblockexpression_3); + _builder.newLineIfNotEmpty(); + _builder.newLine(); + _builder.append("Attribute ("); + _builder.newLine(); + _builder.newLine(); + { + final Function1 _function_2 = (Attribute it) -> { + return Boolean.valueOf(it.isIsKey()); + }; + Iterable _filter_2 = IterableExtensions.filter(objEntity.getAttributes(), _function_2); + boolean _hasElements_2 = false; + for(final Attribute att_2 : _filter_2) { + if (!_hasElements_2) { + _hasElements_2 = true; + } else { + _builder.appendImmediate(" , ", ""); + } + String _lowerCase_2 = att_2.getName().toString().toLowerCase(); + _builder.append(_lowerCase_2); + _builder.newLineIfNotEmpty(); + } + if (_hasElements_2) { + _builder.append(" , "); + } + } + _builder.newLine(); + Object _xblockexpression_4 = null; + { + EObject _target_3 = objRelation.getRightEnding().getTarget(); + objEntity = ((Entity) _target_3); + _xblockexpression_4 = null; + } + _builder.append(_xblockexpression_4); + _builder.newLineIfNotEmpty(); + _builder.newLine(); + { + final Function1 _function_3 = (Attribute it) -> { + return Boolean.valueOf(it.isIsKey()); + }; + Iterable _filter_3 = IterableExtensions.filter(objEntity.getAttributes(), _function_3); + boolean _hasElements_3 = false; + for(final Attribute att_3 : _filter_3) { + if (!_hasElements_3) { + _hasElements_3 = true; + } else { + _builder.appendImmediate(" , ", ""); + } + String _lowerCase_3 = att_3.getName().toString().toLowerCase(); + _builder.append(_lowerCase_3); + _builder.newLineIfNotEmpty(); + } + } + _builder.newLine(); + _builder.append(") in "); + CharSequence _html_EntityNameTag_4 = this.html_EntityNameTag(r.getName()); + _builder.append(_html_EntityNameTag_4); + _builder.append(" references "); + CharSequence _html_EntityNameTag_5 = this.html_EntityNameTag(r.getLeftEnding().getTarget().toString()); + _builder.append(_html_EntityNameTag_5); + _builder.newLineIfNotEmpty(); + _builder.append("

    "); + _builder.newLine(); + _builder.newLine(); + } else { + EObject _target_3 = r.getRightEnding().getTarget(); + if ((_target_3 instanceof Relation)) { + _builder.append("\t"); + _builder.newLine(); + _builder.append("\t"); + Object _xblockexpression_5 = null; + { + EObject _target_4 = r.getRightEnding().getTarget(); + objRelation = ((Relation) _target_4); + _xblockexpression_5 = null; + } + _builder.append(_xblockexpression_5, "\t"); + _builder.newLineIfNotEmpty(); + _builder.newLine(); + _builder.append("\t"); + Object _xblockexpression_6 = null; + { + EObject _target_4 = objRelation.getLeftEnding().getTarget(); + objEntity = ((Entity) _target_4); + _xblockexpression_6 = null; + } + _builder.append(_xblockexpression_6, "\t"); + _builder.newLineIfNotEmpty(); + _builder.append("\t"); + _builder.newLine(); + _builder.append("\t"); + _builder.append("Attribute ("); + _builder.newLine(); + _builder.append("\t"); + _builder.newLine(); + { + final Function1 _function_4 = (Attribute it) -> { + return Boolean.valueOf(it.isIsKey()); + }; + Iterable _filter_4 = IterableExtensions.filter(objEntity.getAttributes(), _function_4); + boolean _hasElements_4 = false; + for(final Attribute att_4 : _filter_4) { + if (!_hasElements_4) { + _hasElements_4 = true; + } else { + _builder.appendImmediate(" , ", "\t"); + } + _builder.append("\t"); + String _lowerCase_4 = att_4.getName().toString().toLowerCase(); + _builder.append(_lowerCase_4, "\t"); + _builder.newLineIfNotEmpty(); + } + if (_hasElements_4) { + _builder.append(" , ", "\t"); + } + } + _builder.append("\t"); + _builder.newLine(); + _builder.append("\t"); + Object _xblockexpression_7 = null; + { + EObject _target_4 = objRelation.getRightEnding().getTarget(); + objEntity = ((Entity) _target_4); + _xblockexpression_7 = null; + } + _builder.append(_xblockexpression_7, "\t"); + _builder.newLineIfNotEmpty(); + _builder.append("\t"); + _builder.newLine(); + { + final Function1 _function_5 = (Attribute it) -> { + return Boolean.valueOf(it.isIsKey()); + }; + Iterable _filter_5 = IterableExtensions.filter(objEntity.getAttributes(), _function_5); + boolean _hasElements_5 = false; + for(final Attribute att_5 : _filter_5) { + if (!_hasElements_5) { + _hasElements_5 = true; + } else { + _builder.appendImmediate(" , ", "\t"); + } + _builder.append("\t"); + String _lowerCase_5 = att_5.getName().toString().toLowerCase(); + _builder.append(_lowerCase_5, "\t"); + _builder.newLineIfNotEmpty(); + } + } + _builder.append("\t"); + _builder.newLine(); + _builder.append("\t"); + _builder.append(") in "); + CharSequence _html_EntityNameTag_6 = this.html_EntityNameTag(r.getName()); + _builder.append(_html_EntityNameTag_6, "\t"); + _builder.append(" references "); + CharSequence _html_EntityNameTag_7 = this.html_EntityNameTag(r.getRightEnding().getTarget().toString()); + _builder.append(_html_EntityNameTag_7, "\t"); + _builder.newLineIfNotEmpty(); + _builder.append("\t"); + _builder.append("

    "); + _builder.newLine(); + _builder.newLine(); + } + } + } _builder.newLine(); return _builder; } diff --git a/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/PostgresqlFileGenerator.java b/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/PostgresqlFileGenerator.java index 760017b..474e500 100644 --- a/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/PostgresqlFileGenerator.java +++ b/org.xtext.unipampa.erdsl/xtend-gen/org/xtext/unipampa/erdsl/generator/PostgresqlFileGenerator.java @@ -81,10 +81,7 @@ public CharSequence postgreSQLCreate(final ERModel e) { _builder.append(_upperCase_2); _builder.newLineIfNotEmpty(); _builder.append(" "); - _builder.append("WITH "); - _builder.newLine(); - _builder.append(" "); - _builder.append("OWNER = postgres"); + _builder.append("WITH OWNER = postgres"); _builder.newLine(); _builder.append(" "); _builder.append("ENCODING = \'UTF8\'"); 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 2084e379360c9fdea404027aea906d96b0501ccc..c91d8318ab441722f13deac3ccc061662e3de27a 100644 GIT binary patch delta 64 zcmeB|>6hUR@MdNaVc_84V0gGtZ6og=c4i>GnTMmA8O-S7KFSDUOb+5T2h%;g_F(!P GuOk3 delta 64 zcmeB|>6hUR@MdNaVc_84VED01bR+K{c4i>GnTMmA8O-S7KFSDUOb+5T2h%;g_F(!P GuOk4992PW=3rWr-yTe7 H^E(0noRAg; delta 64 zcmZ1@zeb)nz?+#xgn@&DgW<<6(T%(t*_na#=7a1vS-_0BJpN1|#^m>W=3rWr-yTe7 H^E(0nv8EQq