blob: 8971f8a242b59d6ac77427789d61e5ff8074ef2d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
package org.zwobble.mammoth.styles.parsing;
import org.parboiled.BaseParser;
import org.parboiled.Parboiled;
import org.parboiled.Rule;
import org.parboiled.parserunners.ReportingParseRunner;
import org.parboiled.support.ParsingResult;
import java.util.function.Function;
public class Parsing {
public static <T, U extends BaseParser<T>, V> void parse(Class<U> parserType, Function<U, Rule> rule, String value) {
U parser = Parboiled.createParser(parserType);
ReportingParseRunner<T> runner = new ReportingParseRunner<>(rule.apply(parser));
ParsingResult<T> result = runner.run(value);
if (result.hasErrors()) {
// TODO: wrap in result
throw new RuntimeException("Parse error");
}
}
}
|