summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjkohnlein2008-03-17 10:38:32 (EDT)
committerjkohnlein2008-03-17 10:38:32 (EDT)
commite1d5df96b958a7aae20fcc96718c5dd85c2c1e4b (patch)
treebdae08572e25f540d09b0eee5612852e36e97c6c
parentabb83c4597f4cfed61836456ef83de7b26d920b9 (diff)
downloadorg.eclipse.xpand-e1d5df96b958a7aae20fcc96718c5dd85c2c1e4b.zip
org.eclipse.xpand-e1d5df96b958a7aae20fcc96718c5dd85c2c1e4b.tar.gz
org.eclipse.xpand-e1d5df96b958a7aae20fcc96718c5dd85c2c1e4b.tar.bz2
restructured plug-ins for clearer separation of concerns.
common: contains utilities and staticTypesystem, needed by frontend and backend frntend: contains parser frontend AST and node 2 frontend AST trafo xpand3: should contain the middleend.
-rw-r--r--plugins/org.eclipse.xpand3.common/.classpath9
-rw-r--r--plugins/org.eclipse.xpand3.common/.project28
-rw-r--r--plugins/org.eclipse.xpand3.common/META-INF/MANIFEST.MF18
-rw-r--r--plugins/org.eclipse.xpand3.common/build.properties16
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/AbstractNamedElement.java54
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/AbstractTypeReference.java22
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/DeclaredFunction.java88
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/DeclaredParameter.java53
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/DeclaredProperty.java80
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/DeclaredStaticProperty.java80
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/DeclaredType.java149
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/DeclaredTypeParameter.java44
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/FunctionType.java71
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/Model.java63
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/StaticTypesystemFactory.java145
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/StaticTypesystemPackage.java1387
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/Type.java71
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/TypeVariable.java53
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/VoidType.java21
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/WildcardType.java61
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/AbstractNamedElementImpl.java167
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/AbstractTypeReferenceImpl.java45
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/DeclaredFunctionImpl.java261
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/DeclaredParameterImpl.java179
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/DeclaredPropertyImpl.java247
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/DeclaredStaticPropertyImpl.java247
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/DeclaredTypeImpl.java390
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/DeclaredTypeParameterImpl.java154
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/FunctionTypeImpl.java218
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/ModelImpl.java193
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/StaticTypesystemFactoryImpl.java220
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/StaticTypesystemPackageImpl.java737
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/TypeImpl.java218
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/TypeVariableImpl.java160
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/VoidTypeImpl.java43
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/WildcardTypeImpl.java190
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/util/StaticTypesystemAdapterFactory.java358
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/util/StaticTypesystemSwitch.java414
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/AbstractNamedElementValidator.java20
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/AbstractTypeReferenceValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/DeclaredFunctionValidator.java27
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/DeclaredParameterValidator.java21
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/DeclaredPropertyValidator.java22
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/DeclaredStaticPropertyValidator.java22
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/DeclaredTypeParameterValidator.java23
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/DeclaredTypeValidator.java31
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/FunctionTypeValidator.java25
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/ModelValidator.java25
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/TypeValidator.java25
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/TypeVariableValidator.java21
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/VoidTypeValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/WildcardTypeValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3.common/model/built-in-lib.xmi (renamed from plugins/org.eclipse.xpand3/src/built-in-lib.xmi)0
-rw-r--r--plugins/org.eclipse.xpand3.common/model/built-in.xmi (renamed from plugins/org.eclipse.xpand3/src/built-in.xmi)0
-rw-r--r--plugins/org.eclipse.xpand3.common/model/staticTypesystem/Presentation.ext (renamed from plugins/org.eclipse.xpand3/src/staticTypesystem/Presentation.ext)0
-rw-r--r--plugins/org.eclipse.xpand3.common/model/static_typesystem.ecore (renamed from plugins/org.eclipse.xpand3/src/static_typesystem.ecore)0
-rw-r--r--plugins/org.eclipse.xpand3.common/model/static_typesystem.genmodel62
-rw-r--r--plugins/org.eclipse.xpand3.common/plugin.properties20
-rw-r--r--plugins/org.eclipse.xpand3.common/plugin.xml20
-rw-r--r--plugins/org.eclipse.xpand3.common/src/org/eclipse/xpand3/util/ClassLoaderLoaderImpl.java (renamed from plugins/org.eclipse.xpand3/src/org/eclipse/xpand3/util/ClassLoaderLoaderImpl.java)0
-rw-r--r--plugins/org.eclipse.xpand3.common/src/org/eclipse/xpand3/util/CreateCache.java (renamed from plugins/org.eclipse.xpand3/src/org/eclipse/xpand3/util/CreateCache.java)0
-rw-r--r--plugins/org.eclipse.xpand3.common/src/org/eclipse/xpand3/util/Loader.java (renamed from plugins/org.eclipse.xpand3/src/org/eclipse/xpand3/util/Loader.java)0
-rw-r--r--plugins/org.eclipse.xpand3.common/src/org/eclipse/xpand3/util/LoaderFactory.java (renamed from plugins/org.eclipse.xpand3/src/org/eclipse/xpand3/util/LoaderFactory.java)0
-rw-r--r--plugins/org.eclipse.xpand3.common/src/org/eclipse/xpand3/util/SyntaxConstants.java (renamed from plugins/org.eclipse.xpand3/src/org/eclipse/xpand3/util/SyntaxConstants.java)0
-rw-r--r--plugins/org.eclipse.xpand3.common/src/org/eclipse/xpand3/util/Xpand3Util.java (renamed from plugins/org.eclipse.xpand3/src/org/eclipse/xpand3/util/Xpand3Util.java)0
-rw-r--r--plugins/org.eclipse.xpand3.common/text/description.txt61
-rw-r--r--plugins/org.eclipse.xpand3.parser/.classpath1
-rw-r--r--plugins/org.eclipse.xpand3.parser/.project2
-rw-r--r--plugins/org.eclipse.xpand3.parser/META-INF/MANIFEST.MF36
-rw-r--r--plugins/org.eclipse.xpand3.parser/TODO.txt10
-rw-r--r--plugins/org.eclipse.xpand3.parser/build.properties5
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/DeclaredParameter.java80
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/File.java63
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/Identifier.java53
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/ImportStatement.java80
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/SyntaxElement.java135
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/Xpand3Factory.java73
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/Xpand3Package.java734
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/declaration/AbstractAspect.java81
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/declaration/AbstractDeclaration.java131
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/declaration/AbstractNamedDeclaration.java54
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/declaration/Check.java135
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/declaration/CreateExtension.java54
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/declaration/DeclarationFactory.java100
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/declaration/DeclarationPackage.java1850
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/declaration/Definition.java46
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/declaration/DefinitionAspect.java46
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/declaration/Extension.java110
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/declaration/ExtensionAspect.java54
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/declaration/JavaExtension.java100
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/declaration/impl/AbstractAspectImpl.java248
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/declaration/impl/AbstractDeclarationImpl.java363
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/declaration/impl/AbstractNamedDeclarationImpl.java180
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/declaration/impl/CheckImpl.java368
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/declaration/impl/CreateExtensionImpl.java161
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/declaration/impl/DeclarationFactoryImpl.java165
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/declaration/impl/DeclarationPackageImpl.java633
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/declaration/impl/DefinitionAspectImpl.java155
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/declaration/impl/DefinitionImpl.java155
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/declaration/impl/ExtensionAspectImpl.java180
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/declaration/impl/ExtensionImpl.java316
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/declaration/impl/JavaExtensionImpl.java290
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/declaration/util/DeclarationAdapterFactory.java306
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/declaration/util/DeclarationSwitch.java362
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/declaration/validation/AbstractAspectValidator.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/declaration/validation/AbstractDeclarationValidator.java29
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/declaration/validation/AbstractNamedDeclarationValidator.java21
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/declaration/validation/CheckValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/declaration/validation/CreateExtensionValidator.java21
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/declaration/validation/DefinitionAspectValidator.java23
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/declaration/validation/DefinitionValidator.java23
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/declaration/validation/ExtensionAspectValidator.java21
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/declaration/validation/ExtensionValidator.java25
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/declaration/validation/JavaExtensionValidator.java25
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/AbstractExpression.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/BinaryOperation.java108
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/BooleanLiteral.java21
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/BooleanOperation.java21
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/Case.java81
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/Cast.java81
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/ChainExpression.java80
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/CollectionExpression.java81
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/ConstructorCallExpression.java54
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/ExpressionFactory.java226
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/ExpressionPackage.java2779
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/FeatureCall.java81
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/GlobalVarExpression.java54
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/IfExpression.java107
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/IntegerLiteral.java21
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/LetExpression.java108
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/ListLiteral.java44
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/Literal.java54
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/NullLiteral.java21
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/OperationCall.java44
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/RealLiteral.java21
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/StringLiteral.java21
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/SwitchExpression.java98
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/TypeSelectExpression.java54
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/UnaryOperation.java81
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/impl/AbstractExpressionImpl.java45
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/impl/BinaryOperationImpl.java313
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/impl/BooleanLiteralImpl.java43
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/impl/BooleanOperationImpl.java43
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/impl/CaseImpl.java247
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/impl/CastImpl.java247
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/impl/ChainExpressionImpl.java245
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/impl/CollectionExpressionImpl.java247
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/impl/ConstructorCallExpressionImpl.java180
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/impl/ExpressionFactoryImpl.java319
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/impl/ExpressionPackageImpl.java1015
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/impl/FeatureCallImpl.java247
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/impl/GlobalVarExpressionImpl.java180
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/impl/IfExpressionImpl.java311
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/impl/IntegerLiteralImpl.java43
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/impl/LetExpressionImpl.java313
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/impl/ListLiteralImpl.java154
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/impl/LiteralImpl.java180
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/impl/NullLiteralImpl.java43
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/impl/OperationCallImpl.java154
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/impl/RealLiteralImpl.java43
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/impl/StringLiteralImpl.java43
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/impl/SwitchExpressionImpl.java290
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/impl/TypeSelectExpressionImpl.java180
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/impl/UnaryOperationImpl.java241
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/util/ExpressionAdapterFactory.java540
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/util/ExpressionSwitch.java662
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/validation/AbstractExpressionValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/validation/BinaryOperationValidator.java25
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/validation/BooleanLiteralValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/validation/BooleanOperationValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/validation/CaseValidator.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/validation/CastValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/validation/ChainExpressionValidator.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/validation/CollectionExpressionValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/validation/ConstructorCallExpressionValidator.java21
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/validation/FeatureCallValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/validation/GlobalVarExpressionValidator.java21
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/validation/IfExpressionValidator.java23
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/validation/IntegerLiteralValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/validation/LetExpressionValidator.java25
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/validation/ListLiteralValidator.java23
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/validation/LiteralValidator.java21
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/validation/NullLiteralValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/validation/OperationCallValidator.java23
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/validation/RealLiteralValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/validation/StringLiteralValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/validation/SwitchExpressionValidator.java26
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/validation/TypeSelectExpressionValidator.java21
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/expression/validation/UnaryOperationValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/impl/DeclaredParameterImpl.java245
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/impl/FileImpl.java192
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/impl/IdentifierImpl.java166
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/impl/ImportStatementImpl.java247
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/impl/SyntaxElementImpl.java329
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/impl/Xpand3FactoryImpl.java132
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/impl/Xpand3PackageImpl.java420
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/AdditiveExpressionNode.java73
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/AndExpressionNode.java73
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/AroundNode.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/BooleanLiteralNode.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/CasePartNode.java81
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/CastedExpressionNode.java81
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/ChainExpressionNode.java73
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/CheckNode.java190
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/CollectionExpressionNode.java108
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/CollectionTypeNode.java82
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/ConstructorCallNode.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/DeclaredParameterListNode.java46
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/DeclaredParameterNode.java81
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/DefinitionAroundNode.java135
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/DefinitionNode.java135
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/ElseIfStatementNode.java81
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/ElseStatementNode.java54
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/ErrorStatementNode.java54
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/ExpandStatementNode.java162
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/ExpressionStmtNode.java54
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/ExtensionImportNode.java81
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/ExtensionNode.java271
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/FeatureCallNode.java108
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/FileNode.java63
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/FileStatementNode.java108
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/ForeachStatementNode.java162
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/GlobalVarExpressionNode.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/IdentifierNode.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/IfExpressionNode.java135
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/IfStatementNode.java127
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/ImpliesExpressionNode.java73
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/ImportNode.java81
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/InfixExpressionNode.java73
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/JavaCallNode.java81
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/JavaTypeNode.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/LetExpressionNode.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/LetStatementNode.java108
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/ListLiteralNode.java46
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/MultiplicativeExpressionNode.java73
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/NullLiteralNode.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/NumberLiteralNode.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/OrExpressionNode.java73
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/ParameterListNode.java46
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/ParanthesizedExpressionNode.java54
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/PointcutNode.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/ProtectStatementNode.java135
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/RelationalExpressionNode.java73
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/SequenceNode.java63
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/SimpleTypeNode.java46
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/StringLiteralNode.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/SwitchExpressionNode.java100
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/Test_expressionNode.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/TextNode.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/TextSequenceNode.java46
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/UnaryExpressionNode.java54
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/Xpand3nodeFactory.java532
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/Xpand3nodePackage.java6191
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/AdditiveExpressionNodeImpl.java204
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/AndExpressionNodeImpl.java204
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/AroundNodeImpl.java45
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/BooleanLiteralNodeImpl.java45
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/CasePartNodeImpl.java223
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/CastedExpressionNodeImpl.java223
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/ChainExpressionNodeImpl.java204
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/CheckNodeImpl.java464
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/CollectionExpressionNodeImpl.java283
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/CollectionTypeNodeImpl.java224
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/ConstructorCallNodeImpl.java45
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/DeclaredParameterListNodeImpl.java139
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/DeclaredParameterNodeImpl.java223
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/DefinitionAroundNodeImpl.java343
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/DefinitionNodeImpl.java343
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/ElseIfStatementNodeImpl.java223
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/ElseStatementNodeImpl.java163
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/ErrorStatementNodeImpl.java163
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/ExpandStatementNodeImpl.java403
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/ExpressionStmtNodeImpl.java163
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/ExtensionImportNodeImpl.java223
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/ExtensionNodeImpl.java644
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/FeatureCallNodeImpl.java283
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/FileNodeImpl.java173
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/FileStatementNodeImpl.java283
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/ForeachStatementNodeImpl.java403
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/GlobalVarExpressionNodeImpl.java45
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/IdentifierNodeImpl.java45
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/IfExpressionNodeImpl.java343
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/IfStatementNodeImpl.java324
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/ImpliesExpressionNodeImpl.java204
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/ImportNodeImpl.java223
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/InfixExpressionNodeImpl.java204
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/JavaCallNodeImpl.java223
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/JavaTypeNodeImpl.java45
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/LetExpressionNodeImpl.java45
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/LetStatementNodeImpl.java283
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/ListLiteralNodeImpl.java139
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/MultiplicativeExpressionNodeImpl.java204
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/NullLiteralNodeImpl.java45
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/NumberLiteralNodeImpl.java45
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/OrExpressionNodeImpl.java204
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/ParameterListNodeImpl.java139
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/ParanthesizedExpressionNodeImpl.java163
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/PointcutNodeImpl.java45
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/ProtectStatementNodeImpl.java343
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/RelationalExpressionNodeImpl.java204
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/SequenceNodeImpl.java173
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/SimpleTypeNodeImpl.java139
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/StringLiteralNodeImpl.java45
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/SwitchExpressionNodeImpl.java264
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/Test_expressionNodeImpl.java45
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/TextNodeImpl.java45
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/TextSequenceNodeImpl.java139
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/UnaryExpressionNodeImpl.java163
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/Xpand3nodeFactoryImpl.java693
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/impl/Xpand3nodePackageImpl.java2540
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/util/Xpand3nodeAdapterFactory.java1135
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/util/Xpand3nodeSwitch.java1407
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/AdditiveExpressionNodeValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/AndExpressionNodeValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/AroundNodeValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/BooleanLiteralNodeValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/CasePartNodeValidator.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/CastedExpressionNodeValidator.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/ChainExpressionNodeValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/CheckNodeValidator.java27
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/CollectionExpressionNodeValidator.java23
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/CollectionTypeNodeValidator.java23
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/ConstructorCallNodeValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/DeclaredParameterListNodeValidator.java23
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/DeclaredParameterNodeValidator.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/DefinitionAroundNodeValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/DefinitionNodeValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/ElseIfStatementNodeValidator.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/ElseStatementNodeValidator.java21
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/ErrorStatementNodeValidator.java21
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/ExpandStatementNodeValidator.java25
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/ExpressionStmtNodeValidator.java21
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/ExtensionImportNodeValidator.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/ExtensionNodeValidator.java30
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/FeatureCallNodeValidator.java23
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/FileNodeValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/FileStatementNodeValidator.java23
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/ForeachStatementNodeValidator.java25
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/GlobalVarExpressionNodeValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/IdentifierNodeValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/IfExpressionNodeValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/IfStatementNodeValidator.java26
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/ImpliesExpressionNodeValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/ImportNodeValidator.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/InfixExpressionNodeValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/JavaCallNodeValidator.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/JavaTypeNodeValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/LetExpressionNodeValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/LetStatementNodeValidator.java23
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/ListLiteralNodeValidator.java23
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/MultiplicativeExpressionNodeValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/NullLiteralNodeValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/NumberLiteralNodeValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/OrExpressionNodeValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/ParameterListNodeValidator.java23
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/ParanthesizedExpressionNodeValidator.java21
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/PointcutNodeValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/ProtectStatementNodeValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/RelationalExpressionNodeValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/SequenceNodeValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/SimpleTypeNodeValidator.java23
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/StringLiteralNodeValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/SwitchExpressionNodeValidator.java25
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/Test_expressionNodeValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/TextNodeValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/TextSequenceNodeValidator.java23
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/frontend/parser/xpand3node/validation/UnaryExpressionNodeValidator.java21
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/AdditiveExpressionNode.java73
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/AndExpressionNode.java73
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/AroundNode.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/BooleanLiteralNode.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/CasePartNode.java81
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/CastedExpressionNode.java81
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/ChainExpressionNode.java73
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/CheckNode.java190
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/CollectionExpressionNode.java108
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/CollectionTypeNode.java82
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/ConstructorCallNode.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/DeclaredParameterListNode.java46
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/DeclaredParameterNode.java81
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/DefinitionAroundNode.java135
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/DefinitionNode.java135
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/ElseIfStatementNode.java81
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/ElseStatementNode.java54
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/ErrorStatementNode.java54
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/ExpandStatementNode.java162
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/ExpressionStmtNode.java54
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/ExtensionImportNode.java81
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/ExtensionNode.java271
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/FeatureCallNode.java108
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/FileNode.java63
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/FileStatementNode.java108
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/ForeachStatementNode.java162
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/GlobalVarExpressionNode.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/IdentifierNode.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/IfExpressionNode.java135
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/IfStatementNode.java127
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/ImpliesExpressionNode.java73
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/ImportNode.java81
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/InfixExpressionNode.java73
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/JavaTypeNode.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/LetExpressionNode.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/LetStatementNode.java108
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/ListLiteralNode.java46
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/MultiplicativeExpressionNode.java73
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/NullLiteralNode.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/NumberLiteralNode.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/OrExpressionNode.java73
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/ParameterListNode.java46
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/ParanthesizedExpressionNode.java54
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/PointcutNode.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/ProtectStatementNode.java135
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/RelationalExpressionNode.java73
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/SequenceNode.java63
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/SimpleTypeNode.java46
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/StringLiteralNode.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/SwitchExpressionNode.java100
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/Test_expressionNode.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/TextNode.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/TextSequenceNode.java46
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/UnaryExpressionNode.java54
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/Xpand3nodeFactory.java523
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/Xpand3nodePackage.java6078
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/AdditiveExpressionNodeImpl.java204
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/AndExpressionNodeImpl.java204
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/AroundNodeImpl.java45
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/BooleanLiteralNodeImpl.java45
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/CasePartNodeImpl.java223
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/CastedExpressionNodeImpl.java223
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/ChainExpressionNodeImpl.java204
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/CheckNodeImpl.java464
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/CollectionExpressionNodeImpl.java278
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/CollectionTypeNodeImpl.java224
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/ConstructorCallNodeImpl.java45
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/DeclaredParameterListNodeImpl.java139
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/DeclaredParameterNodeImpl.java223
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/DefinitionAroundNodeImpl.java343
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/DefinitionNodeImpl.java343
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/ElseIfStatementNodeImpl.java223
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/ElseStatementNodeImpl.java163
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/ErrorStatementNodeImpl.java163
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/ExpandStatementNodeImpl.java403
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/ExpressionStmtNodeImpl.java163
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/ExtensionImportNodeImpl.java223
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/ExtensionNodeImpl.java644
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/FeatureCallNodeImpl.java283
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/FileNodeImpl.java173
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/FileStatementNodeImpl.java283
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/ForeachStatementNodeImpl.java403
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/GlobalVarExpressionNodeImpl.java45
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/IdentifierNodeImpl.java45
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/IfExpressionNodeImpl.java343
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/IfStatementNodeImpl.java324
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/ImpliesExpressionNodeImpl.java204
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/ImportNodeImpl.java223
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/InfixExpressionNodeImpl.java204
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/JavaTypeNodeImpl.java45
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/LetExpressionNodeImpl.java45
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/LetStatementNodeImpl.java283
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/ListLiteralNodeImpl.java139
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/MultiplicativeExpressionNodeImpl.java204
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/NullLiteralNodeImpl.java45
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/NumberLiteralNodeImpl.java45
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/OrExpressionNodeImpl.java204
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/ParameterListNodeImpl.java139
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/ParanthesizedExpressionNodeImpl.java163
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/PointcutNodeImpl.java45
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/ProtectStatementNodeImpl.java343
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/RelationalExpressionNodeImpl.java204
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/SequenceNodeImpl.java173
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/SimpleTypeNodeImpl.java139
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/StringLiteralNodeImpl.java45
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/SwitchExpressionNodeImpl.java264
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/Test_expressionNodeImpl.java45
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/TextNodeImpl.java45
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/TextSequenceNodeImpl.java139
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/UnaryExpressionNodeImpl.java163
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/Xpand3nodeFactoryImpl.java682
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/impl/Xpand3nodePackageImpl.java2496
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/util/Xpand3nodeAdapterFactory.java1117
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/util/Xpand3nodeSwitch.java1384
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/AdditiveExpressionNodeValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/AndExpressionNodeValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/AroundNodeValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/BooleanLiteralNodeValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/CasePartNodeValidator.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/CastedExpressionNodeValidator.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ChainExpressionNodeValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/CheckNodeValidator.java33
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/CollectionExpressionNodeValidator.java27
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/CollectionTypeNodeValidator.java23
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ConstructorCallNodeValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/DeclaredParameterListNodeValidator.java23
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/DeclaredParameterNodeValidator.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/DefinitionAroundNodeValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/DefinitionNodeValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ElseIfStatementNodeValidator.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ElseStatementNodeValidator.java21
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ErrorStatementNodeValidator.java21
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ExpandStatementNodeValidator.java25
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ExpressionStmtNodeValidator.java21
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ExtensionImportNodeValidator.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ExtensionNodeValidator.java30
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/FeatureCallNodeValidator.java23
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/FileNodeValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/FileStatementNodeValidator.java23
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ForeachStatementNodeValidator.java25
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/GlobalVarExpressionNodeValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/IdentifierNodeValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/IfExpressionNodeValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/IfStatementNodeValidator.java26
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ImpliesExpressionNodeValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ImportNodeValidator.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/InfixExpressionNodeValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/JavaTypeNodeValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/LetExpressionNodeValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/LetStatementNodeValidator.java23
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ListLiteralNodeValidator.java23
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/MultiplicativeExpressionNodeValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/NullLiteralNodeValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/NumberLiteralNodeValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/OrExpressionNodeValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ParameterListNodeValidator.java23
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ParanthesizedExpressionNodeValidator.java21
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/PointcutNodeValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/ProtectStatementNodeValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/RelationalExpressionNodeValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/SequenceNodeValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/SimpleTypeNodeValidator.java23
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/StringLiteralNodeValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/SwitchExpressionNodeValidator.java25
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/Test_expressionNodeValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/TextNodeValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/TextSequenceNodeValidator.java23
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/internal/parser/xpand3node/validation/UnaryExpressionNodeValidator.java21
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/AbstractStatement.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/AbstractStatementWithBody.java44
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/ErrorStatement.java54
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/ExpandStatement.java156
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/ExpressionStatement.java54
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/FileStatement.java110
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/ForEachStatement.java137
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/IfStatement.java81
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/LetStatement.java83
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/ProtectStatement.java135
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/StatementFactory.java118
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/StatementPackage.java1659
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/TextStatement.java80
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/impl/AbstractStatementImpl.java45
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/impl/AbstractStatementWithBodyImpl.java154
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/impl/ErrorStatementImpl.java180
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/impl/ExpandStatementImpl.java426
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/impl/ExpressionStatementImpl.java180
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/impl/FileStatementImpl.java316
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/impl/ForEachStatementImpl.java380
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/impl/IfStatementImpl.java246
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/impl/LetStatementImpl.java248
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/impl/ProtectStatementImpl.java380
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/impl/StatementFactoryImpl.java187
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/impl/StatementPackageImpl.java698
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/impl/TextStatementImpl.java220
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/util/StatementAdapterFactory.java324
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/util/StatementSwitch.java383
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/validation/AbstractStatementValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/validation/AbstractStatementWithBodyValidator.java23
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/validation/ErrorStatementValidator.java21
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/validation/ExpandStatementValidator.java29
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/validation/ExpressionStatementValidator.java21
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/validation/FileStatementValidator.java25
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/validation/ForEachStatementValidator.java26
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/validation/IfStatementValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/validation/LetStatementValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/validation/ProtectStatementValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/statement/validation/TextStatementValidator.java21
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/util/Xpand3AdapterFactory.java196
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/util/Xpand3Switch.java218
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/validation/DeclaredParameterValidator.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/validation/FileValidator.java26
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/validation/IdentifierValidator.java20
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/validation/ImportStatementValidator.java22
-rw-r--r--plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/validation/SyntaxElementValidator.java23
-rw-r--r--plugins/org.eclipse.xpand3.parser/model/Xpand3Node.ecore133
-rw-r--r--plugins/org.eclipse.xpand3.parser/model/Xpand3Node.genmodel6
-rw-r--r--plugins/org.eclipse.xpand3.parser/model/Xpand3Node.tmf13
-rw-r--r--plugins/org.eclipse.xpand3.parser/model/generator.properties6
-rw-r--r--plugins/org.eclipse.xpand3.parser/model/xpand3.ecore266
-rw-r--r--plugins/org.eclipse.xpand3.parser/model/xpand3.genmodel196
-rw-r--r--plugins/org.eclipse.xpand3.parser/src-gen/org/eclipse/xpand3/internal/frontend/parser/AbstractXpand3NodeSwitch.java795
-rw-r--r--plugins/org.eclipse.xpand3.parser/src-gen/org/eclipse/xpand3/internal/frontend/parser/Xpand3Node.g607
-rw-r--r--plugins/org.eclipse.xpand3.parser/src-gen/org/eclipse/xpand3/internal/frontend/parser/Xpand3Node.tokens (renamed from plugins/org.eclipse.xpand3.parser/src-gen/org/eclipse/xpand3/parser/Xpand3Node.tokens)0
-rw-r--r--plugins/org.eclipse.xpand3.parser/src-gen/org/eclipse/xpand3/internal/frontend/parser/Xpand3NodeLexer.java6093
-rw-r--r--plugins/org.eclipse.xpand3.parser/src-gen/org/eclipse/xpand3/internal/frontend/parser/Xpand3NodeParser.java9559
-rw-r--r--plugins/org.eclipse.xpand3.parser/src-gen/org/eclipse/xpand3/internal/frontend/parser/Xpand3Node__.g257
-rw-r--r--plugins/org.eclipse.xpand3.parser/src-gen/org/eclipse/xpand3/internal/frontend/parser/debugMeWithAntLR.g461
-rw-r--r--plugins/org.eclipse.xpand3.parser/src-gen/org/eclipse/xpand3/parser/AbstractXpand3NodeSwitch.java781
-rw-r--r--plugins/org.eclipse.xpand3.parser/src-gen/org/eclipse/xpand3/parser/Xpand3Node.g599
-rw-r--r--plugins/org.eclipse.xpand3.parser/src-gen/org/eclipse/xpand3/parser/Xpand3NodeLexer.java6093
-rw-r--r--plugins/org.eclipse.xpand3.parser/src-gen/org/eclipse/xpand3/parser/Xpand3NodeParser.java9269
-rw-r--r--plugins/org.eclipse.xpand3.parser/src-gen/org/eclipse/xpand3/parser/Xpand3Node__.g257
-rw-r--r--plugins/org.eclipse.xpand3.parser/src-gen/org/eclipse/xpand3/parser/debugMeWithAntLR.g455
-rw-r--r--plugins/org.eclipse.xpand3.parser/src/org/eclipse/xpand3/ast/AstUtil.java (renamed from plugins/org.eclipse.xpand3/src/org/eclipse/xpand3/ast/AstUtil.java)0
-rw-r--r--plugins/org.eclipse.xpand3.parser/src/org/eclipse/xpand3/internal/frontend/node2ast/Node2AstTransformer.java839
-rw-r--r--plugins/org.eclipse.xpand3.parser/src/org/eclipse/xpand3/internal/frontend/node2ast/Node2AstUtil.java59
-rw-r--r--plugins/org.eclipse.xpand3.parser/src/org/eclipse/xpand3/parser/ParseFacade.java34
-rw-r--r--plugins/org.eclipse.xpand3.parser/src/org/eclipse/xpand3/parser/TransformationException.java36
-rw-r--r--plugins/org.eclipse.xpand3.parser/text/description.txt227
-rw-r--r--plugins/org.eclipse.xpand3/.classpath1
-rw-r--r--plugins/org.eclipse.xpand3/META-INF/MANIFEST.MF28
-rw-r--r--plugins/org.eclipse.xpand3/build.properties5
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/DeclaredParameter.java80
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/File.java63
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/Identifier.java53
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/ImportStatement.java77
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/SyntaxElement.java135
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/Xpand3Factory.java73
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/Xpand3Package.java734
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/AbstractAspect.java85
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/AbstractDeclaration.java131
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/AbstractNamedDeclaration.java54
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/Advice.java21
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/Check.java135
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/CreateExtensionStatement.java54
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/DeclarationFactory.java109
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/DeclarationPackage.java1933
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/Definition.java46
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/DefinitionAspect.java46
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/Extension.java81
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/ExtensionAspect.java54
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/JavaExtensionStatement.java100
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/impl/AbstractAspectImpl.java259
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/impl/AbstractDeclarationImpl.java363
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/impl/AbstractNamedDeclarationImpl.java180
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/impl/AdviceImpl.java43
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/impl/CheckImpl.java368
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/impl/CreateExtensionStatementImpl.java180
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/impl/DeclarationFactoryImpl.java176
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/impl/DeclarationPackageImpl.java644
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/impl/DefinitionAspectImpl.java155
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/impl/DefinitionImpl.java155
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/impl/ExtensionAspectImpl.java180
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/impl/ExtensionImpl.java248
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/impl/JavaExtensionStatementImpl.java290
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/util/DeclarationAdapterFactory.java324
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/util/DeclarationSwitch.java386
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/validation/AbstractAspectValidator.java26
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/validation/AbstractDeclarationValidator.java29
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/validation/AbstractNamedDeclarationValidator.java21
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/validation/AdviceValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/validation/CheckValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/validation/CreateExtensionStatementValidator.java21
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/validation/DefinitionAspectValidator.java23
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/validation/DefinitionValidator.java23
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/validation/ExtensionAspectValidator.java21
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/validation/ExtensionValidator.java22
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/declaration/validation/JavaExtensionStatementValidator.java25
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/AbstractExpression.java22
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/BinaryOperation.java108
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/BooleanLiteral.java21
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/BooleanOperation.java23
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/Case.java81
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/Cast.java81
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/ChainExpression.java80
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/CollectionExpression.java81
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/ConstructorCallExpression.java54
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/ExpressionFactory.java226
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/ExpressionPackage.java2780
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/FeatureCall.java81
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/GlobalVarExpression.java54
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/IfExpression.java107
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/IntegerLiteral.java21
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/LetExpression.java108
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/ListLiteral.java44
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/Literal.java54
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/NullLiteral.java21
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/OperationCall.java44
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/RealLiteral.java21
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/StringLiteral.java21
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/SwitchExpression.java98
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/TypeSelectExpression.java54
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/UnaryOperation.java81
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/impl/AbstractExpressionImpl.java45
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/impl/BinaryOperationImpl.java313
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/impl/BooleanLiteralImpl.java43
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/impl/BooleanOperationImpl.java52
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/impl/CaseImpl.java247
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/impl/CastImpl.java247
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/impl/ChainExpressionImpl.java245
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/impl/CollectionExpressionImpl.java247
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/impl/ConstructorCallExpressionImpl.java180
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/impl/ExpressionFactoryImpl.java319
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/impl/ExpressionPackageImpl.java1015
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/impl/FeatureCallImpl.java247
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/impl/GlobalVarExpressionImpl.java180
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/impl/IfExpressionImpl.java311
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/impl/IntegerLiteralImpl.java43
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/impl/LetExpressionImpl.java313
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/impl/ListLiteralImpl.java154
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/impl/LiteralImpl.java180
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/impl/NullLiteralImpl.java43
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/impl/OperationCallImpl.java154
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/impl/RealLiteralImpl.java43
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/impl/StringLiteralImpl.java43
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/impl/SwitchExpressionImpl.java290
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/impl/TypeSelectExpressionImpl.java180
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/impl/UnaryOperationImpl.java241
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/util/ExpressionAdapterFactory.java540
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/util/ExpressionSwitch.java662
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/validation/AbstractExpressionValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/validation/BinaryOperationValidator.java25
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/validation/BooleanLiteralValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/validation/BooleanOperationValidator.java25
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/validation/CaseValidator.java22
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/validation/CastValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/validation/ChainExpressionValidator.java22
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/validation/CollectionExpressionValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/validation/ConstructorCallExpressionValidator.java21
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/validation/FeatureCallValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/validation/GlobalVarExpressionValidator.java21
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/validation/IfExpressionValidator.java23
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/validation/IntegerLiteralValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/validation/LetExpressionValidator.java25
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/validation/ListLiteralValidator.java23
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/validation/LiteralValidator.java21
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/validation/NullLiteralValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/validation/OperationCallValidator.java23
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/validation/RealLiteralValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/validation/StringLiteralValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/validation/SwitchExpressionValidator.java26
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/validation/TypeSelectExpressionValidator.java21
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/expression/validation/UnaryOperationValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/impl/DeclaredParameterImpl.java245
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/impl/FileImpl.java192
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/impl/IdentifierImpl.java166
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/impl/ImportStatementImpl.java247
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/impl/SyntaxElementImpl.java329
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/impl/Xpand3FactoryImpl.java132
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/impl/Xpand3PackageImpl.java420
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/AbstractStatement.java22
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/AbstractStatementWithBody.java44
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/ErrorStatement.java54
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/ExpandStatement.java156
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/ExpressionStatement.java54
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/FileStatement.java110
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/ForEachStatement.java137
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/IfStatement.java81
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/LetStatement.java83
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/ProtectStatement.java135
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/StatementFactory.java118
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/StatementPackage.java1659
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/TextStatement.java80
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/impl/AbstractStatementImpl.java45
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/impl/AbstractStatementWithBodyImpl.java154
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/impl/ErrorStatementImpl.java180
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/impl/ExpandStatementImpl.java426
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/impl/ExpressionStatementImpl.java180
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/impl/FileStatementImpl.java316
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/impl/ForEachStatementImpl.java380
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/impl/IfStatementImpl.java246
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/impl/LetStatementImpl.java248
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/impl/ProtectStatementImpl.java380
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/impl/StatementFactoryImpl.java187
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/impl/StatementPackageImpl.java698
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/impl/TextStatementImpl.java220
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/util/StatementAdapterFactory.java324
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/util/StatementSwitch.java383
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/validation/AbstractStatementValidator.java19
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/validation/AbstractStatementWithBodyValidator.java23
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/validation/ErrorStatementValidator.java21
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/validation/ExpandStatementValidator.java29
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/validation/ExpressionStatementValidator.java21
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/validation/FileStatementValidator.java26
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/validation/ForEachStatementValidator.java28
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/validation/IfStatementValidator.java25
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/validation/LetStatementValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/validation/ProtectStatementValidator.java24
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/statement/validation/TextStatementValidator.java21
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/staticTypesystem/AbstractNamedElement.java54
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/staticTypesystem/AbstractTypeReference.java22
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/staticTypesystem/DeclaredFunction.java88
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/staticTypesystem/DeclaredParameter.java53
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/staticTypesystem/DeclaredProperty.java80
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/staticTypesystem/DeclaredStaticProperty.java80
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/staticTypesystem/DeclaredType.java151
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/staticTypesystem/DeclaredTypeParameter.java44
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/staticTypesystem/FunctionType.java71
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/staticTypesystem/Model.java63
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/staticTypesystem/StaticTypesystemFactory.java145
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/staticTypesystem/StaticTypesystemPackage.java1387
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/staticTypesystem/Type.java71
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/staticTypesystem/TypeVariable.java53
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/staticTypesystem/VoidType.java21
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/staticTypesystem/WildcardType.java61
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/AbstractNamedElementImpl.java167
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/AbstractTypeReferenceImpl.java45
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/DeclaredFunctionImpl.java261
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/DeclaredParameterImpl.java179
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/DeclaredPropertyImpl.java246
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/DeclaredStaticPropertyImpl.java246
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/DeclaredTypeImpl.java392
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/DeclaredTypeParameterImpl.java154
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/FunctionTypeImpl.java219
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/ModelImpl.java193
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/StaticTypesystemFactoryImpl.java223
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/StaticTypesystemPackageImpl.java740
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/TypeImpl.java219
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/TypeVariableImpl.java161
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/VoidTypeImpl.java43
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/WildcardTypeImpl.java190
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/staticTypesystem/util/StaticTypesystemAdapterFactory.java358
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/staticTypesystem/util/StaticTypesystemSwitch.java414
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/util/Xpand3AdapterFactory.java196
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/util/Xpand3Switch.java218
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/validation/DeclaredParameterValidator.java22
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/validation/FileValidator.java26
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/validation/IdentifierValidator.java20
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/validation/ImportStatementValidator.java22
-rw-r--r--plugins/org.eclipse.xpand3/emf-gen/org/eclipse/xpand3/validation/SyntaxElementValidator.java23
-rw-r--r--plugins/org.eclipse.xpand3/src/org/eclipse/xpand3/middlend/Declaration2Backend.java17
-rw-r--r--plugins/org.eclipse.xpand3/src/org/eclipse/xpand3/parser/ParseFacade.java33
-rw-r--r--plugins/org.eclipse.xpand3/src/org/eclipse/xpand3/parser/node2ast/Node2AstTransformer.java821
-rw-r--r--plugins/org.eclipse.xpand3/src/org/eclipse/xpand3/parser/node2ast/Node2AstUtil.java59
-rw-r--r--plugins/org.eclipse.xpand3/src/org/eclipse/xpand3/parser/node2ast/TransformationException.java36
-rw-r--r--plugins/org.eclipse.xpand3/src/static_typesystem.genmodel61
-rw-r--r--plugins/org.eclipse.xpand3/src/xpand3.ecore266
-rw-r--r--plugins/org.eclipse.xpand3/src/xpand3.genmodel194
-rw-r--r--tests/org.eclipse.xpand3.parser.tests/.project2
-rw-r--r--tests/org.eclipse.xpand3.parser.tests/META-INF/MANIFEST.MF7
-rw-r--r--tests/org.eclipse.xpand3.parser.tests/src/org/eclipse/xpand3/frontend/parser/AbstractXpand3NodeParserTest.java191
-rw-r--r--tests/org.eclipse.xpand3.parser.tests/src/org/eclipse/xpand3/frontend/parser/AllTests.java36
-rw-r--r--tests/org.eclipse.xpand3.parser.tests/src/org/eclipse/xpand3/frontend/parser/ExpressionNodeParserTest.java218
-rw-r--r--tests/org.eclipse.xpand3.parser.tests/src/org/eclipse/xpand3/frontend/parser/StatementNodeParserTest.java259
-rw-r--r--tests/org.eclipse.xpand3.parser.tests/src/org/eclipse/xpand3/frontend/parser/SyntaxUtil.java22
-rw-r--r--tests/org.eclipse.xpand3.parser.tests/src/org/eclipse/xpand3/frontend/parser/Xpand3NodeParserTest.java83
-rw-r--r--tests/org.eclipse.xpand3.parser.tests/src/org/eclipse/xpand3/frontend/parser/Xpand3ScannerTest.java61
-rw-r--r--tests/org.eclipse.xpand3.parser.tests/src/org/eclipse/xpand3/frontend/parser/XpandLexerTest.java35
-rw-r--r--tests/org.eclipse.xpand3.parser.tests/src/org/eclipse/xpand3/frontend/parser/node2ast/Node2AstTest.java65
-rw-r--r--tests/org.eclipse.xpand3.parser.tests/src/org/eclipse/xpand3/frontend/parser/node2ast/ParseStuff.java93
-rw-r--r--tests/org.eclipse.xpand3.parser.tests/src/org/eclipse/xpand3/frontend/parser/node2ast/TreetestInterpreterTest.java68
-rw-r--r--tests/org.eclipse.xpand3.parser.tests/src/org/eclipse/xpand3/frontend/parser/node2ast/declaration.ttst116
-rw-r--r--tests/org.eclipse.xpand3.parser.tests/src/org/eclipse/xpand3/frontend/parser/node2ast/expression.ttst (renamed from tests/org.eclipse.xpand3.parser.tests/src/org/eclipse/xpand3/parser/node2ast/expression.ttst)0
-rw-r--r--tests/org.eclipse.xpand3.parser.tests/src/org/eclipse/xpand3/frontend/parser/node2ast/statement.ttst (renamed from tests/org.eclipse.xpand3.parser.tests/src/org/eclipse/xpand3/parser/node2ast/statement.ttst)0
-rw-r--r--tests/org.eclipse.xpand3.parser.tests/src/org/eclipse/xpand3/parser/AbstractXpand3NodeParserTest.java191
-rw-r--r--tests/org.eclipse.xpand3.parser.tests/src/org/eclipse/xpand3/parser/AllTests.java36
-rw-r--r--tests/org.eclipse.xpand3.parser.tests/src/org/eclipse/xpand3/parser/ExpressionNodeParserTest.java216
-rw-r--r--tests/org.eclipse.xpand3.parser.tests/src/org/eclipse/xpand3/parser/StatementNodeParserTest.java257
-rw-r--r--tests/org.eclipse.xpand3.parser.tests/src/org/eclipse/xpand3/parser/SyntaxUtil.java22
-rw-r--r--tests/org.eclipse.xpand3.parser.tests/src/org/eclipse/xpand3/parser/Xpand3NodeParserTest.java79
-rw-r--r--tests/org.eclipse.xpand3.parser.tests/src/org/eclipse/xpand3/parser/Xpand3ScannerTest.java59
-rw-r--r--tests/org.eclipse.xpand3.parser.tests/src/org/eclipse/xpand3/parser/XpandLexerTest.java34
-rw-r--r--tests/org.eclipse.xpand3.parser.tests/src/org/eclipse/xpand3/parser/node2ast/Node2AstTest.java64
-rw-r--r--tests/org.eclipse.xpand3.parser.tests/src/org/eclipse/xpand3/parser/node2ast/ParseStuff.java92
-rw-r--r--tests/org.eclipse.xpand3.parser.tests/src/org/eclipse/xpand3/parser/node2ast/TreetestInterpreterTest.java67
-rw-r--r--tests/org.eclipse.xpand3.parser.tests/src/org/eclipse/xpand3/parser/node2ast/declaration.ttst86
853 files changed, 85916 insertions, 84879 deletions
diff --git a/plugins/org.eclipse.xpand3.common/.classpath b/plugins/org.eclipse.xpand3.common/.classpath
new file mode 100644
index 0000000..1771a44
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/.classpath
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="emf-gen"/>
+ <classpathentry kind="src" path="model"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.xpand3.common/.project b/plugins/org.eclipse.xpand3.common/.project
new file mode 100644
index 0000000..9638799
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.xpand3.common</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.xpand3.common/META-INF/MANIFEST.MF b/plugins/org.eclipse.xpand3.common/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..9c9636f
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/META-INF/MANIFEST.MF
@@ -0,0 +1,18 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.xpand3.common; singleton:=true
+Bundle-Version: 1.0.0
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.xpand3.staticTypesystem,
+ org.eclipse.xpand3.staticTypesystem.impl,
+ org.eclipse.xpand3.staticTypesystem.util,
+ org.eclipse.xpand3.staticTypesystem.validation,
+ org.eclipse.xpand3.util,
+ staticTypesystem
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport
+Eclipse-LazyStart: true
diff --git a/plugins/org.eclipse.xpand3.common/build.properties b/plugins/org.eclipse.xpand3.common/build.properties
new file mode 100644
index 0000000..c4f8174
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/build.properties
@@ -0,0 +1,16 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id: build.properties,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+
+bin.includes = .,\
+ model/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties
+jars.compile.order = .
+source.. = src/,\
+ emf-gen/,\
+ model
+output.. = bin/
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/AbstractNamedElement.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/AbstractNamedElement.java
new file mode 100644
index 0000000..0e32f00
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/AbstractNamedElement.java
@@ -0,0 +1,54 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: AbstractNamedElement.java,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Abstract Named Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.AbstractNamedElement#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getAbstractNamedElement()
+ * @model abstract="true"
+ * @generated
+ */
+public interface AbstractNamedElement extends EObject {
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getAbstractNamedElement_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.xpand3.staticTypesystem.AbstractNamedElement#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+} // AbstractNamedElement
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/AbstractTypeReference.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/AbstractTypeReference.java
new file mode 100644
index 0000000..28aa5c1
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/AbstractTypeReference.java
@@ -0,0 +1,22 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: AbstractTypeReference.java,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Abstract Type Reference</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getAbstractTypeReference()
+ * @model abstract="true"
+ * @generated
+ */
+public interface AbstractTypeReference extends EObject {
+} // AbstractTypeReference
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/DeclaredFunction.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/DeclaredFunction.java
new file mode 100644
index 0000000..2366c82
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/DeclaredFunction.java
@@ -0,0 +1,88 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DeclaredFunction.java,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Declared Function</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.DeclaredFunction#getDeclaredParameters <em>Declared Parameters</em>}</li>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.DeclaredFunction#getDeclaredTypeParameters <em>Declared Type Parameters</em>}</li>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.DeclaredFunction#getReturnType <em>Return Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getDeclaredFunction()
+ * @model
+ * @generated
+ */
+public interface DeclaredFunction extends AbstractNamedElement {
+ /**
+ * Returns the value of the '<em><b>Declared Parameters</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.xpand3.staticTypesystem.DeclaredParameter}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Declared Parameters</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Declared Parameters</em>' containment reference list.
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getDeclaredFunction_DeclaredParameters()
+ * @model containment="true"
+ * @generated
+ */
+ EList<DeclaredParameter> getDeclaredParameters();
+
+ /**
+ * Returns the value of the '<em><b>Declared Type Parameters</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.xpand3.staticTypesystem.DeclaredTypeParameter}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Declared Type Parameters</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Declared Type Parameters</em>' containment reference list.
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getDeclaredFunction_DeclaredTypeParameters()
+ * @model containment="true"
+ * @generated
+ */
+ EList<DeclaredTypeParameter> getDeclaredTypeParameters();
+
+ /**
+ * Returns the value of the '<em><b>Return Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Return Type</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Return Type</em>' containment reference.
+ * @see #setReturnType(AbstractTypeReference)
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getDeclaredFunction_ReturnType()
+ * @model containment="true"
+ * @generated
+ */
+ AbstractTypeReference getReturnType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.xpand3.staticTypesystem.DeclaredFunction#getReturnType <em>Return Type</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Return Type</em>' containment reference.
+ * @see #getReturnType()
+ * @generated
+ */
+ void setReturnType(AbstractTypeReference value);
+
+} // DeclaredFunction
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/DeclaredParameter.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/DeclaredParameter.java
new file mode 100644
index 0000000..0cdc7ff
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/DeclaredParameter.java
@@ -0,0 +1,53 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DeclaredParameter.java,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Declared Parameter</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.DeclaredParameter#getType <em>Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getDeclaredParameter()
+ * @model
+ * @generated
+ */
+public interface DeclaredParameter extends AbstractNamedElement {
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type</em>' containment reference.
+ * @see #setType(AbstractTypeReference)
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getDeclaredParameter_Type()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ AbstractTypeReference getType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.xpand3.staticTypesystem.DeclaredParameter#getType <em>Type</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Type</em>' containment reference.
+ * @see #getType()
+ * @generated
+ */
+ void setType(AbstractTypeReference value);
+
+} // DeclaredParameter
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/DeclaredProperty.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/DeclaredProperty.java
new file mode 100644
index 0000000..31c0b3a
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/DeclaredProperty.java
@@ -0,0 +1,80 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DeclaredProperty.java,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Declared Property</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.DeclaredProperty#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.DeclaredProperty#isReadOnly <em>Read Only</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getDeclaredProperty()
+ * @model
+ * @generated
+ */
+public interface DeclaredProperty extends AbstractNamedElement {
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type</em>' containment reference.
+ * @see #setType(AbstractTypeReference)
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getDeclaredProperty_Type()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ AbstractTypeReference getType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.xpand3.staticTypesystem.DeclaredProperty#getType <em>Type</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Type</em>' containment reference.
+ * @see #getType()
+ * @generated
+ */
+ void setType(AbstractTypeReference value);
+
+ /**
+ * Returns the value of the '<em><b>Read Only</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Read Only</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Read Only</em>' attribute.
+ * @see #setReadOnly(boolean)
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getDeclaredProperty_ReadOnly()
+ * @model
+ * @generated
+ */
+ boolean isReadOnly();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.xpand3.staticTypesystem.DeclaredProperty#isReadOnly <em>Read Only</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Read Only</em>' attribute.
+ * @see #isReadOnly()
+ * @generated
+ */
+ void setReadOnly(boolean value);
+
+} // DeclaredProperty
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/DeclaredStaticProperty.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/DeclaredStaticProperty.java
new file mode 100644
index 0000000..9e417b9
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/DeclaredStaticProperty.java
@@ -0,0 +1,80 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DeclaredStaticProperty.java,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Declared Static Property</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.DeclaredStaticProperty#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.DeclaredStaticProperty#isReadOnly <em>Read Only</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getDeclaredStaticProperty()
+ * @model
+ * @generated
+ */
+public interface DeclaredStaticProperty extends AbstractNamedElement {
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type</em>' containment reference.
+ * @see #setType(Type)
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getDeclaredStaticProperty_Type()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ Type getType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.xpand3.staticTypesystem.DeclaredStaticProperty#getType <em>Type</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Type</em>' containment reference.
+ * @see #getType()
+ * @generated
+ */
+ void setType(Type value);
+
+ /**
+ * Returns the value of the '<em><b>Read Only</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Read Only</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Read Only</em>' attribute.
+ * @see #setReadOnly(boolean)
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getDeclaredStaticProperty_ReadOnly()
+ * @model
+ * @generated
+ */
+ boolean isReadOnly();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.xpand3.staticTypesystem.DeclaredStaticProperty#isReadOnly <em>Read Only</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Read Only</em>' attribute.
+ * @see #isReadOnly()
+ * @generated
+ */
+ void setReadOnly(boolean value);
+
+} // DeclaredStaticProperty
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/DeclaredType.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/DeclaredType.java
new file mode 100644
index 0000000..f157b03
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/DeclaredType.java
@@ -0,0 +1,149 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DeclaredType.java,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Declared Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.DeclaredType#getStaticProperties <em>Static Properties</em>}</li>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.DeclaredType#getProperties <em>Properties</em>}</li>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.DeclaredType#getDeclaredTypeParameters <em>Declared Type Parameters</em>}</li>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.DeclaredType#getSuperTypes <em>Super Types</em>}</li>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.DeclaredType#getUniqueID <em>Unique ID</em>}</li>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.DeclaredType#isIsAbstract <em>Is Abstract</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getDeclaredType()
+ * @model
+ * @generated
+ */
+public interface DeclaredType extends AbstractNamedElement {
+ /**
+ * Returns the value of the '<em><b>Static Properties</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.xpand3.staticTypesystem.DeclaredStaticProperty}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Static Properties</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Static Properties</em>' containment reference list.
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getDeclaredType_StaticProperties()
+ * @model containment="true"
+ * @generated
+ */
+ EList<DeclaredStaticProperty> getStaticProperties();
+
+ /**
+ * Returns the value of the '<em><b>Properties</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.xpand3.staticTypesystem.DeclaredProperty}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Properties</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Properties</em>' containment reference list.
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getDeclaredType_Properties()
+ * @model containment="true"
+ * @generated
+ */
+ EList<DeclaredProperty> getProperties();
+
+ /**
+ * Returns the value of the '<em><b>Declared Type Parameters</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.xpand3.staticTypesystem.DeclaredTypeParameter}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Declared Type Parameters</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Declared Type Parameters</em>' containment reference list.
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getDeclaredType_DeclaredTypeParameters()
+ * @model containment="true"
+ * @generated
+ */
+ EList<DeclaredTypeParameter> getDeclaredTypeParameters();
+
+ /**
+ * Returns the value of the '<em><b>Super Types</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.xpand3.staticTypesystem.AbstractTypeReference}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Super Types</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Super Types</em>' containment reference list.
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getDeclaredType_SuperTypes()
+ * @model containment="true"
+ * @generated
+ */
+ EList<AbstractTypeReference> getSuperTypes();
+
+ /**
+ * Returns the value of the '<em><b>Unique ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Unique ID</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Unique ID</em>' attribute.
+ * @see #setUniqueID(String)
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getDeclaredType_UniqueID()
+ * @model
+ * @generated
+ */
+ String getUniqueID();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.xpand3.staticTypesystem.DeclaredType#getUniqueID <em>Unique ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Unique ID</em>' attribute.
+ * @see #getUniqueID()
+ * @generated
+ */
+ void setUniqueID(String value);
+
+ /**
+ * Returns the value of the '<em><b>Is Abstract</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Is Abstract</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Is Abstract</em>' attribute.
+ * @see #setIsAbstract(boolean)
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getDeclaredType_IsAbstract()
+ * @model
+ * @generated
+ */
+ boolean isIsAbstract();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.xpand3.staticTypesystem.DeclaredType#isIsAbstract <em>Is Abstract</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Is Abstract</em>' attribute.
+ * @see #isIsAbstract()
+ * @generated
+ */
+ void setIsAbstract(boolean value);
+
+} // DeclaredType
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/DeclaredTypeParameter.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/DeclaredTypeParameter.java
new file mode 100644
index 0000000..50e773b
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/DeclaredTypeParameter.java
@@ -0,0 +1,44 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DeclaredTypeParameter.java,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Declared Type Parameter</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.DeclaredTypeParameter#getUpperBounds <em>Upper Bounds</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getDeclaredTypeParameter()
+ * @model
+ * @generated
+ */
+public interface DeclaredTypeParameter extends AbstractNamedElement {
+ /**
+ * Returns the value of the '<em><b>Upper Bounds</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.xpand3.staticTypesystem.AbstractTypeReference}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Upper Bounds</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Upper Bounds</em>' containment reference list.
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getDeclaredTypeParameter_UpperBounds()
+ * @model containment="true"
+ * @generated
+ */
+ EList<AbstractTypeReference> getUpperBounds();
+
+} // DeclaredTypeParameter
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/FunctionType.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/FunctionType.java
new file mode 100644
index 0000000..8d30975
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/FunctionType.java
@@ -0,0 +1,71 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: FunctionType.java,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Function Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.FunctionType#getDeclaredFunction <em>Declared Function</em>}</li>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.FunctionType#getActualTypeArguments <em>Actual Type Arguments</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getFunctionType()
+ * @model
+ * @generated
+ */
+public interface FunctionType extends AbstractTypeReference {
+ /**
+ * Returns the value of the '<em><b>Declared Function</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Declared Function</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Declared Function</em>' reference.
+ * @see #setDeclaredFunction(DeclaredFunction)
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getFunctionType_DeclaredFunction()
+ * @model required="true"
+ * @generated
+ */
+ DeclaredFunction getDeclaredFunction();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.xpand3.staticTypesystem.FunctionType#getDeclaredFunction <em>Declared Function</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Declared Function</em>' reference.
+ * @see #getDeclaredFunction()
+ * @generated
+ */
+ void setDeclaredFunction(DeclaredFunction value);
+
+ /**
+ * Returns the value of the '<em><b>Actual Type Arguments</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.xpand3.staticTypesystem.AbstractTypeReference}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Actual Type Arguments</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Actual Type Arguments</em>' containment reference list.
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getFunctionType_ActualTypeArguments()
+ * @model containment="true"
+ * @generated
+ */
+ EList<AbstractTypeReference> getActualTypeArguments();
+
+} // FunctionType
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/Model.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/Model.java
new file mode 100644
index 0000000..a7d9136
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/Model.java
@@ -0,0 +1,63 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Model.java,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Model</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.Model#getDeclarations <em>Declarations</em>}</li>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.Model#getFunctionDeclarations <em>Function Declarations</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getModel()
+ * @model
+ * @generated
+ */
+public interface Model extends EObject {
+ /**
+ * Returns the value of the '<em><b>Declarations</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.xpand3.staticTypesystem.DeclaredType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Declarations</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Declarations</em>' containment reference list.
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getModel_Declarations()
+ * @model containment="true"
+ * @generated
+ */
+ EList<DeclaredType> getDeclarations();
+
+ /**
+ * Returns the value of the '<em><b>Function Declarations</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.xpand3.staticTypesystem.DeclaredFunction}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Function Declarations</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Function Declarations</em>' containment reference list.
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getModel_FunctionDeclarations()
+ * @model containment="true"
+ * @generated
+ */
+ EList<DeclaredFunction> getFunctionDeclarations();
+
+} // Model
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/StaticTypesystemFactory.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/StaticTypesystemFactory.java
new file mode 100644
index 0000000..6891bea
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/StaticTypesystemFactory.java
@@ -0,0 +1,145 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: StaticTypesystemFactory.java,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage
+ * @generated
+ */
+public interface StaticTypesystemFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ StaticTypesystemFactory eINSTANCE = org.eclipse.xpand3.staticTypesystem.impl.StaticTypesystemFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Type</em>'.
+ * @generated
+ */
+ Type createType();
+
+ /**
+ * Returns a new object of class '<em>Type Variable</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Type Variable</em>'.
+ * @generated
+ */
+ TypeVariable createTypeVariable();
+
+ /**
+ * Returns a new object of class '<em>Void Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Void Type</em>'.
+ * @generated
+ */
+ VoidType createVoidType();
+
+ /**
+ * Returns a new object of class '<em>Wildcard Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Wildcard Type</em>'.
+ * @generated
+ */
+ WildcardType createWildcardType();
+
+ /**
+ * Returns a new object of class '<em>Function Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Function Type</em>'.
+ * @generated
+ */
+ FunctionType createFunctionType();
+
+ /**
+ * Returns a new object of class '<em>Declared Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Declared Type</em>'.
+ * @generated
+ */
+ DeclaredType createDeclaredType();
+
+ /**
+ * Returns a new object of class '<em>Declared Function</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Declared Function</em>'.
+ * @generated
+ */
+ DeclaredFunction createDeclaredFunction();
+
+ /**
+ * Returns a new object of class '<em>Declared Property</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Declared Property</em>'.
+ * @generated
+ */
+ DeclaredProperty createDeclaredProperty();
+
+ /**
+ * Returns a new object of class '<em>Declared Static Property</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Declared Static Property</em>'.
+ * @generated
+ */
+ DeclaredStaticProperty createDeclaredStaticProperty();
+
+ /**
+ * Returns a new object of class '<em>Declared Type Parameter</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Declared Type Parameter</em>'.
+ * @generated
+ */
+ DeclaredTypeParameter createDeclaredTypeParameter();
+
+ /**
+ * Returns a new object of class '<em>Declared Parameter</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Declared Parameter</em>'.
+ * @generated
+ */
+ DeclaredParameter createDeclaredParameter();
+
+ /**
+ * Returns a new object of class '<em>Model</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Model</em>'.
+ * @generated
+ */
+ Model createModel();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ StaticTypesystemPackage getStaticTypesystemPackage();
+
+} //StaticTypesystemFactory
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/StaticTypesystemPackage.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/StaticTypesystemPackage.java
new file mode 100644
index 0000000..c5e120c
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/StaticTypesystemPackage.java
@@ -0,0 +1,1387 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: StaticTypesystemPackage.java,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface StaticTypesystemPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "staticTypesystem";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/m2t/xpand3/staticTypesystem";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "staticTypesystem";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ StaticTypesystemPackage eINSTANCE = org.eclipse.xpand3.staticTypesystem.impl.StaticTypesystemPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.xpand3.staticTypesystem.impl.AbstractNamedElementImpl <em>Abstract Named Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.staticTypesystem.impl.AbstractNamedElementImpl
+ * @see org.eclipse.xpand3.staticTypesystem.impl.StaticTypesystemPackageImpl#getAbstractNamedElement()
+ * @generated
+ */
+ int ABSTRACT_NAMED_ELEMENT = 0;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_NAMED_ELEMENT__NAME = 0;
+
+ /**
+ * The number of structural features of the '<em>Abstract Named Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_NAMED_ELEMENT_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.xpand3.staticTypesystem.impl.AbstractTypeReferenceImpl <em>Abstract Type Reference</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.staticTypesystem.impl.AbstractTypeReferenceImpl
+ * @see org.eclipse.xpand3.staticTypesystem.impl.StaticTypesystemPackageImpl#getAbstractTypeReference()
+ * @generated
+ */
+ int ABSTRACT_TYPE_REFERENCE = 1;
+
+ /**
+ * The number of structural features of the '<em>Abstract Type Reference</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_TYPE_REFERENCE_FEATURE_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.xpand3.staticTypesystem.impl.TypeImpl <em>Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.staticTypesystem.impl.TypeImpl
+ * @see org.eclipse.xpand3.staticTypesystem.impl.StaticTypesystemPackageImpl#getType()
+ * @generated
+ */
+ int TYPE = 2;
+
+ /**
+ * The feature id for the '<em><b>Declared Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TYPE__DECLARED_TYPE = ABSTRACT_TYPE_REFERENCE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Actual Type Arguments</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TYPE__ACTUAL_TYPE_ARGUMENTS = ABSTRACT_TYPE_REFERENCE_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TYPE_FEATURE_COUNT = ABSTRACT_TYPE_REFERENCE_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.xpand3.staticTypesystem.impl.TypeVariableImpl <em>Type Variable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.staticTypesystem.impl.TypeVariableImpl
+ * @see org.eclipse.xpand3.staticTypesystem.impl.StaticTypesystemPackageImpl#getTypeVariable()
+ * @generated
+ */
+ int TYPE_VARIABLE = 3;
+
+ /**
+ * The feature id for the '<em><b>Declared Type Parameter</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TYPE_VARIABLE__DECLARED_TYPE_PARAMETER = ABSTRACT_TYPE_REFERENCE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Type Variable</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TYPE_VARIABLE_FEATURE_COUNT = ABSTRACT_TYPE_REFERENCE_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.xpand3.staticTypesystem.impl.VoidTypeImpl <em>Void Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.staticTypesystem.impl.VoidTypeImpl
+ * @see org.eclipse.xpand3.staticTypesystem.impl.StaticTypesystemPackageImpl#getVoidType()
+ * @generated
+ */
+ int VOID_TYPE = 4;
+
+ /**
+ * The number of structural features of the '<em>Void Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VOID_TYPE_FEATURE_COUNT = ABSTRACT_TYPE_REFERENCE_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.xpand3.staticTypesystem.impl.WildcardTypeImpl <em>Wildcard Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.staticTypesystem.impl.WildcardTypeImpl
+ * @see org.eclipse.xpand3.staticTypesystem.impl.StaticTypesystemPackageImpl#getWildcardType()
+ * @generated
+ */
+ int WILDCARD_TYPE = 5;
+
+ /**
+ * The feature id for the '<em><b>Lower Bounds</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WILDCARD_TYPE__LOWER_BOUNDS = ABSTRACT_TYPE_REFERENCE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Upper Bounds</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WILDCARD_TYPE__UPPER_BOUNDS = ABSTRACT_TYPE_REFERENCE_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Wildcard Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WILDCARD_TYPE_FEATURE_COUNT = ABSTRACT_TYPE_REFERENCE_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.xpand3.staticTypesystem.impl.FunctionTypeImpl <em>Function Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.staticTypesystem.impl.FunctionTypeImpl
+ * @see org.eclipse.xpand3.staticTypesystem.impl.StaticTypesystemPackageImpl#getFunctionType()
+ * @generated
+ */
+ int FUNCTION_TYPE = 6;
+
+ /**
+ * The feature id for the '<em><b>Declared Function</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FUNCTION_TYPE__DECLARED_FUNCTION = ABSTRACT_TYPE_REFERENCE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Actual Type Arguments</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FUNCTION_TYPE__ACTUAL_TYPE_ARGUMENTS = ABSTRACT_TYPE_REFERENCE_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Function Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FUNCTION_TYPE_FEATURE_COUNT = ABSTRACT_TYPE_REFERENCE_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.xpand3.staticTypesystem.impl.DeclaredTypeImpl <em>Declared Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.staticTypesystem.impl.DeclaredTypeImpl
+ * @see org.eclipse.xpand3.staticTypesystem.impl.StaticTypesystemPackageImpl#getDeclaredType()
+ * @generated
+ */
+ int DECLARED_TYPE = 7;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DECLARED_TYPE__NAME = ABSTRACT_NAMED_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Static Properties</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DECLARED_TYPE__STATIC_PROPERTIES = ABSTRACT_NAMED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Properties</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DECLARED_TYPE__PROPERTIES = ABSTRACT_NAMED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Declared Type Parameters</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DECLARED_TYPE__DECLARED_TYPE_PARAMETERS = ABSTRACT_NAMED_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Super Types</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DECLARED_TYPE__SUPER_TYPES = ABSTRACT_NAMED_ELEMENT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Unique ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DECLARED_TYPE__UNIQUE_ID = ABSTRACT_NAMED_ELEMENT_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Is Abstract</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DECLARED_TYPE__IS_ABSTRACT = ABSTRACT_NAMED_ELEMENT_FEATURE_COUNT + 5;
+
+ /**
+ * The number of structural features of the '<em>Declared Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DECLARED_TYPE_FEATURE_COUNT = ABSTRACT_NAMED_ELEMENT_FEATURE_COUNT + 6;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.xpand3.staticTypesystem.impl.DeclaredFunctionImpl <em>Declared Function</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.staticTypesystem.impl.DeclaredFunctionImpl
+ * @see org.eclipse.xpand3.staticTypesystem.impl.StaticTypesystemPackageImpl#getDeclaredFunction()
+ * @generated
+ */
+ int DECLARED_FUNCTION = 8;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DECLARED_FUNCTION__NAME = ABSTRACT_NAMED_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Declared Parameters</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DECLARED_FUNCTION__DECLARED_PARAMETERS = ABSTRACT_NAMED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Declared Type Parameters</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DECLARED_FUNCTION__DECLARED_TYPE_PARAMETERS = ABSTRACT_NAMED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Return Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DECLARED_FUNCTION__RETURN_TYPE = ABSTRACT_NAMED_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Declared Function</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DECLARED_FUNCTION_FEATURE_COUNT = ABSTRACT_NAMED_ELEMENT_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.xpand3.staticTypesystem.impl.DeclaredPropertyImpl <em>Declared Property</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.staticTypesystem.impl.DeclaredPropertyImpl
+ * @see org.eclipse.xpand3.staticTypesystem.impl.StaticTypesystemPackageImpl#getDeclaredProperty()
+ * @generated
+ */
+ int DECLARED_PROPERTY = 9;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DECLARED_PROPERTY__NAME = ABSTRACT_NAMED_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DECLARED_PROPERTY__TYPE = ABSTRACT_NAMED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Read Only</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DECLARED_PROPERTY__READ_ONLY = ABSTRACT_NAMED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Declared Property</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DECLARED_PROPERTY_FEATURE_COUNT = ABSTRACT_NAMED_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.xpand3.staticTypesystem.impl.DeclaredStaticPropertyImpl <em>Declared Static Property</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.staticTypesystem.impl.DeclaredStaticPropertyImpl
+ * @see org.eclipse.xpand3.staticTypesystem.impl.StaticTypesystemPackageImpl#getDeclaredStaticProperty()
+ * @generated
+ */
+ int DECLARED_STATIC_PROPERTY = 10;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DECLARED_STATIC_PROPERTY__NAME = ABSTRACT_NAMED_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DECLARED_STATIC_PROPERTY__TYPE = ABSTRACT_NAMED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Read Only</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DECLARED_STATIC_PROPERTY__READ_ONLY = ABSTRACT_NAMED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Declared Static Property</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DECLARED_STATIC_PROPERTY_FEATURE_COUNT = ABSTRACT_NAMED_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.xpand3.staticTypesystem.impl.DeclaredTypeParameterImpl <em>Declared Type Parameter</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.staticTypesystem.impl.DeclaredTypeParameterImpl
+ * @see org.eclipse.xpand3.staticTypesystem.impl.StaticTypesystemPackageImpl#getDeclaredTypeParameter()
+ * @generated
+ */
+ int DECLARED_TYPE_PARAMETER = 11;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DECLARED_TYPE_PARAMETER__NAME = ABSTRACT_NAMED_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Upper Bounds</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DECLARED_TYPE_PARAMETER__UPPER_BOUNDS = ABSTRACT_NAMED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Declared Type Parameter</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DECLARED_TYPE_PARAMETER_FEATURE_COUNT = ABSTRACT_NAMED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.xpand3.staticTypesystem.impl.DeclaredParameterImpl <em>Declared Parameter</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.staticTypesystem.impl.DeclaredParameterImpl
+ * @see org.eclipse.xpand3.staticTypesystem.impl.StaticTypesystemPackageImpl#getDeclaredParameter()
+ * @generated
+ */
+ int DECLARED_PARAMETER = 12;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DECLARED_PARAMETER__NAME = ABSTRACT_NAMED_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DECLARED_PARAMETER__TYPE = ABSTRACT_NAMED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Declared Parameter</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DECLARED_PARAMETER_FEATURE_COUNT = ABSTRACT_NAMED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.xpand3.staticTypesystem.impl.ModelImpl <em>Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.staticTypesystem.impl.ModelImpl
+ * @see org.eclipse.xpand3.staticTypesystem.impl.StaticTypesystemPackageImpl#getModel()
+ * @generated
+ */
+ int MODEL = 13;
+
+ /**
+ * The feature id for the '<em><b>Declarations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL__DECLARATIONS = 0;
+
+ /**
+ * The feature id for the '<em><b>Function Declarations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL__FUNCTION_DECLARATIONS = 1;
+
+ /**
+ * The number of structural features of the '<em>Model</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_FEATURE_COUNT = 2;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.xpand3.staticTypesystem.AbstractNamedElement <em>Abstract Named Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Abstract Named Element</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.AbstractNamedElement
+ * @generated
+ */
+ EClass getAbstractNamedElement();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.xpand3.staticTypesystem.AbstractNamedElement#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.AbstractNamedElement#getName()
+ * @see #getAbstractNamedElement()
+ * @generated
+ */
+ EAttribute getAbstractNamedElement_Name();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.xpand3.staticTypesystem.AbstractTypeReference <em>Abstract Type Reference</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Abstract Type Reference</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.AbstractTypeReference
+ * @generated
+ */
+ EClass getAbstractTypeReference();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.xpand3.staticTypesystem.Type <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Type</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.Type
+ * @generated
+ */
+ EClass getType();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.xpand3.staticTypesystem.Type#getDeclaredType <em>Declared Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Declared Type</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.Type#getDeclaredType()
+ * @see #getType()
+ * @generated
+ */
+ EReference getType_DeclaredType();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.xpand3.staticTypesystem.Type#getActualTypeArguments <em>Actual Type Arguments</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Actual Type Arguments</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.Type#getActualTypeArguments()
+ * @see #getType()
+ * @generated
+ */
+ EReference getType_ActualTypeArguments();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.xpand3.staticTypesystem.TypeVariable <em>Type Variable</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Type Variable</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.TypeVariable
+ * @generated
+ */
+ EClass getTypeVariable();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.xpand3.staticTypesystem.TypeVariable#getDeclaredTypeParameter <em>Declared Type Parameter</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Declared Type Parameter</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.TypeVariable#getDeclaredTypeParameter()
+ * @see #getTypeVariable()
+ * @generated
+ */
+ EReference getTypeVariable_DeclaredTypeParameter();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.xpand3.staticTypesystem.VoidType <em>Void Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Void Type</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.VoidType
+ * @generated
+ */
+ EClass getVoidType();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.xpand3.staticTypesystem.WildcardType <em>Wildcard Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Wildcard Type</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.WildcardType
+ * @generated
+ */
+ EClass getWildcardType();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.xpand3.staticTypesystem.WildcardType#getLowerBounds <em>Lower Bounds</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Lower Bounds</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.WildcardType#getLowerBounds()
+ * @see #getWildcardType()
+ * @generated
+ */
+ EReference getWildcardType_LowerBounds();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.xpand3.staticTypesystem.WildcardType#getUpperBounds <em>Upper Bounds</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Upper Bounds</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.WildcardType#getUpperBounds()
+ * @see #getWildcardType()
+ * @generated
+ */
+ EReference getWildcardType_UpperBounds();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.xpand3.staticTypesystem.FunctionType <em>Function Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Function Type</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.FunctionType
+ * @generated
+ */
+ EClass getFunctionType();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.xpand3.staticTypesystem.FunctionType#getDeclaredFunction <em>Declared Function</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Declared Function</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.FunctionType#getDeclaredFunction()
+ * @see #getFunctionType()
+ * @generated
+ */
+ EReference getFunctionType_DeclaredFunction();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.xpand3.staticTypesystem.FunctionType#getActualTypeArguments <em>Actual Type Arguments</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Actual Type Arguments</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.FunctionType#getActualTypeArguments()
+ * @see #getFunctionType()
+ * @generated
+ */
+ EReference getFunctionType_ActualTypeArguments();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.xpand3.staticTypesystem.DeclaredType <em>Declared Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Declared Type</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.DeclaredType
+ * @generated
+ */
+ EClass getDeclaredType();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.xpand3.staticTypesystem.DeclaredType#getStaticProperties <em>Static Properties</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Static Properties</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.DeclaredType#getStaticProperties()
+ * @see #getDeclaredType()
+ * @generated
+ */
+ EReference getDeclaredType_StaticProperties();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.xpand3.staticTypesystem.DeclaredType#getProperties <em>Properties</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Properties</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.DeclaredType#getProperties()
+ * @see #getDeclaredType()
+ * @generated
+ */
+ EReference getDeclaredType_Properties();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.xpand3.staticTypesystem.DeclaredType#getDeclaredTypeParameters <em>Declared Type Parameters</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Declared Type Parameters</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.DeclaredType#getDeclaredTypeParameters()
+ * @see #getDeclaredType()
+ * @generated
+ */
+ EReference getDeclaredType_DeclaredTypeParameters();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.xpand3.staticTypesystem.DeclaredType#getSuperTypes <em>Super Types</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Super Types</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.DeclaredType#getSuperTypes()
+ * @see #getDeclaredType()
+ * @generated
+ */
+ EReference getDeclaredType_SuperTypes();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.xpand3.staticTypesystem.DeclaredType#getUniqueID <em>Unique ID</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Unique ID</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.DeclaredType#getUniqueID()
+ * @see #getDeclaredType()
+ * @generated
+ */
+ EAttribute getDeclaredType_UniqueID();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.xpand3.staticTypesystem.DeclaredType#isIsAbstract <em>Is Abstract</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Is Abstract</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.DeclaredType#isIsAbstract()
+ * @see #getDeclaredType()
+ * @generated
+ */
+ EAttribute getDeclaredType_IsAbstract();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.xpand3.staticTypesystem.DeclaredFunction <em>Declared Function</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Declared Function</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.DeclaredFunction
+ * @generated
+ */
+ EClass getDeclaredFunction();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.xpand3.staticTypesystem.DeclaredFunction#getDeclaredParameters <em>Declared Parameters</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Declared Parameters</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.DeclaredFunction#getDeclaredParameters()
+ * @see #getDeclaredFunction()
+ * @generated
+ */
+ EReference getDeclaredFunction_DeclaredParameters();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.xpand3.staticTypesystem.DeclaredFunction#getDeclaredTypeParameters <em>Declared Type Parameters</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Declared Type Parameters</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.DeclaredFunction#getDeclaredTypeParameters()
+ * @see #getDeclaredFunction()
+ * @generated
+ */
+ EReference getDeclaredFunction_DeclaredTypeParameters();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.xpand3.staticTypesystem.DeclaredFunction#getReturnType <em>Return Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Return Type</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.DeclaredFunction#getReturnType()
+ * @see #getDeclaredFunction()
+ * @generated
+ */
+ EReference getDeclaredFunction_ReturnType();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.xpand3.staticTypesystem.DeclaredProperty <em>Declared Property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Declared Property</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.DeclaredProperty
+ * @generated
+ */
+ EClass getDeclaredProperty();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.xpand3.staticTypesystem.DeclaredProperty#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Type</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.DeclaredProperty#getType()
+ * @see #getDeclaredProperty()
+ * @generated
+ */
+ EReference getDeclaredProperty_Type();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.xpand3.staticTypesystem.DeclaredProperty#isReadOnly <em>Read Only</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Read Only</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.DeclaredProperty#isReadOnly()
+ * @see #getDeclaredProperty()
+ * @generated
+ */
+ EAttribute getDeclaredProperty_ReadOnly();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.xpand3.staticTypesystem.DeclaredStaticProperty <em>Declared Static Property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Declared Static Property</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.DeclaredStaticProperty
+ * @generated
+ */
+ EClass getDeclaredStaticProperty();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.xpand3.staticTypesystem.DeclaredStaticProperty#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Type</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.DeclaredStaticProperty#getType()
+ * @see #getDeclaredStaticProperty()
+ * @generated
+ */
+ EReference getDeclaredStaticProperty_Type();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.xpand3.staticTypesystem.DeclaredStaticProperty#isReadOnly <em>Read Only</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Read Only</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.DeclaredStaticProperty#isReadOnly()
+ * @see #getDeclaredStaticProperty()
+ * @generated
+ */
+ EAttribute getDeclaredStaticProperty_ReadOnly();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.xpand3.staticTypesystem.DeclaredTypeParameter <em>Declared Type Parameter</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Declared Type Parameter</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.DeclaredTypeParameter
+ * @generated
+ */
+ EClass getDeclaredTypeParameter();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.xpand3.staticTypesystem.DeclaredTypeParameter#getUpperBounds <em>Upper Bounds</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Upper Bounds</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.DeclaredTypeParameter#getUpperBounds()
+ * @see #getDeclaredTypeParameter()
+ * @generated
+ */
+ EReference getDeclaredTypeParameter_UpperBounds();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.xpand3.staticTypesystem.DeclaredParameter <em>Declared Parameter</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Declared Parameter</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.DeclaredParameter
+ * @generated
+ */
+ EClass getDeclaredParameter();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.xpand3.staticTypesystem.DeclaredParameter#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Type</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.DeclaredParameter#getType()
+ * @see #getDeclaredParameter()
+ * @generated
+ */
+ EReference getDeclaredParameter_Type();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.xpand3.staticTypesystem.Model <em>Model</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Model</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.Model
+ * @generated
+ */
+ EClass getModel();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.xpand3.staticTypesystem.Model#getDeclarations <em>Declarations</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Declarations</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.Model#getDeclarations()
+ * @see #getModel()
+ * @generated
+ */
+ EReference getModel_Declarations();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.xpand3.staticTypesystem.Model#getFunctionDeclarations <em>Function Declarations</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Function Declarations</em>'.
+ * @see org.eclipse.xpand3.staticTypesystem.Model#getFunctionDeclarations()
+ * @see #getModel()
+ * @generated
+ */
+ EReference getModel_FunctionDeclarations();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ StaticTypesystemFactory getStaticTypesystemFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.xpand3.staticTypesystem.impl.AbstractNamedElementImpl <em>Abstract Named Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.staticTypesystem.impl.AbstractNamedElementImpl
+ * @see org.eclipse.xpand3.staticTypesystem.impl.StaticTypesystemPackageImpl#getAbstractNamedElement()
+ * @generated
+ */
+ EClass ABSTRACT_NAMED_ELEMENT = eINSTANCE.getAbstractNamedElement();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ABSTRACT_NAMED_ELEMENT__NAME = eINSTANCE.getAbstractNamedElement_Name();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.xpand3.staticTypesystem.impl.AbstractTypeReferenceImpl <em>Abstract Type Reference</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.staticTypesystem.impl.AbstractTypeReferenceImpl
+ * @see org.eclipse.xpand3.staticTypesystem.impl.StaticTypesystemPackageImpl#getAbstractTypeReference()
+ * @generated
+ */
+ EClass ABSTRACT_TYPE_REFERENCE = eINSTANCE.getAbstractTypeReference();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.xpand3.staticTypesystem.impl.TypeImpl <em>Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.staticTypesystem.impl.TypeImpl
+ * @see org.eclipse.xpand3.staticTypesystem.impl.StaticTypesystemPackageImpl#getType()
+ * @generated
+ */
+ EClass TYPE = eINSTANCE.getType();
+
+ /**
+ * The meta object literal for the '<em><b>Declared Type</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TYPE__DECLARED_TYPE = eINSTANCE.getType_DeclaredType();
+
+ /**
+ * The meta object literal for the '<em><b>Actual Type Arguments</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TYPE__ACTUAL_TYPE_ARGUMENTS = eINSTANCE.getType_ActualTypeArguments();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.xpand3.staticTypesystem.impl.TypeVariableImpl <em>Type Variable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.staticTypesystem.impl.TypeVariableImpl
+ * @see org.eclipse.xpand3.staticTypesystem.impl.StaticTypesystemPackageImpl#getTypeVariable()
+ * @generated
+ */
+ EClass TYPE_VARIABLE = eINSTANCE.getTypeVariable();
+
+ /**
+ * The meta object literal for the '<em><b>Declared Type Parameter</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TYPE_VARIABLE__DECLARED_TYPE_PARAMETER = eINSTANCE.getTypeVariable_DeclaredTypeParameter();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.xpand3.staticTypesystem.impl.VoidTypeImpl <em>Void Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.staticTypesystem.impl.VoidTypeImpl
+ * @see org.eclipse.xpand3.staticTypesystem.impl.StaticTypesystemPackageImpl#getVoidType()
+ * @generated
+ */
+ EClass VOID_TYPE = eINSTANCE.getVoidType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.xpand3.staticTypesystem.impl.WildcardTypeImpl <em>Wildcard Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.staticTypesystem.impl.WildcardTypeImpl
+ * @see org.eclipse.xpand3.staticTypesystem.impl.StaticTypesystemPackageImpl#getWildcardType()
+ * @generated
+ */
+ EClass WILDCARD_TYPE = eINSTANCE.getWildcardType();
+
+ /**
+ * The meta object literal for the '<em><b>Lower Bounds</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference WILDCARD_TYPE__LOWER_BOUNDS = eINSTANCE.getWildcardType_LowerBounds();
+
+ /**
+ * The meta object literal for the '<em><b>Upper Bounds</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference WILDCARD_TYPE__UPPER_BOUNDS = eINSTANCE.getWildcardType_UpperBounds();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.xpand3.staticTypesystem.impl.FunctionTypeImpl <em>Function Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.staticTypesystem.impl.FunctionTypeImpl
+ * @see org.eclipse.xpand3.staticTypesystem.impl.StaticTypesystemPackageImpl#getFunctionType()
+ * @generated
+ */
+ EClass FUNCTION_TYPE = eINSTANCE.getFunctionType();
+
+ /**
+ * The meta object literal for the '<em><b>Declared Function</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FUNCTION_TYPE__DECLARED_FUNCTION = eINSTANCE.getFunctionType_DeclaredFunction();
+
+ /**
+ * The meta object literal for the '<em><b>Actual Type Arguments</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FUNCTION_TYPE__ACTUAL_TYPE_ARGUMENTS = eINSTANCE.getFunctionType_ActualTypeArguments();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.xpand3.staticTypesystem.impl.DeclaredTypeImpl <em>Declared Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.staticTypesystem.impl.DeclaredTypeImpl
+ * @see org.eclipse.xpand3.staticTypesystem.impl.StaticTypesystemPackageImpl#getDeclaredType()
+ * @generated
+ */
+ EClass DECLARED_TYPE = eINSTANCE.getDeclaredType();
+
+ /**
+ * The meta object literal for the '<em><b>Static Properties</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DECLARED_TYPE__STATIC_PROPERTIES = eINSTANCE.getDeclaredType_StaticProperties();
+
+ /**
+ * The meta object literal for the '<em><b>Properties</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DECLARED_TYPE__PROPERTIES = eINSTANCE.getDeclaredType_Properties();
+
+ /**
+ * The meta object literal for the '<em><b>Declared Type Parameters</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DECLARED_TYPE__DECLARED_TYPE_PARAMETERS = eINSTANCE.getDeclaredType_DeclaredTypeParameters();
+
+ /**
+ * The meta object literal for the '<em><b>Super Types</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DECLARED_TYPE__SUPER_TYPES = eINSTANCE.getDeclaredType_SuperTypes();
+
+ /**
+ * The meta object literal for the '<em><b>Unique ID</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DECLARED_TYPE__UNIQUE_ID = eINSTANCE.getDeclaredType_UniqueID();
+
+ /**
+ * The meta object literal for the '<em><b>Is Abstract</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DECLARED_TYPE__IS_ABSTRACT = eINSTANCE.getDeclaredType_IsAbstract();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.xpand3.staticTypesystem.impl.DeclaredFunctionImpl <em>Declared Function</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.staticTypesystem.impl.DeclaredFunctionImpl
+ * @see org.eclipse.xpand3.staticTypesystem.impl.StaticTypesystemPackageImpl#getDeclaredFunction()
+ * @generated
+ */
+ EClass DECLARED_FUNCTION = eINSTANCE.getDeclaredFunction();
+
+ /**
+ * The meta object literal for the '<em><b>Declared Parameters</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DECLARED_FUNCTION__DECLARED_PARAMETERS = eINSTANCE.getDeclaredFunction_DeclaredParameters();
+
+ /**
+ * The meta object literal for the '<em><b>Declared Type Parameters</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DECLARED_FUNCTION__DECLARED_TYPE_PARAMETERS = eINSTANCE.getDeclaredFunction_DeclaredTypeParameters();
+
+ /**
+ * The meta object literal for the '<em><b>Return Type</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DECLARED_FUNCTION__RETURN_TYPE = eINSTANCE.getDeclaredFunction_ReturnType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.xpand3.staticTypesystem.impl.DeclaredPropertyImpl <em>Declared Property</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.staticTypesystem.impl.DeclaredPropertyImpl
+ * @see org.eclipse.xpand3.staticTypesystem.impl.StaticTypesystemPackageImpl#getDeclaredProperty()
+ * @generated
+ */
+ EClass DECLARED_PROPERTY = eINSTANCE.getDeclaredProperty();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DECLARED_PROPERTY__TYPE = eINSTANCE.getDeclaredProperty_Type();
+
+ /**
+ * The meta object literal for the '<em><b>Read Only</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DECLARED_PROPERTY__READ_ONLY = eINSTANCE.getDeclaredProperty_ReadOnly();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.xpand3.staticTypesystem.impl.DeclaredStaticPropertyImpl <em>Declared Static Property</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.staticTypesystem.impl.DeclaredStaticPropertyImpl
+ * @see org.eclipse.xpand3.staticTypesystem.impl.StaticTypesystemPackageImpl#getDeclaredStaticProperty()
+ * @generated
+ */
+ EClass DECLARED_STATIC_PROPERTY = eINSTANCE.getDeclaredStaticProperty();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DECLARED_STATIC_PROPERTY__TYPE = eINSTANCE.getDeclaredStaticProperty_Type();
+
+ /**
+ * The meta object literal for the '<em><b>Read Only</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DECLARED_STATIC_PROPERTY__READ_ONLY = eINSTANCE.getDeclaredStaticProperty_ReadOnly();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.xpand3.staticTypesystem.impl.DeclaredTypeParameterImpl <em>Declared Type Parameter</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.staticTypesystem.impl.DeclaredTypeParameterImpl
+ * @see org.eclipse.xpand3.staticTypesystem.impl.StaticTypesystemPackageImpl#getDeclaredTypeParameter()
+ * @generated
+ */
+ EClass DECLARED_TYPE_PARAMETER = eINSTANCE.getDeclaredTypeParameter();
+
+ /**
+ * The meta object literal for the '<em><b>Upper Bounds</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DECLARED_TYPE_PARAMETER__UPPER_BOUNDS = eINSTANCE.getDeclaredTypeParameter_UpperBounds();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.xpand3.staticTypesystem.impl.DeclaredParameterImpl <em>Declared Parameter</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.staticTypesystem.impl.DeclaredParameterImpl
+ * @see org.eclipse.xpand3.staticTypesystem.impl.StaticTypesystemPackageImpl#getDeclaredParameter()
+ * @generated
+ */
+ EClass DECLARED_PARAMETER = eINSTANCE.getDeclaredParameter();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DECLARED_PARAMETER__TYPE = eINSTANCE.getDeclaredParameter_Type();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.xpand3.staticTypesystem.impl.ModelImpl <em>Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.staticTypesystem.impl.ModelImpl
+ * @see org.eclipse.xpand3.staticTypesystem.impl.StaticTypesystemPackageImpl#getModel()
+ * @generated
+ */
+ EClass MODEL = eINSTANCE.getModel();
+
+ /**
+ * The meta object literal for the '<em><b>Declarations</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MODEL__DECLARATIONS = eINSTANCE.getModel_Declarations();
+
+ /**
+ * The meta object literal for the '<em><b>Function Declarations</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MODEL__FUNCTION_DECLARATIONS = eINSTANCE.getModel_FunctionDeclarations();
+
+ }
+
+} //StaticTypesystemPackage
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/Type.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/Type.java
new file mode 100644
index 0000000..b7e5191
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/Type.java
@@ -0,0 +1,71 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Type.java,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.Type#getDeclaredType <em>Declared Type</em>}</li>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.Type#getActualTypeArguments <em>Actual Type Arguments</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getType()
+ * @model
+ * @generated
+ */
+public interface Type extends AbstractTypeReference {
+ /**
+ * Returns the value of the '<em><b>Declared Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Declared Type</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Declared Type</em>' reference.
+ * @see #setDeclaredType(DeclaredType)
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getType_DeclaredType()
+ * @model required="true"
+ * @generated
+ */
+ DeclaredType getDeclaredType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.xpand3.staticTypesystem.Type#getDeclaredType <em>Declared Type</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Declared Type</em>' reference.
+ * @see #getDeclaredType()
+ * @generated
+ */
+ void setDeclaredType(DeclaredType value);
+
+ /**
+ * Returns the value of the '<em><b>Actual Type Arguments</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.xpand3.staticTypesystem.AbstractTypeReference}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Actual Type Arguments</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Actual Type Arguments</em>' containment reference list.
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getType_ActualTypeArguments()
+ * @model containment="true"
+ * @generated
+ */
+ EList<AbstractTypeReference> getActualTypeArguments();
+
+} // Type
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/TypeVariable.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/TypeVariable.java
new file mode 100644
index 0000000..60d031f
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/TypeVariable.java
@@ -0,0 +1,53 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TypeVariable.java,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Type Variable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.TypeVariable#getDeclaredTypeParameter <em>Declared Type Parameter</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getTypeVariable()
+ * @model
+ * @generated
+ */
+public interface TypeVariable extends AbstractTypeReference {
+ /**
+ * Returns the value of the '<em><b>Declared Type Parameter</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Declared Type Parameter</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Declared Type Parameter</em>' reference.
+ * @see #setDeclaredTypeParameter(DeclaredTypeParameter)
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getTypeVariable_DeclaredTypeParameter()
+ * @model required="true"
+ * @generated
+ */
+ DeclaredTypeParameter getDeclaredTypeParameter();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.xpand3.staticTypesystem.TypeVariable#getDeclaredTypeParameter <em>Declared Type Parameter</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Declared Type Parameter</em>' reference.
+ * @see #getDeclaredTypeParameter()
+ * @generated
+ */
+ void setDeclaredTypeParameter(DeclaredTypeParameter value);
+
+} // TypeVariable
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/VoidType.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/VoidType.java
new file mode 100644
index 0000000..233bad0
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/VoidType.java
@@ -0,0 +1,21 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: VoidType.java,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Void Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getVoidType()
+ * @model
+ * @generated
+ */
+public interface VoidType extends AbstractTypeReference {
+} // VoidType
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/WildcardType.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/WildcardType.java
new file mode 100644
index 0000000..ec783ee
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/WildcardType.java
@@ -0,0 +1,61 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: WildcardType.java,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Wildcard Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.WildcardType#getLowerBounds <em>Lower Bounds</em>}</li>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.WildcardType#getUpperBounds <em>Upper Bounds</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getWildcardType()
+ * @model
+ * @generated
+ */
+public interface WildcardType extends AbstractTypeReference {
+ /**
+ * Returns the value of the '<em><b>Lower Bounds</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.xpand3.staticTypesystem.AbstractTypeReference}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Lower Bounds</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Lower Bounds</em>' containment reference list.
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getWildcardType_LowerBounds()
+ * @model containment="true"
+ * @generated
+ */
+ EList<AbstractTypeReference> getLowerBounds();
+
+ /**
+ * Returns the value of the '<em><b>Upper Bounds</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.xpand3.staticTypesystem.AbstractTypeReference}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Upper Bounds</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Upper Bounds</em>' containment reference list.
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#getWildcardType_UpperBounds()
+ * @model containment="true"
+ * @generated
+ */
+ EList<AbstractTypeReference> getUpperBounds();
+
+} // WildcardType
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/AbstractNamedElementImpl.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/AbstractNamedElementImpl.java
new file mode 100644
index 0000000..d71867c
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/AbstractNamedElementImpl.java
@@ -0,0 +1,167 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: AbstractNamedElementImpl.java,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.xpand3.staticTypesystem.AbstractNamedElement;
+import org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Abstract Named Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.impl.AbstractNamedElementImpl#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class AbstractNamedElementImpl extends EObjectImpl implements AbstractNamedElement {
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AbstractNamedElementImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return StaticTypesystemPackage.Literals.ABSTRACT_NAMED_ELEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StaticTypesystemPackage.ABSTRACT_NAMED_ELEMENT__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case StaticTypesystemPackage.ABSTRACT_NAMED_ELEMENT__NAME:
+ return getName();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case StaticTypesystemPackage.ABSTRACT_NAMED_ELEMENT__NAME:
+ setName((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case StaticTypesystemPackage.ABSTRACT_NAMED_ELEMENT__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case StaticTypesystemPackage.ABSTRACT_NAMED_ELEMENT__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(')');
+ return result.toString();
+ }
+
+} //AbstractNamedElementImpl
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/AbstractTypeReferenceImpl.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/AbstractTypeReferenceImpl.java
new file mode 100644
index 0000000..a26b661
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/AbstractTypeReferenceImpl.java
@@ -0,0 +1,45 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: AbstractTypeReferenceImpl.java,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.xpand3.staticTypesystem.AbstractTypeReference;
+import org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Abstract Type Reference</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class AbstractTypeReferenceImpl extends EObjectImpl implements AbstractTypeReference {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AbstractTypeReferenceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return StaticTypesystemPackage.Literals.ABSTRACT_TYPE_REFERENCE;
+ }
+
+} //AbstractTypeReferenceImpl
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/DeclaredFunctionImpl.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/DeclaredFunctionImpl.java
new file mode 100644
index 0000000..5f91d4f
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/DeclaredFunctionImpl.java
@@ -0,0 +1,261 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DeclaredFunctionImpl.java,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.xpand3.staticTypesystem.AbstractTypeReference;
+import org.eclipse.xpand3.staticTypesystem.DeclaredFunction;
+import org.eclipse.xpand3.staticTypesystem.DeclaredParameter;
+import org.eclipse.xpand3.staticTypesystem.DeclaredTypeParameter;
+import org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Declared Function</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.impl.DeclaredFunctionImpl#getDeclaredParameters <em>Declared Parameters</em>}</li>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.impl.DeclaredFunctionImpl#getDeclaredTypeParameters <em>Declared Type Parameters</em>}</li>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.impl.DeclaredFunctionImpl#getReturnType <em>Return Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DeclaredFunctionImpl extends AbstractNamedElementImpl implements DeclaredFunction {
+ /**
+ * The cached value of the '{@link #getDeclaredParameters() <em>Declared Parameters</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDeclaredParameters()
+ * @generated
+ * @ordered
+ */
+ protected EList<DeclaredParameter> declaredParameters;
+
+ /**
+ * The cached value of the '{@link #getDeclaredTypeParameters() <em>Declared Type Parameters</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDeclaredTypeParameters()
+ * @generated
+ * @ordered
+ */
+ protected EList<DeclaredTypeParameter> declaredTypeParameters;
+
+ /**
+ * The cached value of the '{@link #getReturnType() <em>Return Type</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getReturnType()
+ * @generated
+ * @ordered
+ */
+ protected AbstractTypeReference returnType;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DeclaredFunctionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return StaticTypesystemPackage.Literals.DECLARED_FUNCTION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<DeclaredParameter> getDeclaredParameters() {
+ if (declaredParameters == null) {
+ declaredParameters = new EObjectContainmentEList<DeclaredParameter>(DeclaredParameter.class, this, StaticTypesystemPackage.DECLARED_FUNCTION__DECLARED_PARAMETERS);
+ }
+ return declaredParameters;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<DeclaredTypeParameter> getDeclaredTypeParameters() {
+ if (declaredTypeParameters == null) {
+ declaredTypeParameters = new EObjectContainmentEList<DeclaredTypeParameter>(DeclaredTypeParameter.class, this, StaticTypesystemPackage.DECLARED_FUNCTION__DECLARED_TYPE_PARAMETERS);
+ }
+ return declaredTypeParameters;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AbstractTypeReference getReturnType() {
+ return returnType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetReturnType(AbstractTypeReference newReturnType, NotificationChain msgs) {
+ AbstractTypeReference oldReturnType = returnType;
+ returnType = newReturnType;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, StaticTypesystemPackage.DECLARED_FUNCTION__RETURN_TYPE, oldReturnType, newReturnType);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setReturnType(AbstractTypeReference newReturnType) {
+ if (newReturnType != returnType) {
+ NotificationChain msgs = null;
+ if (returnType != null)
+ msgs = ((InternalEObject)returnType).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - StaticTypesystemPackage.DECLARED_FUNCTION__RETURN_TYPE, null, msgs);
+ if (newReturnType != null)
+ msgs = ((InternalEObject)newReturnType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - StaticTypesystemPackage.DECLARED_FUNCTION__RETURN_TYPE, null, msgs);
+ msgs = basicSetReturnType(newReturnType, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StaticTypesystemPackage.DECLARED_FUNCTION__RETURN_TYPE, newReturnType, newReturnType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case StaticTypesystemPackage.DECLARED_FUNCTION__DECLARED_PARAMETERS:
+ return ((InternalEList<?>)getDeclaredParameters()).basicRemove(otherEnd, msgs);
+ case StaticTypesystemPackage.DECLARED_FUNCTION__DECLARED_TYPE_PARAMETERS:
+ return ((InternalEList<?>)getDeclaredTypeParameters()).basicRemove(otherEnd, msgs);
+ case StaticTypesystemPackage.DECLARED_FUNCTION__RETURN_TYPE:
+ return basicSetReturnType(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case StaticTypesystemPackage.DECLARED_FUNCTION__DECLARED_PARAMETERS:
+ return getDeclaredParameters();
+ case StaticTypesystemPackage.DECLARED_FUNCTION__DECLARED_TYPE_PARAMETERS:
+ return getDeclaredTypeParameters();
+ case StaticTypesystemPackage.DECLARED_FUNCTION__RETURN_TYPE:
+ return getReturnType();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case StaticTypesystemPackage.DECLARED_FUNCTION__DECLARED_PARAMETERS:
+ getDeclaredParameters().clear();
+ getDeclaredParameters().addAll((Collection<? extends DeclaredParameter>)newValue);
+ return;
+ case StaticTypesystemPackage.DECLARED_FUNCTION__DECLARED_TYPE_PARAMETERS:
+ getDeclaredTypeParameters().clear();
+ getDeclaredTypeParameters().addAll((Collection<? extends DeclaredTypeParameter>)newValue);
+ return;
+ case StaticTypesystemPackage.DECLARED_FUNCTION__RETURN_TYPE:
+ setReturnType((AbstractTypeReference)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case StaticTypesystemPackage.DECLARED_FUNCTION__DECLARED_PARAMETERS:
+ getDeclaredParameters().clear();
+ return;
+ case StaticTypesystemPackage.DECLARED_FUNCTION__DECLARED_TYPE_PARAMETERS:
+ getDeclaredTypeParameters().clear();
+ return;
+ case StaticTypesystemPackage.DECLARED_FUNCTION__RETURN_TYPE:
+ setReturnType((AbstractTypeReference)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case StaticTypesystemPackage.DECLARED_FUNCTION__DECLARED_PARAMETERS:
+ return declaredParameters != null && !declaredParameters.isEmpty();
+ case StaticTypesystemPackage.DECLARED_FUNCTION__DECLARED_TYPE_PARAMETERS:
+ return declaredTypeParameters != null && !declaredTypeParameters.isEmpty();
+ case StaticTypesystemPackage.DECLARED_FUNCTION__RETURN_TYPE:
+ return returnType != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //DeclaredFunctionImpl
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/DeclaredParameterImpl.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/DeclaredParameterImpl.java
new file mode 100644
index 0000000..d7184a8
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/DeclaredParameterImpl.java
@@ -0,0 +1,179 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DeclaredParameterImpl.java,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.xpand3.staticTypesystem.AbstractTypeReference;
+import org.eclipse.xpand3.staticTypesystem.DeclaredParameter;
+import org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Declared Parameter</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.impl.DeclaredParameterImpl#getType <em>Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DeclaredParameterImpl extends AbstractNamedElementImpl implements DeclaredParameter {
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected AbstractTypeReference type;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DeclaredParameterImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return StaticTypesystemPackage.Literals.DECLARED_PARAMETER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AbstractTypeReference getType() {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetType(AbstractTypeReference newType, NotificationChain msgs) {
+ AbstractTypeReference oldType = type;
+ type = newType;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, StaticTypesystemPackage.DECLARED_PARAMETER__TYPE, oldType, newType);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setType(AbstractTypeReference newType) {
+ if (newType != type) {
+ NotificationChain msgs = null;
+ if (type != null)
+ msgs = ((InternalEObject)type).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - StaticTypesystemPackage.DECLARED_PARAMETER__TYPE, null, msgs);
+ if (newType != null)
+ msgs = ((InternalEObject)newType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - StaticTypesystemPackage.DECLARED_PARAMETER__TYPE, null, msgs);
+ msgs = basicSetType(newType, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StaticTypesystemPackage.DECLARED_PARAMETER__TYPE, newType, newType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case StaticTypesystemPackage.DECLARED_PARAMETER__TYPE:
+ return basicSetType(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case StaticTypesystemPackage.DECLARED_PARAMETER__TYPE:
+ return getType();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case StaticTypesystemPackage.DECLARED_PARAMETER__TYPE:
+ setType((AbstractTypeReference)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case StaticTypesystemPackage.DECLARED_PARAMETER__TYPE:
+ setType((AbstractTypeReference)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case StaticTypesystemPackage.DECLARED_PARAMETER__TYPE:
+ return type != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //DeclaredParameterImpl
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/DeclaredPropertyImpl.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/DeclaredPropertyImpl.java
new file mode 100644
index 0000000..562c0da
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/DeclaredPropertyImpl.java
@@ -0,0 +1,247 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DeclaredPropertyImpl.java,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.xpand3.staticTypesystem.AbstractTypeReference;
+import org.eclipse.xpand3.staticTypesystem.DeclaredProperty;
+import org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Declared Property</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.impl.DeclaredPropertyImpl#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.impl.DeclaredPropertyImpl#isReadOnly <em>Read Only</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DeclaredPropertyImpl extends AbstractNamedElementImpl implements DeclaredProperty {
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected AbstractTypeReference type;
+
+ /**
+ * The default value of the '{@link #isReadOnly() <em>Read Only</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isReadOnly()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean READ_ONLY_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isReadOnly() <em>Read Only</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isReadOnly()
+ * @generated
+ * @ordered
+ */
+ protected boolean readOnly = READ_ONLY_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DeclaredPropertyImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return StaticTypesystemPackage.Literals.DECLARED_PROPERTY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AbstractTypeReference getType() {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetType(AbstractTypeReference newType, NotificationChain msgs) {
+ AbstractTypeReference oldType = type;
+ type = newType;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, StaticTypesystemPackage.DECLARED_PROPERTY__TYPE, oldType, newType);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setType(AbstractTypeReference newType) {
+ if (newType != type) {
+ NotificationChain msgs = null;
+ if (type != null)
+ msgs = ((InternalEObject)type).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - StaticTypesystemPackage.DECLARED_PROPERTY__TYPE, null, msgs);
+ if (newType != null)
+ msgs = ((InternalEObject)newType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - StaticTypesystemPackage.DECLARED_PROPERTY__TYPE, null, msgs);
+ msgs = basicSetType(newType, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StaticTypesystemPackage.DECLARED_PROPERTY__TYPE, newType, newType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isReadOnly() {
+ return readOnly;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setReadOnly(boolean newReadOnly) {
+ boolean oldReadOnly = readOnly;
+ readOnly = newReadOnly;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StaticTypesystemPackage.DECLARED_PROPERTY__READ_ONLY, oldReadOnly, readOnly));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case StaticTypesystemPackage.DECLARED_PROPERTY__TYPE:
+ return basicSetType(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case StaticTypesystemPackage.DECLARED_PROPERTY__TYPE:
+ return getType();
+ case StaticTypesystemPackage.DECLARED_PROPERTY__READ_ONLY:
+ return isReadOnly() ? Boolean.TRUE : Boolean.FALSE;
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case StaticTypesystemPackage.DECLARED_PROPERTY__TYPE:
+ setType((AbstractTypeReference)newValue);
+ return;
+ case StaticTypesystemPackage.DECLARED_PROPERTY__READ_ONLY:
+ setReadOnly(((Boolean)newValue).booleanValue());
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case StaticTypesystemPackage.DECLARED_PROPERTY__TYPE:
+ setType((AbstractTypeReference)null);
+ return;
+ case StaticTypesystemPackage.DECLARED_PROPERTY__READ_ONLY:
+ setReadOnly(READ_ONLY_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case StaticTypesystemPackage.DECLARED_PROPERTY__TYPE:
+ return type != null;
+ case StaticTypesystemPackage.DECLARED_PROPERTY__READ_ONLY:
+ return readOnly != READ_ONLY_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (readOnly: ");
+ result.append(readOnly);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DeclaredPropertyImpl
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/DeclaredStaticPropertyImpl.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/DeclaredStaticPropertyImpl.java
new file mode 100644
index 0000000..953f68b
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/DeclaredStaticPropertyImpl.java
@@ -0,0 +1,247 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DeclaredStaticPropertyImpl.java,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.xpand3.staticTypesystem.DeclaredStaticProperty;
+import org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage;
+import org.eclipse.xpand3.staticTypesystem.Type;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Declared Static Property</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.impl.DeclaredStaticPropertyImpl#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.impl.DeclaredStaticPropertyImpl#isReadOnly <em>Read Only</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DeclaredStaticPropertyImpl extends AbstractNamedElementImpl implements DeclaredStaticProperty {
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected Type type;
+
+ /**
+ * The default value of the '{@link #isReadOnly() <em>Read Only</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isReadOnly()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean READ_ONLY_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isReadOnly() <em>Read Only</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isReadOnly()
+ * @generated
+ * @ordered
+ */
+ protected boolean readOnly = READ_ONLY_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DeclaredStaticPropertyImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return StaticTypesystemPackage.Literals.DECLARED_STATIC_PROPERTY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Type getType() {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetType(Type newType, NotificationChain msgs) {
+ Type oldType = type;
+ type = newType;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, StaticTypesystemPackage.DECLARED_STATIC_PROPERTY__TYPE, oldType, newType);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setType(Type newType) {
+ if (newType != type) {
+ NotificationChain msgs = null;
+ if (type != null)
+ msgs = ((InternalEObject)type).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - StaticTypesystemPackage.DECLARED_STATIC_PROPERTY__TYPE, null, msgs);
+ if (newType != null)
+ msgs = ((InternalEObject)newType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - StaticTypesystemPackage.DECLARED_STATIC_PROPERTY__TYPE, null, msgs);
+ msgs = basicSetType(newType, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StaticTypesystemPackage.DECLARED_STATIC_PROPERTY__TYPE, newType, newType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isReadOnly() {
+ return readOnly;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setReadOnly(boolean newReadOnly) {
+ boolean oldReadOnly = readOnly;
+ readOnly = newReadOnly;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StaticTypesystemPackage.DECLARED_STATIC_PROPERTY__READ_ONLY, oldReadOnly, readOnly));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case StaticTypesystemPackage.DECLARED_STATIC_PROPERTY__TYPE:
+ return basicSetType(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case StaticTypesystemPackage.DECLARED_STATIC_PROPERTY__TYPE:
+ return getType();
+ case StaticTypesystemPackage.DECLARED_STATIC_PROPERTY__READ_ONLY:
+ return isReadOnly() ? Boolean.TRUE : Boolean.FALSE;
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case StaticTypesystemPackage.DECLARED_STATIC_PROPERTY__TYPE:
+ setType((Type)newValue);
+ return;
+ case StaticTypesystemPackage.DECLARED_STATIC_PROPERTY__READ_ONLY:
+ setReadOnly(((Boolean)newValue).booleanValue());
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case StaticTypesystemPackage.DECLARED_STATIC_PROPERTY__TYPE:
+ setType((Type)null);
+ return;
+ case StaticTypesystemPackage.DECLARED_STATIC_PROPERTY__READ_ONLY:
+ setReadOnly(READ_ONLY_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case StaticTypesystemPackage.DECLARED_STATIC_PROPERTY__TYPE:
+ return type != null;
+ case StaticTypesystemPackage.DECLARED_STATIC_PROPERTY__READ_ONLY:
+ return readOnly != READ_ONLY_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (readOnly: ");
+ result.append(readOnly);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DeclaredStaticPropertyImpl
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/DeclaredTypeImpl.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/DeclaredTypeImpl.java
new file mode 100644
index 0000000..61c988c
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/DeclaredTypeImpl.java
@@ -0,0 +1,390 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DeclaredTypeImpl.java,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.xpand3.staticTypesystem.AbstractTypeReference;
+import org.eclipse.xpand3.staticTypesystem.DeclaredProperty;
+import org.eclipse.xpand3.staticTypesystem.DeclaredStaticProperty;
+import org.eclipse.xpand3.staticTypesystem.DeclaredType;
+import org.eclipse.xpand3.staticTypesystem.DeclaredTypeParameter;
+import org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Declared Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.impl.DeclaredTypeImpl#getStaticProperties <em>Static Properties</em>}</li>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.impl.DeclaredTypeImpl#getProperties <em>Properties</em>}</li>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.impl.DeclaredTypeImpl#getDeclaredTypeParameters <em>Declared Type Parameters</em>}</li>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.impl.DeclaredTypeImpl#getSuperTypes <em>Super Types</em>}</li>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.impl.DeclaredTypeImpl#getUniqueID <em>Unique ID</em>}</li>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.impl.DeclaredTypeImpl#isIsAbstract <em>Is Abstract</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DeclaredTypeImpl extends AbstractNamedElementImpl implements DeclaredType {
+ /**
+ * The cached value of the '{@link #getStaticProperties() <em>Static Properties</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStaticProperties()
+ * @generated
+ * @ordered
+ */
+ protected EList<DeclaredStaticProperty> staticProperties;
+
+ /**
+ * The cached value of the '{@link #getProperties() <em>Properties</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProperties()
+ * @generated
+ * @ordered
+ */
+ protected EList<DeclaredProperty> properties;
+
+ /**
+ * The cached value of the '{@link #getDeclaredTypeParameters() <em>Declared Type Parameters</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDeclaredTypeParameters()
+ * @generated
+ * @ordered
+ */
+ protected EList<DeclaredTypeParameter> declaredTypeParameters;
+
+ /**
+ * The cached value of the '{@link #getSuperTypes() <em>Super Types</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSuperTypes()
+ * @generated
+ * @ordered
+ */
+ protected EList<AbstractTypeReference> superTypes;
+
+ /**
+ * The default value of the '{@link #getUniqueID() <em>Unique ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUniqueID()
+ * @generated
+ * @ordered
+ */
+ protected static final String UNIQUE_ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getUniqueID() <em>Unique ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUniqueID()
+ * @generated
+ * @ordered
+ */
+ protected String uniqueID = UNIQUE_ID_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isIsAbstract() <em>Is Abstract</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsAbstract()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_ABSTRACT_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isIsAbstract() <em>Is Abstract</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsAbstract()
+ * @generated
+ * @ordered
+ */
+ protected boolean isAbstract = IS_ABSTRACT_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DeclaredTypeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return StaticTypesystemPackage.Literals.DECLARED_TYPE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<DeclaredStaticProperty> getStaticProperties() {
+ if (staticProperties == null) {
+ staticProperties = new EObjectContainmentEList<DeclaredStaticProperty>(DeclaredStaticProperty.class, this, StaticTypesystemPackage.DECLARED_TYPE__STATIC_PROPERTIES);
+ }
+ return staticProperties;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<DeclaredProperty> getProperties() {
+ if (properties == null) {
+ properties = new EObjectContainmentEList<DeclaredProperty>(DeclaredProperty.class, this, StaticTypesystemPackage.DECLARED_TYPE__PROPERTIES);
+ }
+ return properties;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<DeclaredTypeParameter> getDeclaredTypeParameters() {
+ if (declaredTypeParameters == null) {
+ declaredTypeParameters = new EObjectContainmentEList<DeclaredTypeParameter>(DeclaredTypeParameter.class, this, StaticTypesystemPackage.DECLARED_TYPE__DECLARED_TYPE_PARAMETERS);
+ }
+ return declaredTypeParameters;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<AbstractTypeReference> getSuperTypes() {
+ if (superTypes == null) {
+ superTypes = new EObjectContainmentEList<AbstractTypeReference>(AbstractTypeReference.class, this, StaticTypesystemPackage.DECLARED_TYPE__SUPER_TYPES);
+ }
+ return superTypes;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getUniqueID() {
+ return uniqueID;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setUniqueID(String newUniqueID) {
+ String oldUniqueID = uniqueID;
+ uniqueID = newUniqueID;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StaticTypesystemPackage.DECLARED_TYPE__UNIQUE_ID, oldUniqueID, uniqueID));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isIsAbstract() {
+ return isAbstract;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIsAbstract(boolean newIsAbstract) {
+ boolean oldIsAbstract = isAbstract;
+ isAbstract = newIsAbstract;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StaticTypesystemPackage.DECLARED_TYPE__IS_ABSTRACT, oldIsAbstract, isAbstract));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case StaticTypesystemPackage.DECLARED_TYPE__STATIC_PROPERTIES:
+ return ((InternalEList<?>)getStaticProperties()).basicRemove(otherEnd, msgs);
+ case StaticTypesystemPackage.DECLARED_TYPE__PROPERTIES:
+ return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+ case StaticTypesystemPackage.DECLARED_TYPE__DECLARED_TYPE_PARAMETERS:
+ return ((InternalEList<?>)getDeclaredTypeParameters()).basicRemove(otherEnd, msgs);
+ case StaticTypesystemPackage.DECLARED_TYPE__SUPER_TYPES:
+ return ((InternalEList<?>)getSuperTypes()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case StaticTypesystemPackage.DECLARED_TYPE__STATIC_PROPERTIES:
+ return getStaticProperties();
+ case StaticTypesystemPackage.DECLARED_TYPE__PROPERTIES:
+ return getProperties();
+ case StaticTypesystemPackage.DECLARED_TYPE__DECLARED_TYPE_PARAMETERS:
+ return getDeclaredTypeParameters();
+ case StaticTypesystemPackage.DECLARED_TYPE__SUPER_TYPES:
+ return getSuperTypes();
+ case StaticTypesystemPackage.DECLARED_TYPE__UNIQUE_ID:
+ return getUniqueID();
+ case StaticTypesystemPackage.DECLARED_TYPE__IS_ABSTRACT:
+ return isIsAbstract() ? Boolean.TRUE : Boolean.FALSE;
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case StaticTypesystemPackage.DECLARED_TYPE__STATIC_PROPERTIES:
+ getStaticProperties().clear();
+ getStaticProperties().addAll((Collection<? extends DeclaredStaticProperty>)newValue);
+ return;
+ case StaticTypesystemPackage.DECLARED_TYPE__PROPERTIES:
+ getProperties().clear();
+ getProperties().addAll((Collection<? extends DeclaredProperty>)newValue);
+ return;
+ case StaticTypesystemPackage.DECLARED_TYPE__DECLARED_TYPE_PARAMETERS:
+ getDeclaredTypeParameters().clear();
+ getDeclaredTypeParameters().addAll((Collection<? extends DeclaredTypeParameter>)newValue);
+ return;
+ case StaticTypesystemPackage.DECLARED_TYPE__SUPER_TYPES:
+ getSuperTypes().clear();
+ getSuperTypes().addAll((Collection<? extends AbstractTypeReference>)newValue);
+ return;
+ case StaticTypesystemPackage.DECLARED_TYPE__UNIQUE_ID:
+ setUniqueID((String)newValue);
+ return;
+ case StaticTypesystemPackage.DECLARED_TYPE__IS_ABSTRACT:
+ setIsAbstract(((Boolean)newValue).booleanValue());
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case StaticTypesystemPackage.DECLARED_TYPE__STATIC_PROPERTIES:
+ getStaticProperties().clear();
+ return;
+ case StaticTypesystemPackage.DECLARED_TYPE__PROPERTIES:
+ getProperties().clear();
+ return;
+ case StaticTypesystemPackage.DECLARED_TYPE__DECLARED_TYPE_PARAMETERS:
+ getDeclaredTypeParameters().clear();
+ return;
+ case StaticTypesystemPackage.DECLARED_TYPE__SUPER_TYPES:
+ getSuperTypes().clear();
+ return;
+ case StaticTypesystemPackage.DECLARED_TYPE__UNIQUE_ID:
+ setUniqueID(UNIQUE_ID_EDEFAULT);
+ return;
+ case StaticTypesystemPackage.DECLARED_TYPE__IS_ABSTRACT:
+ setIsAbstract(IS_ABSTRACT_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case StaticTypesystemPackage.DECLARED_TYPE__STATIC_PROPERTIES:
+ return staticProperties != null && !staticProperties.isEmpty();
+ case StaticTypesystemPackage.DECLARED_TYPE__PROPERTIES:
+ return properties != null && !properties.isEmpty();
+ case StaticTypesystemPackage.DECLARED_TYPE__DECLARED_TYPE_PARAMETERS:
+ return declaredTypeParameters != null && !declaredTypeParameters.isEmpty();
+ case StaticTypesystemPackage.DECLARED_TYPE__SUPER_TYPES:
+ return superTypes != null && !superTypes.isEmpty();
+ case StaticTypesystemPackage.DECLARED_TYPE__UNIQUE_ID:
+ return UNIQUE_ID_EDEFAULT == null ? uniqueID != null : !UNIQUE_ID_EDEFAULT.equals(uniqueID);
+ case StaticTypesystemPackage.DECLARED_TYPE__IS_ABSTRACT:
+ return isAbstract != IS_ABSTRACT_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (uniqueID: ");
+ result.append(uniqueID);
+ result.append(", isAbstract: ");
+ result.append(isAbstract);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DeclaredTypeImpl
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/DeclaredTypeParameterImpl.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/DeclaredTypeParameterImpl.java
new file mode 100644
index 0000000..f4bac39
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/DeclaredTypeParameterImpl.java
@@ -0,0 +1,154 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DeclaredTypeParameterImpl.java,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.xpand3.staticTypesystem.AbstractTypeReference;
+import org.eclipse.xpand3.staticTypesystem.DeclaredTypeParameter;
+import org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Declared Type Parameter</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.impl.DeclaredTypeParameterImpl#getUpperBounds <em>Upper Bounds</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DeclaredTypeParameterImpl extends AbstractNamedElementImpl implements DeclaredTypeParameter {
+ /**
+ * The cached value of the '{@link #getUpperBounds() <em>Upper Bounds</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUpperBounds()
+ * @generated
+ * @ordered
+ */
+ protected EList<AbstractTypeReference> upperBounds;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DeclaredTypeParameterImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return StaticTypesystemPackage.Literals.DECLARED_TYPE_PARAMETER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<AbstractTypeReference> getUpperBounds() {
+ if (upperBounds == null) {
+ upperBounds = new EObjectContainmentEList<AbstractTypeReference>(AbstractTypeReference.class, this, StaticTypesystemPackage.DECLARED_TYPE_PARAMETER__UPPER_BOUNDS);
+ }
+ return upperBounds;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case StaticTypesystemPackage.DECLARED_TYPE_PARAMETER__UPPER_BOUNDS:
+ return ((InternalEList<?>)getUpperBounds()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case StaticTypesystemPackage.DECLARED_TYPE_PARAMETER__UPPER_BOUNDS:
+ return getUpperBounds();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case StaticTypesystemPackage.DECLARED_TYPE_PARAMETER__UPPER_BOUNDS:
+ getUpperBounds().clear();
+ getUpperBounds().addAll((Collection<? extends AbstractTypeReference>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case StaticTypesystemPackage.DECLARED_TYPE_PARAMETER__UPPER_BOUNDS:
+ getUpperBounds().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case StaticTypesystemPackage.DECLARED_TYPE_PARAMETER__UPPER_BOUNDS:
+ return upperBounds != null && !upperBounds.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //DeclaredTypeParameterImpl
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/FunctionTypeImpl.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/FunctionTypeImpl.java
new file mode 100644
index 0000000..6143265
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/FunctionTypeImpl.java
@@ -0,0 +1,218 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: FunctionTypeImpl.java,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.xpand3.staticTypesystem.AbstractTypeReference;
+import org.eclipse.xpand3.staticTypesystem.DeclaredFunction;
+import org.eclipse.xpand3.staticTypesystem.FunctionType;
+import org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Function Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.impl.FunctionTypeImpl#getDeclaredFunction <em>Declared Function</em>}</li>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.impl.FunctionTypeImpl#getActualTypeArguments <em>Actual Type Arguments</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class FunctionTypeImpl extends AbstractTypeReferenceImpl implements FunctionType {
+ /**
+ * The cached value of the '{@link #getDeclaredFunction() <em>Declared Function</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDeclaredFunction()
+ * @generated
+ * @ordered
+ */
+ protected DeclaredFunction declaredFunction;
+
+ /**
+ * The cached value of the '{@link #getActualTypeArguments() <em>Actual Type Arguments</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getActualTypeArguments()
+ * @generated
+ * @ordered
+ */
+ protected EList<AbstractTypeReference> actualTypeArguments;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FunctionTypeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return StaticTypesystemPackage.Literals.FUNCTION_TYPE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DeclaredFunction getDeclaredFunction() {
+ if (declaredFunction != null && declaredFunction.eIsProxy()) {
+ InternalEObject oldDeclaredFunction = (InternalEObject)declaredFunction;
+ declaredFunction = (DeclaredFunction)eResolveProxy(oldDeclaredFunction);
+ if (declaredFunction != oldDeclaredFunction) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, StaticTypesystemPackage.FUNCTION_TYPE__DECLARED_FUNCTION, oldDeclaredFunction, declaredFunction));
+ }
+ }
+ return declaredFunction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DeclaredFunction basicGetDeclaredFunction() {
+ return declaredFunction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDeclaredFunction(DeclaredFunction newDeclaredFunction) {
+ DeclaredFunction oldDeclaredFunction = declaredFunction;
+ declaredFunction = newDeclaredFunction;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StaticTypesystemPackage.FUNCTION_TYPE__DECLARED_FUNCTION, oldDeclaredFunction, declaredFunction));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<AbstractTypeReference> getActualTypeArguments() {
+ if (actualTypeArguments == null) {
+ actualTypeArguments = new EObjectContainmentEList<AbstractTypeReference>(AbstractTypeReference.class, this, StaticTypesystemPackage.FUNCTION_TYPE__ACTUAL_TYPE_ARGUMENTS);
+ }
+ return actualTypeArguments;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case StaticTypesystemPackage.FUNCTION_TYPE__ACTUAL_TYPE_ARGUMENTS:
+ return ((InternalEList<?>)getActualTypeArguments()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case StaticTypesystemPackage.FUNCTION_TYPE__DECLARED_FUNCTION:
+ if (resolve) return getDeclaredFunction();
+ return basicGetDeclaredFunction();
+ case StaticTypesystemPackage.FUNCTION_TYPE__ACTUAL_TYPE_ARGUMENTS:
+ return getActualTypeArguments();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case StaticTypesystemPackage.FUNCTION_TYPE__DECLARED_FUNCTION:
+ setDeclaredFunction((DeclaredFunction)newValue);
+ return;
+ case StaticTypesystemPackage.FUNCTION_TYPE__ACTUAL_TYPE_ARGUMENTS:
+ getActualTypeArguments().clear();
+ getActualTypeArguments().addAll((Collection<? extends AbstractTypeReference>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case StaticTypesystemPackage.FUNCTION_TYPE__DECLARED_FUNCTION:
+ setDeclaredFunction((DeclaredFunction)null);
+ return;
+ case StaticTypesystemPackage.FUNCTION_TYPE__ACTUAL_TYPE_ARGUMENTS:
+ getActualTypeArguments().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case StaticTypesystemPackage.FUNCTION_TYPE__DECLARED_FUNCTION:
+ return declaredFunction != null;
+ case StaticTypesystemPackage.FUNCTION_TYPE__ACTUAL_TYPE_ARGUMENTS:
+ return actualTypeArguments != null && !actualTypeArguments.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //FunctionTypeImpl
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/ModelImpl.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/ModelImpl.java
new file mode 100644
index 0000000..8744dee
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/ModelImpl.java
@@ -0,0 +1,193 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ModelImpl.java,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.xpand3.staticTypesystem.DeclaredFunction;
+import org.eclipse.xpand3.staticTypesystem.DeclaredType;
+import org.eclipse.xpand3.staticTypesystem.Model;
+import org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Model</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.impl.ModelImpl#getDeclarations <em>Declarations</em>}</li>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.impl.ModelImpl#getFunctionDeclarations <em>Function Declarations</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ModelImpl extends EObjectImpl implements Model {
+ /**
+ * The cached value of the '{@link #getDeclarations() <em>Declarations</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDeclarations()
+ * @generated
+ * @ordered
+ */
+ protected EList<DeclaredType> declarations;
+
+ /**
+ * The cached value of the '{@link #getFunctionDeclarations() <em>Function Declarations</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFunctionDeclarations()
+ * @generated
+ * @ordered
+ */
+ protected EList<DeclaredFunction> functionDeclarations;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ModelImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return StaticTypesystemPackage.Literals.MODEL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<DeclaredType> getDeclarations() {
+ if (declarations == null) {
+ declarations = new EObjectContainmentEList<DeclaredType>(DeclaredType.class, this, StaticTypesystemPackage.MODEL__DECLARATIONS);
+ }
+ return declarations;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<DeclaredFunction> getFunctionDeclarations() {
+ if (functionDeclarations == null) {
+ functionDeclarations = new EObjectContainmentEList<DeclaredFunction>(DeclaredFunction.class, this, StaticTypesystemPackage.MODEL__FUNCTION_DECLARATIONS);
+ }
+ return functionDeclarations;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case StaticTypesystemPackage.MODEL__DECLARATIONS:
+ return ((InternalEList<?>)getDeclarations()).basicRemove(otherEnd, msgs);
+ case StaticTypesystemPackage.MODEL__FUNCTION_DECLARATIONS:
+ return ((InternalEList<?>)getFunctionDeclarations()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case StaticTypesystemPackage.MODEL__DECLARATIONS:
+ return getDeclarations();
+ case StaticTypesystemPackage.MODEL__FUNCTION_DECLARATIONS:
+ return getFunctionDeclarations();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case StaticTypesystemPackage.MODEL__DECLARATIONS:
+ getDeclarations().clear();
+ getDeclarations().addAll((Collection<? extends DeclaredType>)newValue);
+ return;
+ case StaticTypesystemPackage.MODEL__FUNCTION_DECLARATIONS:
+ getFunctionDeclarations().clear();
+ getFunctionDeclarations().addAll((Collection<? extends DeclaredFunction>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case StaticTypesystemPackage.MODEL__DECLARATIONS:
+ getDeclarations().clear();
+ return;
+ case StaticTypesystemPackage.MODEL__FUNCTION_DECLARATIONS:
+ getFunctionDeclarations().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case StaticTypesystemPackage.MODEL__DECLARATIONS:
+ return declarations != null && !declarations.isEmpty();
+ case StaticTypesystemPackage.MODEL__FUNCTION_DECLARATIONS:
+ return functionDeclarations != null && !functionDeclarations.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ModelImpl
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/StaticTypesystemFactoryImpl.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/StaticTypesystemFactoryImpl.java
new file mode 100644
index 0000000..6ad5c12
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/StaticTypesystemFactoryImpl.java
@@ -0,0 +1,220 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: StaticTypesystemFactoryImpl.java,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.xpand3.staticTypesystem.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class StaticTypesystemFactoryImpl extends EFactoryImpl implements StaticTypesystemFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static StaticTypesystemFactory init() {
+ try {
+ StaticTypesystemFactory theStaticTypesystemFactory = (StaticTypesystemFactory)EPackage.Registry.INSTANCE.getEFactory("http://www.eclipse.org/m2t/xpand3/staticTypesystem");
+ if (theStaticTypesystemFactory != null) {
+ return theStaticTypesystemFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new StaticTypesystemFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StaticTypesystemFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case StaticTypesystemPackage.TYPE: return createType();
+ case StaticTypesystemPackage.TYPE_VARIABLE: return createTypeVariable();
+ case StaticTypesystemPackage.VOID_TYPE: return createVoidType();
+ case StaticTypesystemPackage.WILDCARD_TYPE: return createWildcardType();
+ case StaticTypesystemPackage.FUNCTION_TYPE: return createFunctionType();
+ case StaticTypesystemPackage.DECLARED_TYPE: return createDeclaredType();
+ case StaticTypesystemPackage.DECLARED_FUNCTION: return createDeclaredFunction();
+ case StaticTypesystemPackage.DECLARED_PROPERTY: return createDeclaredProperty();
+ case StaticTypesystemPackage.DECLARED_STATIC_PROPERTY: return createDeclaredStaticProperty();
+ case StaticTypesystemPackage.DECLARED_TYPE_PARAMETER: return createDeclaredTypeParameter();
+ case StaticTypesystemPackage.DECLARED_PARAMETER: return createDeclaredParameter();
+ case StaticTypesystemPackage.MODEL: return createModel();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Type createType() {
+ TypeImpl type = new TypeImpl();
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TypeVariable createTypeVariable() {
+ TypeVariableImpl typeVariable = new TypeVariableImpl();
+ return typeVariable;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public VoidType createVoidType() {
+ VoidTypeImpl voidType = new VoidTypeImpl();
+ return voidType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public WildcardType createWildcardType() {
+ WildcardTypeImpl wildcardType = new WildcardTypeImpl();
+ return wildcardType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FunctionType createFunctionType() {
+ FunctionTypeImpl functionType = new FunctionTypeImpl();
+ return functionType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DeclaredType createDeclaredType() {
+ DeclaredTypeImpl declaredType = new DeclaredTypeImpl();
+ return declaredType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DeclaredFunction createDeclaredFunction() {
+ DeclaredFunctionImpl declaredFunction = new DeclaredFunctionImpl();
+ return declaredFunction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DeclaredProperty createDeclaredProperty() {
+ DeclaredPropertyImpl declaredProperty = new DeclaredPropertyImpl();
+ return declaredProperty;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DeclaredStaticProperty createDeclaredStaticProperty() {
+ DeclaredStaticPropertyImpl declaredStaticProperty = new DeclaredStaticPropertyImpl();
+ return declaredStaticProperty;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DeclaredTypeParameter createDeclaredTypeParameter() {
+ DeclaredTypeParameterImpl declaredTypeParameter = new DeclaredTypeParameterImpl();
+ return declaredTypeParameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DeclaredParameter createDeclaredParameter() {
+ DeclaredParameterImpl declaredParameter = new DeclaredParameterImpl();
+ return declaredParameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Model createModel() {
+ ModelImpl model = new ModelImpl();
+ return model;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StaticTypesystemPackage getStaticTypesystemPackage() {
+ return (StaticTypesystemPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static StaticTypesystemPackage getPackage() {
+ return StaticTypesystemPackage.eINSTANCE;
+ }
+
+} //StaticTypesystemFactoryImpl
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/StaticTypesystemPackageImpl.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/StaticTypesystemPackageImpl.java
new file mode 100644
index 0000000..9332afe
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/StaticTypesystemPackageImpl.java
@@ -0,0 +1,737 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: StaticTypesystemPackageImpl.java,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.xpand3.staticTypesystem.AbstractNamedElement;
+import org.eclipse.xpand3.staticTypesystem.AbstractTypeReference;
+import org.eclipse.xpand3.staticTypesystem.DeclaredFunction;
+import org.eclipse.xpand3.staticTypesystem.DeclaredParameter;
+import org.eclipse.xpand3.staticTypesystem.DeclaredProperty;
+import org.eclipse.xpand3.staticTypesystem.DeclaredStaticProperty;
+import org.eclipse.xpand3.staticTypesystem.DeclaredType;
+import org.eclipse.xpand3.staticTypesystem.DeclaredTypeParameter;
+import org.eclipse.xpand3.staticTypesystem.FunctionType;
+import org.eclipse.xpand3.staticTypesystem.Model;
+import org.eclipse.xpand3.staticTypesystem.StaticTypesystemFactory;
+import org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage;
+import org.eclipse.xpand3.staticTypesystem.Type;
+import org.eclipse.xpand3.staticTypesystem.TypeVariable;
+import org.eclipse.xpand3.staticTypesystem.VoidType;
+import org.eclipse.xpand3.staticTypesystem.WildcardType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class StaticTypesystemPackageImpl extends EPackageImpl implements StaticTypesystemPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass abstractNamedElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass abstractTypeReferenceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass typeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass typeVariableEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass voidTypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass wildcardTypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass functionTypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass declaredTypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass declaredFunctionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass declaredPropertyEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass declaredStaticPropertyEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass declaredTypeParameterEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass declaredParameterEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass modelEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private StaticTypesystemPackageImpl() {
+ super(eNS_URI, StaticTypesystemFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this
+ * model, and for any others upon which it depends. Simple
+ * dependencies are satisfied by calling this method on all
+ * dependent packages before doing anything else. This method drives
+ * initialization for interdependent packages directly, in parallel
+ * with this package, itself.
+ * <p>Of this package and its interdependencies, all packages which
+ * have not yet been registered by their URI values are first created
+ * and registered. The packages are then initialized in two steps:
+ * meta-model objects for all of the packages are created before any
+ * are initialized, since one package's meta-model objects may refer to
+ * those of another.
+ * <p>Invocation of this method will not affect any packages that have
+ * already been initialized.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static StaticTypesystemPackage init() {
+ if (isInited) return (StaticTypesystemPackage)EPackage.Registry.INSTANCE.getEPackage(StaticTypesystemPackage.eNS_URI);
+
+ // Obtain or create and register package
+ StaticTypesystemPackageImpl theStaticTypesystemPackage = (StaticTypesystemPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof StaticTypesystemPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new StaticTypesystemPackageImpl());
+
+ isInited = true;
+
+ // Create package meta-data objects
+ theStaticTypesystemPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theStaticTypesystemPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theStaticTypesystemPackage.freeze();
+
+ return theStaticTypesystemPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAbstractNamedElement() {
+ return abstractNamedElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAbstractNamedElement_Name() {
+ return (EAttribute)abstractNamedElementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAbstractTypeReference() {
+ return abstractTypeReferenceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getType() {
+ return typeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getType_DeclaredType() {
+ return (EReference)typeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getType_ActualTypeArguments() {
+ return (EReference)typeEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTypeVariable() {
+ return typeVariableEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTypeVariable_DeclaredTypeParameter() {
+ return (EReference)typeVariableEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getVoidType() {
+ return voidTypeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getWildcardType() {
+ return wildcardTypeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getWildcardType_LowerBounds() {
+ return (EReference)wildcardTypeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getWildcardType_UpperBounds() {
+ return (EReference)wildcardTypeEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFunctionType() {
+ return functionTypeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getFunctionType_DeclaredFunction() {
+ return (EReference)functionTypeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getFunctionType_ActualTypeArguments() {
+ return (EReference)functionTypeEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDeclaredType() {
+ return declaredTypeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDeclaredType_StaticProperties() {
+ return (EReference)declaredTypeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDeclaredType_Properties() {
+ return (EReference)declaredTypeEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDeclaredType_DeclaredTypeParameters() {
+ return (EReference)declaredTypeEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDeclaredType_SuperTypes() {
+ return (EReference)declaredTypeEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDeclaredType_UniqueID() {
+ return (EAttribute)declaredTypeEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDeclaredType_IsAbstract() {
+ return (EAttribute)declaredTypeEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDeclaredFunction() {
+ return declaredFunctionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDeclaredFunction_DeclaredParameters() {
+ return (EReference)declaredFunctionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDeclaredFunction_DeclaredTypeParameters() {
+ return (EReference)declaredFunctionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDeclaredFunction_ReturnType() {
+ return (EReference)declaredFunctionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDeclaredProperty() {
+ return declaredPropertyEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDeclaredProperty_Type() {
+ return (EReference)declaredPropertyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDeclaredProperty_ReadOnly() {
+ return (EAttribute)declaredPropertyEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDeclaredStaticProperty() {
+ return declaredStaticPropertyEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDeclaredStaticProperty_Type() {
+ return (EReference)declaredStaticPropertyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDeclaredStaticProperty_ReadOnly() {
+ return (EAttribute)declaredStaticPropertyEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDeclaredTypeParameter() {
+ return declaredTypeParameterEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDeclaredTypeParameter_UpperBounds() {
+ return (EReference)declaredTypeParameterEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDeclaredParameter() {
+ return declaredParameterEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDeclaredParameter_Type() {
+ return (EReference)declaredParameterEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getModel() {
+ return modelEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getModel_Declarations() {
+ return (EReference)modelEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getModel_FunctionDeclarations() {
+ return (EReference)modelEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StaticTypesystemFactory getStaticTypesystemFactory() {
+ return (StaticTypesystemFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ abstractNamedElementEClass = createEClass(ABSTRACT_NAMED_ELEMENT);
+ createEAttribute(abstractNamedElementEClass, ABSTRACT_NAMED_ELEMENT__NAME);
+
+ abstractTypeReferenceEClass = createEClass(ABSTRACT_TYPE_REFERENCE);
+
+ typeEClass = createEClass(TYPE);
+ createEReference(typeEClass, TYPE__DECLARED_TYPE);
+ createEReference(typeEClass, TYPE__ACTUAL_TYPE_ARGUMENTS);
+
+ typeVariableEClass = createEClass(TYPE_VARIABLE);
+ createEReference(typeVariableEClass, TYPE_VARIABLE__DECLARED_TYPE_PARAMETER);
+
+ voidTypeEClass = createEClass(VOID_TYPE);
+
+ wildcardTypeEClass = createEClass(WILDCARD_TYPE);
+ createEReference(wildcardTypeEClass, WILDCARD_TYPE__LOWER_BOUNDS);
+ createEReference(wildcardTypeEClass, WILDCARD_TYPE__UPPER_BOUNDS);
+
+ functionTypeEClass = createEClass(FUNCTION_TYPE);
+ createEReference(functionTypeEClass, FUNCTION_TYPE__DECLARED_FUNCTION);
+ createEReference(functionTypeEClass, FUNCTION_TYPE__ACTUAL_TYPE_ARGUMENTS);
+
+ declaredTypeEClass = createEClass(DECLARED_TYPE);
+ createEReference(declaredTypeEClass, DECLARED_TYPE__STATIC_PROPERTIES);
+ createEReference(declaredTypeEClass, DECLARED_TYPE__PROPERTIES);
+ createEReference(declaredTypeEClass, DECLARED_TYPE__DECLARED_TYPE_PARAMETERS);
+ createEReference(declaredTypeEClass, DECLARED_TYPE__SUPER_TYPES);
+ createEAttribute(declaredTypeEClass, DECLARED_TYPE__UNIQUE_ID);
+ createEAttribute(declaredTypeEClass, DECLARED_TYPE__IS_ABSTRACT);
+
+ declaredFunctionEClass = createEClass(DECLARED_FUNCTION);
+ createEReference(declaredFunctionEClass, DECLARED_FUNCTION__DECLARED_PARAMETERS);
+ createEReference(declaredFunctionEClass, DECLARED_FUNCTION__DECLARED_TYPE_PARAMETERS);
+ createEReference(declaredFunctionEClass, DECLARED_FUNCTION__RETURN_TYPE);
+
+ declaredPropertyEClass = createEClass(DECLARED_PROPERTY);
+ createEReference(declaredPropertyEClass, DECLARED_PROPERTY__TYPE);
+ createEAttribute(declaredPropertyEClass, DECLARED_PROPERTY__READ_ONLY);
+
+ declaredStaticPropertyEClass = createEClass(DECLARED_STATIC_PROPERTY);
+ createEReference(declaredStaticPropertyEClass, DECLARED_STATIC_PROPERTY__TYPE);
+ createEAttribute(declaredStaticPropertyEClass, DECLARED_STATIC_PROPERTY__READ_ONLY);
+
+ declaredTypeParameterEClass = createEClass(DECLARED_TYPE_PARAMETER);
+ createEReference(declaredTypeParameterEClass, DECLARED_TYPE_PARAMETER__UPPER_BOUNDS);
+
+ declaredParameterEClass = createEClass(DECLARED_PARAMETER);
+ createEReference(declaredParameterEClass, DECLARED_PARAMETER__TYPE);
+
+ modelEClass = createEClass(MODEL);
+ createEReference(modelEClass, MODEL__DECLARATIONS);
+ createEReference(modelEClass, MODEL__FUNCTION_DECLARATIONS);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ typeEClass.getESuperTypes().add(this.getAbstractTypeReference());
+ typeVariableEClass.getESuperTypes().add(this.getAbstractTypeReference());
+ voidTypeEClass.getESuperTypes().add(this.getAbstractTypeReference());
+ wildcardTypeEClass.getESuperTypes().add(this.getAbstractTypeReference());
+ functionTypeEClass.getESuperTypes().add(this.getAbstractTypeReference());
+ declaredTypeEClass.getESuperTypes().add(this.getAbstractNamedElement());
+ declaredFunctionEClass.getESuperTypes().add(this.getAbstractNamedElement());
+ declaredPropertyEClass.getESuperTypes().add(this.getAbstractNamedElement());
+ declaredStaticPropertyEClass.getESuperTypes().add(this.getAbstractNamedElement());
+ declaredTypeParameterEClass.getESuperTypes().add(this.getAbstractNamedElement());
+ declaredParameterEClass.getESuperTypes().add(this.getAbstractNamedElement());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(abstractNamedElementEClass, AbstractNamedElement.class, "AbstractNamedElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getAbstractNamedElement_Name(), ecorePackage.getEString(), "name", null, 0, 1, AbstractNamedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(abstractTypeReferenceEClass, AbstractTypeReference.class, "AbstractTypeReference", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(typeEClass, Type.class, "Type", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getType_DeclaredType(), this.getDeclaredType(), null, "declaredType", null, 1, 1, Type.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getType_ActualTypeArguments(), this.getAbstractTypeReference(), null, "actualTypeArguments", null, 0, -1, Type.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(typeVariableEClass, TypeVariable.class, "TypeVariable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getTypeVariable_DeclaredTypeParameter(), this.getDeclaredTypeParameter(), null, "declaredTypeParameter", null, 1, 1, TypeVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(voidTypeEClass, VoidType.class, "VoidType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(wildcardTypeEClass, WildcardType.class, "WildcardType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getWildcardType_LowerBounds(), this.getAbstractTypeReference(), null, "lowerBounds", null, 0, -1, WildcardType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getWildcardType_UpperBounds(), this.getAbstractTypeReference(), null, "upperBounds", null, 0, -1, WildcardType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(functionTypeEClass, FunctionType.class, "FunctionType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getFunctionType_DeclaredFunction(), this.getDeclaredFunction(), null, "declaredFunction", null, 1, 1, FunctionType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getFunctionType_ActualTypeArguments(), this.getAbstractTypeReference(), null, "actualTypeArguments", null, 0, -1, FunctionType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(declaredTypeEClass, DeclaredType.class, "DeclaredType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getDeclaredType_StaticProperties(), this.getDeclaredStaticProperty(), null, "staticProperties", null, 0, -1, DeclaredType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDeclaredType_Properties(), this.getDeclaredProperty(), null, "properties", null, 0, -1, DeclaredType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDeclaredType_DeclaredTypeParameters(), this.getDeclaredTypeParameter(), null, "declaredTypeParameters", null, 0, -1, DeclaredType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDeclaredType_SuperTypes(), this.getAbstractTypeReference(), null, "superTypes", null, 0, -1, DeclaredType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDeclaredType_UniqueID(), ecorePackage.getEString(), "uniqueID", null, 0, 1, DeclaredType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDeclaredType_IsAbstract(), ecorePackage.getEBoolean(), "isAbstract", null, 0, 1, DeclaredType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(declaredFunctionEClass, DeclaredFunction.class, "DeclaredFunction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getDeclaredFunction_DeclaredParameters(), this.getDeclaredParameter(), null, "declaredParameters", null, 0, -1, DeclaredFunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDeclaredFunction_DeclaredTypeParameters(), this.getDeclaredTypeParameter(), null, "declaredTypeParameters", null, 0, -1, DeclaredFunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDeclaredFunction_ReturnType(), this.getAbstractTypeReference(), null, "returnType", null, 0, 1, DeclaredFunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(declaredPropertyEClass, DeclaredProperty.class, "DeclaredProperty", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getDeclaredProperty_Type(), this.getAbstractTypeReference(), null, "type", null, 1, 1, DeclaredProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDeclaredProperty_ReadOnly(), ecorePackage.getEBoolean(), "readOnly", null, 0, 1, DeclaredProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(declaredStaticPropertyEClass, DeclaredStaticProperty.class, "DeclaredStaticProperty", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getDeclaredStaticProperty_Type(), this.getType(), null, "type", null, 1, 1, DeclaredStaticProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDeclaredStaticProperty_ReadOnly(), ecorePackage.getEBoolean(), "readOnly", null, 0, 1, DeclaredStaticProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(declaredTypeParameterEClass, DeclaredTypeParameter.class, "DeclaredTypeParameter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getDeclaredTypeParameter_UpperBounds(), this.getAbstractTypeReference(), null, "upperBounds", null, 0, -1, DeclaredTypeParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(declaredParameterEClass, DeclaredParameter.class, "DeclaredParameter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getDeclaredParameter_Type(), this.getAbstractTypeReference(), null, "type", null, 1, 1, DeclaredParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(modelEClass, Model.class, "Model", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getModel_Declarations(), this.getDeclaredType(), null, "declarations", null, 0, -1, Model.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getModel_FunctionDeclarations(), this.getDeclaredFunction(), null, "functionDeclarations", null, 0, -1, Model.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //StaticTypesystemPackageImpl
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/TypeImpl.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/TypeImpl.java
new file mode 100644
index 0000000..aa2d580
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/TypeImpl.java
@@ -0,0 +1,218 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TypeImpl.java,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.xpand3.staticTypesystem.AbstractTypeReference;
+import org.eclipse.xpand3.staticTypesystem.DeclaredType;
+import org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage;
+import org.eclipse.xpand3.staticTypesystem.Type;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.impl.TypeImpl#getDeclaredType <em>Declared Type</em>}</li>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.impl.TypeImpl#getActualTypeArguments <em>Actual Type Arguments</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TypeImpl extends AbstractTypeReferenceImpl implements Type {
+ /**
+ * The cached value of the '{@link #getDeclaredType() <em>Declared Type</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDeclaredType()
+ * @generated
+ * @ordered
+ */
+ protected DeclaredType declaredType;
+
+ /**
+ * The cached value of the '{@link #getActualTypeArguments() <em>Actual Type Arguments</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getActualTypeArguments()
+ * @generated
+ * @ordered
+ */
+ protected EList<AbstractTypeReference> actualTypeArguments;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TypeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return StaticTypesystemPackage.Literals.TYPE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DeclaredType getDeclaredType() {
+ if (declaredType != null && declaredType.eIsProxy()) {
+ InternalEObject oldDeclaredType = (InternalEObject)declaredType;
+ declaredType = (DeclaredType)eResolveProxy(oldDeclaredType);
+ if (declaredType != oldDeclaredType) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, StaticTypesystemPackage.TYPE__DECLARED_TYPE, oldDeclaredType, declaredType));
+ }
+ }
+ return declaredType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DeclaredType basicGetDeclaredType() {
+ return declaredType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDeclaredType(DeclaredType newDeclaredType) {
+ DeclaredType oldDeclaredType = declaredType;
+ declaredType = newDeclaredType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StaticTypesystemPackage.TYPE__DECLARED_TYPE, oldDeclaredType, declaredType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<AbstractTypeReference> getActualTypeArguments() {
+ if (actualTypeArguments == null) {
+ actualTypeArguments = new EObjectContainmentEList<AbstractTypeReference>(AbstractTypeReference.class, this, StaticTypesystemPackage.TYPE__ACTUAL_TYPE_ARGUMENTS);
+ }
+ return actualTypeArguments;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case StaticTypesystemPackage.TYPE__ACTUAL_TYPE_ARGUMENTS:
+ return ((InternalEList<?>)getActualTypeArguments()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case StaticTypesystemPackage.TYPE__DECLARED_TYPE:
+ if (resolve) return getDeclaredType();
+ return basicGetDeclaredType();
+ case StaticTypesystemPackage.TYPE__ACTUAL_TYPE_ARGUMENTS:
+ return getActualTypeArguments();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case StaticTypesystemPackage.TYPE__DECLARED_TYPE:
+ setDeclaredType((DeclaredType)newValue);
+ return;
+ case StaticTypesystemPackage.TYPE__ACTUAL_TYPE_ARGUMENTS:
+ getActualTypeArguments().clear();
+ getActualTypeArguments().addAll((Collection<? extends AbstractTypeReference>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case StaticTypesystemPackage.TYPE__DECLARED_TYPE:
+ setDeclaredType((DeclaredType)null);
+ return;
+ case StaticTypesystemPackage.TYPE__ACTUAL_TYPE_ARGUMENTS:
+ getActualTypeArguments().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case StaticTypesystemPackage.TYPE__DECLARED_TYPE:
+ return declaredType != null;
+ case StaticTypesystemPackage.TYPE__ACTUAL_TYPE_ARGUMENTS:
+ return actualTypeArguments != null && !actualTypeArguments.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //TypeImpl
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/TypeVariableImpl.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/TypeVariableImpl.java
new file mode 100644
index 0000000..312e27d
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/TypeVariableImpl.java
@@ -0,0 +1,160 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TypeVariableImpl.java,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem.impl;
+
+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;
+
+import org.eclipse.xpand3.staticTypesystem.DeclaredTypeParameter;
+import org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage;
+import org.eclipse.xpand3.staticTypesystem.TypeVariable;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Type Variable</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.impl.TypeVariableImpl#getDeclaredTypeParameter <em>Declared Type Parameter</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TypeVariableImpl extends AbstractTypeReferenceImpl implements TypeVariable {
+ /**
+ * The cached value of the '{@link #getDeclaredTypeParameter() <em>Declared Type Parameter</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDeclaredTypeParameter()
+ * @generated
+ * @ordered
+ */
+ protected DeclaredTypeParameter declaredTypeParameter;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TypeVariableImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return StaticTypesystemPackage.Literals.TYPE_VARIABLE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DeclaredTypeParameter getDeclaredTypeParameter() {
+ if (declaredTypeParameter != null && declaredTypeParameter.eIsProxy()) {
+ InternalEObject oldDeclaredTypeParameter = (InternalEObject)declaredTypeParameter;
+ declaredTypeParameter = (DeclaredTypeParameter)eResolveProxy(oldDeclaredTypeParameter);
+ if (declaredTypeParameter != oldDeclaredTypeParameter) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, StaticTypesystemPackage.TYPE_VARIABLE__DECLARED_TYPE_PARAMETER, oldDeclaredTypeParameter, declaredTypeParameter));
+ }
+ }
+ return declaredTypeParameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DeclaredTypeParameter basicGetDeclaredTypeParameter() {
+ return declaredTypeParameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDeclaredTypeParameter(DeclaredTypeParameter newDeclaredTypeParameter) {
+ DeclaredTypeParameter oldDeclaredTypeParameter = declaredTypeParameter;
+ declaredTypeParameter = newDeclaredTypeParameter;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StaticTypesystemPackage.TYPE_VARIABLE__DECLARED_TYPE_PARAMETER, oldDeclaredTypeParameter, declaredTypeParameter));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case StaticTypesystemPackage.TYPE_VARIABLE__DECLARED_TYPE_PARAMETER:
+ if (resolve) return getDeclaredTypeParameter();
+ return basicGetDeclaredTypeParameter();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case StaticTypesystemPackage.TYPE_VARIABLE__DECLARED_TYPE_PARAMETER:
+ setDeclaredTypeParameter((DeclaredTypeParameter)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case StaticTypesystemPackage.TYPE_VARIABLE__DECLARED_TYPE_PARAMETER:
+ setDeclaredTypeParameter((DeclaredTypeParameter)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case StaticTypesystemPackage.TYPE_VARIABLE__DECLARED_TYPE_PARAMETER:
+ return declaredTypeParameter != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //TypeVariableImpl
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/VoidTypeImpl.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/VoidTypeImpl.java
new file mode 100644
index 0000000..de1be2f
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/VoidTypeImpl.java
@@ -0,0 +1,43 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: VoidTypeImpl.java,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage;
+import org.eclipse.xpand3.staticTypesystem.VoidType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Void Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class VoidTypeImpl extends AbstractTypeReferenceImpl implements VoidType {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected VoidTypeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return StaticTypesystemPackage.Literals.VOID_TYPE;
+ }
+
+} //VoidTypeImpl
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/WildcardTypeImpl.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/WildcardTypeImpl.java
new file mode 100644
index 0000000..a86099a
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/impl/WildcardTypeImpl.java
@@ -0,0 +1,190 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: WildcardTypeImpl.java,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.xpand3.staticTypesystem.AbstractTypeReference;
+import org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage;
+import org.eclipse.xpand3.staticTypesystem.WildcardType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Wildcard Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.impl.WildcardTypeImpl#getLowerBounds <em>Lower Bounds</em>}</li>
+ * <li>{@link org.eclipse.xpand3.staticTypesystem.impl.WildcardTypeImpl#getUpperBounds <em>Upper Bounds</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class WildcardTypeImpl extends AbstractTypeReferenceImpl implements WildcardType {
+ /**
+ * The cached value of the '{@link #getLowerBounds() <em>Lower Bounds</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLowerBounds()
+ * @generated
+ * @ordered
+ */
+ protected EList<AbstractTypeReference> lowerBounds;
+
+ /**
+ * The cached value of the '{@link #getUpperBounds() <em>Upper Bounds</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUpperBounds()
+ * @generated
+ * @ordered
+ */
+ protected EList<AbstractTypeReference> upperBounds;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected WildcardTypeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return StaticTypesystemPackage.Literals.WILDCARD_TYPE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<AbstractTypeReference> getLowerBounds() {
+ if (lowerBounds == null) {
+ lowerBounds = new EObjectContainmentEList<AbstractTypeReference>(AbstractTypeReference.class, this, StaticTypesystemPackage.WILDCARD_TYPE__LOWER_BOUNDS);
+ }
+ return lowerBounds;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<AbstractTypeReference> getUpperBounds() {
+ if (upperBounds == null) {
+ upperBounds = new EObjectContainmentEList<AbstractTypeReference>(AbstractTypeReference.class, this, StaticTypesystemPackage.WILDCARD_TYPE__UPPER_BOUNDS);
+ }
+ return upperBounds;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case StaticTypesystemPackage.WILDCARD_TYPE__LOWER_BOUNDS:
+ return ((InternalEList<?>)getLowerBounds()).basicRemove(otherEnd, msgs);
+ case StaticTypesystemPackage.WILDCARD_TYPE__UPPER_BOUNDS:
+ return ((InternalEList<?>)getUpperBounds()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case StaticTypesystemPackage.WILDCARD_TYPE__LOWER_BOUNDS:
+ return getLowerBounds();
+ case StaticTypesystemPackage.WILDCARD_TYPE__UPPER_BOUNDS:
+ return getUpperBounds();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case StaticTypesystemPackage.WILDCARD_TYPE__LOWER_BOUNDS:
+ getLowerBounds().clear();
+ getLowerBounds().addAll((Collection<? extends AbstractTypeReference>)newValue);
+ return;
+ case StaticTypesystemPackage.WILDCARD_TYPE__UPPER_BOUNDS:
+ getUpperBounds().clear();
+ getUpperBounds().addAll((Collection<? extends AbstractTypeReference>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case StaticTypesystemPackage.WILDCARD_TYPE__LOWER_BOUNDS:
+ getLowerBounds().clear();
+ return;
+ case StaticTypesystemPackage.WILDCARD_TYPE__UPPER_BOUNDS:
+ getUpperBounds().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case StaticTypesystemPackage.WILDCARD_TYPE__LOWER_BOUNDS:
+ return lowerBounds != null && !lowerBounds.isEmpty();
+ case StaticTypesystemPackage.WILDCARD_TYPE__UPPER_BOUNDS:
+ return upperBounds != null && !upperBounds.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //WildcardTypeImpl
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/util/StaticTypesystemAdapterFactory.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/util/StaticTypesystemAdapterFactory.java
new file mode 100644
index 0000000..1a95bdd
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/util/StaticTypesystemAdapterFactory.java
@@ -0,0 +1,358 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: StaticTypesystemAdapterFactory.java,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.xpand3.staticTypesystem.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage
+ * @generated
+ */
+public class StaticTypesystemAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static StaticTypesystemPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StaticTypesystemAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = StaticTypesystemPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch the delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StaticTypesystemSwitch<Adapter> modelSwitch =
+ new StaticTypesystemSwitch<Adapter>() {
+ @Override
+ public Adapter caseAbstractNamedElement(AbstractNamedElement object) {
+ return createAbstractNamedElementAdapter();
+ }
+ @Override
+ public Adapter caseAbstractTypeReference(AbstractTypeReference object) {
+ return createAbstractTypeReferenceAdapter();
+ }
+ @Override
+ public Adapter caseType(Type object) {
+ return createTypeAdapter();
+ }
+ @Override
+ public Adapter caseTypeVariable(TypeVariable object) {
+ return createTypeVariableAdapter();
+ }
+ @Override
+ public Adapter caseVoidType(VoidType object) {
+ return createVoidTypeAdapter();
+ }
+ @Override
+ public Adapter caseWildcardType(WildcardType object) {
+ return createWildcardTypeAdapter();
+ }
+ @Override
+ public Adapter caseFunctionType(FunctionType object) {
+ return createFunctionTypeAdapter();
+ }
+ @Override
+ public Adapter caseDeclaredType(DeclaredType object) {
+ return createDeclaredTypeAdapter();
+ }
+ @Override
+ public Adapter caseDeclaredFunction(DeclaredFunction object) {
+ return createDeclaredFunctionAdapter();
+ }
+ @Override
+ public Adapter caseDeclaredProperty(DeclaredProperty object) {
+ return createDeclaredPropertyAdapter();
+ }
+ @Override
+ public Adapter caseDeclaredStaticProperty(DeclaredStaticProperty object) {
+ return createDeclaredStaticPropertyAdapter();
+ }
+ @Override
+ public Adapter caseDeclaredTypeParameter(DeclaredTypeParameter object) {
+ return createDeclaredTypeParameterAdapter();
+ }
+ @Override
+ public Adapter caseDeclaredParameter(DeclaredParameter object) {
+ return createDeclaredParameterAdapter();
+ }
+ @Override
+ public Adapter caseModel(Model object) {
+ return createModelAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.staticTypesystem.AbstractNamedElement <em>Abstract Named Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.xpand3.staticTypesystem.AbstractNamedElement
+ * @generated
+ */
+ public Adapter createAbstractNamedElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.staticTypesystem.AbstractTypeReference <em>Abstract Type Reference</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.xpand3.staticTypesystem.AbstractTypeReference
+ * @generated
+ */
+ public Adapter createAbstractTypeReferenceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.staticTypesystem.Type <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.xpand3.staticTypesystem.Type
+ * @generated
+ */
+ public Adapter createTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.staticTypesystem.TypeVariable <em>Type Variable</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.xpand3.staticTypesystem.TypeVariable
+ * @generated
+ */
+ public Adapter createTypeVariableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.staticTypesystem.VoidType <em>Void Type</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.xpand3.staticTypesystem.VoidType
+ * @generated
+ */
+ public Adapter createVoidTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.staticTypesystem.WildcardType <em>Wildcard Type</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.xpand3.staticTypesystem.WildcardType
+ * @generated
+ */
+ public Adapter createWildcardTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.staticTypesystem.FunctionType <em>Function Type</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.xpand3.staticTypesystem.FunctionType
+ * @generated
+ */
+ public Adapter createFunctionTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.staticTypesystem.DeclaredType <em>Declared Type</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.xpand3.staticTypesystem.DeclaredType
+ * @generated
+ */
+ public Adapter createDeclaredTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.staticTypesystem.DeclaredFunction <em>Declared Function</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.xpand3.staticTypesystem.DeclaredFunction
+ * @generated
+ */
+ public Adapter createDeclaredFunctionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.staticTypesystem.DeclaredProperty <em>Declared Property</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.xpand3.staticTypesystem.DeclaredProperty
+ * @generated
+ */
+ public Adapter createDeclaredPropertyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.staticTypesystem.DeclaredStaticProperty <em>Declared Static Property</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.xpand3.staticTypesystem.DeclaredStaticProperty
+ * @generated
+ */
+ public Adapter createDeclaredStaticPropertyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.staticTypesystem.DeclaredTypeParameter <em>Declared Type Parameter</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.xpand3.staticTypesystem.DeclaredTypeParameter
+ * @generated
+ */
+ public Adapter createDeclaredTypeParameterAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.staticTypesystem.DeclaredParameter <em>Declared Parameter</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.xpand3.staticTypesystem.DeclaredParameter
+ * @generated
+ */
+ public Adapter createDeclaredParameterAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.xpand3.staticTypesystem.Model <em>Model</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.xpand3.staticTypesystem.Model
+ * @generated
+ */
+ public Adapter createModelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //StaticTypesystemAdapterFactory
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/util/StaticTypesystemSwitch.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/util/StaticTypesystemSwitch.java
new file mode 100644
index 0000000..0c2f68e
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/util/StaticTypesystemSwitch.java
@@ -0,0 +1,414 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: StaticTypesystemSwitch.java,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem.util;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.xpand3.staticTypesystem.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage
+ * @generated
+ */
+public class StaticTypesystemSwitch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static StaticTypesystemPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StaticTypesystemSwitch() {
+ if (modelPackage == null) {
+ modelPackage = StaticTypesystemPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ public T doSwitch(EObject theEObject) {
+ return doSwitch(theEObject.eClass(), theEObject);
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ protected T doSwitch(EClass theEClass, EObject theEObject) {
+ if (theEClass.eContainer() == modelPackage) {
+ return doSwitch(theEClass.getClassifierID(), theEObject);
+ }
+ else {
+ List<EClass> eSuperTypes = theEClass.getESuperTypes();
+ return
+ eSuperTypes.isEmpty() ?
+ defaultCase(theEObject) :
+ doSwitch(eSuperTypes.get(0), theEObject);
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case StaticTypesystemPackage.ABSTRACT_NAMED_ELEMENT: {
+ AbstractNamedElement abstractNamedElement = (AbstractNamedElement)theEObject;
+ T result = caseAbstractNamedElement(abstractNamedElement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case StaticTypesystemPackage.ABSTRACT_TYPE_REFERENCE: {
+ AbstractTypeReference abstractTypeReference = (AbstractTypeReference)theEObject;
+ T result = caseAbstractTypeReference(abstractTypeReference);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case StaticTypesystemPackage.TYPE: {
+ Type type = (Type)theEObject;
+ T result = caseType(type);
+ if (result == null) result = caseAbstractTypeReference(type);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case StaticTypesystemPackage.TYPE_VARIABLE: {
+ TypeVariable typeVariable = (TypeVariable)theEObject;
+ T result = caseTypeVariable(typeVariable);
+ if (result == null) result = caseAbstractTypeReference(typeVariable);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case StaticTypesystemPackage.VOID_TYPE: {
+ VoidType voidType = (VoidType)theEObject;
+ T result = caseVoidType(voidType);
+ if (result == null) result = caseAbstractTypeReference(voidType);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case StaticTypesystemPackage.WILDCARD_TYPE: {
+ WildcardType wildcardType = (WildcardType)theEObject;
+ T result = caseWildcardType(wildcardType);
+ if (result == null) result = caseAbstractTypeReference(wildcardType);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case StaticTypesystemPackage.FUNCTION_TYPE: {
+ FunctionType functionType = (FunctionType)theEObject;
+ T result = caseFunctionType(functionType);
+ if (result == null) result = caseAbstractTypeReference(functionType);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case StaticTypesystemPackage.DECLARED_TYPE: {
+ DeclaredType declaredType = (DeclaredType)theEObject;
+ T result = caseDeclaredType(declaredType);
+ if (result == null) result = caseAbstractNamedElement(declaredType);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case StaticTypesystemPackage.DECLARED_FUNCTION: {
+ DeclaredFunction declaredFunction = (DeclaredFunction)theEObject;
+ T result = caseDeclaredFunction(declaredFunction);
+ if (result == null) result = caseAbstractNamedElement(declaredFunction);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case StaticTypesystemPackage.DECLARED_PROPERTY: {
+ DeclaredProperty declaredProperty = (DeclaredProperty)theEObject;
+ T result = caseDeclaredProperty(declaredProperty);
+ if (result == null) result = caseAbstractNamedElement(declaredProperty);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case StaticTypesystemPackage.DECLARED_STATIC_PROPERTY: {
+ DeclaredStaticProperty declaredStaticProperty = (DeclaredStaticProperty)theEObject;
+ T result = caseDeclaredStaticProperty(declaredStaticProperty);
+ if (result == null) result = caseAbstractNamedElement(declaredStaticProperty);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case StaticTypesystemPackage.DECLARED_TYPE_PARAMETER: {
+ DeclaredTypeParameter declaredTypeParameter = (DeclaredTypeParameter)theEObject;
+ T result = caseDeclaredTypeParameter(declaredTypeParameter);
+ if (result == null) result = caseAbstractNamedElement(declaredTypeParameter);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case StaticTypesystemPackage.DECLARED_PARAMETER: {
+ DeclaredParameter declaredParameter = (DeclaredParameter)theEObject;
+ T result = caseDeclaredParameter(declaredParameter);
+ if (result == null) result = caseAbstractNamedElement(declaredParameter);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case StaticTypesystemPackage.MODEL: {
+ Model model = (Model)theEObject;
+ T result = caseModel(model);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Abstract Named Element</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Abstract Named Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAbstractNamedElement(AbstractNamedElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Abstract Type Reference</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Abstract Type Reference</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAbstractTypeReference(AbstractTypeReference object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Type</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Type</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseType(Type object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Type Variable</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Type Variable</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTypeVariable(TypeVariable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Void Type</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Void Type</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseVoidType(VoidType object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Wildcard Type</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Wildcard Type</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseWildcardType(WildcardType object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Function Type</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Function Type</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFunctionType(FunctionType object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Declared Type</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Declared Type</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDeclaredType(DeclaredType object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Declared Function</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Declared Function</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDeclaredFunction(DeclaredFunction object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Declared Property</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Declared Property</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDeclaredProperty(DeclaredProperty object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Declared Static Property</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Declared Static Property</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDeclaredStaticProperty(DeclaredStaticProperty object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Declared Type Parameter</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Declared Type Parameter</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDeclaredTypeParameter(DeclaredTypeParameter object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Declared Parameter</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Declared Parameter</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDeclaredParameter(DeclaredParameter object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseModel(Model object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //StaticTypesystemSwitch
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/AbstractNamedElementValidator.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/AbstractNamedElementValidator.java
new file mode 100644
index 0000000..3871152
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/AbstractNamedElementValidator.java
@@ -0,0 +1,20 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: AbstractNamedElementValidator.java,v 1.1 2008/03/17 14:39:19 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.staticTypesystem.AbstractNamedElement}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface AbstractNamedElementValidator {
+ boolean validate();
+
+ boolean validateName(String value);
+}
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/AbstractTypeReferenceValidator.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/AbstractTypeReferenceValidator.java
new file mode 100644
index 0000000..774140a
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/AbstractTypeReferenceValidator.java
@@ -0,0 +1,19 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: AbstractTypeReferenceValidator.java,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.staticTypesystem.AbstractTypeReference}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface AbstractTypeReferenceValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/DeclaredFunctionValidator.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/DeclaredFunctionValidator.java
new file mode 100644
index 0000000..52c3c24
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/DeclaredFunctionValidator.java
@@ -0,0 +1,27 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DeclaredFunctionValidator.java,v 1.1 2008/03/17 14:39:19 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem.validation;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.xpand3.staticTypesystem.AbstractTypeReference;
+import org.eclipse.xpand3.staticTypesystem.DeclaredParameter;
+import org.eclipse.xpand3.staticTypesystem.DeclaredTypeParameter;
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.staticTypesystem.DeclaredFunction}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface DeclaredFunctionValidator {
+ boolean validate();
+
+ boolean validateDeclaredParameters(EList<DeclaredParameter> value);
+ boolean validateDeclaredTypeParameters(EList<DeclaredTypeParameter> value);
+ boolean validateReturnType(AbstractTypeReference value);
+}
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/DeclaredParameterValidator.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/DeclaredParameterValidator.java
new file mode 100644
index 0000000..e80226b
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/DeclaredParameterValidator.java
@@ -0,0 +1,21 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DeclaredParameterValidator.java,v 1.1 2008/03/17 14:39:19 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem.validation;
+
+import org.eclipse.xpand3.staticTypesystem.AbstractTypeReference;
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.staticTypesystem.DeclaredParameter}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface DeclaredParameterValidator {
+ boolean validate();
+
+ boolean validateType(AbstractTypeReference value);
+}
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/DeclaredPropertyValidator.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/DeclaredPropertyValidator.java
new file mode 100644
index 0000000..6e6d288
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/DeclaredPropertyValidator.java
@@ -0,0 +1,22 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DeclaredPropertyValidator.java,v 1.1 2008/03/17 14:39:19 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem.validation;
+
+import org.eclipse.xpand3.staticTypesystem.AbstractTypeReference;
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.staticTypesystem.DeclaredProperty}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface DeclaredPropertyValidator {
+ boolean validate();
+
+ boolean validateType(AbstractTypeReference value);
+ boolean validateReadOnly(boolean value);
+}
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/DeclaredStaticPropertyValidator.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/DeclaredStaticPropertyValidator.java
new file mode 100644
index 0000000..633d618
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/DeclaredStaticPropertyValidator.java
@@ -0,0 +1,22 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DeclaredStaticPropertyValidator.java,v 1.1 2008/03/17 14:39:19 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem.validation;
+
+import org.eclipse.xpand3.staticTypesystem.Type;
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.staticTypesystem.DeclaredStaticProperty}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface DeclaredStaticPropertyValidator {
+ boolean validate();
+
+ boolean validateType(Type value);
+ boolean validateReadOnly(boolean value);
+}
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/DeclaredTypeParameterValidator.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/DeclaredTypeParameterValidator.java
new file mode 100644
index 0000000..a8962e6
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/DeclaredTypeParameterValidator.java
@@ -0,0 +1,23 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DeclaredTypeParameterValidator.java,v 1.1 2008/03/17 14:39:19 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem.validation;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.xpand3.staticTypesystem.AbstractTypeReference;
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.staticTypesystem.DeclaredTypeParameter}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface DeclaredTypeParameterValidator {
+ boolean validate();
+
+ boolean validateUpperBounds(EList<AbstractTypeReference> value);
+}
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/DeclaredTypeValidator.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/DeclaredTypeValidator.java
new file mode 100644
index 0000000..7f2ff53
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/DeclaredTypeValidator.java
@@ -0,0 +1,31 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DeclaredTypeValidator.java,v 1.1 2008/03/17 14:39:19 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem.validation;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.xpand3.staticTypesystem.AbstractTypeReference;
+import org.eclipse.xpand3.staticTypesystem.DeclaredProperty;
+import org.eclipse.xpand3.staticTypesystem.DeclaredStaticProperty;
+import org.eclipse.xpand3.staticTypesystem.DeclaredTypeParameter;
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.staticTypesystem.DeclaredType}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface DeclaredTypeValidator {
+ boolean validate();
+
+ boolean validateStaticProperties(EList<DeclaredStaticProperty> value);
+ boolean validateProperties(EList<DeclaredProperty> value);
+ boolean validateDeclaredTypeParameters(EList<DeclaredTypeParameter> value);
+ boolean validateSuperTypes(EList<AbstractTypeReference> value);
+ boolean validateUniqueID(String value);
+ boolean validateIsAbstract(boolean value);
+}
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/FunctionTypeValidator.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/FunctionTypeValidator.java
new file mode 100644
index 0000000..b3ec6b6
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/FunctionTypeValidator.java
@@ -0,0 +1,25 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: FunctionTypeValidator.java,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem.validation;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.xpand3.staticTypesystem.AbstractTypeReference;
+import org.eclipse.xpand3.staticTypesystem.DeclaredFunction;
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.staticTypesystem.FunctionType}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface FunctionTypeValidator {
+ boolean validate();
+
+ boolean validateDeclaredFunction(DeclaredFunction value);
+ boolean validateActualTypeArguments(EList<AbstractTypeReference> value);
+}
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/ModelValidator.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/ModelValidator.java
new file mode 100644
index 0000000..88ae649
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/ModelValidator.java
@@ -0,0 +1,25 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ModelValidator.java,v 1.1 2008/03/17 14:39:19 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem.validation;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.xpand3.staticTypesystem.DeclaredFunction;
+import org.eclipse.xpand3.staticTypesystem.DeclaredType;
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.staticTypesystem.Model}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface ModelValidator {
+ boolean validate();
+
+ boolean validateDeclarations(EList<DeclaredType> value);
+ boolean validateFunctionDeclarations(EList<DeclaredFunction> value);
+}
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/TypeValidator.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/TypeValidator.java
new file mode 100644
index 0000000..7d84eaf
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/TypeValidator.java
@@ -0,0 +1,25 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TypeValidator.java,v 1.1 2008/03/17 14:39:19 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem.validation;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.xpand3.staticTypesystem.AbstractTypeReference;
+import org.eclipse.xpand3.staticTypesystem.DeclaredType;
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.staticTypesystem.Type}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface TypeValidator {
+ boolean validate();
+
+ boolean validateDeclaredType(DeclaredType value);
+ boolean validateActualTypeArguments(EList<AbstractTypeReference> value);
+}
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/TypeVariableValidator.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/TypeVariableValidator.java
new file mode 100644
index 0000000..29d5d8f
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/TypeVariableValidator.java
@@ -0,0 +1,21 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TypeVariableValidator.java,v 1.1 2008/03/17 14:39:19 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem.validation;
+
+import org.eclipse.xpand3.staticTypesystem.DeclaredTypeParameter;
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.staticTypesystem.TypeVariable}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface TypeVariableValidator {
+ boolean validate();
+
+ boolean validateDeclaredTypeParameter(DeclaredTypeParameter value);
+}
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/VoidTypeValidator.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/VoidTypeValidator.java
new file mode 100644
index 0000000..c69af4d
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/VoidTypeValidator.java
@@ -0,0 +1,19 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: VoidTypeValidator.java,v 1.1 2008/03/17 14:39:19 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem.validation;
+
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.staticTypesystem.VoidType}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface VoidTypeValidator {
+ boolean validate();
+
+}
diff --git a/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/WildcardTypeValidator.java b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/WildcardTypeValidator.java
new file mode 100644
index 0000000..cba5783
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/emf-gen/org/eclipse/xpand3/staticTypesystem/validation/WildcardTypeValidator.java
@@ -0,0 +1,24 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: WildcardTypeValidator.java,v 1.1 2008/03/17 14:39:19 jkohnlein Exp $
+ */
+package org.eclipse.xpand3.staticTypesystem.validation;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.xpand3.staticTypesystem.AbstractTypeReference;
+
+/**
+ * A sample validator interface for {@link org.eclipse.xpand3.staticTypesystem.WildcardType}.
+ * This doesn't really do anything, and it's not a real EMF artifact.
+ * It was generated by the org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's code generator can be extended.
+ * This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+ */
+public interface WildcardTypeValidator {
+ boolean validate();
+
+ boolean validateLowerBounds(EList<AbstractTypeReference> value);
+ boolean validateUpperBounds(EList<AbstractTypeReference> value);
+}
diff --git a/plugins/org.eclipse.xpand3/src/built-in-lib.xmi b/plugins/org.eclipse.xpand3.common/model/built-in-lib.xmi
index 4677aed..4677aed 100644
--- a/plugins/org.eclipse.xpand3/src/built-in-lib.xmi
+++ b/plugins/org.eclipse.xpand3.common/model/built-in-lib.xmi
diff --git a/plugins/org.eclipse.xpand3/src/built-in.xmi b/plugins/org.eclipse.xpand3.common/model/built-in.xmi
index 32b3891..32b3891 100644
--- a/plugins/org.eclipse.xpand3/src/built-in.xmi
+++ b/plugins/org.eclipse.xpand3.common/model/built-in.xmi
diff --git a/plugins/org.eclipse.xpand3/src/staticTypesystem/Presentation.ext b/plugins/org.eclipse.xpand3.common/model/staticTypesystem/Presentation.ext
index 1771d0f..1771d0f 100644
--- a/plugins/org.eclipse.xpand3/src/staticTypesystem/Presentation.ext
+++ b/plugins/org.eclipse.xpand3.common/model/staticTypesystem/Presentation.ext
diff --git a/plugins/org.eclipse.xpand3/src/static_typesystem.ecore b/plugins/org.eclipse.xpand3.common/model/static_typesystem.ecore
index 4308606..4308606 100644
--- a/plugins/org.eclipse.xpand3/src/static_typesystem.ecore
+++ b/plugins/org.eclipse.xpand3.common/model/static_typesystem.ecore
diff --git a/plugins/org.eclipse.xpand3.common/model/static_typesystem.genmodel b/plugins/org.eclipse.xpand3.common/model/static_typesystem.genmodel
new file mode 100644
index 0000000..2e7f398
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/model/static_typesystem.genmodel
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.xpand3.common/emf-gen"
+ modelPluginID="org.eclipse.xpand3.common" modelName="Static_typesystem" importerID="org.eclipse.emf.importer.ecore"
+ complianceLevel="5.0" copyrightFields="false">
+ <foreignModel>static_typesystem.ecore</foreignModel>
+ <genPackages prefix="StaticTypesystem" basePackage="org.eclipse.xpand3" disposableProviderFactory="true"
+ ecorePackage="static_typesystem.ecore#/">
+ <genClasses image="false" ecoreClass="static_typesystem.ecore#//AbstractNamedElement">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute static_typesystem.ecore#//AbstractNamedElement/name"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="static_typesystem.ecore#//AbstractTypeReference"/>
+ <genClasses ecoreClass="static_typesystem.ecore#//Type">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference static_typesystem.ecore#//Type/declaredType"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference static_typesystem.ecore#//Type/actualTypeArguments"/>
+ </genClasses>
+ <genClasses ecoreClass="static_typesystem.ecore#//TypeVariable">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference static_typesystem.ecore#//TypeVariable/declaredTypeParameter"/>
+ </genClasses>
+ <genClasses ecoreClass="static_typesystem.ecore#//VoidType"/>
+ <genClasses ecoreClass="static_typesystem.ecore#//WildcardType">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference static_typesystem.ecore#//WildcardType/lowerBounds"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference static_typesystem.ecore#//WildcardType/upperBounds"/>
+ </genClasses>
+ <genClasses ecoreClass="static_typesystem.ecore#//FunctionType">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference static_typesystem.ecore#//FunctionType/declaredFunction"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference static_typesystem.ecore#//FunctionType/actualTypeArguments"/>
+ </genClasses>
+ <genClasses ecoreClass="static_typesystem.ecore#//DeclaredType">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference static_typesystem.ecore#//DeclaredType/staticProperties"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference static_typesystem.ecore#//DeclaredType/properties"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference static_typesystem.ecore#//DeclaredType/declaredTypeParameters"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference static_typesystem.ecore#//DeclaredType/superTypes"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute static_typesystem.ecore#//DeclaredType/uniqueID"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute static_typesystem.ecore#//DeclaredType/isAbstract"/>
+ </genClasses>
+ <genClasses ecoreClass="static_typesystem.ecore#//DeclaredFunction">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference static_typesystem.ecore#//DeclaredFunction/declaredParameters"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference static_typesystem.ecore#//DeclaredFunction/declaredTypeParameters"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference static_typesystem.ecore#//DeclaredFunction/returnType"/>
+ </genClasses>
+ <genClasses ecoreClass="static_typesystem.ecore#//DeclaredProperty">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference static_typesystem.ecore#//DeclaredProperty/type"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute static_typesystem.ecore#//DeclaredProperty/readOnly"/>
+ </genClasses>
+ <genClasses ecoreClass="static_typesystem.ecore#//DeclaredStaticProperty">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference static_typesystem.ecore#//DeclaredStaticProperty/type"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute static_typesystem.ecore#//DeclaredStaticProperty/readOnly"/>
+ </genClasses>
+ <genClasses ecoreClass="static_typesystem.ecore#//DeclaredTypeParameter">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference static_typesystem.ecore#//DeclaredTypeParameter/upperBounds"/>
+ </genClasses>
+ <genClasses ecoreClass="static_typesystem.ecore#//DeclaredParameter">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference static_typesystem.ecore#//DeclaredParameter/type"/>
+ </genClasses>
+ <genClasses ecoreClass="static_typesystem.ecore#//Model">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference static_typesystem.ecore#//Model/declarations"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference static_typesystem.ecore#//Model/functionDeclarations"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/org.eclipse.xpand3.common/plugin.properties b/plugins/org.eclipse.xpand3.common/plugin.properties
new file mode 100644
index 0000000..f2c5a27
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/plugin.properties
@@ -0,0 +1,20 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id: plugin.properties,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+
+# ====================================================================
+# To code developer:
+# Do NOT change the properties between this line and the
+# "%%% END OF TRANSLATED PROPERTIES %%%" line.
+# Make a new property name, append to the end of the file and change
+# the code to use the new property.
+# ====================================================================
+
+# ====================================================================
+# %%% END OF TRANSLATED PROPERTIES %%%
+# ====================================================================
+
+pluginName = Static_typesystem Model
+providerName = www.example.org
diff --git a/plugins/org.eclipse.xpand3.common/plugin.xml b/plugins/org.eclipse.xpand3.common/plugin.xml
new file mode 100644
index 0000000..f421c4f
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/plugin.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ <copyright>
+ </copyright>
+
+ $Id: plugin.xml,v 1.1 2008/03/17 14:39:20 jkohnlein Exp $
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri = "http://www.eclipse.org/m2t/xpand3/staticTypesystem"
+ class = "org.eclipse.xpand3.staticTypesystem.StaticTypesystemPackage"
+ genModel = "model/static_typesystem.genmodel" />
+ </extension>
+
+</plugin>
diff --git a/plugins/org.eclipse.xpand3/src/org/eclipse/xpand3/util/ClassLoaderLoaderImpl.java b/plugins/org.eclipse.xpand3.common/src/org/eclipse/xpand3/util/ClassLoaderLoaderImpl.java
index 7f9ec44..7f9ec44 100644
--- a/plugins/org.eclipse.xpand3/src/org/eclipse/xpand3/util/ClassLoaderLoaderImpl.java
+++ b/plugins/org.eclipse.xpand3.common/src/org/eclipse/xpand3/util/ClassLoaderLoaderImpl.java
diff --git a/plugins/org.eclipse.xpand3/src/org/eclipse/xpand3/util/CreateCache.java b/plugins/org.eclipse.xpand3.common/src/org/eclipse/xpand3/util/CreateCache.java
index 746ec35..746ec35 100644
--- a/plugins/org.eclipse.xpand3/src/org/eclipse/xpand3/util/CreateCache.java
+++ b/plugins/org.eclipse.xpand3.common/src/org/eclipse/xpand3/util/CreateCache.java
diff --git a/plugins/org.eclipse.xpand3/src/org/eclipse/xpand3/util/Loader.java b/plugins/org.eclipse.xpand3.common/src/org/eclipse/xpand3/util/Loader.java
index 1670f1c..1670f1c 100644
--- a/plugins/org.eclipse.xpand3/src/org/eclipse/xpand3/util/Loader.java
+++ b/plugins/org.eclipse.xpand3.common/src/org/eclipse/xpand3/util/Loader.java
diff --git a/plugins/org.eclipse.xpand3/src/org/eclipse/xpand3/util/LoaderFactory.java b/plugins/org.eclipse.xpand3.common/src/org/eclipse/xpand3/util/LoaderFactory.java
index 076f6ed..076f6ed 100644
--- a/plugins/org.eclipse.xpand3/src/org/eclipse/xpand3/util/LoaderFactory.java
+++ b/plugins/org.eclipse.xpand3.common/src/org/eclipse/xpand3/util/LoaderFactory.java
diff --git a/plugins/org.eclipse.xpand3/src/org/eclipse/xpand3/util/SyntaxConstants.java b/plugins/org.eclipse.xpand3.common/src/org/eclipse/xpand3/util/SyntaxConstants.java
index ca3dca1..ca3dca1 100644
--- a/plugins/org.eclipse.xpand3/src/org/eclipse/xpand3/util/SyntaxConstants.java
+++ b/plugins/org.eclipse.xpand3.common/src/org/eclipse/xpand3/util/SyntaxConstants.java
diff --git a/plugins/org.eclipse.xpand3/src/org/eclipse/xpand3/util/Xpand3Util.java b/plugins/org.eclipse.xpand3.common/src/org/eclipse/xpand3/util/Xpand3Util.java
index 3b59906..3b59906 100644
--- a/plugins/org.eclipse.xpand3/src/org/eclipse/xpand3/util/Xpand3Util.java
+++ b/plugins/org.eclipse.xpand3.common/src/org/eclipse/xpand3/util/Xpand3Util.java
diff --git a/plugins/org.eclipse.xpand3.common/text/description.txt b/plugins/org.eclipse.xpand3.common/text/description.txt
new file mode 100644
index 0000000..192806c
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.common/text/description.txt
@@ -0,0 +1,61 @@
+Model Static_typesystem
+
+This model description is not a real EMF artifact. It was generated by the
+org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's
+code generator can be extended.
+This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.
+
+Package staticTypesystem <http://www.eclipse.org/m2t/xpand3/staticTypesystem>
+
+ Class AbstractNamedElement
+ Attribute name : EString
+
+ Class AbstractTypeReference
+
+ Class Type -> AbstractTypeReference
+ Reference declaredType : DeclaredType<<1..1>>
+ Reference actualTypeArguments : AbstractTypeReference<<0..*>>
+
+ Class TypeVariable -> AbstractTypeReference
+ Reference declaredTypeParameter : DeclaredTypeParameter<<1..1>>
+
+ Class VoidType -> AbstractTypeReference
+
+ Class WildcardType -> AbstractTypeReference
+ Reference lowerBounds : AbstractTypeReference<<0..*>>
+ Reference upperBounds : AbstractTypeReference<<0..*>>
+
+ Class FunctionType -> AbstractTypeReference
+ Reference declaredFunction : DeclaredFunction<<1..1>>
+ Reference actualTypeArguments : AbstractTypeReference<<0..*>>
+
+ Class DeclaredType -> AbstractNamedElement
+ Reference staticProperties : DeclaredStaticProperty<<0..*>>
+ Reference properties : DeclaredProperty<<0..*>>
+ Reference declaredTypeParameters : DeclaredTypeParameter<<0..*>>
+ Reference superTypes : AbstractTypeReference<<0..*>>
+ Attribute uniqueID : EString
+ Attribute isAbstract : EBoolean
+
+ Class DeclaredFunction -> AbstractNamedElement
+ Reference declaredParameters : DeclaredParameter<<0..*>>
+ Reference declaredTypeParameters : DeclaredTypeParameter<<0..*>>
+ Reference returnType : AbstractTypeReference
+
+ Class DeclaredProperty -> AbstractNamedElement
+ Reference type : AbstractTypeReference<<1..1>>
+ Attribute readOnly : EBoolean
+
+ Class DeclaredStaticProperty -> AbstractNamedElement
+ Reference type : Type<<1..1>>
+ Attribute readOnly : EBoolean
+
+ Class DeclaredTypeParameter -> AbstractNamedElement
+ Reference upperBounds : AbstractTypeReference<<0..*>>
+
+ Class DeclaredParameter -> AbstractNamedElement
+ Reference type : AbstractTypeReference<<1..1>>
+
+ Class Model
+ Reference declarations : DeclaredType<<0..*>>
+ Reference functionDeclarations : DeclaredFunction<<0..*>>
diff --git a/plugins/org.eclipse.xpand3.parser/.classpath b/plugins/org.eclipse.xpand3.parser/.classpath
index d09b58e..3e8c368 100644
--- a/plugins/org.eclipse.xpand3.parser/.classpath
+++ b/plugins/org.eclipse.xpand3.parser/.classpath
@@ -3,6 +3,7 @@
<classpathentry kind="src" path="model"/>
<classpathentry kind="src" path="emf-gen"/>
<classpathentry kind="src" path="src-gen"/>
+ <classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="output" path="bin"/>
diff --git a/plugins/org.eclipse.xpand3.parser/.project b/plugins/org.eclipse.xpand3.parser/.project
index b9f7c25..8dea5c6 100644
--- a/plugins/org.eclipse.xpand3.parser/.project
+++ b/plugins/org.eclipse.xpand3.parser/.project
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
- <name>org.eclipse.xpand3.parser</name>
+ <name>org.eclipse.xpand3.frontend</name>
<comment></comment>
<projects>
</projects>
diff --git a/plugins/org.eclipse.xpand3.parser/META-INF/MANIFEST.MF b/plugins/org.eclipse.xpand3.parser/META-INF/MANIFEST.MF
index d582124..1f9f746 100644
--- a/plugins/org.eclipse.xpand3.parser/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.xpand3.parser/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.xpand3.parser;singleton:=true
+Bundle-SymbolicName: org.eclipse.xpand3.frontend;singleton:=true
Bundle-Version: 1.0.0
Bundle-ClassPath: .
Bundle-Vendor: %providerName
@@ -9,12 +9,32 @@ Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Require-Bundle: org.eclipse.core.runtime,
org.eclipse.emf.ecore;visibility:=reexport,
- org.eclipse.tmf.common;resolution:=optional;visibility:=reexport,
+ org.eclipse.tmf.common;resolution:=optional,
org.eclipse.tmf.common.generator;bundle-version="1.0.0";resolution:=optional,
- org.eclipse.tmf.common.runtime;bundle-version="1.0.0";visibility:=reexport
+ org.eclipse.tmf.common.runtime;bundle-version="1.0.0";visibility:=reexport,
+ org.eclipse.xpand3.common
Eclipse-LazyStart: true
-Export-Package: org.eclipse.xpand3.internal.parser.xpand3node,
- org.eclipse.xpand3.internal.parser.xpand3node.impl,
- org.eclipse.xpand3.internal.parser.xpand3node.util,
- org.eclipse.xpand3.internal.parser.xpand3node.validation,
- org.eclipse.xpand3.parser
+Export-Package: org.eclipse.xpand3,
+ org.eclipse.xpand3.ast,
+ org.eclipse.xpand3.declaration,
+ org.eclipse.xpand3.declaration.impl,
+ org.eclipse.xpand3.declaration.util,
+ org.eclipse.xpand3.declaration.validation,
+ org.eclipse.xpand3.expression,
+ org.eclipse.xpand3.expression.impl,
+ org.eclipse.xpand3.expression.util,
+ org.eclipse.xpand3.expression.validation,
+ org.eclipse.xpand3.impl,
+ org.eclipse.xpand3.internal.frontend.node2ast,
+ org.eclipse.xpand3.internal.frontend.parser;x-friends:="org.eclipse.xpand3.frontend.tests",
+ org.eclipse.xpand3.internal.frontend.parser.xpand3node;x-friends:="org.eclipse.xpand3.frontend.tests",
+ org.eclipse.xpand3.internal.frontend.parser.xpand3node.impl;x-friends:="org.eclipse.xpand3.frontend.tests",
+ org.eclipse.xpand3.internal.frontend.parser.xpand3node.util;x-friends:="org.eclipse.xpand3.frontend.tests",
+ org.eclipse.xpand3.internal.frontend.parser.xpand3node.validation;x-friends:="org.eclipse.xpand3.frontend.tests",
+ org.eclipse.xpand3.parser,
+ org.eclipse.xpand3.statement,
+ org.eclipse.xpand3.statement.impl,
+ org.eclipse.xpand3.statement.util,
+ org.eclipse.xpand3.statement.validation,
+ org.eclipse.xpand3.util,
+ org.eclipse.xpand3.validation
diff --git a/plugins/org.eclipse.xpand3.parser/TODO.txt b/plugins/org.eclipse.xpand3.parser/TODO.txt
new file mode 100644
index 0000000..6d0911b
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/TODO.txt
@@ -0,0 +1,10 @@
+TODO
+- Remaining cases in Node2AstTransformer
+- Whitespace handling
+- node size
+- incremental parsing
+- profiling and optimization
+- Java mapping
+
+DONE
+- "create" identifier
diff --git a/plugins/org.eclipse.xpand3.parser/build.properties b/plugins/org.eclipse.xpand3.parser/build.properties
index 6c87698..e58dcbd 100644
--- a/plugins/org.eclipse.xpand3.parser/build.properties
+++ b/plugins/org.eclipse.xpand3.parser/build.properties
@@ -2,7 +2,7 @@
# <copyright>
# </copyright>
#
-# $Id: build.properties,v 1.2 2008/03/17 11:33:05 jkohnlein Exp $
+# $Id: build.properties,v 1.3 2008/03/17 14:39:07 jkohnlein Exp $
bin.includes = .,\
model/,\
@@ -12,5 +12,6 @@ bin.includes = .,\
jars.compile.order = .
source.. = src-gen/,\
emf-gen/,\
- model
+ model/,\
+ src/
output.. = bin/
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/DeclaredParameter.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/DeclaredParameter.java
new file mode 100644
index 0000000..b5d12d0
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/DeclaredParameter.java
@@ -0,0 +1,80 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DeclaredParameter.java,v 1.1 2008/03/17 14:39:13 jkohnlein Exp $
+ */
+package org.eclipse.xpand3;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Declared Parameter</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.xpand3.DeclaredParameter#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.xpand3.DeclaredParameter#getType <em>Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.xpand3.Xpand3Package#getDeclaredParameter()
+ * @model
+ * @generated
+ */
+public interface DeclaredParameter extends SyntaxElement {
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' containment reference.
+ * @see #setName(Identifier)
+ * @see org.eclipse.xpand3.Xpand3Package#getDeclaredParameter_Name()
+ * @model containment="true"
+ * @generated
+ */
+ Identifier getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.xpand3.DeclaredParameter#getName <em>Name</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' containment reference.
+ * @see #getName()
+ * @generated
+ */
+ void setName(Identifier value);
+
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type</em>' containment reference.
+ * @see #setType(Identifier)
+ * @see org.eclipse.xpand3.Xpand3Package#getDeclaredParameter_Type()
+ * @model containment="true"
+ * @generated
+ */
+ Identifier getType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.xpand3.DeclaredParameter#getType <em>Type</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Type</em>' containment reference.
+ * @see #getType()
+ * @generated
+ */
+ void setType(Identifier value);
+
+} // DeclaredParameter
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/File.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/File.java
new file mode 100644
index 0000000..ffa3a49
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/File.java
@@ -0,0 +1,63 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: File.java,v 1.1 2008/03/17 14:39:13 jkohnlein Exp $
+ */
+package org.eclipse.xpand3;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.xpand3.declaration.AbstractDeclaration;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>File</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.xpand3.File#getImports <em>Imports</em>}</li>
+ * <li>{@link org.eclipse.xpand3.File#getDeclarations <em>Declarations</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.xpand3.Xpand3Package#getFile()
+ * @model
+ * @generated
+ */
+public interface File extends SyntaxElement {
+ /**
+ * Returns the value of the '<em><b>Imports</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.xpand3.ImportStatement}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Imports</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Imports</em>' containment reference list.
+ * @see org.eclipse.xpand3.Xpand3Package#getFile_Imports()
+ * @model containment="true"
+ * @generated
+ */
+ EList<ImportStatement> getImports();
+
+ /**
+ * Returns the value of the '<em><b>Declarations</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.xpand3.declaration.AbstractDeclaration}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Declarations</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Declarations</em>' containment reference list.
+ * @see org.eclipse.xpand3.Xpand3Package#getFile_Declarations()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ EList<AbstractDeclaration> getDeclarations();
+
+} // File
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/Identifier.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/Identifier.java
new file mode 100644
index 0000000..31749ae
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/Identifier.java
@@ -0,0 +1,53 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Identifier.java,v 1.1 2008/03/17 14:39:13 jkohnlein Exp $
+ */
+package org.eclipse.xpand3;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Identifier</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.xpand3.Identifier#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.xpand3.Xpand3Package#getIdentifier()
+ * @model
+ * @generated
+ */
+public interface Identifier extends SyntaxElement {
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Value</em>' attribute.
+ * @see #setValue(String)
+ * @see org.eclipse.xpand3.Xpand3Package#getIdentifier_Value()
+ * @model
+ * @generated
+ */
+ String getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.xpand3.Identifier#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(String value);
+
+} // Identifier
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/ImportStatement.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/ImportStatement.java
new file mode 100644
index 0000000..6620420
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/ImportStatement.java
@@ -0,0 +1,80 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ImportStatement.java,v 1.1 2008/03/17 14:39:13 jkohnlein Exp $
+ */
+package org.eclipse.xpand3;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Import Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.xpand3.ImportStatement#getImportedId <em>Imported Id</em>}</li>
+ * <li>{@link org.eclipse.xpand3.ImportStatement#isExported <em>Exported</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.xpand3.Xpand3Package#getImportStatement()
+ * @model
+ * @generated
+ */
+public interface ImportStatement extends SyntaxElement {
+ /**
+ * Returns the value of the '<em><b>Imported Id</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Imported Id</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Imported Id</em>' containment reference.
+ * @see #setImportedId(Identifier)
+ * @see org.eclipse.xpand3.Xpand3Package#getImportStatement_ImportedId()
+ * @model containment="true"
+ * @generated
+ */
+ Identifier getImportedId();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.xpand3.ImportStatement#getImportedId <em>Imported Id</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Imported Id</em>' containment reference.
+ * @see #getImportedId()
+ * @generated
+ */
+ void setImportedId(Identifier value);
+
+ /**
+ * Returns the value of the '<em><b>Exported</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Exported</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Exported</em>' attribute.
+ * @see #setExported(boolean)
+ * @see org.eclipse.xpand3.Xpand3Package#getImportStatement_Exported()
+ * @model
+ * @generated
+ */
+ boolean isExported();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.xpand3.ImportStatement#isExported <em>Exported</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Exported</em>' attribute.
+ * @see #isExported()
+ * @generated
+ */
+ void setExported(boolean value);
+
+} // ImportStatement
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/SyntaxElement.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/SyntaxElement.java
new file mode 100644
index 0000000..dcf02f7
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/SyntaxElement.java
@@ -0,0 +1,135 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SyntaxElement.java,v 1.1 2008/03/17 14:39:13 jkohnlein Exp $
+ */
+package org.eclipse.xpand3;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Syntax Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.xpand3.SyntaxElement#getLine <em>Line</em>}</li>
+ * <li>{@link org.eclipse.xpand3.SyntaxElement#getStart <em>Start</em>}</li>
+ * <li>{@link org.eclipse.xpand3.SyntaxElement#getEnd <em>End</em>}</li>
+ * <li>{@link org.eclipse.xpand3.SyntaxElement#getFileName <em>File Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.xpand3.Xpand3Package#getSyntaxElement()
+ * @model abstract="true"
+ * @generated
+ */
+public interface SyntaxElement extends EObject {
+ /**
+ * Returns the value of the '<em><b>Line</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Line</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Line</em>' attribute.
+ * @see #setLine(int)
+ * @see org.eclipse.xpand3.Xpand3Package#getSyntaxElement_Line()
+ * @model
+ * @generated
+ */
+ int getLine();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.xpand3.SyntaxElement#getLine <em>Line</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Line</em>' attribute.
+ * @see #getLine()
+ * @generated
+ */
+ void setLine(int value);
+
+ /**
+ * Returns the value of the '<em><b>Start</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Start</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Start</em>' attribute.
+ * @see #setStart(int)
+ * @see org.eclipse.xpand3.Xpand3Package#getSyntaxElement_Start()
+ * @model
+ * @generated
+ */
+ int getStart();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.xpand3.SyntaxElement#getStart <em>Start</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Start</em>' attribute.
+ * @see #getStart()
+ * @generated
+ */
+ void setStart(int value);
+
+ /**
+ * Returns the value of the '<em><b>End</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>End</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>End</em>' attribute.
+ * @see #setEnd(int)
+ * @see org.eclipse.xpand3.Xpand3Package#getSyntaxElement_End()
+ * @model
+ * @generated
+ */
+ int getEnd();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.xpand3.SyntaxElement#getEnd <em>End</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>End</em>' attribute.
+ * @see #getEnd()
+ * @generated
+ */
+ void setEnd(int value);
+
+ /**
+ * Returns the value of the '<em><b>File Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>File Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>File Name</em>' attribute.
+ * @see #setFileName(String)
+ * @see org.eclipse.xpand3.Xpand3Package#getSyntaxElement_FileName()
+ * @model
+ * @generated
+ */
+ String getFileName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.xpand3.SyntaxElement#getFileName <em>File Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>File Name</em>' attribute.
+ * @see #getFileName()
+ * @generated
+ */
+ void setFileName(String value);
+
+} // SyntaxElement
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/Xpand3Factory.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/Xpand3Factory.java
new file mode 100644
index 0000000..1e41426
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/Xpand3Factory.java
@@ -0,0 +1,73 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Xpand3Factory.java,v 1.1 2008/03/17 14:39:13 jkohnlein Exp $
+ */
+package org.eclipse.xpand3;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.Xpand3Package
+ * @generated
+ */
+public interface Xpand3Factory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Xpand3Factory eINSTANCE = org.eclipse.xpand3.impl.Xpand3FactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>File</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>File</em>'.
+ * @generated
+ */
+ File createFile();
+
+ /**
+ * Returns a new object of class '<em>Import Statement</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Import Statement</em>'.
+ * @generated
+ */
+ ImportStatement createImportStatement();
+
+ /**
+ * Returns a new object of class '<em>Identifier</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Identifier</em>'.
+ * @generated
+ */
+ Identifier createIdentifier();
+
+ /**
+ * Returns a new object of class '<em>Declared Parameter</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Declared Parameter</em>'.
+ * @generated
+ */
+ DeclaredParameter createDeclaredParameter();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ Xpand3Package getXpand3Package();
+
+} //Xpand3Factory
diff --git a/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/Xpand3Package.java b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/Xpand3Package.java
new file mode 100644
index 0000000..893553a
--- /dev/null
+++ b/plugins/org.eclipse.xpand3.parser/emf-gen/org/eclipse/xpand3/Xpand3Package.java
@@ -0,0 +1,734 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Xpand3Package.java,v 1.1 2008/03/17 14:39:13 jkohnlein Exp $
+ */
+package org.eclipse.xpand3;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.Xpand3Factory
+ * @model kind="package"
+ * @generated
+ */
+public interface Xpand3Package extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "xpand3";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/m2t/xpand/xpand3";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "xpand3";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Xpand3Package eINSTANCE = org.eclipse.xpand3.impl.Xpand3PackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.xpand3.impl.SyntaxElementImpl <em>Syntax Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.impl.SyntaxElementImpl
+ * @see org.eclipse.xpand3.impl.Xpand3PackageImpl#getSyntaxElement()
+ * @generated
+ */
+ int SYNTAX_ELEMENT = 0;
+
+ /**
+ * The feature id for the '<em><b>Line</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SYNTAX_ELEMENT__LINE = 0;
+
+ /**
+ * The feature id for the '<em><b>Start</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SYNTAX_ELEMENT__START = 1;
+
+ /**
+ * The feature id for the '<em><b>End</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SYNTAX_ELEMENT__END = 2;
+
+ /**
+ * The feature id for the '<em><b>File Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SYNTAX_ELEMENT__FILE_NAME = 3;
+
+ /**
+ * The number of structural features of the '<em>Syntax Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SYNTAX_ELEMENT_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.xpand3.impl.FileImpl <em>File</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.impl.FileImpl
+ * @see org.eclipse.xpand3.impl.Xpand3PackageImpl#getFile()
+ * @generated
+ */
+ int FILE = 1;
+
+ /**
+ * The feature id for the '<em><b>Line</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILE__LINE = SYNTAX_ELEMENT__LINE;
+
+ /**
+ * The feature id for the '<em><b>Start</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILE__START = SYNTAX_ELEMENT__START;
+
+ /**
+ * The feature id for the '<em><b>End</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILE__END = SYNTAX_ELEMENT__END;
+
+ /**
+ * The feature id for the '<em><b>File Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILE__FILE_NAME = SYNTAX_ELEMENT__FILE_NAME;
+
+ /**
+ * The feature id for the '<em><b>Imports</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILE__IMPORTS = SYNTAX_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Declarations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILE__DECLARATIONS = SYNTAX_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>File</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILE_FEATURE_COUNT = SYNTAX_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.xpand3.impl.ImportStatementImpl <em>Import Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.impl.ImportStatementImpl
+ * @see org.eclipse.xpand3.impl.Xpand3PackageImpl#getImportStatement()
+ * @generated
+ */
+ int IMPORT_STATEMENT = 2;
+
+ /**
+ * The feature id for the '<em><b>Line</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPORT_STATEMENT__LINE = SYNTAX_ELEMENT__LINE;
+
+ /**
+ * The feature id for the '<em><b>Start</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPORT_STATEMENT__START = SYNTAX_ELEMENT__START;
+
+ /**
+ * The feature id for the '<em><b>End</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPORT_STATEMENT__END = SYNTAX_ELEMENT__END;
+
+ /**
+ * The feature id for the '<em><b>File Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPORT_STATEMENT__FILE_NAME = SYNTAX_ELEMENT__FILE_NAME;
+
+ /**
+ * The feature id for the '<em><b>Imported Id</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPORT_STATEMENT__IMPORTED_ID = SYNTAX_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Exported</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPORT_STATEMENT__EXPORTED = SYNTAX_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Import Statement</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IMPORT_STATEMENT_FEATURE_COUNT = SYNTAX_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.xpand3.impl.IdentifierImpl <em>Identifier</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xpand3.impl.IdentifierImpl
+ * @see org.eclipse.xpand3.impl.Xpand3PackageImpl#getIdentifier()
+ * @generated
+ */
+ int IDENTIFIER = 3;
+
+ /**
+ * The feature id for the '<em><b>Line</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IDENTIFIER__LINE = SYNTAX_ELEMENT__LINE;
+
+ /**
+ * The feature id for the '<em><b>Start</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IDENTIFIER__START = SYNTAX_ELEMENT__START;
+
+ /**
+ * The feature id for the '<em><b>End</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated<