From 169a6232a279ffc0b1e9695d4f81afe3959e80cf Mon Sep 17 00:00:00 2001 From: Bernhard Urban Date: Mon, 3 May 2010 13:29:23 +0200 Subject: [PATCH] parser/ag: testfaelle von bsm17 --- ag/zzbsm17_00.0 | 33 +++++++++++++++++++++++++++++++++ ag/zzbsm17_01.3 | 7 +++++++ ag/zzbsm17_02.3 | 3 +++ ag/zzbsm17_03.3 | 7 +++++++ ag/zzbsm17_04.3 | 5 +++++ ag/zzbsm17_05.0 | 6 ++++++ ag/zzbsm17_06.3 | 16 ++++++++++++++++ parser/zzbsm17_00.0 | 33 +++++++++++++++++++++++++++++++++ parser/zzbsm17_01.0 | 7 +++++++ parser/zzbsm17_02.0 | 3 +++ parser/zzbsm17_03.0 | 7 +++++++ parser/zzbsm17_04.0 | 5 +++++ parser/zzbsm17_05.0 | 6 ++++++ parser/zzbsm17_06.0 | 16 ++++++++++++++++ 14 files changed, 154 insertions(+) create mode 100644 ag/zzbsm17_00.0 create mode 100644 ag/zzbsm17_01.3 create mode 100644 ag/zzbsm17_02.3 create mode 100644 ag/zzbsm17_03.3 create mode 100644 ag/zzbsm17_04.3 create mode 100644 ag/zzbsm17_05.0 create mode 100644 ag/zzbsm17_06.3 create mode 100644 parser/zzbsm17_00.0 create mode 100644 parser/zzbsm17_01.0 create mode 100644 parser/zzbsm17_02.0 create mode 100644 parser/zzbsm17_03.0 create mode 100644 parser/zzbsm17_04.0 create mode 100644 parser/zzbsm17_05.0 create mode 100644 parser/zzbsm17_06.0 diff --git a/ag/zzbsm17_00.0 b/ag/zzbsm17_00.0 new file mode 100644 index 0000000..5314bb3 --- /dev/null +++ b/ag/zzbsm17_00.0 @@ -0,0 +1,33 @@ +struct f1 end; /* Felddefinition */ + +method foo ( p1 p2 ) /* Methodendefinition, Parameterdefinition */ + + p1 := 1; /* Zuweisung */ + + var v1 := 1; /* Variablendefinition */ + + 1; /* Ausdrucksanweisung */ + not 1; /* Dito */ + + if p1 < p2 then /* If-Anweisung ohne Else-Zweig */ + v1 := 2; + end; + + if p1 < p2 then /* If-Anweisung mit Else-Zweig */ + var v2 := 2; + else + v1 := p1; + end; + + while (((((1 or 1 or 1 or 1 or 1 or 1))))) do (((((1))))).f1; end; /* While-Anweisung, lesender Feldzugriff */ + + var v2 := 5; /* Hier wieder erlaubt, war nur in if reserviert */ + v2 := v1; /* lesender/schreibender Variablen/Feldzugriff */ + f1 := f1; /* Dito */ + + v2(-500, 500, ); /* What a call */ + v2(-500, 500, ).f1(-500,500); /* What another call */ + + return p1; /* Parameter sind in der ganzen Methode sichtbar */ +end; + diff --git a/ag/zzbsm17_01.3 b/ag/zzbsm17_01.3 new file mode 100644 index 0000000..7ce046a --- /dev/null +++ b/ag/zzbsm17_01.3 @@ -0,0 +1,7 @@ +method foo ( ) + if 1 then + var v1 := 1; + else + v1 := 2; + end; +end; diff --git a/ag/zzbsm17_02.3 b/ag/zzbsm17_02.3 new file mode 100644 index 0000000..791203d --- /dev/null +++ b/ag/zzbsm17_02.3 @@ -0,0 +1,3 @@ +method foo ( p1 ) + var p1 := 1; +end; diff --git a/ag/zzbsm17_03.3 b/ag/zzbsm17_03.3 new file mode 100644 index 0000000..23be7ba --- /dev/null +++ b/ag/zzbsm17_03.3 @@ -0,0 +1,7 @@ +method foo ( ) + if 1 then + var v1 := 1; + end; + + return v1; +end; diff --git a/ag/zzbsm17_04.3 b/ag/zzbsm17_04.3 new file mode 100644 index 0000000..5b021fc --- /dev/null +++ b/ag/zzbsm17_04.3 @@ -0,0 +1,5 @@ +method foo ( ) + v1 := 1; + var v1 := 1; + return v1; +end; diff --git a/ag/zzbsm17_05.0 b/ag/zzbsm17_05.0 new file mode 100644 index 0000000..a8786a6 --- /dev/null +++ b/ag/zzbsm17_05.0 @@ -0,0 +1,6 @@ +struct f1 end; + +method foo () + var f1 := 1; +end; + diff --git a/ag/zzbsm17_06.3 b/ag/zzbsm17_06.3 new file mode 100644 index 0000000..6d17fd3 --- /dev/null +++ b/ag/zzbsm17_06.3 @@ -0,0 +1,16 @@ +struct f1 end; + +method foo ( ) + + var v1 := 1; + + /* Bei einem Variablen/Feldzugriff muss eine Variable oder ein Feld mit dem Namen sichtbar sein */ + f1 := f1; + v1 := v1; + + /* Bei einem Feldzugriff muss ein Feld mit dem Namen sichtbar sein */ + this.f1 := this.f1; + this.v1 := this.v1; + + return v1; +end; diff --git a/parser/zzbsm17_00.0 b/parser/zzbsm17_00.0 new file mode 100644 index 0000000..5314bb3 --- /dev/null +++ b/parser/zzbsm17_00.0 @@ -0,0 +1,33 @@ +struct f1 end; /* Felddefinition */ + +method foo ( p1 p2 ) /* Methodendefinition, Parameterdefinition */ + + p1 := 1; /* Zuweisung */ + + var v1 := 1; /* Variablendefinition */ + + 1; /* Ausdrucksanweisung */ + not 1; /* Dito */ + + if p1 < p2 then /* If-Anweisung ohne Else-Zweig */ + v1 := 2; + end; + + if p1 < p2 then /* If-Anweisung mit Else-Zweig */ + var v2 := 2; + else + v1 := p1; + end; + + while (((((1 or 1 or 1 or 1 or 1 or 1))))) do (((((1))))).f1; end; /* While-Anweisung, lesender Feldzugriff */ + + var v2 := 5; /* Hier wieder erlaubt, war nur in if reserviert */ + v2 := v1; /* lesender/schreibender Variablen/Feldzugriff */ + f1 := f1; /* Dito */ + + v2(-500, 500, ); /* What a call */ + v2(-500, 500, ).f1(-500,500); /* What another call */ + + return p1; /* Parameter sind in der ganzen Methode sichtbar */ +end; + diff --git a/parser/zzbsm17_01.0 b/parser/zzbsm17_01.0 new file mode 100644 index 0000000..7ce046a --- /dev/null +++ b/parser/zzbsm17_01.0 @@ -0,0 +1,7 @@ +method foo ( ) + if 1 then + var v1 := 1; + else + v1 := 2; + end; +end; diff --git a/parser/zzbsm17_02.0 b/parser/zzbsm17_02.0 new file mode 100644 index 0000000..791203d --- /dev/null +++ b/parser/zzbsm17_02.0 @@ -0,0 +1,3 @@ +method foo ( p1 ) + var p1 := 1; +end; diff --git a/parser/zzbsm17_03.0 b/parser/zzbsm17_03.0 new file mode 100644 index 0000000..23be7ba --- /dev/null +++ b/parser/zzbsm17_03.0 @@ -0,0 +1,7 @@ +method foo ( ) + if 1 then + var v1 := 1; + end; + + return v1; +end; diff --git a/parser/zzbsm17_04.0 b/parser/zzbsm17_04.0 new file mode 100644 index 0000000..5b021fc --- /dev/null +++ b/parser/zzbsm17_04.0 @@ -0,0 +1,5 @@ +method foo ( ) + v1 := 1; + var v1 := 1; + return v1; +end; diff --git a/parser/zzbsm17_05.0 b/parser/zzbsm17_05.0 new file mode 100644 index 0000000..a8786a6 --- /dev/null +++ b/parser/zzbsm17_05.0 @@ -0,0 +1,6 @@ +struct f1 end; + +method foo () + var f1 := 1; +end; + diff --git a/parser/zzbsm17_06.0 b/parser/zzbsm17_06.0 new file mode 100644 index 0000000..6d17fd3 --- /dev/null +++ b/parser/zzbsm17_06.0 @@ -0,0 +1,16 @@ +struct f1 end; + +method foo ( ) + + var v1 := 1; + + /* Bei einem Variablen/Feldzugriff muss eine Variable oder ein Feld mit dem Namen sichtbar sein */ + f1 := f1; + v1 := v1; + + /* Bei einem Feldzugriff muss ein Feld mit dem Namen sichtbar sein */ + this.f1 := this.f1; + this.v1 := this.v1; + + return v1; +end; -- 2.25.1