@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
public SymbolMatch make(ParseSpecification specification, int offset, String text) { if (specification.matchesFor(WikiWord.symbolType)) { int length = findWikiWordLength(text); if (length > 0) { Symbol wikiWord = new Symbol(new WikiWord(sourcePage), text.substring(0, length), offset); wikiWord.evaluateVariables(new String[]{WikiWord.REGRACE_LINK}, variableSource); return new SymbolMatch(wikiWord, offset, length); } } if (specification.matchesFor(SymbolType.EMail) && isEmailAddress(text)) { return new SymbolMatch(SymbolType.EMail, text, offset); } return new SymbolMatch(SymbolType.Text, text, offset); }
public SymbolMatch make(ParseSpecification specification, int offset, String text) { if (specification.matchesFor(WikiWord.symbolType)) { int length = findWikiWordLength(text); if (length > 0) { Symbol wikiWord = new Symbol(new WikiWord(sourcePage), text.substring(0, length), offset); wikiWord.evaluateVariables(new String[]{WikiWord.REGRACE_LINK}, variableSource); return new SymbolMatch(wikiWord, offset, length); } } if (specification.matchesFor(SymbolType.EMail) && isEmailAddress(text)) { return new SymbolMatch(SymbolType.EMail, text, offset); } return new SymbolMatch(SymbolType.Text, text, offset); }
includedPage.getValue().getContent()) .parse()); if (option.equals("-setup")) current.evaluateVariables(setUpSymbols, parser.getVariableSource());
includedPage.getValue().getContent()) .parse()); if (option.equals("-setup")) current.evaluateVariables(setUpSymbols, parser.getVariableSource());