/** * Creates a new processor instance with the given {@link org.pegdown.Extensions}, parsing timeout and plugins. * * @param options the flags of the extensions to enable as a bitmask * @param maxParsingTimeInMillis the parsing timeout * @param plugins the plugins to use */ public PegDownProcessor(int options, long maxParsingTimeInMillis, PegDownPlugins plugins) { this(Parboiled.createParser(Parser.class, options, maxParsingTimeInMillis, Parser.DefaultParseRunnerProvider, plugins)); }
/** * Add a plugin parser. This should either implement {@link InlinePluginParser} or {@link BlockPluginParser}, * or both. The parser will be enhanced by parboiled before its rules are extracted and registered here. * * @param pluginParser the plugin parser class. * @param arguments the arguments to pass to the constructor of that class. */ public Builder withPlugin(Class<? extends BaseParser<Object>> pluginParser, Object... arguments) { // First, check that the parser implements one of the parser interfaces if (!(InlinePluginParser.class.isAssignableFrom(pluginParser) || BlockPluginParser.class.isAssignableFrom(pluginParser))) { throw new IllegalArgumentException("Parser plugin must implement a parser plugin interface to be useful"); } BaseParser<Object> parser = Parboiled.createParser(pluginParser, arguments); if (parser instanceof InlinePluginParser) { withInlinePluginRules(((InlinePluginParser) parser).inlinePluginRules()); } if (parser instanceof BlockPluginParser) { withBlockPluginRules(((BlockPluginParser) parser).blockPluginRules()); } return this; }
public static void main(String... args) { Parser templateParser = Parboiled.createParser(Parser.class); ParsingResult<Object> result = new ReportingParseRunner<>(templateParser.Unit()).run(input2); ImmutableList<Object> copy = ImmutableList.copyOf(result.valueStack.iterator()); if (!copy.isEmpty()) { Unit unit = (Unit) copy.get(0); Unit balance = Balancing.balance(unit); System.out.println(balance); } if (result.hasErrors()) { System.err.println(ErrorUtils.printParseErrors(result.parseErrors)); } // System.out.println(ParseTreeUtils.printNodeTree(result)); } }
public MapExpressionParser(ParserContext context) { super(MapExpressionParser.class, context); createParser(MapParser.class, context); createParser(StringOrIdentifierParser.class, context); }
public AnyTestExpressionParser(ParserContext context, List<Class<? extends TestExpressionParser>> testExpressionParsers) { super(AnyTestExpressionParser.class, context); this.testExpressionParsers = testExpressionParsers; createParser(NotParser.class, context); }
public FunctionExpressionParser(ParserContext context) { super(FunctionExpressionParser.class, context); createParser(ArgumentsParser.class, context); createParser(FunctionNameParser.class, context); }
public ParserGroup(Source source) { this.source = source; basics = Parboiled.createParser(BasicsParser.class, this); literals = Parboiled.createParser(LiteralsParser.class, this); types = Parboiled.createParser(TypesParser.class, this); expressions = Parboiled.createParser(ExpressionsParser.class, this); statements = Parboiled.createParser(StatementsParser.class, this); structures = Parboiled.createParser(StructuresParser.class, this); } }
public ParserGroup(Source source) { this.source = source; basics = Parboiled.createParser(BasicsParser.class, this); literals = Parboiled.createParser(LiteralsParser.class, this); types = Parboiled.createParser(TypesParser.class, this); expressions = Parboiled.createParser(ExpressionsParser.class, this); statements = Parboiled.createParser(StatementsParser.class, this); structures = Parboiled.createParser(StructuresParser.class, this); } }
private static Parser create(final Handlebars handlebars, final String filename, final Map<String, Partial> partials, final String startDelimiter, final String endDelimiter, final LinkedList<Stacktrace> stacktrace) { return Parboiled.createParser(Parser.class, handlebars, filename, partials, startDelimiter, endDelimiter, stacktrace); }
public StringExpressionParser(ParserContext context) { super(StringExpressionParser.class, context); createParser(StringParser.class, context); }
public AutoEscapeNodeParser(ParserContext context) { super(AutoEscapeNodeParser.class, context); createParser(EscapeModeParser.class, context); }
public FilterNodeParser(ParserContext context) { super(FilterNodeParser.class, context); createParser(FilterExpressionParser.class, context); }
public FunctionExpressionParser(ParserContext context) { super(FunctionExpressionParser.class, context); createParser(ArgumentsParser.class, context); createParser(FunctionNameParser.class, context); }
public MapExpressionParser(ParserContext context) { super(MapExpressionParser.class, context); createParser(MapParser.class, context); createParser(StringOrIdentifierParser.class, context); }
public AnyTestExpressionParser(ParserContext context, List<Class<? extends TestExpressionParser>> testExpressionParsers) { super(AnyTestExpressionParser.class, context); this.testExpressionParsers = testExpressionParsers; createParser(NotParser.class, context); }
public ContentEscapeNodeParser(ParserContext context) { super(ContentEscapeNodeParser.class, context); createParser(EscapeModeParser.class, context); }
public TextNodeParser(ParserContext context) { super(TextNodeParser.class, context); createParser(TextBuilderParser.class, context); }
public EnumerationListExpressionParser(ParserContext context) { super(EnumerationListExpressionParser.class, context); createParser(MultipleExpressionsParser.class, context); }
public IfNodeParser(ParserContext context) { super(IfNodeParser.class, context); createParser(IfConditionNodeParser.class, context); }
public MacroNodeParser(ParserContext context) { super(MacroNodeParser.class, context); createParser(ParametersParser.class, context); }