package com.lastcalc.parsers.math;
import com.lastcalc.TokenList;
import com.lastcalc.parsers.Parser;
/**
* Created by ian on 5/31/15.
*/
public class ImplicitMultiply extends Parser {
private static TokenList template = TokenList.createD(org.jscience.mathematics.number.Number.class, org.jscience.mathematics.number.Number.class);
@Override
public TokenList getTemplate() {
return template;
}
@Override
public int hashCode() {
return "ImplicitMultiply".hashCode();
}
@Override
public ParseResult parse(TokenList tokens, int templatePos) {
Number number1 = (Number) tokens.get(templatePos);
Number number2 = (Number) tokens.get(templatePos + 1);
TokenList.CompositeTokenList newTokens = tokens.replaceWithTokens(templatePos, templatePos + 2, number1, "*", number2);
// Add a score bias so that "twenty five" is parsed as "20+5" and not "20*5"
return ParseResult.success(newTokens, 1);
}
@Override
public boolean equals(Object obj) {
return obj instanceof ImplicitMultiply;
}
}