public Processor(IMain mainWindow, ASTResult ast) { window = mainWindow; astTree = ast; evaluator = new Evaluator(); }
public MainWindow() { InitializeComponent(); string path = @"C:\Users\Daniel\Documents\UVA\Software Construction\Assignments\project\many-ql\FelipezConde\testsamples\"; string fileName = "test9.txt"; TestClass test = new TestClass(); ASTResult ast = test.GetAST(path + fileName); Processor procesor = new Processor(this, ast); UIElement element = Processor.ProcessBody(ast.Ast.GetBody(), this._stack); }
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); }
public static ASTResult GetTypeCheckDiagnosis(ASTResult astResult) { //Precondition: no previous errors if (astResult.HasError()) // if it already has errors, refuse to add more { return(astResult); } Form rootNode = astResult.RootNode; INotificationManager manager = new NotificationManager(); manager.Combine(new IdentifierChecker(manager).AnalyzeAndReport(rootNode)); manager.Combine(new ExpressionContainerChecker(manager, GetIdentifierTypes(rootNode)) .AnalyzeAndReport(rootNode.GetBody()) ); manager.Combine(new CyclicDependencyChecker(manager).AnalyzeAndReport(rootNode.GetBody())); manager.Combine(new LabelChecker().AnalyzeAndReport(rootNode.GetBody())); astResult.CombineNotifications(manager); return(astResult); }
public MainController(MainWindow mainWindow, ASTResult ast) { window = mainWindow; astTree = ast; }