public override MacroResult TranslateCall(MacroCall call) { var args = call.Arguments.Select(ASTHelpers.IgnoreExprSourcePos).ToArray(); if (args.All(a => a.IsValue)) { var sum = call.Arguments.Sum(a => ((Literal.Int)((Expression.Value)a).Value).Value); return MacroResult.NewMacroOk(Expression.NewValue(Literal.NewInt(sum))); } else return MacroResult.MacroFallback; }
public override MacroResult TranslateCall(MacroCall call) { var args = call.Arguments.Select(ASTHelpers.IgnoreExprSourcePos).ToArray(); if (args.All(a => a.IsValue)) { var sum = call.Arguments.Sum(a => ((Literal.Int)((Expression.Value)a).Value).Value); return(MacroResult.NewMacroOk(Expression.NewValue(Literal.NewInt(sum)))); } else { return(MacroResult.MacroFallback); } }
///////////////////////////////////////////////////////////////////////////// public static Macro NewBuiltinMacro( IMacroProcessor mp, string name, IMacroHandler mh, MacroCall method ) { // ****** Macro macro = new Macro( name, MacroType.Builtin, mh, null, null, null, mp ); macro.MacroHandlerData = method; // ****** return macro; }