Ejemplo n.º 1
0
        public static Function Parse(string formula)
        {
            var formulaObj = new CalculatorVisitor().Visit(
                new CalculatorParser(new CommonTokenStream(
                                         new CalculatorLexer(new AntlrInputStream(formula)))).prog());

            return(formulaObj);
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            var text = "1 + 3 - 1";

            var inputStream       = new AntlrInputStream(text);
            var lexer             = new ExampleLexer(inputStream);
            var commonTokenStream = new CommonTokenStream(lexer);
            var parser            = new ExampleParser(commonTokenStream);

            var context = parser.expression();

            var visitor = new CalculatorVisitor();
            var result  = context.Accept(visitor);

            Console.WriteLine($"result = {result}");
        }
Ejemplo n.º 3
0
 static void Main(string[] args)
 {
     try
     {
         StreamReader      inputStream = new StreamReader(Console.OpenStandardInput());
         AntlrInputStream  input       = new AntlrInputStream(inputStream.ReadToEnd());
         CalculatorLexer   lexer       = new CalculatorLexer(input);
         CommonTokenStream tokens      = new CommonTokenStream(lexer);
         CalculatorParser  parser      = new CalculatorParser(tokens);
         IParseTree        tree        = parser.prog();
         Console.WriteLine(tree.ToStringTree(parser));
         CalculatorVisitor visitor = new CalculatorVisitor();
         Console.WriteLine(visitor.Visit(tree));
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
     }
     Console.ReadLine();
 }
Ejemplo n.º 4
0
        static void Main(string[] args)
        {
            try
            {
                StreamReader inputStream = new StreamReader(Console.OpenStandardInput());
                AntlrInputStream input = new AntlrInputStream(inputStream.ReadToEnd());
                CalculatorLexer lexer = new CalculatorLexer(input);
                CommonTokenStream tokens = new CommonTokenStream(lexer);
                CalculatorParser parser = new CalculatorParser(tokens);
                IParseTree tree = parser.input();
                Console.WriteLine(tree.ToStringTree(parser));
                CalculatorVisitor visitor = new CalculatorVisitor();
                Console.WriteLine(visitor.Visit(tree));
            }
            catch (DivideByZeroException ex)
            {
                Console.WriteLine("Cannot Divide By Zero");
            }

            Console.ReadLine();
        }