--- /dev/null
+method m(x)
+ return x-this;
+end;
--- /dev/null
+extern long m(long,long);
+RET(m(2,5)==3 && m(7,2)==-5);
--- /dev/null
+method m()
+ return this;
+end;
--- /dev/null
+extern long m(long);
+RET(m(5)==5 && m(9)==9);
--- /dev/null
+method m(x y z)
+ return z;
+end;
--- /dev/null
+extern long m(long,long,long,long);
+RET(m(1,2,3,5)==5 && m(3,2,1,9)==9);
--- /dev/null
+method m(x)
+ return not this;
+end;
--- /dev/null
+extern long m(long,long);
+RET(m(0,12)==1 && m(9,13)==0);
--- /dev/null
+method m(x)
+ return -5;
+end;
--- /dev/null
+extern long m(long,long);
+RET(m(0,12)==-5 && m(9,13)==-5);
--- /dev/null
+method m(x)
+ return x--3;
+end;
--- /dev/null
+extern long m(long,long);
+RET(m(0,12)==15 && m(9,13)==16);
--- /dev/null
+method m(x)
+ return x*this*x*this;
+end;
--- /dev/null
+extern long m(long,long);
+RET(m(2,3)==36 && m(5,-7)==35*35);
--- /dev/null
+method m(x)
+ return this or x;
+end;
--- /dev/null
+extern long m(long,long);
+RET(m(3,9)==11 && m(6,13)==15);
--- /dev/null
+method m(x)
+ return x<this;
+end;
--- /dev/null
+extern long m(long,long);
+RET(m(3,3)==0 && m(3,2)==1 && m(2,3)==0);
--- /dev/null
+method m(x)
+ return -4<x;
+end;
--- /dev/null
+extern long m(long,long);
+RET(m(0,-4)==0 && m(9,-3)==1);
--- /dev/null
+method m(x)
+ return this<-9;
+end;
--- /dev/null
+extern long m(long,long);
+RET(m(-9,12)==0 && m(-10,13)==1);
--- /dev/null
+method m(x)
+ return 3=x;
+end;
--- /dev/null
+extern long m(long,long);
+RET(m(0,3)==1 && m(9,13)==0);
--- /dev/null
+struct a b c end;
+struct d e f end;
+
+method m(x)
+ return e;
+end;
--- /dev/null
+long s[]={12,23,34,45,53,61};
+extern long m(long *,long);
+RET(m(s,12)==23 && m(s+3,13)==53);
--- /dev/null
+struct a b c end;
+struct d e f end;
+
+method m(x)
+ return x.c.d;
+end;
--- /dev/null
+long s[]={12,23,34,45,53,61};
+long *t[]={s,s+2,s+1,s+3};
+extern long m(long,long **);
+RET(m(1,t)==23 && m(9,t+1)==45);
--- /dev/null
+method m(x)
+ return not((not this) or (not x));
+end;
--- /dev/null
+extern long m(long,long);
+RET(m(10,6)==1 && m(0,13)==0 && m(-3,0)==0);
--- /dev/null
+method m(x)
+ return x-(0-this);
+end;
--- /dev/null
+extern long m(long,long);
+RET(m(3,4)==7 && m(-3,5)==2);
--- /dev/null
+method m(x)
+ return 5 or x or 9;
+end;
--- /dev/null
+extern long m(long,long);
+RET(m(3,6)==15 && m(-3,5)==13);
--- /dev/null
+struct a b c end;
+
+method m(x)
+ return (this-8).c;
+end;
--- /dev/null
+long s[]={12,23,34,45,53,61};
+extern long m(long *,long);
+RET(m(s,12)==23 && m(s+2,13)==45);
--- /dev/null
+method m(x y)
+ return y;
+end;
+
+method n(y x)
+ return y;
+end;
--- /dev/null
+extern long m(long,long,long);
+extern long n(long,long,long);
+RET(m(1,2,3)==3 && n(4,5,6)==5);
--- /dev/null
+struct x end;
+
+method m(x)
+ return x;
+end;
--- /dev/null
+long s[]={12,23,34,45,53,61};
+extern long m(long *,long);
+RET(m(s,78)==78 && m(s+2,13)==13);
--- /dev/null
+/* unvollendet
--- /dev/null
+method foo(x,y)
+end;
--- /dev/null
+method x()
+ this:=x;
+end;
--- /dev/null
+method x()
+ x:=x-x*x;
+end;
--- /dev/null
+method x()
+ if x<x or x=x then
+ end;
+end;
--- /dev/null
+method x()
+ x := x < x < x;
+end;
--- /dev/null
+method x()
+ x:=x(,x);
+end;
--- /dev/null
+method x()
+ var x.x:=x;
+end;
--- /dev/null
+method x()
+ ;
+end;
--- /dev/null
+method x()
+ x(x,,);
+end;
--- /dev/null
+method x()
+ x.this = x;
+end;
--- /dev/null
+method m()
+ return x;
+end;
--- /dev/null
+method m(x x)
+end;
--- /dev/null
+method m(x)
+ if x then
+ var x:=0;
+ end;
+end;
--- /dev/null
+method m()
+ while this do
+ var x:=this;
+ if this then
+ else
+ var x:=this;
+ end;
+ end;
+end;
+
--- /dev/null
+struct
+ a
+ a
+end;
--- /dev/null
+struct
+ a
+end;
+
+struct
+ a
+end;
--- /dev/null
+method m()
+ if this then
+ var x:=this;
+ else
+ return x;
+ end;
+end;
--- /dev/null
+method m()
+ x:=this;
+ var x:=0;
+end;
--- /dev/null
+method m()
+ a:=this;
+end;
+
+struct
+ a
+end;
--- /dev/null
+method m()
+ var x:=x;
+end;
--- /dev/null
+method m(x)
+ return this.x;
+end;