package org.krakenapps.logdb.query.parser;
import static org.krakenapps.bnf.Syntax.k;
import static org.krakenapps.bnf.Syntax.ref;
import org.krakenapps.bnf.Binding;
import org.krakenapps.bnf.Syntax;
import org.krakenapps.logdb.LogQueryParser;
import org.krakenapps.logdb.query.StringPlaceholder;
import org.krakenapps.logdb.query.command.Replace;
import org.krakenapps.logdb.query.command.Term;
public class ReplaceParser implements LogQueryParser {
@Override
public void addSyntax(Syntax syntax) {
syntax.add("replace", this, k("replace "), ref("option"), ref("term"), new StringPlaceholder());
syntax.addRoot("replace");
}
@Override
public Object parse(Binding b) {
Term term = (Term) b.getChildren()[2].getValue();
String value = (String) b.getChildren()[3].getValue();
return new Replace(term, value);
}
}