public LispNode Get(string sym) { if (Env.ContainsKey(sym)) { return(Env[sym].GetNodeCopy()); } if (parentEnv != null) { return(parentEnv.Get(sym)); } return(new LispNotSymbolException(sym)); }
public static LispNode Evaluate(LispEnvironment env, LispNode node) { if (node is InputSymbol) { return(env.Get(((InputSymbol)node).Symbol)); } if (node is LispList) { return(EvaluateExpr(env, node)); } return(node); }