338 |
338 |
339 /** A synthetic let expression, of type LetExpr. |
339 /** A synthetic let expression, of type LetExpr. |
340 */ |
340 */ |
341 LETEXPR; // ala scheme |
341 LETEXPR; // ala scheme |
342 |
342 |
343 private Tag noAssignTag; |
343 private final Tag noAssignTag; |
344 |
344 |
345 private static int numberOfOperators = MOD.ordinal() - POS.ordinal() + 1; |
345 private static final int numberOfOperators = MOD.ordinal() - POS.ordinal() + 1; |
346 |
346 |
347 private Tag(Tag noAssignTag) { |
347 private Tag(Tag noAssignTag) { |
348 this.noAssignTag = noAssignTag; |
348 this.noAssignTag = noAssignTag; |
349 } |
349 } |
350 |
350 |
351 private Tag() { } |
351 private Tag() { |
|
352 this(null); |
|
353 } |
352 |
354 |
353 public static int getNumberOfOperators() { |
355 public static int getNumberOfOperators() { |
354 return numberOfOperators; |
356 return numberOfOperators; |
355 } |
357 } |
356 |
358 |
1836 /** Inner # new */ |
1838 /** Inner # new */ |
1837 IMPLICIT_INNER(ReferenceMode.NEW, false), |
1839 IMPLICIT_INNER(ReferenceMode.NEW, false), |
1838 /** Toplevel # new */ |
1840 /** Toplevel # new */ |
1839 TOPLEVEL(ReferenceMode.NEW, false); |
1841 TOPLEVEL(ReferenceMode.NEW, false); |
1840 |
1842 |
1841 ReferenceMode mode; |
1843 final ReferenceMode mode; |
1842 boolean unbound; |
1844 final boolean unbound; |
1843 |
1845 |
1844 private ReferenceKind(ReferenceMode mode, boolean unbound) { |
1846 private ReferenceKind(ReferenceMode mode, boolean unbound) { |
1845 this.mode = mode; |
1847 this.mode = mode; |
1846 this.unbound = unbound; |
1848 this.unbound = unbound; |
1847 } |
1849 } |