using System.Collections.Generic; using System.IO; using System.Linq; namespace tlang { internal class FunctionCallNode : Node { public string Text {get;set;} public List Args {get;set;} public FunctionCallNode(string text, List args) { this.Text = text; this.Args = args; } public override TObject Execute(IScopeEnvironment nodeEnv) { var n = nodeEnv[Text] as ICallable; if(n != null) { return n.Call(Args.Select(e=>e.Execute(nodeEnv)).ToArray()); } return TObject.Uninit; } } }