@Override public Maybe<Symbol> parse(Symbol current, Parser parser) { final Symbol body = parser.parseToEnd(SymbolType.Newline); new OptionParser(current, body).parse(); current.add(body); return new Maybe<>(current); }
@Override public Maybe<Symbol> parse(Symbol current, Parser parser) { final Symbol body = parser.parseToEnd(SymbolType.Newline); new OptionParser(current, body).parse(); current.add(body); return new Maybe<>(current); }
@Override public Maybe<Symbol> parse(Symbol current, Parser parser) { Symbol body = parser.parseToEnd(SymbolType.Newline); for (Symbol option: body.getChildren()) { if (option.isType(SymbolType.Whitespace)) continue; if (!option.getContent().startsWith("-")) return Symbol.nothing; current.add(option); } current.evaluateVariables( new String[] {HELP_TOC, HELP_INSTEAD_OF_TITLE_TOC, REGRACE_TOC, PROPERTY_TOC, FILTER_TOC, MORE_SUFFIX_TOC, PROPERTY_CHARACTERS}, parser.getVariableSource()); return new Maybe<>(current); } @Override
@Override public Maybe<Symbol> parse(Symbol current, Parser parser) { Symbol body = parser.parseToEnd(SymbolType.Newline); for (Symbol option: body.getChildren()) { if (option.isType(SymbolType.Whitespace)) continue; if (!option.getContent().startsWith("-")) return Symbol.nothing; current.add(option); } current.evaluateVariables( new String[] {HELP_TOC, HELP_INSTEAD_OF_TITLE_TOC, REGRACE_TOC, PROPERTY_TOC, FILTER_TOC, MORE_SUFFIX_TOC, PROPERTY_CHARACTERS}, parser.getVariableSource()); return new Maybe<>(current); } @Override
@Override public Maybe<Symbol> parse(Symbol current, Parser parser) { Symbol next = parser.moveNext(1); if (!next.isType(SymbolType.Whitespace)) return Symbol.nothing; String level = current.getContent().substring(1,2); if (ScanString.isDigits(level)) current.putProperty(Level, level); current.add(parser.parseToEnd(SymbolType.Newline)); if (parser.peek().isType(SymbolType.Newline) && !parser.endsOn(SymbolType.Newline)) parser.moveNext(1); return new Maybe<>(current); } }
@Override public Maybe<Symbol> parse(Symbol current, Parser parser) { Symbol next = parser.moveNext(1); if (!next.isType(SymbolType.Whitespace)) return Symbol.nothing; String level = current.getContent().substring(1,2); if (ScanString.isDigits(level)) current.putProperty(Level, level); current.add(parser.parseToEnd(SymbolType.Newline)); if (parser.peek().isType(SymbolType.Newline) && !parser.endsOn(SymbolType.Newline)) parser.moveNext(1); return new Maybe<>(current); } }