public Symbol parse(String input) { return parseWithParent(input, this); }
public Symbol parse(String input) { return parseWithParent(input, this); }
@Override public String getVariable(String name) { ParsingPage parsingPage = getParsingPage(); Maybe<String> variable = parsingPage.findVariable(name); if (variable.isNothing()) return null; Parser parser = Parser.make(parsingPage, "", SymbolProvider.variableDefinitionSymbolProvider); return new HtmlTranslator(null, parsingPage).translate(parser.parseWithParent(variable.getValue(), null)); }
@Override public String getVariable(String name) { ParsingPage parsingPage = getParsingPage(); Maybe<String> variable = parsingPage.findVariable(name); if (variable.isNothing()) return null; Parser parser = Parser.make(parsingPage, "", SymbolProvider.variableDefinitionSymbolProvider); return new HtmlTranslator(null, parsingPage).translate(parser.parseWithParent(variable.getValue(), null)); }
@Override public Maybe<Symbol> parse(Symbol current, Parser parser) { Maybe<String> name = parser.parseToAsString(SymbolType.CloseBrace); if (name.isNothing() || name.getValue().isEmpty()) return Symbol.nothing; String variableName = name.getValue(); if (!ScanString.isVariableName(variableName)) return Symbol.nothing; current.add(variableName); Maybe<String> variableValue = parser.getVariableSource().findVariable(variableName); if (variableValue.isNothing()) { current.add(new Symbol(SymbolType.Meta).add("undefined variable: " + variableName)); } else { Symbol variableValueSymbol = parser.parseWithParent(variableValue.getValue(), null); current.add(variableValueSymbol); } return new Maybe<>(current); }
@Override public Maybe<Symbol> parse(Symbol current, Parser parser) { Maybe<String> name = parser.parseToAsString(SymbolType.CloseBrace); if (name.isNothing() || name.getValue().isEmpty()) return Symbol.nothing; String variableName = name.getValue(); if (!ScanString.isVariableName(variableName)) return Symbol.nothing; current.add(variableName); Maybe<String> variableValue = parser.getVariableSource().findVariable(variableName); if (variableValue.isNothing()) { current.add(new Symbol(SymbolType.Meta).add("undefined variable: " + variableName)); } else { Symbol variableValueSymbol = parser.parseWithParent(variableValue.getValue(), null); current.add(variableValueSymbol); } return new Maybe<>(current); }