/// <summary> /// Runs the Parse and back-end computations. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void BackgroundWorker_ParseToAST(object sender, DoWorkEventArgs e) { UIDebugPublisher.clearWindow(); UIDebugPublisher.publishString("Starting Parse Process..."); // Execute Front-End Parse parser.Parse(); foreach (GeometryTutorLib.Area_Based_Analyses.Atomizer.AtomicRegion ar in parser.backendParser.GetAtomicRegions()) { UIDebugPublisher.publishString(ar.ToString()); } analyzer = new GeometryTutorLib.UIFigureAnalyzerMain(parser.backendParser.MakeProblemDescription(manageGivensWindow.GetGivens())); List <GeometryTutorLib.ProblemAnalyzer.Problem <GeometryTutorLib.Hypergraph.EdgeAnnotation> > problems = analyzer.AnalyzeFigure(); // Acquire access to the backend hypergraph hypergraph = analyzer.GetHypergraphWrapper(); foreach (GeometryTutorLib.ConcreteAST.GroundedClause gc in manageGivensWindow.GetGivens()) { UIDebugPublisher.publishString("Given: " + gc.ToString()); } //Example of UI Output to AI Window foreach (GeometryTutorLib.ProblemAnalyzer.Problem <GeometryTutorLib.Hypergraph.EdgeAnnotation> problem in problems) { UIDebugPublisher.publishString(problem.ConstructProblemAndSolution(analyzer.graph).ToString()); } enterSolutionWindow.problem = problems[0]; UIDebugPublisher.publishString("Parse Complete."); }
/// <summary> /// Runs the Parse and back-end computations. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void BackgroundWorker_ParseToAST(object sender, DoWorkEventArgs e) { UIDebugPublisher.clearWindow(); UIDebugPublisher.publishString("Starting Parse Process..."); // Execute Front-End Parse parser.Parse(); foreach (GeometryTutorLib.Area_Based_Analyses.Atomizer.AtomicRegion ar in parser.backendParser.GetAtomicRegions()) { UIDebugPublisher.publishString(ar.ToString()); } analyzer = new GeometryTutorLib.UIFigureAnalyzerMain(parser.backendParser.MakeProblemDescription(manageGivensWindow.GetGivens())); List<GeometryTutorLib.ProblemAnalyzer.Problem<GeometryTutorLib.Hypergraph.EdgeAnnotation>> problems = analyzer.AnalyzeFigure(); // Acquire access to the backend hypergraph hypergraph = analyzer.GetHypergraphWrapper(); foreach (GeometryTutorLib.ConcreteAST.GroundedClause gc in manageGivensWindow.GetGivens()) { UIDebugPublisher.publishString("Given: " + gc.ToString()); } //Example of UI Output to AI Window foreach (GeometryTutorLib.ProblemAnalyzer.Problem<GeometryTutorLib.Hypergraph.EdgeAnnotation> problem in problems) { UIDebugPublisher.publishString(problem.ConstructProblemAndSolution(analyzer.graph).ToString()); } enterSolutionWindow.problem = problems[0]; UIDebugPublisher.publishString("Parse Complete."); }