Commit eae9831d authored by Philip Makedonski's avatar Philip Makedonski
Browse files

+ scoping improvements for tdlan



Change-Id: Iefe475a698938a6d893bd4d68aaf68bd814933fd
Signed-off-by: default avatarmakedonski <makedonski@informatik.uni-goettingen.de>
parent 5932c4d9
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -123,12 +123,24 @@ public class TDLan2ScopeProvider extends AbstractDeclarativeScopeProvider {
					if (((DataInstanceUse)context.eContainer()).getDataInstance() instanceof StructuredDataInstance) {
						IScope scope = Scopes.scopeFor(((StructuredDataType)((StructuredDataInstance)((DataInstanceUse)context.eContainer()).getDataInstance()).getDataType()).getMember());
						return scope;
					} else if (context.eContainer().eContainer() instanceof MemberAssignment) {
						IScope scope = Scopes.scopeFor(((StructuredDataType)((MemberAssignment)context.eContainer().eContainer()).getMember().getDataType()).getMember());
						return scope;
					} else if (((DataInstanceUse)context.eContainer()).getDataType() instanceof StructuredDataType) {
						IScope scope = Scopes.scopeFor(((StructuredDataType)((DataInstanceUse)context.eContainer()).getDataType()).getMember());
						return scope;
					} else if (context.eContainer().eContainer() instanceof ParameterBinding) {
						IScope scope = Scopes.scopeFor(((StructuredDataType)((ParameterBinding)context.eContainer().eContainer()).getParameter().getDataType()).getMember());
						return scope;
					}
				} else if (context.eContainer() instanceof FunctionCall) {
//					if (((FunctionCall)context.eContainer()).getFunction().get instanceof StructuredDataInstance) {
						IScope scope = Scopes.scopeFor(((FunctionCall)context.eContainer()).getFunction().getFormalParameter());
						return scope;
//					}
				} else if (context.eContainer() instanceof FunctionCall) {
					IScope scope = Scopes.scopeFor(((FunctionCall)context.eContainer()).getFunction().getFormalParameter());
					return scope;
				}
			} else if (context instanceof MemberReference) {
				if (((DataUse)context.eContainer()).getReduction().indexOf(context)>0) {