@Override public String toString() { return "[[Assignment<" + operator.getCanonicalString() + ":" + value + ">]" + next + "]"; } }
@Override public String generate(final Context context) { MetaClass referenceType = reference.getType(); final Statement[] indexes = reference.getIndexes(); if (indexes!=null) { for (final Statement index : indexes) { if (!referenceType.isArray()) throw new InvalidTypeException("Variable is not a " + indexes.length + "-dimensional array!"); referenceType = referenceType.getComponentType(); } } operator.assertCanBeApplied(referenceType); operator.assertCanBeApplied(statement.getType()); return reference.generate(context) + generateIndexes(context, indexes) + " " + operator.getCanonicalString() + " " + statement.generate(context); }
@Override public boolean isHigherPrecedenceThan(final Operator op) { return op.getOperatorPrecedence() < getOperatorPrecedence(); }
@Override public String generate(final Context context) { MetaClass referenceType = reference.getType(); final Statement[] indexes = reference.getIndexes(); if (indexes!=null) { for (final Statement index : indexes) { if (!referenceType.isArray()) throw new InvalidTypeException("Variable is not a " + indexes.length + "-dimensional array!"); referenceType = referenceType.getComponentType(); } } operator.assertCanBeApplied(referenceType); operator.assertCanBeApplied(statement.getType()); return reference.generate(context) + generateIndexes(context, indexes) + " " + operator.getCanonicalString() + " " + statement.generate(context); }
@Override public boolean isEqualOrHigherPrecedenceThan(final Operator op) { return op.getOperatorPrecedence() <= getOperatorPrecedence(); }
@Override public boolean isHigherPrecedenceThan(final Operator op) { return op.getOperatorPrecedence() < getOperatorPrecedence(); }
@Override public String toString() { return "[[Assignment<" + operator.getCanonicalString() + ":" + value + ">]" + next + "]"; } }
@Override public boolean isEqualOrHigherPrecedenceThan(final Operator op) { return op.getOperatorPrecedence() <= getOperatorPrecedence(); }