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 , V> void parse(Class parserType, Function rule, String value) { U parser = Parboiled.createParser(parserType); ReportingParseRunner runner = new ReportingParseRunner<>(rule.apply(parser)); ParsingResult result = runner.run(value); if (result.hasErrors()) { // TODO: wrap in result throw new RuntimeException("Parse error"); } } }