bastools/api/src/main/java/io/github/applecommander/bastools/api/model/Line.java

38 lines
876 B
Java
Raw Normal View History

package io.github.applecommander.bastools.api.model;
2018-05-06 19:31:36 +00:00
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
2018-05-06 19:31:36 +00:00
import io.github.applecommander.bastools.api.Visitor;
2018-05-09 01:25:09 +00:00
/** An AppleSoft BASIC Line representation. */
public class Line {
public final Program program;
2018-05-06 19:31:36 +00:00
public final int lineNumber;
public final List<Statement> statements = new ArrayList<>();
public Line(int lineNumber, Program program) {
Objects.requireNonNull(program);
2018-05-06 19:31:36 +00:00
this.lineNumber = lineNumber;
this.program = program;
}
public int getLineNumber() {
return lineNumber;
}
public Optional<Line> nextLine() {
int i = program.lines.indexOf(this);
if (i == -1 || i+1 >= program.lines.size()) {
return Optional.empty();
}
return Optional.of(program.lines.get(i+1));
2018-05-06 19:31:36 +00:00
}
public Line accept(Visitor t) {
return t.visit(this);
2018-05-08 04:21:29 +00:00
}
2018-05-06 19:31:36 +00:00
}