parser/ag: testfaelle von bsm17
authorBernhard Urban <lewurm@gmail.com>
Mon, 3 May 2010 11:29:23 +0000 (13:29 +0200)
committerBernhard Urban <lewurm@gmail.com>
Mon, 3 May 2010 11:29:23 +0000 (13:29 +0200)
14 files changed:
ag/zzbsm17_00.0 [new file with mode: 0644]
ag/zzbsm17_01.3 [new file with mode: 0644]
ag/zzbsm17_02.3 [new file with mode: 0644]
ag/zzbsm17_03.3 [new file with mode: 0644]
ag/zzbsm17_04.3 [new file with mode: 0644]
ag/zzbsm17_05.0 [new file with mode: 0644]
ag/zzbsm17_06.3 [new file with mode: 0644]
parser/zzbsm17_00.0 [new file with mode: 0644]
parser/zzbsm17_01.0 [new file with mode: 0644]
parser/zzbsm17_02.0 [new file with mode: 0644]
parser/zzbsm17_03.0 [new file with mode: 0644]
parser/zzbsm17_04.0 [new file with mode: 0644]
parser/zzbsm17_05.0 [new file with mode: 0644]
parser/zzbsm17_06.0 [new file with mode: 0644]

diff --git a/ag/zzbsm17_00.0 b/ag/zzbsm17_00.0
new file mode 100644 (file)
index 0000000..5314bb3
--- /dev/null
@@ -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 (file)
index 0000000..7ce046a
--- /dev/null
@@ -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 (file)
index 0000000..791203d
--- /dev/null
@@ -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 (file)
index 0000000..23be7ba
--- /dev/null
@@ -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 (file)
index 0000000..5b021fc
--- /dev/null
@@ -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 (file)
index 0000000..a8786a6
--- /dev/null
@@ -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 (file)
index 0000000..6d17fd3
--- /dev/null
@@ -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 (file)
index 0000000..5314bb3
--- /dev/null
@@ -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 (file)
index 0000000..7ce046a
--- /dev/null
@@ -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 (file)
index 0000000..791203d
--- /dev/null
@@ -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 (file)
index 0000000..23be7ba
--- /dev/null
@@ -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 (file)
index 0000000..5b021fc
--- /dev/null
@@ -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 (file)
index 0000000..a8786a6
--- /dev/null
@@ -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 (file)
index 0000000..6d17fd3
--- /dev/null
@@ -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;