Loading de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/TTCN3.xtext +9 −9 Original line number Diff line number Diff line Loading @@ -425,7 +425,7 @@ FunctionActualPar: idRef=ArrayIdentifierRef | template=InLineTemplate | component=ComponentRef | {FunctionActualPar} MINUS; ComponentRef: {ComponentRef} (ref=ComponentOrDefaultReference | SYSTEMKEYWORD | SELFOP | MTCKEYWORD); ref=ComponentOrDefaultReference | system=SYSTEMKEYWORD | self=SELFOP | mtc=MTCKEYWORD; ComponentOrDefaultReference: variable=VariableRef | function=FunctionInstance /*| preFunction=PreDefFunction*/; Loading Loading @@ -516,22 +516,22 @@ AllCompsAllPortsSpec: LPAREN ALLKEYWORD COMPONENTKEYWORD COLON ALLKEYWORD PORTKEYWORD RPAREN; AllPortsSpec: LPAREN ComponentRef COLON ALLKEYWORD PORTKEYWORD RPAREN; LPAREN component=ComponentRef COLON ALLKEYWORD PORTKEYWORD RPAREN; MapStatement: MAPKEYWORD SingleConnectionSpec clause=ParamClause?; MAPKEYWORD spec=SingleConnectionSpec clause=ParamClause?; ParamClause: PARAMKEYWORD FunctionActualParList; PARAMKEYWORD list=FunctionActualParList; ConnectStatement: CONNECTKEYWORD SingleConnectionSpec; CONNECTKEYWORD spec=SingleConnectionSpec; SingleConnectionSpec: LPAREN port1=PortRef COMMA port2=PortRef RPAREN; PortRef: component=ComponentRef COLON array=ArrayIdentifierRef; component=ComponentRef COLON port=[PortElement|IDENTIFIER]; CommunicationStatements: send=SendStatement | call=CallStatement | reply=ReplyStatement | raise=RaiseStatement | receive=ReceiveStatement | Loading Loading @@ -922,11 +922,11 @@ ValueofOp: VALUEOFKEYWORD LPAREN template=InLineTemplate RPAREN; ConfigurationOps: CreateOp | {ConfigurationOps} SELFOP | {ConfigurationOps} SYSTEMKEYWORD | {ConfigurationOps} MTCKEYWORD | AliveOp | RunningOp; create=CreateOp | {ConfigurationOps} SELFOP | {ConfigurationOps} SYSTEMKEYWORD | {ConfigurationOps} MTCKEYWORD | alive=AliveOp | running=RunningOp; CreateOp: {CreateOp} => (type=[ComponentDef|IDENTIFIER] DOT CREATEKEYWORD) (LPAREN (expr1=SingleExpression | MINUS) (COMMA type=[ComponentDef|IDENTIFIER] DOT CREATEKEYWORD (LPAREN (expr1=SingleExpression | MINUS) (COMMA expr2=SingleExpression)? RPAREN)? ALIVEKEYWORD?; RunningOp: Loading de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/scoping/TTCN3ScopeProvider.xtend +15 −0 Original line number Diff line number Diff line Loading @@ -45,6 +45,7 @@ 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 class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { Loading Loading @@ -242,4 +243,18 @@ class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { } scopeFor(list) } def IScope scope_PortRef_port(PortRef pRef, EReference ref) { val testcase = pRef.findDesiredParent(typeof(TestcaseDef)) as TestcaseDef val list = newArrayList if (pRef.component.mtc != null) { testcase.spec.runsOn.component.componentScopePorts(list) } else if (pRef.component.system != null) { if (testcase.spec.systemSpec != null) { testcase.spec.systemSpec.component.componentScopePorts(list) } } scopeFor(list) } } Loading
de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/TTCN3.xtext +9 −9 Original line number Diff line number Diff line Loading @@ -425,7 +425,7 @@ FunctionActualPar: idRef=ArrayIdentifierRef | template=InLineTemplate | component=ComponentRef | {FunctionActualPar} MINUS; ComponentRef: {ComponentRef} (ref=ComponentOrDefaultReference | SYSTEMKEYWORD | SELFOP | MTCKEYWORD); ref=ComponentOrDefaultReference | system=SYSTEMKEYWORD | self=SELFOP | mtc=MTCKEYWORD; ComponentOrDefaultReference: variable=VariableRef | function=FunctionInstance /*| preFunction=PreDefFunction*/; Loading Loading @@ -516,22 +516,22 @@ AllCompsAllPortsSpec: LPAREN ALLKEYWORD COMPONENTKEYWORD COLON ALLKEYWORD PORTKEYWORD RPAREN; AllPortsSpec: LPAREN ComponentRef COLON ALLKEYWORD PORTKEYWORD RPAREN; LPAREN component=ComponentRef COLON ALLKEYWORD PORTKEYWORD RPAREN; MapStatement: MAPKEYWORD SingleConnectionSpec clause=ParamClause?; MAPKEYWORD spec=SingleConnectionSpec clause=ParamClause?; ParamClause: PARAMKEYWORD FunctionActualParList; PARAMKEYWORD list=FunctionActualParList; ConnectStatement: CONNECTKEYWORD SingleConnectionSpec; CONNECTKEYWORD spec=SingleConnectionSpec; SingleConnectionSpec: LPAREN port1=PortRef COMMA port2=PortRef RPAREN; PortRef: component=ComponentRef COLON array=ArrayIdentifierRef; component=ComponentRef COLON port=[PortElement|IDENTIFIER]; CommunicationStatements: send=SendStatement | call=CallStatement | reply=ReplyStatement | raise=RaiseStatement | receive=ReceiveStatement | Loading Loading @@ -922,11 +922,11 @@ ValueofOp: VALUEOFKEYWORD LPAREN template=InLineTemplate RPAREN; ConfigurationOps: CreateOp | {ConfigurationOps} SELFOP | {ConfigurationOps} SYSTEMKEYWORD | {ConfigurationOps} MTCKEYWORD | AliveOp | RunningOp; create=CreateOp | {ConfigurationOps} SELFOP | {ConfigurationOps} SYSTEMKEYWORD | {ConfigurationOps} MTCKEYWORD | alive=AliveOp | running=RunningOp; CreateOp: {CreateOp} => (type=[ComponentDef|IDENTIFIER] DOT CREATEKEYWORD) (LPAREN (expr1=SingleExpression | MINUS) (COMMA type=[ComponentDef|IDENTIFIER] DOT CREATEKEYWORD (LPAREN (expr1=SingleExpression | MINUS) (COMMA expr2=SingleExpression)? RPAREN)? ALIVEKEYWORD?; RunningOp: Loading
de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/scoping/TTCN3ScopeProvider.xtend +15 −0 Original line number Diff line number Diff line Loading @@ -45,6 +45,7 @@ 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 class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { Loading Loading @@ -242,4 +243,18 @@ class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { } scopeFor(list) } def IScope scope_PortRef_port(PortRef pRef, EReference ref) { val testcase = pRef.findDesiredParent(typeof(TestcaseDef)) as TestcaseDef val list = newArrayList if (pRef.component.mtc != null) { testcase.spec.runsOn.component.componentScopePorts(list) } else if (pRef.component.system != null) { if (testcase.spec.systemSpec != null) { testcase.spec.systemSpec.component.componentScopePorts(list) } } scopeFor(list) } }