--- /dev/null
+struct a d end;
+method f(b c s)
+ var t := 0;
+ /* lesender feldzugriff */
+ b := c*(s.a - 1);
+ b := c*(s.d - 1);
+ b := c*(t.a - 1);
+ /* Zusatz zu lewurm_05.0: ungültig, da c keine Feldvariable ist */
+ b := c*(t.c - 1);
+end;
--- /dev/null
+/* multiple field definition on "doubletrouble" here */
+struct doubletrouble foo end;
+method test(a b c)
+end;
+struct bar doubletrouble end;
--- /dev/null
+/* multiple variable definition in param list */
+method test(a b c a)
+end;
--- /dev/null
+/* fieldnames are NOT visible everywhere, but only after their definition */
+method foobar(a)
+ a.youdontseemeyet := 31337;
+end;
+
+struct youdontseemeyet end;
--- /dev/null
+/* variable and field can have the same name */
+struct a b end;
+method foobar(a)
+ var b := 23;
+end;
--- /dev/null
+struct derhansderkanns end;
+method justeat(it)
+ /* LHS -> variable, RHS -> field; so there's no collision */
+ var derhansderkanns := derhansderkanns;
+end;
--- /dev/null
+struct
+ one struct_not defined
+end;
+
+method main(a b)
+ var something := 0x42;
+ var the := 0x42;
+ the.one.missing_struct := something;
+end;