
fitnesse.wikitext.parser.Variable Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of fitnesse Show documentation
Show all versions of fitnesse Show documentation
The fully integrated standalone wiki, and acceptance testing framework.
The newest version!
package fitnesse.wikitext.parser;
import java.util.Optional;
public class Variable extends SymbolType implements Rule, Translation {
public static final Variable symbolType = new Variable();
public Variable() {
super("Variable");
wikiMatcher(new Matcher().string("${"));
wikiRule(this);
htmlTranslation(this);
}
@Override
public Maybe parse(Symbol current, Parser parser) {
Maybe 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);
Optional variableValue = parser.getVariableSource().findVariable(variableName);
if (!variableValue.isPresent()) {
current.add(new Symbol(SymbolType.Meta).add("undefined variable: " + variableName));
}
else {
Symbol variableValueSymbol = parser.parseWithParent(variableValue.get(), null);
current.add(variableValueSymbol);
}
return new Maybe<>(current);
}
@Override
public String toTarget(Translator translator, Symbol symbol) {
return translator.translate(symbol.childAt(1));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy