[327850] Add Xtext test file
diff --git a/examples/org.eclipse.ocl.examples.project.completeocltutorial/model/Bad.ecore b/examples/org.eclipse.ocl.examples.project.completeocltutorial/model/EcoreTestFile.ecore
similarity index 100%
rename from examples/org.eclipse.ocl.examples.project.completeocltutorial/model/Bad.ecore
rename to examples/org.eclipse.ocl.examples.project.completeocltutorial/model/EcoreTestFile.ecore
diff --git a/examples/org.eclipse.ocl.examples.project.completeocltutorial/model/ExtraXtextValidation.ocl b/examples/org.eclipse.ocl.examples.project.completeocltutorial/model/ExtraXtextValidation.ocl
new file mode 100644
index 0000000..0552bc8
--- /dev/null
+++ b/examples/org.eclipse.ocl.examples.project.completeocltutorial/model/ExtraXtextValidation.ocl
@@ -0,0 +1,19 @@
+import 'http://www.eclipse.org/2008/Xtext'
+
+package xtext
+
+context ReferencedMetamodel
+inv NoAnonymousImports: alias <> null
+
+context Action
+inv NoActions : false
+
+context ParserRule
+inv CamelCaseName : name.matches('[A-Z][A-Za-z]*')
+--inv UpperCaseName : name = name.toUpperCase()
+
+context xtext::TerminalRule
+--inv AA: true
+inv UpperName : name = name.toUpperCase()
+
+endpackage
\ No newline at end of file
diff --git a/examples/org.eclipse.ocl.examples.project.completeocltutorial/model/XtextTestFile.xtext b/examples/org.eclipse.ocl.examples.project.completeocltutorial/model/XtextTestFile.xtext
new file mode 100644
index 0000000..a4634ff
--- /dev/null
+++ b/examples/org.eclipse.ocl.examples.project.completeocltutorial/model/XtextTestFile.xtext
@@ -0,0 +1,58 @@
+/*******************************************************************************
+ * Copyright (c) 2010 itemis AG (http://www.itemis.eu) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *******************************************************************************/
+grammar org.eclipse.xtext.example.arithmetics.Arithmetics with org.eclipse.xtext.common.Terminals
+
+import "http://www.eclipse.org/emf/2002/Ecore" as ecore
+generate arithmetics "http://www.eclipse.org/Xtext/example/Arithmetics"
+
+Module:
+ 'module' name=ID
+ (imports+=Import)*
+ (statements+=Statement)*;
+
+Import:
+ 'import' importedNamespace=ImportName;
+
+ImportName:
+ ID ('.' '*')?;
+
+Statement:
+ Definition | Evaluation;
+
+Definition:
+ 'def' name=ID ('(' args+=DeclaredParameter (',' args+=DeclaredParameter)* ')')?
+ ':' expr=Expression ';';
+
+DeclaredParameter:
+ name=ID;
+
+AbstractDefinition:
+ Definition | DeclaredParameter;
+
+Evaluation:
+ expression=Expression ';';
+
+Expression:
+ Addition;
+
+Addition returns Expression:
+ Multiplication (({Plus.left=current} '+' | {Minus.left=current} '-') right=Multiplication)*;
+
+Multiplication returns Expression:
+ PrimaryExpression (({Multi.left=current} '*' | {Div.left=current} '/') right=PrimaryExpression)*;
+
+PrimaryExpression returns Expression:
+ '(' Expression ')' |
+ {NumberLiteral} value=NUMBER |
+ {FunctionCall} func=[AbstractDefinition] ('(' args+=Expression (',' args+=Expression)* ')')?;
+
+terminal NUMBER returns ecore::EBigDecimal:
+ ('0'..'9')* ('.' ('0'..'9')+)?;
+
+terminal INT returns ecore::EInt:
+ 'this one has been deactivated';