Commit 0444fd4f authored by Daniel Honsel's avatar Daniel Honsel
Browse files

variables of type SingleTempVarInstance are able to be referenced, now

parent 0b8cfbb0
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -841,7 +841,7 @@ BaseTemplate:
	type=Type name=IDENTIFIER (LPAREN parList=TemplateOrValueFormalParList RPAREN)?;

TempVarList:
	var+=SingleTempVarInstance (COMMA var+=SingleTempVarInstance)*;
	variables+=SingleTempVarInstance (COMMA variables+=SingleTempVarInstance)*;

SingleVarInstance:
	name=IDENTIFIER array=ArrayDef? (ac=ASSIGNMENTCHAR expr=Expression)?;
@@ -1046,7 +1046,7 @@ ReferencedValue:
	ref=[RefValue|IDENTIFIER] ext+=ExtendedFieldReference*;

RefValue:
	SingleConstDef | ModuleParameter | SingleVarInstance | FieldReference | FormalTemplatePar;
	SingleConstDef | ModuleParameter | SingleVarInstance | FieldReference | FormalTemplatePar | SingleTempVarInstance;

	// IDENTIFIER omitted
PredefinedValue:
+5 −1
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ import de.ugoe.cs.swe.tTCN3.ModulePar
import de.ugoe.cs.swe.tTCN3.RecordOfDefNamed
import de.ugoe.cs.swe.tTCN3.SetOfDefNamed
import de.ugoe.cs.swe.tTCN3.AltstepDef
import de.ugoe.cs.swe.tTCN3.SingleTempVarInstance

class TTCN3ScopeHelper {

@@ -187,12 +188,15 @@ class TTCN3ScopeHelper {
		boolean searchVar) {
		if (searchVar) {

			// TODO: template parameters l.element.variable.tempList
			for (ComponentDefList l : component.defs.filter[it.element.variable != null]) {
				if (l.element.variable.list != null) {
					for (SingleVarInstance v : l.element.variable.list.variables) {
						list.add(v)
					}
				} else if (l.element.variable.tempList != null) {
					for (SingleTempVarInstance v : l.element.variable.tempList.variables) {
						list.add(v)
					}
				}
			}
			for (ComponentDefList l : component.defs.filter[it.element.const != null]) {