mirror of
https://github.com/aNNiMON/Own-Programming-Language-Tutorial.git
synced 2024-09-20 08:44:20 +03:00
41 lines
900 B
Java
41 lines
900 B
Java
|
package com.annimon.ownlang.parser;
|
||
|
|
||
|
import java.util.ArrayList;
|
||
|
import java.util.Iterator;
|
||
|
import java.util.List;
|
||
|
|
||
|
public final class ParseErrors implements Iterable<ParseError> {
|
||
|
|
||
|
private final List<ParseError> errors;
|
||
|
|
||
|
public ParseErrors() {
|
||
|
errors = new ArrayList<>();
|
||
|
}
|
||
|
|
||
|
public void clear() {
|
||
|
errors.clear();
|
||
|
}
|
||
|
|
||
|
public void add(Exception ex, int line) {
|
||
|
errors.add(new ParseError(line, ex));
|
||
|
}
|
||
|
|
||
|
public boolean hasErrors() {
|
||
|
return !errors.isEmpty();
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public Iterator<ParseError> iterator() {
|
||
|
return errors.iterator();
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public String toString() {
|
||
|
final StringBuilder result = new StringBuilder();
|
||
|
for (ParseError error : errors) {
|
||
|
result.append(error).append(System.lineSeparator());
|
||
|
}
|
||
|
return result.toString();
|
||
|
}
|
||
|
}
|