private AphidObject InterpretPatternMatchingExpression(PatternMatchingExpression expression) { var left = (AphidObject)InterpretExpression(expression.TestExpression); foreach (var p in expression.Patterns) { if (p.Item1 != null) { var right = (AphidObject)InterpretExpression(p.Item1); var b = left.Value != null? left.Value.Equals(right.Value) : (null == right.Value && left.Count == 0 && right.Count == 0); if (b) { return(ValueHelper.Wrap(InterpretExpression(p.Item2))); } } else { return(ValueHelper.Wrap(InterpretExpression(p.Item2))); } } return(new AphidObject()); }
[DebuggerStepThrough] protected virtual void EmitPatternMatchingExpression(PatternMatchingExpression expression, bool isStatement = false) { throw new NotImplementedException(); }