Loop

------------------Show Header Code ( lines)------------------
package program;

import expression.Expression;
1

A Loop consists of a condition and a program with the intended semantics of execution the program while the condition evaluates to a non-zero value.

public class Loop extends Program {
    public final Expression condition;
    public final Program program;

    public Loop(Expression condition, Program program) {
        this.condition = condition;
        this.program = program;
    }
------------------Show String serialization Code ( lines)------------------
    @Override
    public String toString() {
        return "while (" + condition + ") { " + program +  " }";
    }
------------------Show generated equals implementation Code ( lines)------------------
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        Loop loop = (Loop) o;

        if (!condition.equals(loop.condition)) return false;
        return program.equals(loop.program);

    }
}