Added tests for IfStatement with empty then block.

Change-Id: I7054f7bb48116223737bc7ef0adf3a372ec9bcbb
Signed-off-by: William Piers <william.piers@obeo.fr>
diff --git a/acceleo-aql/org.eclipse.acceleo.aql.tests/resources/language/ifStatement/emptyElse/emptyElse-expected-ast.txt b/acceleo-aql/org.eclipse.acceleo.aql.tests/resources/language/ifStatement/emptyElse/emptyElse-expected-ast.txt
new file mode 100644
index 0000000..cd74378
--- /dev/null
+++ b/acceleo-aql/org.eclipse.acceleo.aql.tests/resources/language/ifStatement/emptyElse/emptyElse-expected-ast.txt
@@ -0,0 +1,12 @@
+
+header position 0..59
+module myModule
+  metamodel http://www.eclipse.org/emf/2002/Ecore (18..56)
+  
+  public template test(anEClass : EClass (83..107))
+    [if false (115..120)
+      some text
+ false (122..132) (122..132)
+    [else] (138..138)
+    [/if] (110..143) (109..144)
+  [/template] (61..155) (0..155)
\ No newline at end of file
diff --git a/acceleo-aql/org.eclipse.acceleo.aql.tests/resources/language/ifStatement/emptyElse/emptyElse-expected-validation.txt b/acceleo-aql/org.eclipse.acceleo.aql.tests/resources/language/ifStatement/emptyElse/emptyElse-expected-validation.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/acceleo-aql/org.eclipse.acceleo.aql.tests/resources/language/ifStatement/emptyElse/emptyElse-expected-validation.txt
diff --git a/acceleo-aql/org.eclipse.acceleo.aql.tests/resources/language/ifStatement/emptyElse/emptyElse.mtl b/acceleo-aql/org.eclipse.acceleo.aql.tests/resources/language/ifStatement/emptyElse/emptyElse.mtl
new file mode 100644
index 0000000..1482a32
--- /dev/null
+++ b/acceleo-aql/org.eclipse.acceleo.aql.tests/resources/language/ifStatement/emptyElse/emptyElse.mtl
@@ -0,0 +1,6 @@
+[module myModule('http://www.eclipse.org/emf/2002/Ecore')/]
+
+[template public test(anEClass : ecore::EClass)]
+[if (false)]some text
+[else][/if]
+[/template]
\ No newline at end of file
diff --git a/acceleo-aql/org.eclipse.acceleo.aql.tests/resources/language/ifStatement/emptyElseIf/emptyElseIf-expected-ast.txt b/acceleo-aql/org.eclipse.acceleo.aql.tests/resources/language/ifStatement/emptyElseIf/emptyElseIf-expected-ast.txt
new file mode 100644
index 0000000..75e192c
--- /dev/null
+++ b/acceleo-aql/org.eclipse.acceleo.aql.tests/resources/language/ifStatement/emptyElseIf/emptyElseIf-expected-ast.txt
@@ -0,0 +1,15 @@
+
+header position 0..59
+module myModule
+  metamodel http://www.eclipse.org/emf/2002/Ecore (18..56)
+  
+  public template myTemplate(myParam : EClassifier (89..117))
+    [if .equals(.aqlFeatureAccess(myParam, 'name'), '') (127..144)
+      some static text. true (151..168) (146..171)
+    [else]
+      [if .not(.oclIsKindOf(myParam, EClass)) (180..218) (220..220)
+      [else]
+        [.aqlFeatureAccess(myParam, 'eSuperTypes') (232..251)/] true (231..253) (226..256)
+      [/if] (171..261) (-1..-1)
+    [/if] (122..261) (119..262)
+  [/template] (61..273) (0..273)
\ No newline at end of file
diff --git a/acceleo-aql/org.eclipse.acceleo.aql.tests/resources/language/ifStatement/emptyElseIf/emptyElseIf-expected-validation.txt b/acceleo-aql/org.eclipse.acceleo.aql.tests/resources/language/ifStatement/emptyElseIf/emptyElseIf-expected-validation.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/acceleo-aql/org.eclipse.acceleo.aql.tests/resources/language/ifStatement/emptyElseIf/emptyElseIf-expected-validation.txt
diff --git a/acceleo-aql/org.eclipse.acceleo.aql.tests/resources/language/ifStatement/emptyElseIf/emptyElseIf.mtl b/acceleo-aql/org.eclipse.acceleo.aql.tests/resources/language/ifStatement/emptyElseIf/emptyElseIf.mtl
new file mode 100644
index 0000000..a9f116f
--- /dev/null
+++ b/acceleo-aql/org.eclipse.acceleo.aql.tests/resources/language/ifStatement/emptyElseIf/emptyElseIf.mtl
@@ -0,0 +1,9 @@
+[module myModule('http://www.eclipse.org/emf/2002/Ecore')/]
+
+[template public myTemplate(myParam : ecore::EClassifier)]
+  [if (myParam.name = '')]
+    some static text.
+  [elseif (not myParam.oclIsKindOf(ecore::EClass))][else]
+    [myParam.eSuperTypes/]
+  [/if]
+[/template]
\ No newline at end of file
diff --git a/acceleo-aql/org.eclipse.acceleo.aql.tests/resources/language/ifStatement/emptyThen/emptyThen-expected-ast.txt b/acceleo-aql/org.eclipse.acceleo.aql.tests/resources/language/ifStatement/emptyThen/emptyThen-expected-ast.txt
new file mode 100644
index 0000000..4da6a96
--- /dev/null
+++ b/acceleo-aql/org.eclipse.acceleo.aql.tests/resources/language/ifStatement/emptyThen/emptyThen-expected-ast.txt
@@ -0,0 +1,10 @@
+
+header position 0..59
+module myModule
+  metamodel http://www.eclipse.org/emf/2002/Ecore (18..56)
+  
+  public template test(anEClass : EClass (83..107))
+    [if false (115..120) (122..122)
+    [else] (128..139)
+    [/if] (110..144) (109..145)
+  [/template] (61..156) (0..156)
\ No newline at end of file
diff --git a/acceleo-aql/org.eclipse.acceleo.aql.tests/resources/language/ifStatement/emptyThen/emptyThen-expected-validation.txt b/acceleo-aql/org.eclipse.acceleo.aql.tests/resources/language/ifStatement/emptyThen/emptyThen-expected-validation.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/acceleo-aql/org.eclipse.acceleo.aql.tests/resources/language/ifStatement/emptyThen/emptyThen-expected-validation.txt
diff --git a/acceleo-aql/org.eclipse.acceleo.aql.tests/resources/language/ifStatement/emptyThen/emptyThen.mtl b/acceleo-aql/org.eclipse.acceleo.aql.tests/resources/language/ifStatement/emptyThen/emptyThen.mtl
new file mode 100644
index 0000000..397158c
--- /dev/null
+++ b/acceleo-aql/org.eclipse.acceleo.aql.tests/resources/language/ifStatement/emptyThen/emptyThen.mtl
@@ -0,0 +1,7 @@
+[module myModule('http://www.eclipse.org/emf/2002/Ecore')/]
+
+[template public test(anEClass : ecore::EClass)]
+[if (false)][else]
+some text
+[/if]
+[/template]
\ No newline at end of file
diff --git a/acceleo-aql/org.eclipse.acceleo.aql/src/org/eclipse/acceleo/aql/parser/AcceleoParser.java b/acceleo-aql/org.eclipse.acceleo.aql/src/org/eclipse/acceleo/aql/parser/AcceleoParser.java
index 3ace3c9..b08e81c 100644
--- a/acceleo-aql/org.eclipse.acceleo.aql/src/org/eclipse/acceleo/aql/parser/AcceleoParser.java
+++ b/acceleo-aql/org.eclipse.acceleo.aql/src/org/eclipse/acceleo/aql/parser/AcceleoParser.java
@@ -1939,8 +1939,8 @@
 	protected ExpressionStatement parseExpressionStatement(boolean inlined) {
 		final ExpressionStatement res;
 
-		if (!text.startsWith(END_BLOCK_PREFIX, currentPosition) && text.startsWith(EXPRESSION_STATEMENT_START,
-				currentPosition)) {
+		if (!text.startsWith(END_BLOCK_PREFIX, currentPosition) && !text.startsWith(IF_ELSE, currentPosition)
+				&& text.startsWith(EXPRESSION_STATEMENT_START, currentPosition)) {
 			final int startPosition = currentPosition;
 			currentPosition += EXPRESSION_STATEMENT_START.length();
 			skipSpaces();