com.creativewidgetworks.goldparser.simple3.rulehandlers.Id Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of goldengine Show documentation
Show all versions of goldengine Show documentation
Java implementation of Devin Cook's GOLD Parser engine
package com.creativewidgetworks.goldparser.simple3.rulehandlers;
import com.creativewidgetworks.goldparser.engine.Reduction;
import com.creativewidgetworks.goldparser.parser.GOLDParser;
import com.creativewidgetworks.goldparser.parser.ProcessRule;
import com.creativewidgetworks.goldparser.parser.Variable;
import com.creativewidgetworks.goldparser.simple3.Simple3;
@ProcessRule(rule=" ::= Id")
/**
* Rule handler for the assign value of a Variable rule.
*
* @author Ralph Iden (http://www.creativewidgetworks.com)
* @version 5.0.0
*/
public class Id extends Reduction {
private GOLDParser theParser;
private String variableName;
public Id(GOLDParser parser) {
theParser = parser;
Reduction reduction = parser.getCurrentReduction();
if (reduction != null) {
if (reduction.size() == 1) {
variableName = reduction.get(0).asString();
} else {
parser.raiseParserException(Simple3.formatMessage("error.param_count", "1", String.valueOf(reduction.size())));
}
} else {
parser.raiseParserException(Simple3.formatMessage("error.no_reduction"));
}
}
public String getVariableName() {
return variableName;
}
@Override
public Variable getValue() {
Variable var = theParser.getProgramVariable(variableName);
return var == null ? new Variable("") : var;
}
@Override
public String toString() {
return variableName + "=" + getValue();
}
}