2 using System.Collections.Generic;
9 static MSymbol Mpreedit = MSymbol.Of ("preedit");
11 public static object insert (object[] args, MPlist bindings)
13 object arg = ((MExpression) args[0]).Eval (bindings);
14 MPlist slot = bindings.Find (Mpreedit);
15 MText preedit = (MText) slot.val;
18 preedit.Cat ((int) arg);
20 preedit.Cat ((MText) arg);
24 public static void Main()
27 MPlist bindings = new MPlist ();
28 MExpression.FunctionTable func_table = new MExpression.FunctionTable ();
30 MExpression.Defun (func_table, "insert", new MExpression.Evaluator (insert),
31 1, 1, typeof (MExpression));
32 bindings.Add (MSymbol.Of ("X"), 10);
33 bindings.Add (Mpreedit, new MText ("PREEDIT TEXT"));
35 using (FileStream stream = new FileStream ("eval.txt", FileMode.Open))
37 expr = new MExpression (new MPlist (stream), func_table);
39 Console.WriteLine (bindings);
41 Console.WriteLine ("\n => " + expr.Eval (bindings));
42 Console.WriteLine (bindings);