Loading de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/scoping/TTCN3ScopeProvider.xtend +32 −37 Original line number Diff line number Diff line Loading @@ -2,11 +2,13 @@ package de.ugoe.cs.swe.scoping import de.ugoe.cs.swe.tTCN3.AltstepDef import de.ugoe.cs.swe.tTCN3.AltstepLocalDef 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 import de.ugoe.cs.swe.tTCN3.ControlStatementOrDefList import de.ugoe.cs.swe.tTCN3.FieldExpressionSpec import de.ugoe.cs.swe.tTCN3.FieldReference import de.ugoe.cs.swe.tTCN3.FieldSpec import de.ugoe.cs.swe.tTCN3.FormalTimerPar import de.ugoe.cs.swe.tTCN3.FormalValuePar Loading @@ -22,9 +24,11 @@ import de.ugoe.cs.swe.tTCN3.ModuleParameter import de.ugoe.cs.swe.tTCN3.PortOrAny import de.ugoe.cs.swe.tTCN3.PortRef import de.ugoe.cs.swe.tTCN3.RefValue import de.ugoe.cs.swe.tTCN3.RefValueElement import de.ugoe.cs.swe.tTCN3.RefValueHead import de.ugoe.cs.swe.tTCN3.RefValueTail import de.ugoe.cs.swe.tTCN3.SendStatement import de.ugoe.cs.swe.tTCN3.SingleTempVarInstance import de.ugoe.cs.swe.tTCN3.SingleVarInstance import de.ugoe.cs.swe.tTCN3.SpecElement import de.ugoe.cs.swe.tTCN3.StructFieldDef Loading @@ -34,7 +38,6 @@ import de.ugoe.cs.swe.tTCN3.TimerRefOrAny import de.ugoe.cs.swe.tTCN3.VarInstance import java.util.List import org.eclipse.emf.ecore.EReference import org.eclipse.xtend.typesystem.Feature import org.eclipse.xtext.scoping.IScope import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider Loading @@ -42,10 +45,10 @@ import static org.eclipse.xtext.scoping.Scopes.* import static extension de.ugoe.cs.swe.common.TTCN3ScopeHelper.* import static extension org.eclipse.xtext.EcoreUtil2.* import de.ugoe.cs.swe.tTCN3.RefValueElement import de.ugoe.cs.swe.tTCN3.FieldReference import de.ugoe.cs.swe.tTCN3.SingleTempVarInstance import de.ugoe.cs.swe.tTCN3.BaseTemplate import org.eclipse.emf.ecore.EObject import de.ugoe.cs.swe.tTCN3.CallStatement import de.ugoe.cs.swe.tTCN3.ReplyStatement import de.ugoe.cs.swe.tTCN3.RaiseStatement class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { Loading Loading @@ -195,43 +198,43 @@ class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { } def IScope scope_PortOrAny_ref(PortOrAny spec, EReference ref) { val altstep = spec.findDesiredParent(AltstepDef) val inner = newArrayList // ports from parent altsteps if (altstep != null && altstep.spec != null) { componentScopePorts(altstep.spec.component, inner) spec.scope_communicationPort } // ports from parent function val function = spec.findDesiredParent(FunctionDef) if (function != null && function.runsOn != null) { function.runsOn.component.componentScopePorts(inner) def IScope scope_SendStatement_port(SendStatement stm, EReference ref) { stm.scope_communicationPort } // ports from parent testcase val testcase = spec.findDesiredParent(TestcaseDef) if (testcase != null) { testcase.spec.runsOn.component.componentScopePorts(inner) if (testcase.spec.systemSpec != null) { testcase.spec.systemSpec.component.componentScopePorts(inner) def IScope scope_CallStatement_port(CallStatement stm, EReference ref) { stm.scope_communicationPort } def IScope scope_ReplyStatement_port(ReplyStatement stm, EReference ref) { stm.scope_communicationPort } scopeFor(inner) def IScope scope_RaiseStatement_port(RaiseStatement stm, EReference ref) { stm.scope_communicationPort } def IScope scope_SendStatement_port(SendStatement stm, EReference ref) { // TODO: check nested port statements private def IScope scope_communicationPort(EObject statement) { val list = newArrayList // ports from parent altsteps val altstep = statement.findDesiredParent(AltstepDef) if (altstep != null && altstep.spec != null) { componentScopePorts(altstep.spec.component, list) } // ports from parent function val function = stm.findDesiredParent(FunctionDef) val function = statement.findDesiredParent(FunctionDef) if (function != null && function.runsOn != null) { function.runsOn.component.componentScopePorts(list) } // ports from parent testcase val testcase = stm.findDesiredParent(TestcaseDef) val testcase = statement.findDesiredParent(TestcaseDef) if (testcase != null) { testcase.spec.runsOn.component.componentScopePorts(list) if (testcase.spec.systemSpec != null) { Loading @@ -242,15 +245,7 @@ class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { } def IScope scope_PortRef_port(PortRef pRef, EReference ref) { val testcase = pRef.findDesiredParent(TestcaseDef) val list = newArrayList testcase.spec.runsOn.component.componentScopePorts(list) if (testcase.spec.systemSpec != null) { testcase.spec.systemSpec.component.componentScopePorts(list) } scopeFor(list) pRef.scope_communicationPort } def IScope scope_RefValueTail_value(RefValueTail it, EReference ref) { Loading de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/validation/TTCN3Validator.xtend +4 −4 Original line number Diff line number Diff line package de.ugoe.cs.swe.validation import com.google.common.base.Strings import de.ugoe.cs.swe.TTCN3Configuration.QualityCheckProfile import de.ugoe.cs.swe.common.ConfigTools import de.ugoe.cs.swe.common.logging.LoggingInterface.LogLevel import de.ugoe.cs.swe.common.logging.LoggingInterface.MessageClass import de.ugoe.cs.swe.tTCN3.AltstepDef import de.ugoe.cs.swe.tTCN3.AltstepLocalDef import de.ugoe.cs.swe.tTCN3.AltstepLocalDefList Loading Loading @@ -72,6 +68,10 @@ import org.eclipse.xtext.validation.Check import static extension de.ugoe.cs.swe.common.TTCN3ScopeHelper.* import de.ugoe.cs.swe.tTCN3.TimerInstance import de.ugoe.cs.swe.tTCN3.ComponentElementDef import de.ugoe.cs.swe.common.ConfigTools import de.ugoe.cs.swe.TTCN3Configuration.QualityCheckProfile import de.ugoe.cs.swe.common.logging.LoggingInterface.LogLevel import de.ugoe.cs.swe.common.logging.LoggingInterface.MessageClass class TTCN3Validator extends AbstractTTCN3Validator { val ConfigTools configTools = ConfigTools.getInstance; Loading Loading
de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/scoping/TTCN3ScopeProvider.xtend +32 −37 Original line number Diff line number Diff line Loading @@ -2,11 +2,13 @@ package de.ugoe.cs.swe.scoping import de.ugoe.cs.swe.tTCN3.AltstepDef import de.ugoe.cs.swe.tTCN3.AltstepLocalDef 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 import de.ugoe.cs.swe.tTCN3.ControlStatementOrDefList import de.ugoe.cs.swe.tTCN3.FieldExpressionSpec import de.ugoe.cs.swe.tTCN3.FieldReference import de.ugoe.cs.swe.tTCN3.FieldSpec import de.ugoe.cs.swe.tTCN3.FormalTimerPar import de.ugoe.cs.swe.tTCN3.FormalValuePar Loading @@ -22,9 +24,11 @@ import de.ugoe.cs.swe.tTCN3.ModuleParameter import de.ugoe.cs.swe.tTCN3.PortOrAny import de.ugoe.cs.swe.tTCN3.PortRef import de.ugoe.cs.swe.tTCN3.RefValue import de.ugoe.cs.swe.tTCN3.RefValueElement import de.ugoe.cs.swe.tTCN3.RefValueHead import de.ugoe.cs.swe.tTCN3.RefValueTail import de.ugoe.cs.swe.tTCN3.SendStatement import de.ugoe.cs.swe.tTCN3.SingleTempVarInstance import de.ugoe.cs.swe.tTCN3.SingleVarInstance import de.ugoe.cs.swe.tTCN3.SpecElement import de.ugoe.cs.swe.tTCN3.StructFieldDef Loading @@ -34,7 +38,6 @@ import de.ugoe.cs.swe.tTCN3.TimerRefOrAny import de.ugoe.cs.swe.tTCN3.VarInstance import java.util.List import org.eclipse.emf.ecore.EReference import org.eclipse.xtend.typesystem.Feature import org.eclipse.xtext.scoping.IScope import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider Loading @@ -42,10 +45,10 @@ import static org.eclipse.xtext.scoping.Scopes.* import static extension de.ugoe.cs.swe.common.TTCN3ScopeHelper.* import static extension org.eclipse.xtext.EcoreUtil2.* import de.ugoe.cs.swe.tTCN3.RefValueElement import de.ugoe.cs.swe.tTCN3.FieldReference import de.ugoe.cs.swe.tTCN3.SingleTempVarInstance import de.ugoe.cs.swe.tTCN3.BaseTemplate import org.eclipse.emf.ecore.EObject import de.ugoe.cs.swe.tTCN3.CallStatement import de.ugoe.cs.swe.tTCN3.ReplyStatement import de.ugoe.cs.swe.tTCN3.RaiseStatement class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { Loading Loading @@ -195,43 +198,43 @@ class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { } def IScope scope_PortOrAny_ref(PortOrAny spec, EReference ref) { val altstep = spec.findDesiredParent(AltstepDef) val inner = newArrayList // ports from parent altsteps if (altstep != null && altstep.spec != null) { componentScopePorts(altstep.spec.component, inner) spec.scope_communicationPort } // ports from parent function val function = spec.findDesiredParent(FunctionDef) if (function != null && function.runsOn != null) { function.runsOn.component.componentScopePorts(inner) def IScope scope_SendStatement_port(SendStatement stm, EReference ref) { stm.scope_communicationPort } // ports from parent testcase val testcase = spec.findDesiredParent(TestcaseDef) if (testcase != null) { testcase.spec.runsOn.component.componentScopePorts(inner) if (testcase.spec.systemSpec != null) { testcase.spec.systemSpec.component.componentScopePorts(inner) def IScope scope_CallStatement_port(CallStatement stm, EReference ref) { stm.scope_communicationPort } def IScope scope_ReplyStatement_port(ReplyStatement stm, EReference ref) { stm.scope_communicationPort } scopeFor(inner) def IScope scope_RaiseStatement_port(RaiseStatement stm, EReference ref) { stm.scope_communicationPort } def IScope scope_SendStatement_port(SendStatement stm, EReference ref) { // TODO: check nested port statements private def IScope scope_communicationPort(EObject statement) { val list = newArrayList // ports from parent altsteps val altstep = statement.findDesiredParent(AltstepDef) if (altstep != null && altstep.spec != null) { componentScopePorts(altstep.spec.component, list) } // ports from parent function val function = stm.findDesiredParent(FunctionDef) val function = statement.findDesiredParent(FunctionDef) if (function != null && function.runsOn != null) { function.runsOn.component.componentScopePorts(list) } // ports from parent testcase val testcase = stm.findDesiredParent(TestcaseDef) val testcase = statement.findDesiredParent(TestcaseDef) if (testcase != null) { testcase.spec.runsOn.component.componentScopePorts(list) if (testcase.spec.systemSpec != null) { Loading @@ -242,15 +245,7 @@ class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { } def IScope scope_PortRef_port(PortRef pRef, EReference ref) { val testcase = pRef.findDesiredParent(TestcaseDef) val list = newArrayList testcase.spec.runsOn.component.componentScopePorts(list) if (testcase.spec.systemSpec != null) { testcase.spec.systemSpec.component.componentScopePorts(list) } scopeFor(list) pRef.scope_communicationPort } def IScope scope_RefValueTail_value(RefValueTail it, EReference ref) { Loading
de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/validation/TTCN3Validator.xtend +4 −4 Original line number Diff line number Diff line package de.ugoe.cs.swe.validation import com.google.common.base.Strings import de.ugoe.cs.swe.TTCN3Configuration.QualityCheckProfile import de.ugoe.cs.swe.common.ConfigTools import de.ugoe.cs.swe.common.logging.LoggingInterface.LogLevel import de.ugoe.cs.swe.common.logging.LoggingInterface.MessageClass import de.ugoe.cs.swe.tTCN3.AltstepDef import de.ugoe.cs.swe.tTCN3.AltstepLocalDef import de.ugoe.cs.swe.tTCN3.AltstepLocalDefList Loading Loading @@ -72,6 +68,10 @@ import org.eclipse.xtext.validation.Check import static extension de.ugoe.cs.swe.common.TTCN3ScopeHelper.* import de.ugoe.cs.swe.tTCN3.TimerInstance import de.ugoe.cs.swe.tTCN3.ComponentElementDef import de.ugoe.cs.swe.common.ConfigTools import de.ugoe.cs.swe.TTCN3Configuration.QualityCheckProfile import de.ugoe.cs.swe.common.logging.LoggingInterface.LogLevel import de.ugoe.cs.swe.common.logging.LoggingInterface.MessageClass class TTCN3Validator extends AbstractTTCN3Validator { val ConfigTools configTools = ConfigTools.getInstance; Loading