Loading de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/scoping/TTCN3ScopeProvider.xtend +28 −3 Original line number Diff line number Diff line Loading @@ -46,6 +46,9 @@ 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 @@ -158,9 +161,31 @@ class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { def IScope scope_FieldExpressionSpec_fieldRef(FieldExpressionSpec field, EReference ref) { val template = field.findDesiredParent(typeof(TemplateDef)) as TemplateDef val inner = newArrayList template.templateFieldScope(inner) scopeFor(inner) val variable = field.findDesiredParent(typeof(VarInstance)) as VarInstance val list = newArrayList if (template != null) { template.templateFieldScope(list) } if (variable != null && variable.type.ref != null) { val type = variable.type.ref if (type instanceof RecordDefNamed) { type.body.scopeFieldsStructDefBody(list) } else if (type instanceof SetDefNamed) { type.body.scopeFieldsStructDefBody(list) } else if (type instanceof RecordOfDefNamed) { //TODO: implement! } else if (type instanceof SetOfDefNamed) { //TODO: implement! } } scopeFor(list) } def private void scopeFieldsStructDefBody(StructDefBody body, ArrayList<EObject> list) { for (StructFieldDef f : body.defs) { list.add(f) } } def private void templateFieldScope(TemplateDef template, ArrayList<EObject> list) { Loading Loading
de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/scoping/TTCN3ScopeProvider.xtend +28 −3 Original line number Diff line number Diff line Loading @@ -46,6 +46,9 @@ 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 @@ -158,9 +161,31 @@ class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { def IScope scope_FieldExpressionSpec_fieldRef(FieldExpressionSpec field, EReference ref) { val template = field.findDesiredParent(typeof(TemplateDef)) as TemplateDef val inner = newArrayList template.templateFieldScope(inner) scopeFor(inner) val variable = field.findDesiredParent(typeof(VarInstance)) as VarInstance val list = newArrayList if (template != null) { template.templateFieldScope(list) } if (variable != null && variable.type.ref != null) { val type = variable.type.ref if (type instanceof RecordDefNamed) { type.body.scopeFieldsStructDefBody(list) } else if (type instanceof SetDefNamed) { type.body.scopeFieldsStructDefBody(list) } else if (type instanceof RecordOfDefNamed) { //TODO: implement! } else if (type instanceof SetOfDefNamed) { //TODO: implement! } } scopeFor(list) } def private void scopeFieldsStructDefBody(StructDefBody body, ArrayList<EObject> list) { for (StructFieldDef f : body.defs) { list.add(f) } } def private void templateFieldScope(TemplateDef template, ArrayList<EObject> list) { Loading