private void OnParsingProcessBtnClicked(object sender, EventArgs args) { syntacticalCoverModel.Clear(); parsingTaskLabel.Markup = "-"; // We set the tokens from the previous step. controller.SetStartTokens(MainRecognizerWindow.TokenizingWidget.ResultTokens); // We set the rules library. SyntacticalRulesLibrary.Instance.ClearRules(); List <SyntacticalRule> rules = Config.RecognizerConfig.Instance.SyntacticalRules; foreach (SyntacticalRule rule in rules) { SyntacticalRulesLibrary.Instance.AddRule(rule); } SyntacticalRulesLibrary.Instance.StartRule = rules[0]; parsingButtonsNB.Page = 1; currentNode = null; controller.Next(ControllerStepMode.StepByStep); }
private void OnTokenizingControllerProcessFinished(object sender, EventArgs args) { Application.Invoke(delegate(object resender, EventArgs a) { if (!tokenizingFinished) { tokenizingFinished = true; unassistedTaskNameLabel.Text = "Análisis léxico"; unassistedGlobalProgressBar.Fraction = 0.5; tokenizingController.Next(ControllerStepMode.UntilEnd); } else { List <Token> result = tokenizingController.Result; bool fail = false; foreach (Token t in result) { if (t == null) { fail = true; break; } } if (fail) { OkDialog.Show(this.MainRecognizerWindow.Window, MessageType.Warning, "El análisis léxico falló, hubo ítems que no concordaron con ninguna regla léxica.\nPrueba a añadir más reglas léxicas y vuelve a intentarlo."); unassistedControlHBB.Sensitive = true; return; } unassistedTaskNameLabel.Text = "Análisis sintáctico"; unassistedGlobalProgressBar.Fraction = 0.66; SyntacticalRulesLibrary.Instance.ClearRules(); foreach (SyntacticalRule rule in Config.RecognizerConfig.Instance.SyntacticalRules) { SyntacticalRulesLibrary.Instance.AddRule(rule); } SyntacticalRulesLibrary.Instance.StartRule = Config.RecognizerConfig.Instance.SyntacticalRules[0]; parsingController.SetStartTokens(result); parsingController.Next(ControllerStepMode.UntilEnd); } }); }