| class A { |
| A(int x); |
| A.y(int x); |
| } |
| |
| class B extends A { |
| B(int x) : assert(x > 0) super(x); |
| } |
| |
| class B2 extends A { |
| B2(int x) : assert(x > 0) super.y(x); |
| } |
| |
| class B3 extends A { |
| B3(int x) : assert(x > 0) this.y(x); |
| B3.y(int x); |
| } |
| |
| class C extends A { |
| int y; |
| C(int x) : assert(x > 0) y = 2*21; |
| } |
| |
| class D extends A { |
| D(int x) : assert(x > 0) assert(x - 1 > 0); |
| } |
| |
| class E extends A { |
| final int y; |
| E(int x) : assert(x > 0) this.y = x*2; |
| } |
| |
| |
| class[KeywordToken] A[StringToken] {[BeginToken] |
| A[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken];[SimpleToken] |
| A[StringToken].[SimpleToken]y[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken];[SimpleToken] |
| }[SimpleToken] |
| |
| class[KeywordToken] B[StringToken] extends[KeywordToken] A[StringToken] {[BeginToken] |
| B[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] :[SimpleToken] assert[KeywordToken]([BeginToken]x[StringToken] >[SimpleToken] 0[StringToken])[SimpleToken] super[KeywordToken]([BeginToken]x[StringToken])[SimpleToken];[SimpleToken] |
| }[SimpleToken] |
| |
| class[KeywordToken] B2[StringToken] extends[KeywordToken] A[StringToken] {[BeginToken] |
| B2[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] :[SimpleToken] assert[KeywordToken]([BeginToken]x[StringToken] >[SimpleToken] 0[StringToken])[SimpleToken] super[KeywordToken].[SimpleToken]y[StringToken]([BeginToken]x[StringToken])[SimpleToken];[SimpleToken] |
| }[SimpleToken] |
| |
| class[KeywordToken] B3[StringToken] extends[KeywordToken] A[StringToken] {[BeginToken] |
| B3[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] :[SimpleToken] assert[KeywordToken]([BeginToken]x[StringToken] >[SimpleToken] 0[StringToken])[SimpleToken] this[KeywordToken].[SimpleToken]y[StringToken]([BeginToken]x[StringToken])[SimpleToken];[SimpleToken] |
| B3[StringToken].[SimpleToken]y[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken];[SimpleToken] |
| }[SimpleToken] |
| |
| class[KeywordToken] C[StringToken] extends[KeywordToken] A[StringToken] {[BeginToken] |
| int[StringToken] y[StringToken];[SimpleToken] |
| C[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] :[SimpleToken] assert[KeywordToken]([BeginToken]x[StringToken] >[SimpleToken] 0[StringToken])[SimpleToken] y[StringToken] =[SimpleToken] 2[StringToken]*[SimpleToken]21[StringToken];[SimpleToken] |
| }[SimpleToken] |
| |
| class[KeywordToken] D[StringToken] extends[KeywordToken] A[StringToken] {[BeginToken] |
| D[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] :[SimpleToken] assert[KeywordToken]([BeginToken]x[StringToken] >[SimpleToken] 0[StringToken])[SimpleToken] assert[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken] >[SimpleToken] 0[StringToken])[SimpleToken];[SimpleToken] |
| }[SimpleToken] |
| |
| class[KeywordToken] E[StringToken] extends[KeywordToken] A[StringToken] {[BeginToken] |
| final[KeywordToken] int[StringToken] y[StringToken];[SimpleToken] |
| E[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] :[SimpleToken] assert[KeywordToken]([BeginToken]x[StringToken] >[SimpleToken] 0[StringToken])[SimpleToken] this[KeywordToken].[SimpleToken]y[StringToken] =[SimpleToken] x[StringToken]*[SimpleToken]2[StringToken];[SimpleToken] |
| }[SimpleToken] |
| [SimpleToken] |