|
| 1 | +package proovieksam.ast; |
| 2 | + |
| 3 | +import toylangs.AbstractNode; |
| 4 | + |
| 5 | +import java.util.Arrays; |
| 6 | +import java.util.List; |
| 7 | + |
| 8 | +public sealed interface EstologNode extends AbstractNode permits EstologBinOp, EstologDef, EstologKui, EstologLiteraal, EstologMuutuja, EstologProg { |
| 9 | + |
| 10 | + static EstologMuutuja var(String nimi) { |
| 11 | + return new EstologMuutuja(nimi); |
| 12 | + } |
| 13 | + |
| 14 | + static EstologLiteraal lit(boolean value) { |
| 15 | + return new EstologLiteraal(value); |
| 16 | + } |
| 17 | + |
| 18 | + static EstologJa ja(EstologNode left, EstologNode right) { |
| 19 | + return new EstologJa(left, right); |
| 20 | + } |
| 21 | + |
| 22 | + static EstologVoi voi(EstologNode left, EstologNode right) { |
| 23 | + return new EstologVoi(left, right); |
| 24 | + } |
| 25 | + |
| 26 | + static EstologVordus vordus(EstologNode left, EstologNode right) { |
| 27 | + return new EstologVordus(left, right); |
| 28 | + } |
| 29 | + |
| 30 | + static EstologKui kui(EstologNode kui, EstologNode siis, EstologNode muidu) { |
| 31 | + return new EstologKui(kui, siis, muidu); |
| 32 | + } |
| 33 | + |
| 34 | + static EstologKui kui(EstologNode kui, EstologNode siis) { |
| 35 | + return new EstologKui(kui, siis); |
| 36 | + } |
| 37 | + |
| 38 | + static EstologDef def(String nimi, EstologNode avaldis) { |
| 39 | + return new EstologDef(nimi, avaldis); |
| 40 | + } |
| 41 | + |
| 42 | + static EstologProg prog(EstologNode avaldis, List<EstologDef> defs) { |
| 43 | + return new EstologProg(avaldis, defs); |
| 44 | + } |
| 45 | + |
| 46 | + static EstologProg prog(EstologNode avaldis, EstologDef... defs) { |
| 47 | + return new EstologProg(avaldis, Arrays.asList(defs)); |
| 48 | + } |
| 49 | +} |
0 commit comments