public override IValue Evaluate()
{
var expr = _expression.Evaluate();
var pattern = _pattern.Evaluate();
if (expr == null || pattern == null)
{
return null;
}
var exprStr = expr.AsString;
var patternStr = pattern.AsString;
var stream = new AntlrInputStream(patternStr);
var lexer = new VBALikeLexer(stream);
var tokens = new CommonTokenStream(lexer);
var parser = new VBALikeParser(tokens);
var likePattern = parser.likePatternString();
var regex = TranslateToNETRegex(likePattern);
return new BoolValue(Regex.IsMatch(exprStr, regex));
}