diff --git a/runtime-workspace/fr.n7.game2petrinet/Game2PetriNet.atl b/runtime-workspace/fr.n7.game2petrinet/Game2PetriNet.atl
index 3b3db31..9221f23 100755
--- a/runtime-workspace/fr.n7.game2petrinet/Game2PetriNet.atl
+++ b/runtime-workspace/fr.n7.game2petrinet/Game2PetriNet.atl
@@ -65,13 +65,6 @@ def : getNombreInit() : Integer =
->asSequence()
->iterate(o; res : Integer = self.tailleInventaire | res - o.getNombreInit() * o.taille);
--- Obtenir la place d'un chemin (in / out)
-helper context game!Chemin
-def: getPlaceOf(s : String): petrinet!Place =
- petrinet!Place.allInstances()
- ->select(p | p.name = s)
- ->asSequence()
- ->first();
helper context game!Lieu
def: getPlace(): petrinet!Place =
@@ -194,7 +187,7 @@ rule Chemin2PetriNet {
index <- 0;
for (condVis in c.visible.condition) {
for (condOuv in c.ouvert.condition) {
- thisModule.newChemin(c, index, condVis.union(condOuv));
+ thisModule.newChemin(c, index, condVis.conditionTest.union(condOuv.conditionTest));
index <- index + 1;
}
}
@@ -208,13 +201,13 @@ rule newChemin(c : game!Chemin, index : Integer, conditions : game!ConditionTest
network <- ''.getJeu()),
arcIn: petrinet!Arc(
- place <- c.getPlaceOf('lieu_' + c.lieuIn.name),
+ place <- ('lieu_' + c.lieuIn.name).getPlace(),
transition <- t,
outgoing <- false,
weight <- 1),
arcOut: petrinet!Arc(
- place <- c.getPlaceOf('lieu_' + c.lieuOut.name),
+ place <- ('lieu_' + c.lieuOut.name).getPlace(),
transition <- t,
outgoing <- true,
weight <- 1)
@@ -237,19 +230,29 @@ rule Interaction2PetriNet {
using {
index : Integer = 0;
}
+ do {
+ index <- 0;
+ for (condVis in i.getPersonne().visible.condition) {
+ thisModule.newInteraction(i, index, condVis.conditionTest);
+ index <- index + 1;
+ }
+ }
+}
+
+rule newInteraction(i : game!Interaction, index : Integer, conditions : game!ConditionTest) {
to
t: petrinet!Transition(
- name <- 'interaction_' + i.name + '_' + i.getPersonne().name,
+ name <- 'interaction_' + i.name + '_' + i.getPersonne().name + '_' + index.toString(),
network <- ''.getJeu()),
-
- arcOut: petrinet!Arc(
- place <- i.getPersonne(),
+
+ arcIn: petrinet!Arc(
+ place <- ('personne_' + i.getPersonne().name).getPlace(),
transition <- t,
outgoing <- true,
weight <- 1),
-
- arcIn: petrinet!Arc(
- place <- i.getPersonne().getLieu().getPlace(),
+
+ arcOut: petrinet!Arc(
+ place <- ('lieu_' + i.getPersonne().getLieu().name).getPlace(),
transition <- t,
outgoing <- false,
weight <- 1)
@@ -260,38 +263,36 @@ rule Interaction2PetriNet {
for (o in i.objetsRecus) {
thisModule.recuObjet(t, o.name);
}
- for (c in i.connaissances) {
- thisModule.recuConn(t, c.name);
- }
- index <- 0;
- for (condV in i.getPersonne().visible.condition) {
- thisModule.Condition2PetriNet(('interaction_' + i.name + '_' + i.getPersonne().name).getTransition(), condV);
- index <- index + 1;
+ for (con in i.connaissances) {
+ thisModule.recuConn(t, con.name);
}
+ thisModule.Condition2PetriNet(t, conditions);
}
}
+
rule Condition2PetriNet(t : petrinet!Transition, c : game!Condition) {
do {
for (cond in c) {
if (cond.oclIsKindOf(game!ConditionObjet)) {
if (cond.comparateur = '==') {
- thisModule.readObjetEga(t, cond.objet, cond.nombre);
+ thisModule.readObjetEga(t, cond.objet.name, cond.nombre);
} else if (cond.comparateur = '>') {
- thisModule.readObjetSup(t, cond.objet, cond.nombre);
+ thisModule.readObjetSup(t, cond.objet.name, cond.nombre);
} else if (cond.comparateur = '>=') {
- thisModule.readObjetSup(t, cond.objet, cond.nombre - 1);
+ thisModule.readObjetSup(t, cond.objet.name, cond.nombre - 1);
} else if (cond.comparateur = '<') {
- thisModule.readObjetInf(t, cond.objet, cond.nombre);
+ thisModule.readObjetInf(t, cond.objet.name, cond.nombre);
} else if (cond.comparateur = '<=') {
- thisModule.readObjetInf(t, cond.objet, cond.nombre + 1);
+ thisModule.readObjetInf(t, cond.objet.name, cond.nombre + 1);
+ }
+ } else if (cond.oclIsKindOf(game!ConditionConnaissance)) {
+ if (cond.negation = '!') {
+ thisModule.readConnNeg(t, cond.connaissance.name);
+ } else {
+ thisModule.readConn(t, cond.connaissance.name);
}
} else {
- if (cond.negation = '!') {
- thisModule.readConnNeg(t, cond.connaissance);
- } else {
- thisModule.readConn(t, cond.connaissance);
- }
}
}
}
@@ -299,6 +300,19 @@ rule Condition2PetriNet(t : petrinet!Transition, c : game!Condition) {
rule Action2PetriNet {
from a: game!Action
+ using {
+ index : Integer = 0;
+ }
+ do {
+ index <- 0;
+ for (condVis in a.visible.condition) {
+ thisModule.newAction(a, index, condVis.conditionTest);
+ index <- index + 1;
+ }
+ }
+}
+
+rule newAction(a : game!Action, index : Integer, conditions : game!ConditionTest) {
to
t: petrinet!Transition(
name <- 'action_' + a.name,
diff --git a/runtime-workspace/fr.n7.petrinet.examples/src-gen/.nfs0000000001ae00dd00000022 b/runtime-workspace/fr.n7.petrinet.examples/src-gen/.nfs0000000001ae00dd00000022
new file mode 100644
index 0000000..a8d10bf
--- /dev/null
+++ b/runtime-workspace/fr.n7.petrinet.examples/src-gen/.nfs0000000001ae00dd00000022
@@ -0,0 +1,15 @@
+net jeu
+pl taille (0)
+pl objet_tentative (3)
+pl objet_tentative_neg (0)
+pl connaissance_Reussite (0)
+pl connaissance_Reussite_neg (1)
+pl personne_Sphinx (0)
+pl lieu_Enigme (1)
+pl lieu_Succes (0)
+pl lieu_Echec (0)
+tr chemin_Win lieu_Enigme*1 connaissance_Reussite*1 -> lieu_Succes*1 connaissance_Reussite*1
+tr chemin_Loose lieu_Enigme*1 objet_tentative*0 objet_tentative_neg*3 -> lieu_Echec*1 objet_tentative*0 objet_tentative_neg*3
+tr interaction_Parler_Sphinx lieu_Enigme*1 connaissance_Reussite_neg*1 objet_tentative*1 -> personne_Sphinx*1 connaissance_Reussite_neg*1 objet_tentative*1
+tr action_Reponse_1 personne_Sphinx*1 connaissance_Reussite_neg*1 -> lieu_Enigme*1 connaissance_Reussite*1
+tr action_Reponse_2 personne_Sphinx*1 objet_tentative*1 -> lieu_Enigme*1 objet_tentative_neg*1 taille*1
diff --git a/runtime-workspace/fr.n7.petrinet.examples/src-gen/jeu.net b/runtime-workspace/fr.n7.petrinet.examples/src-gen/jeu.net
index a8d10bf..eae9517 100644
--- a/runtime-workspace/fr.n7.petrinet.examples/src-gen/jeu.net
+++ b/runtime-workspace/fr.n7.petrinet.examples/src-gen/jeu.net
@@ -8,8 +8,8 @@ pl personne_Sphinx (0)
pl lieu_Enigme (1)
pl lieu_Succes (0)
pl lieu_Echec (0)
-tr chemin_Win lieu_Enigme*1 connaissance_Reussite*1 -> lieu_Succes*1 connaissance_Reussite*1
-tr chemin_Loose lieu_Enigme*1 objet_tentative*0 objet_tentative_neg*3 -> lieu_Echec*1 objet_tentative*0 objet_tentative_neg*3
-tr interaction_Parler_Sphinx lieu_Enigme*1 connaissance_Reussite_neg*1 objet_tentative*1 -> personne_Sphinx*1 connaissance_Reussite_neg*1 objet_tentative*1
+tr chemin_Win_0 lieu_Enigme*1 connaissance_Reussite*1 -> lieu_Succes*1 connaissance_Reussite*1
+tr chemin_Loose_0 lieu_Enigme*1 objet_tentative*0 objet_tentative_neg*3 -> lieu_Echec*1 objet_tentative*0 objet_tentative_neg*3
+tr interaction_Parler_Sphinx_0 lieu_Enigme*1 connaissance_Reussite_neg*1 objet_tentative*1 -> personne_Sphinx*1 connaissance_Reussite_neg*1 objet_tentative*1
tr action_Reponse_1 personne_Sphinx*1 connaissance_Reussite_neg*1 -> lieu_Enigme*1 connaissance_Reussite*1
tr action_Reponse_2 personne_Sphinx*1 objet_tentative*1 -> lieu_Enigme*1 objet_tentative_neg*1 taille*1
diff --git a/workspace/fr.n7.game.xtext.ide/src-gen/fr/n7/game/xtext/ide/contentassist/antlr/internal/InternalGame.g b/workspace/fr.n7.game.xtext.ide/src-gen/fr/n7/game/xtext/ide/contentassist/antlr/internal/InternalGame.g
index effa784..d827adb 100644
--- a/workspace/fr.n7.game.xtext.ide/src-gen/fr/n7/game/xtext/ide/contentassist/antlr/internal/InternalGame.g
+++ b/workspace/fr.n7.game.xtext.ide/src-gen/fr/n7/game/xtext/ide/contentassist/antlr/internal/InternalGame.g
@@ -8208,9 +8208,13 @@ rule__ConditionConnaissance__ConnaissanceAssignment_1
}
:
(
- { before(grammarAccess.getConditionConnaissanceAccess().getConnaissanceIDTerminalRuleCall_1_0()); }
- RULE_ID
- { after(grammarAccess.getConditionConnaissanceAccess().getConnaissanceIDTerminalRuleCall_1_0()); }
+ { before(grammarAccess.getConditionConnaissanceAccess().getConnaissanceConnaissanceCrossReference_1_0()); }
+ (
+ { before(grammarAccess.getConditionConnaissanceAccess().getConnaissanceConnaissanceIDTerminalRuleCall_1_0_1()); }
+ RULE_ID
+ { after(grammarAccess.getConditionConnaissanceAccess().getConnaissanceConnaissanceIDTerminalRuleCall_1_0_1()); }
+ )
+ { after(grammarAccess.getConditionConnaissanceAccess().getConnaissanceConnaissanceCrossReference_1_0()); }
)
;
finally {
@@ -8223,9 +8227,13 @@ rule__ConditionObjet__ObjetAssignment_0
}
:
(
- { before(grammarAccess.getConditionObjetAccess().getObjetIDTerminalRuleCall_0_0()); }
- RULE_ID
- { after(grammarAccess.getConditionObjetAccess().getObjetIDTerminalRuleCall_0_0()); }
+ { before(grammarAccess.getConditionObjetAccess().getObjetObjetCrossReference_0_0()); }
+ (
+ { before(grammarAccess.getConditionObjetAccess().getObjetObjetIDTerminalRuleCall_0_0_1()); }
+ RULE_ID
+ { after(grammarAccess.getConditionObjetAccess().getObjetObjetIDTerminalRuleCall_0_0_1()); }
+ )
+ { after(grammarAccess.getConditionObjetAccess().getObjetObjetCrossReference_0_0()); }
)
;
finally {
diff --git a/workspace/fr.n7.game.xtext.ide/src-gen/fr/n7/game/xtext/ide/contentassist/antlr/internal/InternalGameLexer.java b/workspace/fr.n7.game.xtext.ide/src-gen/fr/n7/game/xtext/ide/contentassist/antlr/internal/InternalGameLexer.java
index 69c2e83..74af28c 100644
--- a/workspace/fr.n7.game.xtext.ide/src-gen/fr/n7/game/xtext/ide/contentassist/antlr/internal/InternalGameLexer.java
+++ b/workspace/fr.n7.game.xtext.ide/src-gen/fr/n7/game/xtext/ide/contentassist/antlr/internal/InternalGameLexer.java
@@ -808,10 +808,10 @@ public class InternalGameLexer extends Lexer {
try {
int _type = RULE_COMPARATEUR;
int _channel = DEFAULT_TOKEN_CHANNEL;
- // InternalGame.g:8265:18: ( ( '<' | '>' | '==' | '<=' | '>=' | '!=' ) )
- // InternalGame.g:8265:20: ( '<' | '>' | '==' | '<=' | '>=' | '!=' )
+ // InternalGame.g:8273:18: ( ( '<' | '>' | '==' | '<=' | '>=' | '!=' ) )
+ // InternalGame.g:8273:20: ( '<' | '>' | '==' | '<=' | '>=' | '!=' )
{
- // InternalGame.g:8265:20: ( '<' | '>' | '==' | '<=' | '>=' | '!=' )
+ // InternalGame.g:8273:20: ( '<' | '>' | '==' | '<=' | '>=' | '!=' )
int alt1=6;
switch ( input.LA(1) ) {
case '<':
@@ -855,21 +855,21 @@ public class InternalGameLexer extends Lexer {
switch (alt1) {
case 1 :
- // InternalGame.g:8265:21: '<'
+ // InternalGame.g:8273:21: '<'
{
match('<');
}
break;
case 2 :
- // InternalGame.g:8265:25: '>'
+ // InternalGame.g:8273:25: '>'
{
match('>');
}
break;
case 3 :
- // InternalGame.g:8265:29: '=='
+ // InternalGame.g:8273:29: '=='
{
match("==");
@@ -877,7 +877,7 @@ public class InternalGameLexer extends Lexer {
}
break;
case 4 :
- // InternalGame.g:8265:34: '<='
+ // InternalGame.g:8273:34: '<='
{
match("<=");
@@ -885,7 +885,7 @@ public class InternalGameLexer extends Lexer {
}
break;
case 5 :
- // InternalGame.g:8265:39: '>='
+ // InternalGame.g:8273:39: '>='
{
match(">=");
@@ -893,7 +893,7 @@ public class InternalGameLexer extends Lexer {
}
break;
case 6 :
- // InternalGame.g:8265:44: '!='
+ // InternalGame.g:8273:44: '!='
{
match("!=");
@@ -919,10 +919,10 @@ public class InternalGameLexer extends Lexer {
try {
int _type = RULE_BOOLEAN;
int _channel = DEFAULT_TOKEN_CHANNEL;
- // InternalGame.g:8267:14: ( ( 'true' | 'false' ) )
- // InternalGame.g:8267:16: ( 'true' | 'false' )
+ // InternalGame.g:8275:14: ( ( 'true' | 'false' ) )
+ // InternalGame.g:8275:16: ( 'true' | 'false' )
{
- // InternalGame.g:8267:16: ( 'true' | 'false' )
+ // InternalGame.g:8275:16: ( 'true' | 'false' )
int alt2=2;
int LA2_0 = input.LA(1);
@@ -940,7 +940,7 @@ public class InternalGameLexer extends Lexer {
}
switch (alt2) {
case 1 :
- // InternalGame.g:8267:17: 'true'
+ // InternalGame.g:8275:17: 'true'
{
match("true");
@@ -948,7 +948,7 @@ public class InternalGameLexer extends Lexer {
}
break;
case 2 :
- // InternalGame.g:8267:24: 'false'
+ // InternalGame.g:8275:24: 'false'
{
match("false");
@@ -974,10 +974,10 @@ public class InternalGameLexer extends Lexer {
try {
int _type = RULE_ID;
int _channel = DEFAULT_TOKEN_CHANNEL;
- // InternalGame.g:8269:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
- // InternalGame.g:8269:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ // InternalGame.g:8277:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+ // InternalGame.g:8277:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
{
- // InternalGame.g:8269:11: ( '^' )?
+ // InternalGame.g:8277:11: ( '^' )?
int alt3=2;
int LA3_0 = input.LA(1);
@@ -986,7 +986,7 @@ public class InternalGameLexer extends Lexer {
}
switch (alt3) {
case 1 :
- // InternalGame.g:8269:11: '^'
+ // InternalGame.g:8277:11: '^'
{
match('^');
@@ -1004,7 +1004,7 @@ public class InternalGameLexer extends Lexer {
recover(mse);
throw mse;}
- // InternalGame.g:8269:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ // InternalGame.g:8277:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
loop4:
do {
int alt4=2;
@@ -1053,10 +1053,10 @@ public class InternalGameLexer extends Lexer {
try {
int _type = RULE_INT;
int _channel = DEFAULT_TOKEN_CHANNEL;
- // InternalGame.g:8271:10: ( ( '0' .. '9' )+ )
- // InternalGame.g:8271:12: ( '0' .. '9' )+
+ // InternalGame.g:8279:10: ( ( '0' .. '9' )+ )
+ // InternalGame.g:8279:12: ( '0' .. '9' )+
{
- // InternalGame.g:8271:12: ( '0' .. '9' )+
+ // InternalGame.g:8279:12: ( '0' .. '9' )+
int cnt5=0;
loop5:
do {
@@ -1070,7 +1070,7 @@ public class InternalGameLexer extends Lexer {
switch (alt5) {
case 1 :
- // InternalGame.g:8271:13: '0' .. '9'
+ // InternalGame.g:8279:13: '0' .. '9'
{
matchRange('0','9');
@@ -1102,10 +1102,10 @@ public class InternalGameLexer extends Lexer {
try {
int _type = RULE_STRING;
int _channel = DEFAULT_TOKEN_CHANNEL;
- // InternalGame.g:8273:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
- // InternalGame.g:8273:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+ // InternalGame.g:8281:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
+ // InternalGame.g:8281:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
{
- // InternalGame.g:8273:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+ // InternalGame.g:8281:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
int alt8=2;
int LA8_0 = input.LA(1);
@@ -1123,10 +1123,10 @@ public class InternalGameLexer extends Lexer {
}
switch (alt8) {
case 1 :
- // InternalGame.g:8273:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+ // InternalGame.g:8281:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
{
match('\"');
- // InternalGame.g:8273:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+ // InternalGame.g:8281:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
loop6:
do {
int alt6=3;
@@ -1142,7 +1142,7 @@ public class InternalGameLexer extends Lexer {
switch (alt6) {
case 1 :
- // InternalGame.g:8273:21: '\\\\' .
+ // InternalGame.g:8281:21: '\\\\' .
{
match('\\');
matchAny();
@@ -1150,7 +1150,7 @@ public class InternalGameLexer extends Lexer {
}
break;
case 2 :
- // InternalGame.g:8273:28: ~ ( ( '\\\\' | '\"' ) )
+ // InternalGame.g:8281:28: ~ ( ( '\\\\' | '\"' ) )
{
if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
input.consume();
@@ -1175,10 +1175,10 @@ public class InternalGameLexer extends Lexer {
}
break;
case 2 :
- // InternalGame.g:8273:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+ // InternalGame.g:8281:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
{
match('\'');
- // InternalGame.g:8273:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+ // InternalGame.g:8281:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
loop7:
do {
int alt7=3;
@@ -1194,7 +1194,7 @@ public class InternalGameLexer extends Lexer {
switch (alt7) {
case 1 :
- // InternalGame.g:8273:54: '\\\\' .
+ // InternalGame.g:8281:54: '\\\\' .
{
match('\\');
matchAny();
@@ -1202,7 +1202,7 @@ public class InternalGameLexer extends Lexer {
}
break;
case 2 :
- // InternalGame.g:8273:61: ~ ( ( '\\\\' | '\\'' ) )
+ // InternalGame.g:8281:61: ~ ( ( '\\\\' | '\\'' ) )
{
if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
input.consume();
@@ -1245,12 +1245,12 @@ public class InternalGameLexer extends Lexer {
try {
int _type = RULE_ML_COMMENT;
int _channel = DEFAULT_TOKEN_CHANNEL;
- // InternalGame.g:8275:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
- // InternalGame.g:8275:19: '/*' ( options {greedy=false; } : . )* '*/'
+ // InternalGame.g:8283:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+ // InternalGame.g:8283:19: '/*' ( options {greedy=false; } : . )* '*/'
{
match("/*");
- // InternalGame.g:8275:24: ( options {greedy=false; } : . )*
+ // InternalGame.g:8283:24: ( options {greedy=false; } : . )*
loop9:
do {
int alt9=2;
@@ -1275,7 +1275,7 @@ public class InternalGameLexer extends Lexer {
switch (alt9) {
case 1 :
- // InternalGame.g:8275:52: .
+ // InternalGame.g:8283:52: .
{
matchAny();
@@ -1305,12 +1305,12 @@ public class InternalGameLexer extends Lexer {
try {
int _type = RULE_SL_COMMENT;
int _channel = DEFAULT_TOKEN_CHANNEL;
- // InternalGame.g:8277:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
- // InternalGame.g:8277:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+ // InternalGame.g:8285:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+ // InternalGame.g:8285:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
{
match("//");
- // InternalGame.g:8277:24: (~ ( ( '\\n' | '\\r' ) ) )*
+ // InternalGame.g:8285:24: (~ ( ( '\\n' | '\\r' ) ) )*
loop10:
do {
int alt10=2;
@@ -1323,7 +1323,7 @@ public class InternalGameLexer extends Lexer {
switch (alt10) {
case 1 :
- // InternalGame.g:8277:24: ~ ( ( '\\n' | '\\r' ) )
+ // InternalGame.g:8285: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();
@@ -1343,7 +1343,7 @@ public class InternalGameLexer extends Lexer {
}
} while (true);
- // InternalGame.g:8277:40: ( ( '\\r' )? '\\n' )?
+ // InternalGame.g:8285:40: ( ( '\\r' )? '\\n' )?
int alt12=2;
int LA12_0 = input.LA(1);
@@ -1352,9 +1352,9 @@ public class InternalGameLexer extends Lexer {
}
switch (alt12) {
case 1 :
- // InternalGame.g:8277:41: ( '\\r' )? '\\n'
+ // InternalGame.g:8285:41: ( '\\r' )? '\\n'
{
- // InternalGame.g:8277:41: ( '\\r' )?
+ // InternalGame.g:8285:41: ( '\\r' )?
int alt11=2;
int LA11_0 = input.LA(1);
@@ -1363,7 +1363,7 @@ public class InternalGameLexer extends Lexer {
}
switch (alt11) {
case 1 :
- // InternalGame.g:8277:41: '\\r'
+ // InternalGame.g:8285:41: '\\r'
{
match('\r');
@@ -1395,10 +1395,10 @@ public class InternalGameLexer extends Lexer {
try {
int _type = RULE_WS;
int _channel = DEFAULT_TOKEN_CHANNEL;
- // InternalGame.g:8279:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
- // InternalGame.g:8279:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ // InternalGame.g:8287:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+ // InternalGame.g:8287:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
{
- // InternalGame.g:8279:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ // InternalGame.g:8287:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
int cnt13=0;
loop13:
do {
@@ -1452,8 +1452,8 @@ public class InternalGameLexer extends Lexer {
try {
int _type = RULE_ANY_OTHER;
int _channel = DEFAULT_TOKEN_CHANNEL;
- // InternalGame.g:8281:16: ( . )
- // InternalGame.g:8281:18: .
+ // InternalGame.g:8289:16: ( . )
+ // InternalGame.g:8289:18: .
{
matchAny();
diff --git a/workspace/fr.n7.game.xtext.ide/src-gen/fr/n7/game/xtext/ide/contentassist/antlr/internal/InternalGameParser.java b/workspace/fr.n7.game.xtext.ide/src-gen/fr/n7/game/xtext/ide/contentassist/antlr/internal/InternalGameParser.java
index a9798cf..0e47b91 100644
--- a/workspace/fr.n7.game.xtext.ide/src-gen/fr/n7/game/xtext/ide/contentassist/antlr/internal/InternalGameParser.java
+++ b/workspace/fr.n7.game.xtext.ide/src-gen/fr/n7/game/xtext/ide/contentassist/antlr/internal/InternalGameParser.java
@@ -1515,12 +1515,12 @@ public class InternalGameParser extends AbstractInternalContentAssistParser {
{
int LA1_3 = input.LA(2);
- if ( (LA1_3==RULE_COMPARATEUR) ) {
- alt1=3;
- }
- else if ( (LA1_3==EOF||LA1_3==15||LA1_3==17||(LA1_3>=19 && LA1_3<=20)||(LA1_3>=22 && LA1_3<=23)||LA1_3==25||(LA1_3>=27 && LA1_3<=28)||(LA1_3>=32 && LA1_3<=34)||LA1_3==38||LA1_3==41||LA1_3==43||(LA1_3>=45 && LA1_3<=46)) ) {
+ if ( (LA1_3==EOF||LA1_3==15||LA1_3==17||(LA1_3>=19 && LA1_3<=20)||(LA1_3>=22 && LA1_3<=23)||LA1_3==25||(LA1_3>=27 && LA1_3<=28)||(LA1_3>=32 && LA1_3<=34)||LA1_3==38||LA1_3==41||LA1_3==43||(LA1_3>=45 && LA1_3<=46)) ) {
alt1=2;
}
+ else if ( (LA1_3==RULE_COMPARATEUR) ) {
+ alt1=3;
+ }
else {
NoViableAltException nvae =
new NoViableAltException("", 1, 3, input);
@@ -24160,21 +24160,29 @@ public class InternalGameParser extends AbstractInternalContentAssistParser {
// $ANTLR start "rule__ConditionConnaissance__ConnaissanceAssignment_1"
- // InternalGame.g:8205:1: rule__ConditionConnaissance__ConnaissanceAssignment_1 : ( RULE_ID ) ;
+ // InternalGame.g:8205:1: rule__ConditionConnaissance__ConnaissanceAssignment_1 : ( ( RULE_ID ) ) ;
public final void rule__ConditionConnaissance__ConnaissanceAssignment_1() throws RecognitionException {
int stackSize = keepStackSize();
try {
- // InternalGame.g:8209:1: ( ( RULE_ID ) )
- // InternalGame.g:8210:2: ( RULE_ID )
+ // InternalGame.g:8209:1: ( ( ( RULE_ID ) ) )
+ // InternalGame.g:8210:2: ( ( RULE_ID ) )
{
- // InternalGame.g:8210:2: ( RULE_ID )
- // InternalGame.g:8211:3: RULE_ID
+ // InternalGame.g:8210:2: ( ( RULE_ID ) )
+ // InternalGame.g:8211:3: ( RULE_ID )
{
- before(grammarAccess.getConditionConnaissanceAccess().getConnaissanceIDTerminalRuleCall_1_0());
+ before(grammarAccess.getConditionConnaissanceAccess().getConnaissanceConnaissanceCrossReference_1_0());
+ // InternalGame.g:8212:3: ( RULE_ID )
+ // InternalGame.g:8213:4: RULE_ID
+ {
+ before(grammarAccess.getConditionConnaissanceAccess().getConnaissanceConnaissanceIDTerminalRuleCall_1_0_1());
match(input,RULE_ID,FOLLOW_2);
- after(grammarAccess.getConditionConnaissanceAccess().getConnaissanceIDTerminalRuleCall_1_0());
+ after(grammarAccess.getConditionConnaissanceAccess().getConnaissanceConnaissanceIDTerminalRuleCall_1_0_1());
+
+ }
+
+ after(grammarAccess.getConditionConnaissanceAccess().getConnaissanceConnaissanceCrossReference_1_0());
}
@@ -24197,21 +24205,29 @@ public class InternalGameParser extends AbstractInternalContentAssistParser {
// $ANTLR start "rule__ConditionObjet__ObjetAssignment_0"
- // InternalGame.g:8220:1: rule__ConditionObjet__ObjetAssignment_0 : ( RULE_ID ) ;
+ // InternalGame.g:8224:1: rule__ConditionObjet__ObjetAssignment_0 : ( ( RULE_ID ) ) ;
public final void rule__ConditionObjet__ObjetAssignment_0() throws RecognitionException {
int stackSize = keepStackSize();
try {
- // InternalGame.g:8224:1: ( ( RULE_ID ) )
- // InternalGame.g:8225:2: ( RULE_ID )
+ // InternalGame.g:8228:1: ( ( ( RULE_ID ) ) )
+ // InternalGame.g:8229:2: ( ( RULE_ID ) )
{
- // InternalGame.g:8225:2: ( RULE_ID )
- // InternalGame.g:8226:3: RULE_ID
+ // InternalGame.g:8229:2: ( ( RULE_ID ) )
+ // InternalGame.g:8230:3: ( RULE_ID )
{
- before(grammarAccess.getConditionObjetAccess().getObjetIDTerminalRuleCall_0_0());
+ before(grammarAccess.getConditionObjetAccess().getObjetObjetCrossReference_0_0());
+ // InternalGame.g:8231:3: ( RULE_ID )
+ // InternalGame.g:8232:4: RULE_ID
+ {
+ before(grammarAccess.getConditionObjetAccess().getObjetObjetIDTerminalRuleCall_0_0_1());
match(input,RULE_ID,FOLLOW_2);
- after(grammarAccess.getConditionObjetAccess().getObjetIDTerminalRuleCall_0_0());
+ after(grammarAccess.getConditionObjetAccess().getObjetObjetIDTerminalRuleCall_0_0_1());
+
+ }
+
+ after(grammarAccess.getConditionObjetAccess().getObjetObjetCrossReference_0_0());
}
@@ -24234,17 +24250,17 @@ public class InternalGameParser extends AbstractInternalContentAssistParser {
// $ANTLR start "rule__ConditionObjet__ComparateurAssignment_1"
- // InternalGame.g:8235:1: rule__ConditionObjet__ComparateurAssignment_1 : ( RULE_COMPARATEUR ) ;
+ // InternalGame.g:8243:1: rule__ConditionObjet__ComparateurAssignment_1 : ( RULE_COMPARATEUR ) ;
public final void rule__ConditionObjet__ComparateurAssignment_1() throws RecognitionException {
int stackSize = keepStackSize();
try {
- // InternalGame.g:8239:1: ( ( RULE_COMPARATEUR ) )
- // InternalGame.g:8240:2: ( RULE_COMPARATEUR )
+ // InternalGame.g:8247:1: ( ( RULE_COMPARATEUR ) )
+ // InternalGame.g:8248:2: ( RULE_COMPARATEUR )
{
- // InternalGame.g:8240:2: ( RULE_COMPARATEUR )
- // InternalGame.g:8241:3: RULE_COMPARATEUR
+ // InternalGame.g:8248:2: ( RULE_COMPARATEUR )
+ // InternalGame.g:8249:3: RULE_COMPARATEUR
{
before(grammarAccess.getConditionObjetAccess().getComparateurCOMPARATEURTerminalRuleCall_1_0());
match(input,RULE_COMPARATEUR,FOLLOW_2);
@@ -24271,17 +24287,17 @@ public class InternalGameParser extends AbstractInternalContentAssistParser {
// $ANTLR start "rule__ConditionObjet__NombreAssignment_2"
- // InternalGame.g:8250:1: rule__ConditionObjet__NombreAssignment_2 : ( RULE_INT ) ;
+ // InternalGame.g:8258:1: rule__ConditionObjet__NombreAssignment_2 : ( RULE_INT ) ;
public final void rule__ConditionObjet__NombreAssignment_2() throws RecognitionException {
int stackSize = keepStackSize();
try {
- // InternalGame.g:8254:1: ( ( RULE_INT ) )
- // InternalGame.g:8255:2: ( RULE_INT )
+ // InternalGame.g:8262:1: ( ( RULE_INT ) )
+ // InternalGame.g:8263:2: ( RULE_INT )
{
- // InternalGame.g:8255:2: ( RULE_INT )
- // InternalGame.g:8256:3: RULE_INT
+ // InternalGame.g:8263:2: ( RULE_INT )
+ // InternalGame.g:8264:3: RULE_INT
{
before(grammarAccess.getConditionObjetAccess().getNombreINTTerminalRuleCall_2_0());
match(input,RULE_INT,FOLLOW_2);
diff --git a/workspace/fr.n7.game.xtext.ui/src-gen/fr/n7/game/xtext/ui/contentassist/AbstractGameProposalProvider.java b/workspace/fr.n7.game.xtext.ui/src-gen/fr/n7/game/xtext/ui/contentassist/AbstractGameProposalProvider.java
index 15ca7ee..98489be 100644
--- a/workspace/fr.n7.game.xtext.ui/src-gen/fr/n7/game/xtext/ui/contentassist/AbstractGameProposalProvider.java
+++ b/workspace/fr.n7.game.xtext.ui/src-gen/fr/n7/game/xtext/ui/contentassist/AbstractGameProposalProvider.java
@@ -211,10 +211,10 @@ public abstract class AbstractGameProposalProvider extends TerminalsProposalProv
// subclasses may override
}
public void completeConditionConnaissance_Connaissance(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
- completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
}
public void completeConditionObjet_Objet(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
- completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
}
public void completeConditionObjet_Comparateur(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
diff --git a/workspace/fr.n7.game.xtext/model/generated/Game.ecore b/workspace/fr.n7.game.xtext/model/generated/Game.ecore
index cbf2d49..663a371 100644
--- a/workspace/fr.n7.game.xtext/model/generated/Game.ecore
+++ b/workspace/fr.n7.game.xtext/model/generated/Game.ecore
@@ -145,10 +145,10 @@
-
+
-
+
diff --git a/workspace/fr.n7.game.xtext/model/generated/Game.genmodel b/workspace/fr.n7.game.xtext/model/generated/Game.genmodel
index eb6c7a5..e8dbb59 100644
--- a/workspace/fr.n7.game.xtext/model/generated/Game.genmodel
+++ b/workspace/fr.n7.game.xtext/model/generated/Game.genmodel
@@ -102,10 +102,10 @@
-
+
-
+
diff --git a/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/Game.xtextbin b/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/Game.xtextbin
index 439e779..d09e890 100644
Binary files a/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/Game.xtextbin and b/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/Game.xtextbin differ
diff --git a/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/game/ConditionConnaissance.java b/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/game/ConditionConnaissance.java
index db529bd..66408ae 100644
--- a/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/game/ConditionConnaissance.java
+++ b/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/game/ConditionConnaissance.java
@@ -46,25 +46,25 @@ public interface ConditionConnaissance extends ConditionTest
void setNegation(String value);
/**
- * Returns the value of the 'Connaissance' attribute.
+ * Returns the value of the 'Connaissance' reference.
*
*
- * @return the value of the 'Connaissance' attribute.
- * @see #setConnaissance(String)
+ * @return the value of the 'Connaissance' reference.
+ * @see #setConnaissance(Connaissance)
* @see fr.n7.game.xtext.game.GamePackage#getConditionConnaissance_Connaissance()
* @model
* @generated
*/
- String getConnaissance();
+ Connaissance getConnaissance();
/**
- * Sets the value of the '{@link fr.n7.game.xtext.game.ConditionConnaissance#getConnaissance Connaissance}' attribute.
+ * Sets the value of the '{@link fr.n7.game.xtext.game.ConditionConnaissance#getConnaissance Connaissance}' reference.
*
*
- * @param value the new value of the 'Connaissance' attribute.
+ * @param value the new value of the 'Connaissance' reference.
* @see #getConnaissance()
* @generated
*/
- void setConnaissance(String value);
+ void setConnaissance(Connaissance value);
} // ConditionConnaissance
diff --git a/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/game/ConditionObjet.java b/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/game/ConditionObjet.java
index c91bc03..6981cff 100644
--- a/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/game/ConditionObjet.java
+++ b/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/game/ConditionObjet.java
@@ -25,26 +25,26 @@ package fr.n7.game.xtext.game;
public interface ConditionObjet extends ConditionTest
{
/**
- * Returns the value of the 'Objet' attribute.
+ * Returns the value of the 'Objet' reference.
*
*
- * @return the value of the 'Objet' attribute.
- * @see #setObjet(String)
+ * @return the value of the 'Objet' reference.
+ * @see #setObjet(Objet)
* @see fr.n7.game.xtext.game.GamePackage#getConditionObjet_Objet()
* @model
* @generated
*/
- String getObjet();
+ Objet getObjet();
/**
- * Sets the value of the '{@link fr.n7.game.xtext.game.ConditionObjet#getObjet Objet}' attribute.
+ * Sets the value of the '{@link fr.n7.game.xtext.game.ConditionObjet#getObjet Objet}' reference.
*
*
- * @param value the new value of the 'Objet' attribute.
+ * @param value the new value of the 'Objet' reference.
* @see #getObjet()
* @generated
*/
- void setObjet(String value);
+ void setObjet(Objet value);
/**
* Returns the value of the 'Comparateur' attribute.
diff --git a/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/game/GamePackage.java b/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/game/GamePackage.java
index c3143e5..843aa88 100644
--- a/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/game/GamePackage.java
+++ b/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/game/GamePackage.java
@@ -948,7 +948,7 @@ public interface GamePackage extends EPackage
int CONDITION_CONNAISSANCE__NEGATION = CONDITION_TEST_FEATURE_COUNT + 0;
/**
- * The feature id for the 'Connaissance' attribute.
+ * The feature id for the 'Connaissance' reference.
*
*
* @generated
@@ -976,7 +976,7 @@ public interface GamePackage extends EPackage
int CONDITION_OBJET = 17;
/**
- * The feature id for the 'Objet' attribute.
+ * The feature id for the 'Objet' reference.
*
*
* @generated
@@ -1887,15 +1887,15 @@ public interface GamePackage extends EPackage
EAttribute getConditionConnaissance_Negation();
/**
- * Returns the meta object for the attribute '{@link fr.n7.game.xtext.game.ConditionConnaissance#getConnaissance Connaissance}'.
+ * Returns the meta object for the reference '{@link fr.n7.game.xtext.game.ConditionConnaissance#getConnaissance Connaissance}'.
*
*
- * @return the meta object for the attribute 'Connaissance'.
+ * @return the meta object for the reference 'Connaissance'.
* @see fr.n7.game.xtext.game.ConditionConnaissance#getConnaissance()
* @see #getConditionConnaissance()
* @generated
*/
- EAttribute getConditionConnaissance_Connaissance();
+ EReference getConditionConnaissance_Connaissance();
/**
* Returns the meta object for class '{@link fr.n7.game.xtext.game.ConditionObjet Condition Objet}'.
@@ -1908,15 +1908,15 @@ public interface GamePackage extends EPackage
EClass getConditionObjet();
/**
- * Returns the meta object for the attribute '{@link fr.n7.game.xtext.game.ConditionObjet#getObjet Objet}'.
+ * Returns the meta object for the reference '{@link fr.n7.game.xtext.game.ConditionObjet#getObjet Objet}'.
*
*
- * @return the meta object for the attribute 'Objet'.
+ * @return the meta object for the reference 'Objet'.
* @see fr.n7.game.xtext.game.ConditionObjet#getObjet()
* @see #getConditionObjet()
* @generated
*/
- EAttribute getConditionObjet_Objet();
+ EReference getConditionObjet_Objet();
/**
* Returns the meta object for the attribute '{@link fr.n7.game.xtext.game.ConditionObjet#getComparateur Comparateur}'.
@@ -2646,12 +2646,12 @@ public interface GamePackage extends EPackage
EAttribute CONDITION_CONNAISSANCE__NEGATION = eINSTANCE.getConditionConnaissance_Negation();
/**
- * The meta object literal for the 'Connaissance' attribute feature.
+ * The meta object literal for the 'Connaissance' reference feature.
*
*
* @generated
*/
- EAttribute CONDITION_CONNAISSANCE__CONNAISSANCE = eINSTANCE.getConditionConnaissance_Connaissance();
+ EReference CONDITION_CONNAISSANCE__CONNAISSANCE = eINSTANCE.getConditionConnaissance_Connaissance();
/**
* The meta object literal for the '{@link fr.n7.game.xtext.game.impl.ConditionObjetImpl Condition Objet}' class.
@@ -2664,12 +2664,12 @@ public interface GamePackage extends EPackage
EClass CONDITION_OBJET = eINSTANCE.getConditionObjet();
/**
- * The meta object literal for the 'Objet' attribute feature.
+ * The meta object literal for the 'Objet' reference feature.
*
*
* @generated
*/
- EAttribute CONDITION_OBJET__OBJET = eINSTANCE.getConditionObjet_Objet();
+ EReference CONDITION_OBJET__OBJET = eINSTANCE.getConditionObjet_Objet();
/**
* The meta object literal for the 'Comparateur' attribute feature.
diff --git a/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/game/impl/ConditionConnaissanceImpl.java b/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/game/impl/ConditionConnaissanceImpl.java
index 7ebaa6b..fea3b76 100644
--- a/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/game/impl/ConditionConnaissanceImpl.java
+++ b/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/game/impl/ConditionConnaissanceImpl.java
@@ -4,11 +4,13 @@
package fr.n7.game.xtext.game.impl;
import fr.n7.game.xtext.game.ConditionConnaissance;
+import fr.n7.game.xtext.game.Connaissance;
import fr.n7.game.xtext.game.GamePackage;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
@@ -49,24 +51,14 @@ public class ConditionConnaissanceImpl extends ConditionTestImpl implements Cond
protected String negation = NEGATION_EDEFAULT;
/**
- * The default value of the '{@link #getConnaissance() Connaissance}' attribute.
+ * The cached value of the '{@link #getConnaissance() Connaissance}' reference.
*
*
* @see #getConnaissance()
* @generated
* @ordered
*/
- protected static final String CONNAISSANCE_EDEFAULT = null;
-
- /**
- * The cached value of the '{@link #getConnaissance() Connaissance}' attribute.
- *
- *
- * @see #getConnaissance()
- * @generated
- * @ordered
- */
- protected String connaissance = CONNAISSANCE_EDEFAULT;
+ protected Connaissance connaissance;
/**
*
@@ -120,7 +112,27 @@ public class ConditionConnaissanceImpl extends ConditionTestImpl implements Cond
* @generated
*/
@Override
- public String getConnaissance()
+ public Connaissance getConnaissance()
+ {
+ if (connaissance != null && connaissance.eIsProxy())
+ {
+ InternalEObject oldConnaissance = (InternalEObject)connaissance;
+ connaissance = (Connaissance)eResolveProxy(oldConnaissance);
+ if (connaissance != oldConnaissance)
+ {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, GamePackage.CONDITION_CONNAISSANCE__CONNAISSANCE, oldConnaissance, connaissance));
+ }
+ }
+ return connaissance;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public Connaissance basicGetConnaissance()
{
return connaissance;
}
@@ -131,9 +143,9 @@ public class ConditionConnaissanceImpl extends ConditionTestImpl implements Cond
* @generated
*/
@Override
- public void setConnaissance(String newConnaissance)
+ public void setConnaissance(Connaissance newConnaissance)
{
- String oldConnaissance = connaissance;
+ Connaissance oldConnaissance = connaissance;
connaissance = newConnaissance;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, GamePackage.CONDITION_CONNAISSANCE__CONNAISSANCE, oldConnaissance, connaissance));
@@ -152,7 +164,8 @@ public class ConditionConnaissanceImpl extends ConditionTestImpl implements Cond
case GamePackage.CONDITION_CONNAISSANCE__NEGATION:
return getNegation();
case GamePackage.CONDITION_CONNAISSANCE__CONNAISSANCE:
- return getConnaissance();
+ if (resolve) return getConnaissance();
+ return basicGetConnaissance();
}
return super.eGet(featureID, resolve, coreType);
}
@@ -171,7 +184,7 @@ public class ConditionConnaissanceImpl extends ConditionTestImpl implements Cond
setNegation((String)newValue);
return;
case GamePackage.CONDITION_CONNAISSANCE__CONNAISSANCE:
- setConnaissance((String)newValue);
+ setConnaissance((Connaissance)newValue);
return;
}
super.eSet(featureID, newValue);
@@ -191,7 +204,7 @@ public class ConditionConnaissanceImpl extends ConditionTestImpl implements Cond
setNegation(NEGATION_EDEFAULT);
return;
case GamePackage.CONDITION_CONNAISSANCE__CONNAISSANCE:
- setConnaissance(CONNAISSANCE_EDEFAULT);
+ setConnaissance((Connaissance)null);
return;
}
super.eUnset(featureID);
@@ -210,7 +223,7 @@ public class ConditionConnaissanceImpl extends ConditionTestImpl implements Cond
case GamePackage.CONDITION_CONNAISSANCE__NEGATION:
return NEGATION_EDEFAULT == null ? negation != null : !NEGATION_EDEFAULT.equals(negation);
case GamePackage.CONDITION_CONNAISSANCE__CONNAISSANCE:
- return CONNAISSANCE_EDEFAULT == null ? connaissance != null : !CONNAISSANCE_EDEFAULT.equals(connaissance);
+ return connaissance != null;
}
return super.eIsSet(featureID);
}
@@ -228,8 +241,6 @@ public class ConditionConnaissanceImpl extends ConditionTestImpl implements Cond
StringBuilder result = new StringBuilder(super.toString());
result.append(" (negation: ");
result.append(negation);
- result.append(", connaissance: ");
- result.append(connaissance);
result.append(')');
return result.toString();
}
diff --git a/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/game/impl/ConditionObjetImpl.java b/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/game/impl/ConditionObjetImpl.java
index 4f3e540..b581480 100644
--- a/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/game/impl/ConditionObjetImpl.java
+++ b/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/game/impl/ConditionObjetImpl.java
@@ -5,10 +5,12 @@ package fr.n7.game.xtext.game.impl;
import fr.n7.game.xtext.game.ConditionObjet;
import fr.n7.game.xtext.game.GamePackage;
+import fr.n7.game.xtext.game.Objet;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
@@ -30,24 +32,14 @@ import org.eclipse.emf.ecore.impl.ENotificationImpl;
public class ConditionObjetImpl extends ConditionTestImpl implements ConditionObjet
{
/**
- * The default value of the '{@link #getObjet() Objet}' attribute.
+ * The cached value of the '{@link #getObjet() Objet}' reference.
*
*
* @see #getObjet()
* @generated
* @ordered
*/
- protected static final String OBJET_EDEFAULT = null;
-
- /**
- * The cached value of the '{@link #getObjet() Objet}' attribute.
- *
- *
- * @see #getObjet()
- * @generated
- * @ordered
- */
- protected String objet = OBJET_EDEFAULT;
+ protected Objet objet;
/**
* The default value of the '{@link #getComparateur() Comparateur}' attribute.
@@ -116,7 +108,27 @@ public class ConditionObjetImpl extends ConditionTestImpl implements ConditionOb
* @generated
*/
@Override
- public String getObjet()
+ public Objet getObjet()
+ {
+ if (objet != null && objet.eIsProxy())
+ {
+ InternalEObject oldObjet = (InternalEObject)objet;
+ objet = (Objet)eResolveProxy(oldObjet);
+ if (objet != oldObjet)
+ {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, GamePackage.CONDITION_OBJET__OBJET, oldObjet, objet));
+ }
+ }
+ return objet;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public Objet basicGetObjet()
{
return objet;
}
@@ -127,9 +139,9 @@ public class ConditionObjetImpl extends ConditionTestImpl implements ConditionOb
* @generated
*/
@Override
- public void setObjet(String newObjet)
+ public void setObjet(Objet newObjet)
{
- String oldObjet = objet;
+ Objet oldObjet = objet;
objet = newObjet;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, GamePackage.CONDITION_OBJET__OBJET, oldObjet, objet));
@@ -196,7 +208,8 @@ public class ConditionObjetImpl extends ConditionTestImpl implements ConditionOb
switch (featureID)
{
case GamePackage.CONDITION_OBJET__OBJET:
- return getObjet();
+ if (resolve) return getObjet();
+ return basicGetObjet();
case GamePackage.CONDITION_OBJET__COMPARATEUR:
return getComparateur();
case GamePackage.CONDITION_OBJET__NOMBRE:
@@ -216,7 +229,7 @@ public class ConditionObjetImpl extends ConditionTestImpl implements ConditionOb
switch (featureID)
{
case GamePackage.CONDITION_OBJET__OBJET:
- setObjet((String)newValue);
+ setObjet((Objet)newValue);
return;
case GamePackage.CONDITION_OBJET__COMPARATEUR:
setComparateur((String)newValue);
@@ -239,7 +252,7 @@ public class ConditionObjetImpl extends ConditionTestImpl implements ConditionOb
switch (featureID)
{
case GamePackage.CONDITION_OBJET__OBJET:
- setObjet(OBJET_EDEFAULT);
+ setObjet((Objet)null);
return;
case GamePackage.CONDITION_OBJET__COMPARATEUR:
setComparateur(COMPARATEUR_EDEFAULT);
@@ -262,7 +275,7 @@ public class ConditionObjetImpl extends ConditionTestImpl implements ConditionOb
switch (featureID)
{
case GamePackage.CONDITION_OBJET__OBJET:
- return OBJET_EDEFAULT == null ? objet != null : !OBJET_EDEFAULT.equals(objet);
+ return objet != null;
case GamePackage.CONDITION_OBJET__COMPARATEUR:
return COMPARATEUR_EDEFAULT == null ? comparateur != null : !COMPARATEUR_EDEFAULT.equals(comparateur);
case GamePackage.CONDITION_OBJET__NOMBRE:
@@ -282,9 +295,7 @@ public class ConditionObjetImpl extends ConditionTestImpl implements ConditionOb
if (eIsProxy()) return super.toString();
StringBuilder result = new StringBuilder(super.toString());
- result.append(" (objet: ");
- result.append(objet);
- result.append(", comparateur: ");
+ result.append(" (comparateur: ");
result.append(comparateur);
result.append(", nombre: ");
result.append(nombre);
diff --git a/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/game/impl/GamePackageImpl.java b/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/game/impl/GamePackageImpl.java
index cc5ba4b..2999fc1 100644
--- a/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/game/impl/GamePackageImpl.java
+++ b/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/game/impl/GamePackageImpl.java
@@ -1125,9 +1125,9 @@ public class GamePackageImpl extends EPackageImpl implements GamePackage
* @generated
*/
@Override
- public EAttribute getConditionConnaissance_Connaissance()
+ public EReference getConditionConnaissance_Connaissance()
{
- return (EAttribute)conditionConnaissanceEClass.getEStructuralFeatures().get(1);
+ return (EReference)conditionConnaissanceEClass.getEStructuralFeatures().get(1);
}
/**
@@ -1147,9 +1147,9 @@ public class GamePackageImpl extends EPackageImpl implements GamePackage
* @generated
*/
@Override
- public EAttribute getConditionObjet_Objet()
+ public EReference getConditionObjet_Objet()
{
- return (EAttribute)conditionObjetEClass.getEStructuralFeatures().get(0);
+ return (EReference)conditionObjetEClass.getEStructuralFeatures().get(0);
}
/**
@@ -1302,10 +1302,10 @@ public class GamePackageImpl extends EPackageImpl implements GamePackage
conditionConnaissanceEClass = createEClass(CONDITION_CONNAISSANCE);
createEAttribute(conditionConnaissanceEClass, CONDITION_CONNAISSANCE__NEGATION);
- createEAttribute(conditionConnaissanceEClass, CONDITION_CONNAISSANCE__CONNAISSANCE);
+ createEReference(conditionConnaissanceEClass, CONDITION_CONNAISSANCE__CONNAISSANCE);
conditionObjetEClass = createEClass(CONDITION_OBJET);
- createEAttribute(conditionObjetEClass, CONDITION_OBJET__OBJET);
+ createEReference(conditionObjetEClass, CONDITION_OBJET__OBJET);
createEAttribute(conditionObjetEClass, CONDITION_OBJET__COMPARATEUR);
createEAttribute(conditionObjetEClass, CONDITION_OBJET__NOMBRE);
}
@@ -1441,10 +1441,10 @@ public class GamePackageImpl extends EPackageImpl implements GamePackage
initEClass(conditionConnaissanceEClass, ConditionConnaissance.class, "ConditionConnaissance", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getConditionConnaissance_Negation(), ecorePackage.getEString(), "negation", null, 0, 1, ConditionConnaissance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getConditionConnaissance_Connaissance(), ecorePackage.getEString(), "connaissance", null, 0, 1, ConditionConnaissance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getConditionConnaissance_Connaissance(), this.getConnaissance(), null, "connaissance", null, 0, 1, ConditionConnaissance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(conditionObjetEClass, ConditionObjet.class, "ConditionObjet", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEAttribute(getConditionObjet_Objet(), ecorePackage.getEString(), "objet", null, 0, 1, ConditionObjet.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getConditionObjet_Objet(), this.getObjet(), null, "objet", null, 0, 1, ConditionObjet.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getConditionObjet_Comparateur(), ecorePackage.getEString(), "comparateur", null, 0, 1, ConditionObjet.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getConditionObjet_Nombre(), ecorePackage.getEInt(), "nombre", null, 0, 1, ConditionObjet.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
diff --git a/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/parser/antlr/internal/InternalGame.g b/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/parser/antlr/internal/InternalGame.g
index 3bc2abc..bbae9f2 100644
--- a/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/parser/antlr/internal/InternalGame.g
+++ b/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/parser/antlr/internal/InternalGame.g
@@ -2171,19 +2171,14 @@ ruleConditionConnaissance returns [EObject current=null]
)?
(
(
- lv_connaissance_1_0=RULE_ID
- {
- newLeafNode(lv_connaissance_1_0, grammarAccess.getConditionConnaissanceAccess().getConnaissanceIDTerminalRuleCall_1_0());
- }
{
if ($current==null) {
$current = createModelElement(grammarAccess.getConditionConnaissanceRule());
}
- setWithLastConsumed(
- $current,
- "connaissance",
- lv_connaissance_1_0,
- "org.eclipse.xtext.common.Terminals.ID");
+ }
+ otherlv_1=RULE_ID
+ {
+ newLeafNode(otherlv_1, grammarAccess.getConditionConnaissanceAccess().getConnaissanceConnaissanceCrossReference_1_0());
}
)
)
@@ -2208,19 +2203,14 @@ ruleConditionObjet returns [EObject current=null]
(
(
(
- lv_objet_0_0=RULE_ID
- {
- newLeafNode(lv_objet_0_0, grammarAccess.getConditionObjetAccess().getObjetIDTerminalRuleCall_0_0());
- }
{
if ($current==null) {
$current = createModelElement(grammarAccess.getConditionObjetRule());
}
- setWithLastConsumed(
- $current,
- "objet",
- lv_objet_0_0,
- "org.eclipse.xtext.common.Terminals.ID");
+ }
+ otherlv_0=RULE_ID
+ {
+ newLeafNode(otherlv_0, grammarAccess.getConditionObjetAccess().getObjetObjetCrossReference_0_0());
}
)
)
diff --git a/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/parser/antlr/internal/InternalGameLexer.java b/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/parser/antlr/internal/InternalGameLexer.java
index 57b12f7..4179722 100644
--- a/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/parser/antlr/internal/InternalGameLexer.java
+++ b/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/parser/antlr/internal/InternalGameLexer.java
@@ -808,10 +808,10 @@ public class InternalGameLexer extends Lexer {
try {
int _type = RULE_COMPARATEUR;
int _channel = DEFAULT_TOKEN_CHANNEL;
- // InternalGame.g:2266:18: ( ( '<' | '>' | '==' | '<=' | '>=' | '!=' ) )
- // InternalGame.g:2266:20: ( '<' | '>' | '==' | '<=' | '>=' | '!=' )
+ // InternalGame.g:2256:18: ( ( '<' | '>' | '==' | '<=' | '>=' | '!=' ) )
+ // InternalGame.g:2256:20: ( '<' | '>' | '==' | '<=' | '>=' | '!=' )
{
- // InternalGame.g:2266:20: ( '<' | '>' | '==' | '<=' | '>=' | '!=' )
+ // InternalGame.g:2256:20: ( '<' | '>' | '==' | '<=' | '>=' | '!=' )
int alt1=6;
switch ( input.LA(1) ) {
case '<':
@@ -855,21 +855,21 @@ public class InternalGameLexer extends Lexer {
switch (alt1) {
case 1 :
- // InternalGame.g:2266:21: '<'
+ // InternalGame.g:2256:21: '<'
{
match('<');
}
break;
case 2 :
- // InternalGame.g:2266:25: '>'
+ // InternalGame.g:2256:25: '>'
{
match('>');
}
break;
case 3 :
- // InternalGame.g:2266:29: '=='
+ // InternalGame.g:2256:29: '=='
{
match("==");
@@ -877,7 +877,7 @@ public class InternalGameLexer extends Lexer {
}
break;
case 4 :
- // InternalGame.g:2266:34: '<='
+ // InternalGame.g:2256:34: '<='
{
match("<=");
@@ -885,7 +885,7 @@ public class InternalGameLexer extends Lexer {
}
break;
case 5 :
- // InternalGame.g:2266:39: '>='
+ // InternalGame.g:2256:39: '>='
{
match(">=");
@@ -893,7 +893,7 @@ public class InternalGameLexer extends Lexer {
}
break;
case 6 :
- // InternalGame.g:2266:44: '!='
+ // InternalGame.g:2256:44: '!='
{
match("!=");
@@ -919,10 +919,10 @@ public class InternalGameLexer extends Lexer {
try {
int _type = RULE_BOOLEAN;
int _channel = DEFAULT_TOKEN_CHANNEL;
- // InternalGame.g:2268:14: ( ( 'true' | 'false' ) )
- // InternalGame.g:2268:16: ( 'true' | 'false' )
+ // InternalGame.g:2258:14: ( ( 'true' | 'false' ) )
+ // InternalGame.g:2258:16: ( 'true' | 'false' )
{
- // InternalGame.g:2268:16: ( 'true' | 'false' )
+ // InternalGame.g:2258:16: ( 'true' | 'false' )
int alt2=2;
int LA2_0 = input.LA(1);
@@ -940,7 +940,7 @@ public class InternalGameLexer extends Lexer {
}
switch (alt2) {
case 1 :
- // InternalGame.g:2268:17: 'true'
+ // InternalGame.g:2258:17: 'true'
{
match("true");
@@ -948,7 +948,7 @@ public class InternalGameLexer extends Lexer {
}
break;
case 2 :
- // InternalGame.g:2268:24: 'false'
+ // InternalGame.g:2258:24: 'false'
{
match("false");
@@ -974,10 +974,10 @@ public class InternalGameLexer extends Lexer {
try {
int _type = RULE_ID;
int _channel = DEFAULT_TOKEN_CHANNEL;
- // InternalGame.g:2270:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
- // InternalGame.g:2270:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ // InternalGame.g:2260:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+ // InternalGame.g:2260:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
{
- // InternalGame.g:2270:11: ( '^' )?
+ // InternalGame.g:2260:11: ( '^' )?
int alt3=2;
int LA3_0 = input.LA(1);
@@ -986,7 +986,7 @@ public class InternalGameLexer extends Lexer {
}
switch (alt3) {
case 1 :
- // InternalGame.g:2270:11: '^'
+ // InternalGame.g:2260:11: '^'
{
match('^');
@@ -1004,7 +1004,7 @@ public class InternalGameLexer extends Lexer {
recover(mse);
throw mse;}
- // InternalGame.g:2270:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ // InternalGame.g:2260:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
loop4:
do {
int alt4=2;
@@ -1053,10 +1053,10 @@ public class InternalGameLexer extends Lexer {
try {
int _type = RULE_INT;
int _channel = DEFAULT_TOKEN_CHANNEL;
- // InternalGame.g:2272:10: ( ( '0' .. '9' )+ )
- // InternalGame.g:2272:12: ( '0' .. '9' )+
+ // InternalGame.g:2262:10: ( ( '0' .. '9' )+ )
+ // InternalGame.g:2262:12: ( '0' .. '9' )+
{
- // InternalGame.g:2272:12: ( '0' .. '9' )+
+ // InternalGame.g:2262:12: ( '0' .. '9' )+
int cnt5=0;
loop5:
do {
@@ -1070,7 +1070,7 @@ public class InternalGameLexer extends Lexer {
switch (alt5) {
case 1 :
- // InternalGame.g:2272:13: '0' .. '9'
+ // InternalGame.g:2262:13: '0' .. '9'
{
matchRange('0','9');
@@ -1102,10 +1102,10 @@ public class InternalGameLexer extends Lexer {
try {
int _type = RULE_STRING;
int _channel = DEFAULT_TOKEN_CHANNEL;
- // InternalGame.g:2274:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
- // InternalGame.g:2274:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+ // InternalGame.g:2264:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
+ // InternalGame.g:2264:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
{
- // InternalGame.g:2274:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+ // InternalGame.g:2264:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
int alt8=2;
int LA8_0 = input.LA(1);
@@ -1123,10 +1123,10 @@ public class InternalGameLexer extends Lexer {
}
switch (alt8) {
case 1 :
- // InternalGame.g:2274:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+ // InternalGame.g:2264:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
{
match('\"');
- // InternalGame.g:2274:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+ // InternalGame.g:2264:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
loop6:
do {
int alt6=3;
@@ -1142,7 +1142,7 @@ public class InternalGameLexer extends Lexer {
switch (alt6) {
case 1 :
- // InternalGame.g:2274:21: '\\\\' .
+ // InternalGame.g:2264:21: '\\\\' .
{
match('\\');
matchAny();
@@ -1150,7 +1150,7 @@ public class InternalGameLexer extends Lexer {
}
break;
case 2 :
- // InternalGame.g:2274:28: ~ ( ( '\\\\' | '\"' ) )
+ // InternalGame.g:2264:28: ~ ( ( '\\\\' | '\"' ) )
{
if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
input.consume();
@@ -1175,10 +1175,10 @@ public class InternalGameLexer extends Lexer {
}
break;
case 2 :
- // InternalGame.g:2274:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+ // InternalGame.g:2264:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
{
match('\'');
- // InternalGame.g:2274:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+ // InternalGame.g:2264:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
loop7:
do {
int alt7=3;
@@ -1194,7 +1194,7 @@ public class InternalGameLexer extends Lexer {
switch (alt7) {
case 1 :
- // InternalGame.g:2274:54: '\\\\' .
+ // InternalGame.g:2264:54: '\\\\' .
{
match('\\');
matchAny();
@@ -1202,7 +1202,7 @@ public class InternalGameLexer extends Lexer {
}
break;
case 2 :
- // InternalGame.g:2274:61: ~ ( ( '\\\\' | '\\'' ) )
+ // InternalGame.g:2264:61: ~ ( ( '\\\\' | '\\'' ) )
{
if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
input.consume();
@@ -1245,12 +1245,12 @@ public class InternalGameLexer extends Lexer {
try {
int _type = RULE_ML_COMMENT;
int _channel = DEFAULT_TOKEN_CHANNEL;
- // InternalGame.g:2276:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
- // InternalGame.g:2276:19: '/*' ( options {greedy=false; } : . )* '*/'
+ // InternalGame.g:2266:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+ // InternalGame.g:2266:19: '/*' ( options {greedy=false; } : . )* '*/'
{
match("/*");
- // InternalGame.g:2276:24: ( options {greedy=false; } : . )*
+ // InternalGame.g:2266:24: ( options {greedy=false; } : . )*
loop9:
do {
int alt9=2;
@@ -1275,7 +1275,7 @@ public class InternalGameLexer extends Lexer {
switch (alt9) {
case 1 :
- // InternalGame.g:2276:52: .
+ // InternalGame.g:2266:52: .
{
matchAny();
@@ -1305,12 +1305,12 @@ public class InternalGameLexer extends Lexer {
try {
int _type = RULE_SL_COMMENT;
int _channel = DEFAULT_TOKEN_CHANNEL;
- // InternalGame.g:2278:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
- // InternalGame.g:2278:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+ // InternalGame.g:2268:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+ // InternalGame.g:2268:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
{
match("//");
- // InternalGame.g:2278:24: (~ ( ( '\\n' | '\\r' ) ) )*
+ // InternalGame.g:2268:24: (~ ( ( '\\n' | '\\r' ) ) )*
loop10:
do {
int alt10=2;
@@ -1323,7 +1323,7 @@ public class InternalGameLexer extends Lexer {
switch (alt10) {
case 1 :
- // InternalGame.g:2278:24: ~ ( ( '\\n' | '\\r' ) )
+ // InternalGame.g:2268: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();
@@ -1343,7 +1343,7 @@ public class InternalGameLexer extends Lexer {
}
} while (true);
- // InternalGame.g:2278:40: ( ( '\\r' )? '\\n' )?
+ // InternalGame.g:2268:40: ( ( '\\r' )? '\\n' )?
int alt12=2;
int LA12_0 = input.LA(1);
@@ -1352,9 +1352,9 @@ public class InternalGameLexer extends Lexer {
}
switch (alt12) {
case 1 :
- // InternalGame.g:2278:41: ( '\\r' )? '\\n'
+ // InternalGame.g:2268:41: ( '\\r' )? '\\n'
{
- // InternalGame.g:2278:41: ( '\\r' )?
+ // InternalGame.g:2268:41: ( '\\r' )?
int alt11=2;
int LA11_0 = input.LA(1);
@@ -1363,7 +1363,7 @@ public class InternalGameLexer extends Lexer {
}
switch (alt11) {
case 1 :
- // InternalGame.g:2278:41: '\\r'
+ // InternalGame.g:2268:41: '\\r'
{
match('\r');
@@ -1395,10 +1395,10 @@ public class InternalGameLexer extends Lexer {
try {
int _type = RULE_WS;
int _channel = DEFAULT_TOKEN_CHANNEL;
- // InternalGame.g:2280:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
- // InternalGame.g:2280:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ // InternalGame.g:2270:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+ // InternalGame.g:2270:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
{
- // InternalGame.g:2280:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ // InternalGame.g:2270:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
int cnt13=0;
loop13:
do {
@@ -1452,8 +1452,8 @@ public class InternalGameLexer extends Lexer {
try {
int _type = RULE_ANY_OTHER;
int _channel = DEFAULT_TOKEN_CHANNEL;
- // InternalGame.g:2282:16: ( . )
- // InternalGame.g:2282:18: .
+ // InternalGame.g:2272:16: ( . )
+ // InternalGame.g:2272:18: .
{
matchAny();
diff --git a/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/parser/antlr/internal/InternalGameParser.java b/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/parser/antlr/internal/InternalGameParser.java
index 4ddf2d9..e1633f4 100644
--- a/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/parser/antlr/internal/InternalGameParser.java
+++ b/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/parser/antlr/internal/InternalGameParser.java
@@ -4872,22 +4872,22 @@ public class InternalGameParser extends AbstractInternalAntlrParser {
// $ANTLR start "ruleConditionConnaissance"
- // InternalGame.g:2150:1: ruleConditionConnaissance returns [EObject current=null] : ( ( (lv_negation_0_0= '!' ) )? ( (lv_connaissance_1_0= RULE_ID ) ) ) ;
+ // InternalGame.g:2150:1: ruleConditionConnaissance returns [EObject current=null] : ( ( (lv_negation_0_0= '!' ) )? ( (otherlv_1= RULE_ID ) ) ) ;
public final EObject ruleConditionConnaissance() throws RecognitionException {
EObject current = null;
Token lv_negation_0_0=null;
- Token lv_connaissance_1_0=null;
+ Token otherlv_1=null;
enterRule();
try {
- // InternalGame.g:2156:2: ( ( ( (lv_negation_0_0= '!' ) )? ( (lv_connaissance_1_0= RULE_ID ) ) ) )
- // InternalGame.g:2157:2: ( ( (lv_negation_0_0= '!' ) )? ( (lv_connaissance_1_0= RULE_ID ) ) )
+ // InternalGame.g:2156:2: ( ( ( (lv_negation_0_0= '!' ) )? ( (otherlv_1= RULE_ID ) ) ) )
+ // InternalGame.g:2157:2: ( ( (lv_negation_0_0= '!' ) )? ( (otherlv_1= RULE_ID ) ) )
{
- // InternalGame.g:2157:2: ( ( (lv_negation_0_0= '!' ) )? ( (lv_connaissance_1_0= RULE_ID ) ) )
- // InternalGame.g:2158:3: ( (lv_negation_0_0= '!' ) )? ( (lv_connaissance_1_0= RULE_ID ) )
+ // InternalGame.g:2157:2: ( ( (lv_negation_0_0= '!' ) )? ( (otherlv_1= RULE_ID ) ) )
+ // InternalGame.g:2158:3: ( (lv_negation_0_0= '!' ) )? ( (otherlv_1= RULE_ID ) )
{
// InternalGame.g:2158:3: ( (lv_negation_0_0= '!' ) )?
int alt33=2;
@@ -4922,25 +4922,20 @@ public class InternalGameParser extends AbstractInternalAntlrParser {
}
- // InternalGame.g:2172:3: ( (lv_connaissance_1_0= RULE_ID ) )
- // InternalGame.g:2173:4: (lv_connaissance_1_0= RULE_ID )
+ // InternalGame.g:2172:3: ( (otherlv_1= RULE_ID ) )
+ // InternalGame.g:2173:4: (otherlv_1= RULE_ID )
{
- // InternalGame.g:2173:4: (lv_connaissance_1_0= RULE_ID )
- // InternalGame.g:2174:5: lv_connaissance_1_0= RULE_ID
+ // InternalGame.g:2173:4: (otherlv_1= RULE_ID )
+ // InternalGame.g:2174:5: otherlv_1= RULE_ID
{
- lv_connaissance_1_0=(Token)match(input,RULE_ID,FOLLOW_2);
-
- newLeafNode(lv_connaissance_1_0, grammarAccess.getConditionConnaissanceAccess().getConnaissanceIDTerminalRuleCall_1_0());
-
if (current==null) {
current = createModelElement(grammarAccess.getConditionConnaissanceRule());
}
- setWithLastConsumed(
- current,
- "connaissance",
- lv_connaissance_1_0,
- "org.eclipse.xtext.common.Terminals.ID");
+
+ otherlv_1=(Token)match(input,RULE_ID,FOLLOW_2);
+
+ newLeafNode(otherlv_1, grammarAccess.getConditionConnaissanceAccess().getConnaissanceConnaissanceCrossReference_1_0());
}
@@ -4971,7 +4966,7 @@ public class InternalGameParser extends AbstractInternalAntlrParser {
// $ANTLR start "entryRuleConditionObjet"
- // InternalGame.g:2194:1: entryRuleConditionObjet returns [EObject current=null] : iv_ruleConditionObjet= ruleConditionObjet EOF ;
+ // InternalGame.g:2189:1: entryRuleConditionObjet returns [EObject current=null] : iv_ruleConditionObjet= ruleConditionObjet EOF ;
public final EObject entryRuleConditionObjet() throws RecognitionException {
EObject current = null;
@@ -4979,8 +4974,8 @@ public class InternalGameParser extends AbstractInternalAntlrParser {
try {
- // InternalGame.g:2194:55: (iv_ruleConditionObjet= ruleConditionObjet EOF )
- // InternalGame.g:2195:2: iv_ruleConditionObjet= ruleConditionObjet EOF
+ // InternalGame.g:2189:55: (iv_ruleConditionObjet= ruleConditionObjet EOF )
+ // InternalGame.g:2190:2: iv_ruleConditionObjet= ruleConditionObjet EOF
{
newCompositeNode(grammarAccess.getConditionObjetRule());
pushFollow(FOLLOW_1);
@@ -5007,11 +5002,11 @@ public class InternalGameParser extends AbstractInternalAntlrParser {
// $ANTLR start "ruleConditionObjet"
- // InternalGame.g:2201:1: ruleConditionObjet returns [EObject current=null] : ( ( (lv_objet_0_0= RULE_ID ) ) ( (lv_comparateur_1_0= RULE_COMPARATEUR ) ) ( (lv_nombre_2_0= RULE_INT ) ) ) ;
+ // InternalGame.g:2196:1: ruleConditionObjet returns [EObject current=null] : ( ( (otherlv_0= RULE_ID ) ) ( (lv_comparateur_1_0= RULE_COMPARATEUR ) ) ( (lv_nombre_2_0= RULE_INT ) ) ) ;
public final EObject ruleConditionObjet() throws RecognitionException {
EObject current = null;
- Token lv_objet_0_0=null;
+ Token otherlv_0=null;
Token lv_comparateur_1_0=null;
Token lv_nombre_2_0=null;
@@ -5019,31 +5014,26 @@ public class InternalGameParser extends AbstractInternalAntlrParser {
enterRule();
try {
- // InternalGame.g:2207:2: ( ( ( (lv_objet_0_0= RULE_ID ) ) ( (lv_comparateur_1_0= RULE_COMPARATEUR ) ) ( (lv_nombre_2_0= RULE_INT ) ) ) )
- // InternalGame.g:2208:2: ( ( (lv_objet_0_0= RULE_ID ) ) ( (lv_comparateur_1_0= RULE_COMPARATEUR ) ) ( (lv_nombre_2_0= RULE_INT ) ) )
+ // InternalGame.g:2202:2: ( ( ( (otherlv_0= RULE_ID ) ) ( (lv_comparateur_1_0= RULE_COMPARATEUR ) ) ( (lv_nombre_2_0= RULE_INT ) ) ) )
+ // InternalGame.g:2203:2: ( ( (otherlv_0= RULE_ID ) ) ( (lv_comparateur_1_0= RULE_COMPARATEUR ) ) ( (lv_nombre_2_0= RULE_INT ) ) )
{
- // InternalGame.g:2208:2: ( ( (lv_objet_0_0= RULE_ID ) ) ( (lv_comparateur_1_0= RULE_COMPARATEUR ) ) ( (lv_nombre_2_0= RULE_INT ) ) )
- // InternalGame.g:2209:3: ( (lv_objet_0_0= RULE_ID ) ) ( (lv_comparateur_1_0= RULE_COMPARATEUR ) ) ( (lv_nombre_2_0= RULE_INT ) )
+ // InternalGame.g:2203:2: ( ( (otherlv_0= RULE_ID ) ) ( (lv_comparateur_1_0= RULE_COMPARATEUR ) ) ( (lv_nombre_2_0= RULE_INT ) ) )
+ // InternalGame.g:2204:3: ( (otherlv_0= RULE_ID ) ) ( (lv_comparateur_1_0= RULE_COMPARATEUR ) ) ( (lv_nombre_2_0= RULE_INT ) )
{
- // InternalGame.g:2209:3: ( (lv_objet_0_0= RULE_ID ) )
- // InternalGame.g:2210:4: (lv_objet_0_0= RULE_ID )
+ // InternalGame.g:2204:3: ( (otherlv_0= RULE_ID ) )
+ // InternalGame.g:2205:4: (otherlv_0= RULE_ID )
{
- // InternalGame.g:2210:4: (lv_objet_0_0= RULE_ID )
- // InternalGame.g:2211:5: lv_objet_0_0= RULE_ID
+ // InternalGame.g:2205:4: (otherlv_0= RULE_ID )
+ // InternalGame.g:2206:5: otherlv_0= RULE_ID
{
- lv_objet_0_0=(Token)match(input,RULE_ID,FOLLOW_43);
-
- newLeafNode(lv_objet_0_0, grammarAccess.getConditionObjetAccess().getObjetIDTerminalRuleCall_0_0());
-
if (current==null) {
current = createModelElement(grammarAccess.getConditionObjetRule());
}
- setWithLastConsumed(
- current,
- "objet",
- lv_objet_0_0,
- "org.eclipse.xtext.common.Terminals.ID");
+
+ otherlv_0=(Token)match(input,RULE_ID,FOLLOW_43);
+
+ newLeafNode(otherlv_0, grammarAccess.getConditionObjetAccess().getObjetObjetCrossReference_0_0());
}
@@ -5051,11 +5041,11 @@ public class InternalGameParser extends AbstractInternalAntlrParser {
}
- // InternalGame.g:2227:3: ( (lv_comparateur_1_0= RULE_COMPARATEUR ) )
- // InternalGame.g:2228:4: (lv_comparateur_1_0= RULE_COMPARATEUR )
+ // InternalGame.g:2217:3: ( (lv_comparateur_1_0= RULE_COMPARATEUR ) )
+ // InternalGame.g:2218:4: (lv_comparateur_1_0= RULE_COMPARATEUR )
{
- // InternalGame.g:2228:4: (lv_comparateur_1_0= RULE_COMPARATEUR )
- // InternalGame.g:2229:5: lv_comparateur_1_0= RULE_COMPARATEUR
+ // InternalGame.g:2218:4: (lv_comparateur_1_0= RULE_COMPARATEUR )
+ // InternalGame.g:2219:5: lv_comparateur_1_0= RULE_COMPARATEUR
{
lv_comparateur_1_0=(Token)match(input,RULE_COMPARATEUR,FOLLOW_12);
@@ -5077,11 +5067,11 @@ public class InternalGameParser extends AbstractInternalAntlrParser {
}
- // InternalGame.g:2245:3: ( (lv_nombre_2_0= RULE_INT ) )
- // InternalGame.g:2246:4: (lv_nombre_2_0= RULE_INT )
+ // InternalGame.g:2235:3: ( (lv_nombre_2_0= RULE_INT ) )
+ // InternalGame.g:2236:4: (lv_nombre_2_0= RULE_INT )
{
- // InternalGame.g:2246:4: (lv_nombre_2_0= RULE_INT )
- // InternalGame.g:2247:5: lv_nombre_2_0= RULE_INT
+ // InternalGame.g:2236:4: (lv_nombre_2_0= RULE_INT )
+ // InternalGame.g:2237:5: lv_nombre_2_0= RULE_INT
{
lv_nombre_2_0=(Token)match(input,RULE_INT,FOLLOW_2);
diff --git a/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/serializer/GameSemanticSequencer.java b/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/serializer/GameSemanticSequencer.java
index 24386e6..e3e4de6 100644
--- a/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/serializer/GameSemanticSequencer.java
+++ b/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/serializer/GameSemanticSequencer.java
@@ -171,7 +171,7 @@ public class GameSemanticSequencer extends AbstractDelegatingSemanticSequencer {
* ConditionConnaissance returns ConditionConnaissance
*
* Constraint:
- * (negation='!'? connaissance=ID)
+ * (negation='!'? connaissance=[Connaissance|ID])
*/
protected void sequence_ConditionConnaissance(ISerializationContext context, ConditionConnaissance semanticObject) {
genericSequencer.createSequence(context, semanticObject);
@@ -196,7 +196,7 @@ public class GameSemanticSequencer extends AbstractDelegatingSemanticSequencer {
* ConditionObjet returns ConditionObjet
*
* Constraint:
- * (objet=ID comparateur=COMPARATEUR nombre=INT)
+ * (objet=[Objet|ID] comparateur=COMPARATEUR nombre=INT)
*/
protected void sequence_ConditionObjet(ISerializationContext context, ConditionObjet semanticObject) {
if (errorAcceptor != null) {
@@ -208,7 +208,7 @@ public class GameSemanticSequencer extends AbstractDelegatingSemanticSequencer {
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, GamePackage.Literals.CONDITION_OBJET__NOMBRE));
}
SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
- feeder.accept(grammarAccess.getConditionObjetAccess().getObjetIDTerminalRuleCall_0_0(), semanticObject.getObjet());
+ feeder.accept(grammarAccess.getConditionObjetAccess().getObjetObjetIDTerminalRuleCall_0_0_1(), semanticObject.eGet(GamePackage.Literals.CONDITION_OBJET__OBJET, false));
feeder.accept(grammarAccess.getConditionObjetAccess().getComparateurCOMPARATEURTerminalRuleCall_1_0(), semanticObject.getComparateur());
feeder.accept(grammarAccess.getConditionObjetAccess().getNombreINTTerminalRuleCall_2_0(), semanticObject.getNombre());
feeder.finish();
diff --git a/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/services/GameGrammarAccess.java b/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/services/GameGrammarAccess.java
index 5e77df6..7c82662 100644
--- a/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/services/GameGrammarAccess.java
+++ b/workspace/fr.n7.game.xtext/src-gen/fr/n7/game/xtext/services/GameGrammarAccess.java
@@ -1564,13 +1564,14 @@ public class GameGrammarAccess extends AbstractElementFinder.AbstractGrammarElem
private final Assignment cNegationAssignment_0 = (Assignment)cGroup.eContents().get(0);
private final Keyword cNegationExclamationMarkKeyword_0_0 = (Keyword)cNegationAssignment_0.eContents().get(0);
private final Assignment cConnaissanceAssignment_1 = (Assignment)cGroup.eContents().get(1);
- private final RuleCall cConnaissanceIDTerminalRuleCall_1_0 = (RuleCall)cConnaissanceAssignment_1.eContents().get(0);
+ private final CrossReference cConnaissanceConnaissanceCrossReference_1_0 = (CrossReference)cConnaissanceAssignment_1.eContents().get(0);
+ private final RuleCall cConnaissanceConnaissanceIDTerminalRuleCall_1_0_1 = (RuleCall)cConnaissanceConnaissanceCrossReference_1_0.eContents().get(1);
//ConditionConnaissance:
- // negation='!'? connaissance=ID;
+ // negation='!'? connaissance=[Connaissance];
@Override public ParserRule getRule() { return rule; }
- //negation='!'? connaissance=ID
+ //negation='!'? connaissance=[Connaissance]
public Group getGroup() { return cGroup; }
//negation='!'?
@@ -1579,34 +1580,41 @@ public class GameGrammarAccess extends AbstractElementFinder.AbstractGrammarElem
//'!'
public Keyword getNegationExclamationMarkKeyword_0_0() { return cNegationExclamationMarkKeyword_0_0; }
- //connaissance=ID
+ //connaissance=[Connaissance]
public Assignment getConnaissanceAssignment_1() { return cConnaissanceAssignment_1; }
+ //[Connaissance]
+ public CrossReference getConnaissanceConnaissanceCrossReference_1_0() { return cConnaissanceConnaissanceCrossReference_1_0; }
+
//ID
- public RuleCall getConnaissanceIDTerminalRuleCall_1_0() { return cConnaissanceIDTerminalRuleCall_1_0; }
+ public RuleCall getConnaissanceConnaissanceIDTerminalRuleCall_1_0_1() { return cConnaissanceConnaissanceIDTerminalRuleCall_1_0_1; }
}
public class ConditionObjetElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.n7.game.xtext.Game.ConditionObjet");
private final Group cGroup = (Group)rule.eContents().get(1);
private final Assignment cObjetAssignment_0 = (Assignment)cGroup.eContents().get(0);
- private final RuleCall cObjetIDTerminalRuleCall_0_0 = (RuleCall)cObjetAssignment_0.eContents().get(0);
+ private final CrossReference cObjetObjetCrossReference_0_0 = (CrossReference)cObjetAssignment_0.eContents().get(0);
+ private final RuleCall cObjetObjetIDTerminalRuleCall_0_0_1 = (RuleCall)cObjetObjetCrossReference_0_0.eContents().get(1);
private final Assignment cComparateurAssignment_1 = (Assignment)cGroup.eContents().get(1);
private final RuleCall cComparateurCOMPARATEURTerminalRuleCall_1_0 = (RuleCall)cComparateurAssignment_1.eContents().get(0);
private final Assignment cNombreAssignment_2 = (Assignment)cGroup.eContents().get(2);
private final RuleCall cNombreINTTerminalRuleCall_2_0 = (RuleCall)cNombreAssignment_2.eContents().get(0);
//ConditionObjet:
- // objet=ID comparateur=COMPARATEUR nombre=INT;
+ // objet=[Objet] comparateur=COMPARATEUR nombre=INT;
@Override public ParserRule getRule() { return rule; }
- //objet=ID comparateur=COMPARATEUR nombre=INT
+ //objet=[Objet] comparateur=COMPARATEUR nombre=INT
public Group getGroup() { return cGroup; }
- //objet=ID
+ //objet=[Objet]
public Assignment getObjetAssignment_0() { return cObjetAssignment_0; }
+ //[Objet]
+ public CrossReference getObjetObjetCrossReference_0_0() { return cObjetObjetCrossReference_0_0; }
+
//ID
- public RuleCall getObjetIDTerminalRuleCall_0_0() { return cObjetIDTerminalRuleCall_0_0; }
+ public RuleCall getObjetObjetIDTerminalRuleCall_0_0_1() { return cObjetObjetIDTerminalRuleCall_0_0_1; }
//comparateur=COMPARATEUR
public Assignment getComparateurAssignment_1() { return cComparateurAssignment_1; }
@@ -1911,7 +1919,7 @@ public class GameGrammarAccess extends AbstractElementFinder.AbstractGrammarElem
}
//ConditionConnaissance:
- // negation='!'? connaissance=ID;
+ // negation='!'? connaissance=[Connaissance];
public ConditionConnaissanceElements getConditionConnaissanceAccess() {
return pConditionConnaissance;
}
@@ -1921,7 +1929,7 @@ public class GameGrammarAccess extends AbstractElementFinder.AbstractGrammarElem
}
//ConditionObjet:
- // objet=ID comparateur=COMPARATEUR nombre=INT;
+ // objet=[Objet] comparateur=COMPARATEUR nombre=INT;
public ConditionObjetElements getConditionObjetAccess() {
return pConditionObjet;
}
diff --git a/workspace/fr.n7.game.xtext/src/fr/n7/game/xtext/Game.xtext b/workspace/fr.n7.game.xtext/src/fr/n7/game/xtext/Game.xtext
index 80a548e..28534fa 100644
--- a/workspace/fr.n7.game.xtext/src/fr/n7/game/xtext/Game.xtext
+++ b/workspace/fr.n7.game.xtext/src/fr/n7/game/xtext/Game.xtext
@@ -99,33 +99,33 @@ Description:
;
Condition:
- condition+=ConditionEt ('||' condition+=ConditionEt)*
+ condition+=ConditionEt ('||' condition+=ConditionEt)*
;
ConditionEt:
- conditionTest+=ConditionTest ('&&' conditionTest+=ConditionTest)*
+ conditionTest+=ConditionTest ('&&' conditionTest+=ConditionTest)*
;
ConditionTest:
- ConditionBoolean | ConditionConnaissance | ConditionObjet
+ ConditionBoolean | ConditionConnaissance | ConditionObjet
;
ConditionBoolean:
- valeur=BOOLEAN
+ valeur=BOOLEAN
;
ConditionConnaissance:
- (negation='!')? connaissance=ID
+ (negation='!')? connaissance=[Connaissance]
;
ConditionObjet:
- objet=ID comparateur=COMPARATEUR nombre=INT
+ objet=[Objet] comparateur=COMPARATEUR nombre=INT
;
terminal COMPARATEUR:
- '<' | '>' | '==' | '<=' | '>=' | '!='
+ '<' | '>' | '==' | '<=' | '>=' | '!='
;
terminal BOOLEAN:
- 'true' | 'false'
+ 'true' | 'false'
;