private Expression CallMacro(Bindings scope) { var firstElem = Elements.First(); var macro = scope.Resolve(firstElem.Token.Text) as Macro; return macro.ExpandAndEvaluate(Elements.Skip(1), scope); }
private bool IsMacro(Expression expr, Bindings scope) { return expr is SymbolExpression && scope.Resolve(expr.Token.Text) is Macro; }