using System; using Ilog.Language.Parsing; public class PartialCalculator { public static void Main () { try { CalculatorTokenizer t; t = new CalculatorTokenizer("",false); try { CalculatorParser p = new CalculatorParser(t); String input; p.ParseTreeType = GenericParser.COMPACT_TREE; // p.toggleTrace(); Console.WriteLine("\n---------------------------------------------\n"); p.ParseExpression(input="1+2"); Console.WriteLine("\nThe value of "+input+" is "+p.CurrentNode.NValue); Console.WriteLine("\nPARSE TREE:\n"); p.CurrentNode.Show(); Console.WriteLine("\n---------------------------------------------\n"); p.ParseDefinition("pi = 22/7"); Console.WriteLine("\nDefining pi as "+p.CurrentNode.NValue); Console.WriteLine("\nPARSE TREE:\n"); p.CurrentNode.Show(); Console.WriteLine("\n---------------------------------------------\n"); p.ParseExpression("2 * pi"); Console.WriteLine("\nTwice this pi is "+p.CurrentNode.NValue); Console.WriteLine("\nPARSE TREE:\n"); p.CurrentNode.Show(); Console.WriteLine("\n---------------------------------------------\n"); } catch (Exception e) { Console.WriteLine("*** Parsing error: "+e); } } catch (Exception e) { Console.WriteLine("*** Tokenizing error: "+e); } } }