Loading de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/common/TTCN3ScopeHelper.xtend +38 −5 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ package de.ugoe.cs.swe.common import de.ugoe.cs.swe.tTCN3.AltstepDef import de.ugoe.cs.swe.tTCN3.AltstepLocalDef import de.ugoe.cs.swe.tTCN3.AltstepLocalDefList import de.ugoe.cs.swe.tTCN3.BaseTemplate import de.ugoe.cs.swe.tTCN3.ComponentDef import de.ugoe.cs.swe.tTCN3.ComponentDefList import de.ugoe.cs.swe.tTCN3.ConstDef Loading @@ -11,12 +12,16 @@ import de.ugoe.cs.swe.tTCN3.EnumDef import de.ugoe.cs.swe.tTCN3.EnumDefNamed import de.ugoe.cs.swe.tTCN3.Enumeration import de.ugoe.cs.swe.tTCN3.EnumerationList import de.ugoe.cs.swe.tTCN3.ExtConstDef import de.ugoe.cs.swe.tTCN3.FormalTemplatePar import de.ugoe.cs.swe.tTCN3.FormalValuePar import de.ugoe.cs.swe.tTCN3.FunctionBodyDef import de.ugoe.cs.swe.tTCN3.FunctionDef import de.ugoe.cs.swe.tTCN3.FunctionDefOrStatement import de.ugoe.cs.swe.tTCN3.FunctionFormalPar import de.ugoe.cs.swe.tTCN3.FunctionFormalParList import de.ugoe.cs.swe.tTCN3.GroupDef import de.ugoe.cs.swe.tTCN3.IdentifierObjectList import de.ugoe.cs.swe.tTCN3.Initial import de.ugoe.cs.swe.tTCN3.ModuleControlPart import de.ugoe.cs.swe.tTCN3.ModuleDefinition Loading Loading @@ -59,14 +64,10 @@ import de.ugoe.cs.swe.tTCN3.VarList import java.util.ArrayList import java.util.List import org.eclipse.emf.ecore.EObject import org.eclipse.xtext.EcoreUtil2 import org.eclipse.xtext.scoping.IScope import static org.eclipse.xtext.scoping.Scopes.* import de.ugoe.cs.swe.tTCN3.ExtConstDef import de.ugoe.cs.swe.tTCN3.IdentifierObjectList import de.ugoe.cs.swe.tTCN3.BaseTemplate import de.ugoe.cs.swe.tTCN3.FunctionDefOrStatement import de.ugoe.cs.swe.tTCN3.FunctionBodyDef class TTCN3ScopeHelper { Loading Loading @@ -301,6 +302,38 @@ class TTCN3ScopeHelper { } } def static void scopeFunctionParameter(FunctionDef function, ArrayList<EObject> list) { if (function.parameterList !== null) { for (FunctionFormalPar p : function.parameterList.params) { if (p.value !== null) { if (p.value.type.ref !== null) { var type = getReferencedType(p.value.type.ref) scopeReferencedEnum(type, list) } } else if (p.template !== null) { if (p.template.type.ref !== null) { var type = getReferencedType(p.template.type.ref) scopeReferencedEnum(type, list) } } } } } def static void scopeReferencedEnum(ReferencedType type, ArrayList<EObject> list) { if (type instanceof EnumDefNamed) { list.addAll(type.list.enums) } else if (type instanceof SubTypeDefNamed) { var original = findOriginalType(type) if (original instanceof EnumDefNamed) { for (ReferencedValue v : EcoreUtil2.getAllContentsOfType(type.spec, ReferencedValue)) { list.add(getReferencedValue(v)) } } } } def static void scopeTemplateOrValueFormalParList(TemplateOrValueFormalParList paramsList, ArrayList<EObject> list) { var RefValue value; Loading de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/scoping/TTCN3ScopeProvider.xtend +6 −1 Original line number Diff line number Diff line Loading @@ -123,7 +123,9 @@ class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { } } else if (fieldRef instanceof UnionFieldDef) { if (fieldRef.type !== null && fieldRef.type.ref !== null) { fieldRef.type.ref.scopeReferencedFields var l = fieldRef.type.ref.scopeReferencedFields //why was this not auto returning? return l } else if (fieldRef.nestedType !== null) { if (fieldRef.nestedType !== null) { val nType = fieldRef.nestedType.findUsedType Loading Loading @@ -933,6 +935,9 @@ class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { scopeFor(list, value.eContainer.scope_ReferencedValueHead(ref)) } else if (value instanceof FunctionInstance) { // TODO: implement this if (value.ref instanceof FunctionDef) { (value.ref as FunctionDef).scopeFunctionParameter(list) } scopeFor(list, value.eContainer.scope_ReferencedValueHead(ref)) } else { scopeFor(list, value.eContainer.scope_ReferencedValueHead(ref)) Loading Loading
de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/common/TTCN3ScopeHelper.xtend +38 −5 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ package de.ugoe.cs.swe.common import de.ugoe.cs.swe.tTCN3.AltstepDef import de.ugoe.cs.swe.tTCN3.AltstepLocalDef import de.ugoe.cs.swe.tTCN3.AltstepLocalDefList import de.ugoe.cs.swe.tTCN3.BaseTemplate import de.ugoe.cs.swe.tTCN3.ComponentDef import de.ugoe.cs.swe.tTCN3.ComponentDefList import de.ugoe.cs.swe.tTCN3.ConstDef Loading @@ -11,12 +12,16 @@ import de.ugoe.cs.swe.tTCN3.EnumDef import de.ugoe.cs.swe.tTCN3.EnumDefNamed import de.ugoe.cs.swe.tTCN3.Enumeration import de.ugoe.cs.swe.tTCN3.EnumerationList import de.ugoe.cs.swe.tTCN3.ExtConstDef import de.ugoe.cs.swe.tTCN3.FormalTemplatePar import de.ugoe.cs.swe.tTCN3.FormalValuePar import de.ugoe.cs.swe.tTCN3.FunctionBodyDef import de.ugoe.cs.swe.tTCN3.FunctionDef import de.ugoe.cs.swe.tTCN3.FunctionDefOrStatement import de.ugoe.cs.swe.tTCN3.FunctionFormalPar import de.ugoe.cs.swe.tTCN3.FunctionFormalParList import de.ugoe.cs.swe.tTCN3.GroupDef import de.ugoe.cs.swe.tTCN3.IdentifierObjectList import de.ugoe.cs.swe.tTCN3.Initial import de.ugoe.cs.swe.tTCN3.ModuleControlPart import de.ugoe.cs.swe.tTCN3.ModuleDefinition Loading Loading @@ -59,14 +64,10 @@ import de.ugoe.cs.swe.tTCN3.VarList import java.util.ArrayList import java.util.List import org.eclipse.emf.ecore.EObject import org.eclipse.xtext.EcoreUtil2 import org.eclipse.xtext.scoping.IScope import static org.eclipse.xtext.scoping.Scopes.* import de.ugoe.cs.swe.tTCN3.ExtConstDef import de.ugoe.cs.swe.tTCN3.IdentifierObjectList import de.ugoe.cs.swe.tTCN3.BaseTemplate import de.ugoe.cs.swe.tTCN3.FunctionDefOrStatement import de.ugoe.cs.swe.tTCN3.FunctionBodyDef class TTCN3ScopeHelper { Loading Loading @@ -301,6 +302,38 @@ class TTCN3ScopeHelper { } } def static void scopeFunctionParameter(FunctionDef function, ArrayList<EObject> list) { if (function.parameterList !== null) { for (FunctionFormalPar p : function.parameterList.params) { if (p.value !== null) { if (p.value.type.ref !== null) { var type = getReferencedType(p.value.type.ref) scopeReferencedEnum(type, list) } } else if (p.template !== null) { if (p.template.type.ref !== null) { var type = getReferencedType(p.template.type.ref) scopeReferencedEnum(type, list) } } } } } def static void scopeReferencedEnum(ReferencedType type, ArrayList<EObject> list) { if (type instanceof EnumDefNamed) { list.addAll(type.list.enums) } else if (type instanceof SubTypeDefNamed) { var original = findOriginalType(type) if (original instanceof EnumDefNamed) { for (ReferencedValue v : EcoreUtil2.getAllContentsOfType(type.spec, ReferencedValue)) { list.add(getReferencedValue(v)) } } } } def static void scopeTemplateOrValueFormalParList(TemplateOrValueFormalParList paramsList, ArrayList<EObject> list) { var RefValue value; Loading
de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/scoping/TTCN3ScopeProvider.xtend +6 −1 Original line number Diff line number Diff line Loading @@ -123,7 +123,9 @@ class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { } } else if (fieldRef instanceof UnionFieldDef) { if (fieldRef.type !== null && fieldRef.type.ref !== null) { fieldRef.type.ref.scopeReferencedFields var l = fieldRef.type.ref.scopeReferencedFields //why was this not auto returning? return l } else if (fieldRef.nestedType !== null) { if (fieldRef.nestedType !== null) { val nType = fieldRef.nestedType.findUsedType Loading Loading @@ -933,6 +935,9 @@ class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { scopeFor(list, value.eContainer.scope_ReferencedValueHead(ref)) } else if (value instanceof FunctionInstance) { // TODO: implement this if (value.ref instanceof FunctionDef) { (value.ref as FunctionDef).scopeFunctionParameter(list) } scopeFor(list, value.eContainer.scope_ReferencedValueHead(ref)) } else { scopeFor(list, value.eContainer.scope_ReferencedValueHead(ref)) Loading