public AutomatonResult Automaton()
        {
            AutomatonResult result = new AutomatonResult();
            BottomUpParser  parser = new BottomUpParser();

            result.Automaton += "digraph C {\r\n";
            result.Automaton += parser.GetAutomaton();
            result.Automaton += "}";

            return(result);
        }
        public CompilationResult Compile([FromBody] CompilationRequest request)
        {
            CompilationResult result   = new CompilationResult();
            LexicalAnalyzer   analyzer = new LexicalAnalyzer(LexicalLanguage.GetLanguage(), request.Input);
            BottomUpParser    parser   = new BottomUpParser(analyzer);

            parser.Parse();

            result.IL       = parser.GetILAsString();
            result.Assembly = new CodeGenerator().GenerateAsString(parser.GetIL());

            return(result);
        }
        public ASTResult AST([FromBody] CompilationRequest request)
        {
            ASTResult result = new ASTResult();

            LexicalAnalyzer analyzer = new LexicalAnalyzer(LexicalLanguage.GetLanguage(), request.Input);
            BottomUpParser  parser   = new BottomUpParser(analyzer);

            parser.Parse();

            result.AST += "digraph C {\r\n";
            result.AST += parser.TopLevelAST.ToDot();
            result.AST += "}";

            return(result);
        }
Пример #4
0
        static void Main(string[] args)
        {
            string input = File.ReadAllText(args[0]);

            Stopwatch       sw       = Stopwatch.StartNew();
            LexicalAnalyzer analyzer = new LexicalAnalyzer(LexicalLanguage.GetLanguage(), input);
            BottomUpParser  parser   = new BottomUpParser(analyzer);

            parser.Parse();

            Console.WriteLine(new CodeGenerator().GenerateAsString(parser.GetIL()));

            sw.Stop();

            Console.WriteLine($"Done (took {sw.ElapsedMilliseconds} milliseconds)");

            Console.ReadLine();
            Console.ReadLine();
            Console.ReadLine();
            Console.ReadLine();
        }
Пример #5
0
 public LogicalQueryPlan(RelationManager relationManager)
 {
     _relationManager = relationManager;
     Parser           = new BottomUpParser();
 }