Loading de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/scoping/TTCN3ScopeProvider.xtend +22 −7 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ import de.ugoe.cs.swe.tTCN3.ComponentDef import de.ugoe.cs.swe.tTCN3.ComponentDefList import de.ugoe.cs.swe.tTCN3.ControlStatementOrDefList import de.ugoe.cs.swe.tTCN3.EnumDefNamed import de.ugoe.cs.swe.tTCN3.FieldExpressionSpec import de.ugoe.cs.swe.tTCN3.FieldSpec import de.ugoe.cs.swe.tTCN3.ForStatement import de.ugoe.cs.swe.tTCN3.FunctionDef Loading @@ -18,15 +19,19 @@ import de.ugoe.cs.swe.tTCN3.ModuleDefinitionsList import de.ugoe.cs.swe.tTCN3.ModuleParDef import de.ugoe.cs.swe.tTCN3.PortElement import de.ugoe.cs.swe.tTCN3.PortOrAny import de.ugoe.cs.swe.tTCN3.PortRef import de.ugoe.cs.swe.tTCN3.RecordDefNamed import de.ugoe.cs.swe.tTCN3.RecordOfDefNamed import de.ugoe.cs.swe.tTCN3.ReferencedType import de.ugoe.cs.swe.tTCN3.ReferencedValue import de.ugoe.cs.swe.tTCN3.SendStatement import de.ugoe.cs.swe.tTCN3.SetDefNamed import de.ugoe.cs.swe.tTCN3.SetOfDefNamed import de.ugoe.cs.swe.tTCN3.SignatureDef import de.ugoe.cs.swe.tTCN3.SingleVarInstance import de.ugoe.cs.swe.tTCN3.StatementBlock import de.ugoe.cs.swe.tTCN3.StructDefBody import de.ugoe.cs.swe.tTCN3.StructFieldDef import de.ugoe.cs.swe.tTCN3.StructuredTypeDef import de.ugoe.cs.swe.tTCN3.TTCN3Module import de.ugoe.cs.swe.tTCN3.TemplateDef Loading @@ -34,6 +39,7 @@ import de.ugoe.cs.swe.tTCN3.TestcaseDef import de.ugoe.cs.swe.tTCN3.TimerRefOrAny import de.ugoe.cs.swe.tTCN3.TypeDef import de.ugoe.cs.swe.tTCN3.UnionDefNamed import de.ugoe.cs.swe.tTCN3.VarInstance import java.util.ArrayList import org.eclipse.emf.ecore.EObject import org.eclipse.emf.ecore.EReference Loading @@ -43,12 +49,6 @@ import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider import static org.eclipse.xtext.scoping.Scopes.* import static extension de.ugoe.cs.swe.common.TTCN3ScopeHelper.* import de.ugoe.cs.swe.tTCN3.FieldExpressionSpec import de.ugoe.cs.swe.tTCN3.SendStatement import de.ugoe.cs.swe.tTCN3.PortRef import de.ugoe.cs.swe.tTCN3.VarInstance import de.ugoe.cs.swe.tTCN3.StructDefBody import de.ugoe.cs.swe.tTCN3.StructFieldDef class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { Loading Loading @@ -154,8 +154,23 @@ class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { def IScope scope_FieldSpec_ref(FieldSpec spec, EReference ref) { val template = spec.findDesiredParent(typeof(TemplateDef)) as TemplateDef val variable = spec.findDesiredParent(typeof(VarInstance)) as VarInstance val inner = newArrayList if (template != null) { template.templateFieldScope(inner) } else if (variable != null && variable.type.ref != null) { val type = variable.type.ref if (type instanceof RecordDefNamed) { type.body.scopeFieldsStructDefBody(inner) } else if (type instanceof SetDefNamed) { type.body.scopeFieldsStructDefBody(inner) } else if (type instanceof RecordOfDefNamed) { //TODO: implement! } else if (type instanceof SetOfDefNamed) { //TODO: implement! } } scopeFor(inner) } Loading Loading
de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/scoping/TTCN3ScopeProvider.xtend +22 −7 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ import de.ugoe.cs.swe.tTCN3.ComponentDef import de.ugoe.cs.swe.tTCN3.ComponentDefList import de.ugoe.cs.swe.tTCN3.ControlStatementOrDefList import de.ugoe.cs.swe.tTCN3.EnumDefNamed import de.ugoe.cs.swe.tTCN3.FieldExpressionSpec import de.ugoe.cs.swe.tTCN3.FieldSpec import de.ugoe.cs.swe.tTCN3.ForStatement import de.ugoe.cs.swe.tTCN3.FunctionDef Loading @@ -18,15 +19,19 @@ import de.ugoe.cs.swe.tTCN3.ModuleDefinitionsList import de.ugoe.cs.swe.tTCN3.ModuleParDef import de.ugoe.cs.swe.tTCN3.PortElement import de.ugoe.cs.swe.tTCN3.PortOrAny import de.ugoe.cs.swe.tTCN3.PortRef import de.ugoe.cs.swe.tTCN3.RecordDefNamed import de.ugoe.cs.swe.tTCN3.RecordOfDefNamed import de.ugoe.cs.swe.tTCN3.ReferencedType import de.ugoe.cs.swe.tTCN3.ReferencedValue import de.ugoe.cs.swe.tTCN3.SendStatement import de.ugoe.cs.swe.tTCN3.SetDefNamed import de.ugoe.cs.swe.tTCN3.SetOfDefNamed import de.ugoe.cs.swe.tTCN3.SignatureDef import de.ugoe.cs.swe.tTCN3.SingleVarInstance import de.ugoe.cs.swe.tTCN3.StatementBlock import de.ugoe.cs.swe.tTCN3.StructDefBody import de.ugoe.cs.swe.tTCN3.StructFieldDef import de.ugoe.cs.swe.tTCN3.StructuredTypeDef import de.ugoe.cs.swe.tTCN3.TTCN3Module import de.ugoe.cs.swe.tTCN3.TemplateDef Loading @@ -34,6 +39,7 @@ import de.ugoe.cs.swe.tTCN3.TestcaseDef import de.ugoe.cs.swe.tTCN3.TimerRefOrAny import de.ugoe.cs.swe.tTCN3.TypeDef import de.ugoe.cs.swe.tTCN3.UnionDefNamed import de.ugoe.cs.swe.tTCN3.VarInstance import java.util.ArrayList import org.eclipse.emf.ecore.EObject import org.eclipse.emf.ecore.EReference Loading @@ -43,12 +49,6 @@ import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider import static org.eclipse.xtext.scoping.Scopes.* import static extension de.ugoe.cs.swe.common.TTCN3ScopeHelper.* import de.ugoe.cs.swe.tTCN3.FieldExpressionSpec import de.ugoe.cs.swe.tTCN3.SendStatement import de.ugoe.cs.swe.tTCN3.PortRef import de.ugoe.cs.swe.tTCN3.VarInstance import de.ugoe.cs.swe.tTCN3.StructDefBody import de.ugoe.cs.swe.tTCN3.StructFieldDef class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { Loading Loading @@ -154,8 +154,23 @@ class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { def IScope scope_FieldSpec_ref(FieldSpec spec, EReference ref) { val template = spec.findDesiredParent(typeof(TemplateDef)) as TemplateDef val variable = spec.findDesiredParent(typeof(VarInstance)) as VarInstance val inner = newArrayList if (template != null) { template.templateFieldScope(inner) } else if (variable != null && variable.type.ref != null) { val type = variable.type.ref if (type instanceof RecordDefNamed) { type.body.scopeFieldsStructDefBody(inner) } else if (type instanceof SetDefNamed) { type.body.scopeFieldsStructDefBody(inner) } else if (type instanceof RecordOfDefNamed) { //TODO: implement! } else if (type instanceof SetOfDefNamed) { //TODO: implement! } } scopeFor(inner) } Loading