package edu.stanford.nlp.ling.tokensregex; import edu.stanford.nlp.ling.tokensregex.types.Expression; import edu.stanford.nlp.ling.tokensregex.types.Expressions; import edu.stanford.nlp.ling.tokensregex.types.Value; import edu.stanford.nlp.util.CoreMap; /** * Pattern for matching a CoreMap using a generic expression * * @author Angel Chang */ public class CoreMapExpressionNodePattern extends NodePattern<CoreMap> { Env env; Expression expression; public CoreMapExpressionNodePattern() {} public CoreMapExpressionNodePattern(Env env, Expression expression) { this.env = env; this.expression = expression; } public static CoreMapExpressionNodePattern valueOf(Expression expression) { return valueOf(null, expression); } public static CoreMapExpressionNodePattern valueOf(Env env, Expression expression) { CoreMapExpressionNodePattern p = new CoreMapExpressionNodePattern(env, expression); return p; } @Override public boolean match(CoreMap token) { Value v = expression.evaluate(env, token); Boolean matched = Expressions.convertValueToBoolean(v, false); return (matched != null)? matched:false; } public String toString() { return expression.toString(); } }