Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
06/29/13 18:04:06 (11 years ago)
Author:
gkronber
Message:

#2026: Worked on integration of ICSharpCode.AvalonEdit control for GPDL syntax-highlighting and error reporting.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.Problems.GPDL/HeuristicLab.Problems.GPDL.Views/3.4/GpdlEditor.cs

    r9528 r9674  
    1919
    2020    private void compileButton_Click(object sender, EventArgs e) {
    21       Utils.InstallModule("Utils", new Utils.ModuleMethodDelegate(Utils.UtilsMethod));
    22       Utils.InstallModule("Sets", new Utils.ModuleMethodDelegate(Sets.SetsMethod));
    23       Utils.InstallModule("Errors", new Utils.ModuleMethodDelegate(Errors.ErrorsMethod));
     21      Utils.InstallModule("Utils", Utils.UtilsMethod);
     22      Utils.InstallModule("Sets", Sets.SetsMethod);
     23      Utils.InstallModule("Errors", Errors.ErrorsMethod);
    2424
    25       Utils.InstallModule("GPDefLex", new Utils.ModuleMethodDelegate(GPDefLex.GPDefLexMethod));
    26       Utils.InstallModule("GPDefSem", new Utils.ModuleMethodDelegate(GPDefSem.GPDefSemMethod));
    27       Utils.InstallModule("GPDefSyn", new Utils.ModuleMethodDelegate(GPDefSyn.GPDefSynMethod));
     25      Utils.InstallModule("GPDefLex", GPDefLex.GPDefLexMethod);
     26      Utils.InstallModule("GPDefSem", GPDefSem.GPDefSemMethod);
     27      Utils.InstallModule("GPDefSyn", GPDefSyn.GPDefSynMethod);
    2828
    2929      // --- initialize modules ---
     
    3232      Errors.PushAbortMethod(new Errors.AbortMethod(Abort));
    3333
    34       using (var src = new StringReader(gpdlTextBox.Text)) {
     34      using (var src = new StringReader(codeEditor.textEditor.Text)) {
    3535        GPDefLex.src = src;
    3636        GPDefSyn.Parse();
    3737      }
    3838
    39       GPDefLex.InitLex();
    40       GPDefSyn.Interpret();
     39      codeEditor.ClearErrors();
    4140
    42       MainForm.MainFormManager.MainForm.ShowContent(GPDefSem.problem);
     41      if (Errors.NumOfErrors() == 0) {
     42        GPDefLex.InitLex();
     43        GPDefSyn.Interpret();
     44
     45        MainForm.MainFormManager.MainForm.ShowContent(GPDefSem.problem);
     46      } else {
     47        int nLexErrors = Errors.NumOfLexErrors();
     48        for (int i = 0; i < nLexErrors; i++) {
     49          var lexErr = Errors.GetLexError(i == 0);
     50          codeEditor.SetLexError(lexErr.msg, lexErr.line, lexErr.col);
     51        }
     52        int nSynErrors = Errors.NumOfSynErrors();
     53        for (int i = 0; i < nSynErrors; i++) {
     54          var synErr = Errors.GetSynError(i == 0);
     55          codeEditor.SetLexError(synErr.msg, synErr.line, synErr.col);
     56        }
     57      }
    4358    }
    4459
     
    4863
    4964    void IProblemInstanceConsumer<string>.Load(string data) {
    50       this.gpdlTextBox.Text = data;
     65      codeEditor.textEditor.Text = data;
    5166    }
    52 
    5367  }
    5468}
Note: See TracChangeset for help on using the changeset viewer.