Guest User

Untitled

a guest
Jan 22nd, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.60 KB | None | 0 0
  1. /***************************************************************
  2. * Name: wxkit16Main.cpp
  3. * Purpose: Code for Application Frame
  4. * Author: ()
  5. * Created: 2016-09-06
  6. * Copyright: ()
  7. * License:
  8. **************************************************************/
  9.  
  10. #include "wxkit16Main.h"
  11. #include <wx/msgdlg.h>
  12.  
  13. //(*InternalHeaders(wxkit16Frame)
  14. #include <wx/intl.h>
  15. #include <wx/string.h>
  16. //*)
  17.  
  18. //helper functions
  19.  
  20. enum wxbuildinfoformat {
  21. short_f, long_f };
  22.  
  23. wxString wxbuildinfo(wxbuildinfoformat format)
  24. {
  25. wxString wxbuild(wxVERSION_STRING);
  26.  
  27. if (format == long_f )
  28. {
  29. #if defined(__WXMSW__)
  30. wxbuild << _T("-Windows");
  31. #elif defined(__UNIX__)
  32. wxbuild << _T("-Linux");
  33. #endif
  34.  
  35. #if wxUSE_UNICODE
  36. wxbuild << _T("-Unicode build");
  37. #else
  38. wxbuild << _T("-ANSI build");
  39. #endif // wxUSE_UNICODE
  40. }
  41.  
  42. return wxbuild;
  43. }
  44.  
  45. //(*IdInit(wxkit16Frame)
  46. const long wxkit16Frame::ID_TEXTCTRL1 = wxNewId();
  47. const long wxkit16Frame::ID_TEXTCTRL2 = wxNewId();
  48. const long wxkit16Frame::ID_TEXTCTRL3 = wxNewId();
  49. const long wxkit16Frame::ID_BUTTON1 = wxNewId();
  50. const long wxkit16Frame::idMenuQuit = wxNewId();
  51. const long wxkit16Frame::idMenuAbout = wxNewId();
  52. const long wxkit16Frame::ID_STATUSBAR1 = wxNewId();
  53. //*)
  54.  
  55. BEGIN_EVENT_TABLE(wxkit16Frame,wxFrame)
  56. //(*EventTable(wxkit16Frame)
  57. //*)
  58. END_EVENT_TABLE()
  59.  
  60. wxkit16Frame::wxkit16Frame(wxWindow* parent,wxWindowID id)
  61. {
  62. //(*Initialize(wxkit16Frame)
  63. wxMenuItem* MenuItem2;
  64. wxMenuItem* MenuItem1;
  65. wxMenu* Menu1;
  66. wxMenuBar* MenuBar1;
  67. wxMenu* Menu2;
  68.  
  69. Create(parent, id, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE, _T("id"));
  70. AritCtrl = new wxTextCtrl(this, ID_TEXTCTRL1, wxEmptyString, wxPoint(8,8), wxSize(184,104), wxTE_MULTILINE, wxDefaultValidator, _T("ID_TEXTCTRL1"));
  71. AdatCtrl = new wxTextCtrl(this, ID_TEXTCTRL2, wxEmptyString, wxPoint(208,8), wxSize(184,104), wxTE_MULTILINE, wxDefaultValidator, _T("ID_TEXTCTRL2"));
  72. GepiCtrl = new wxTextCtrl(this, ID_TEXTCTRL3, wxEmptyString, wxPoint(8,120), wxSize(184,104), wxTE_MULTILINE, wxDefaultValidator, _T("ID_TEXTCTRL3"));
  73. Fordit = new wxButton(this, ID_BUTTON1, _("Label"), wxPoint(208,120), wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON1"));
  74. MenuBar1 = new wxMenuBar();
  75. Menu1 = new wxMenu();
  76. MenuItem1 = new wxMenuItem(Menu1, idMenuQuit, _("Quit\tAlt-F4"), _("Quit the application"), wxITEM_NORMAL);
  77. Menu1->Append(MenuItem1);
  78. MenuBar1->Append(Menu1, _("&File"));
  79. Menu2 = new wxMenu();
  80. MenuItem2 = new wxMenuItem(Menu2, idMenuAbout, _("About\tF1"), _("Show info about this application"), wxITEM_NORMAL);
  81. Menu2->Append(MenuItem2);
  82. MenuBar1->Append(Menu2, _("Help"));
  83. SetMenuBar(MenuBar1);
  84. StatusBar1 = new wxStatusBar(this, ID_STATUSBAR1, 0, _T("ID_STATUSBAR1"));
  85. int __wxStatusBarWidths_1[1] = { -1 };
  86. int __wxStatusBarStyles_1[1] = { wxSB_NORMAL };
  87. StatusBar1->SetFieldsCount(1,__wxStatusBarWidths_1);
  88. StatusBar1->SetStatusStyles(1,__wxStatusBarStyles_1);
  89. SetStatusBar(StatusBar1);
  90.  
  91. Connect(ID_BUTTON1,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&wxkit16Frame::OnForditClick);
  92. Connect(idMenuQuit,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&wxkit16Frame::OnQuit);
  93. Connect(idMenuAbout,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&wxkit16Frame::OnAbout);
  94. //*)
  95. }
  96.  
  97. wxkit16Frame::~wxkit16Frame()
  98. {
  99. //(*Destroy(wxkit16Frame)
  100. //*)
  101. }
  102.  
  103. void wxkit16Frame::OnQuit(wxCommandEvent& event)
  104. {
  105. Close();
  106. }
  107.  
  108. void wxkit16Frame::OnAbout(wxCommandEvent& event)
  109. {
  110. wxString msg = wxbuildinfo(long_f);
  111. wxMessageBox(msg, _("Welcome to..."));
  112. }
  113.  
  114. void wxkit16Frame::OnForditClick(wxCommandEvent& event)
  115. {
  116. int regiszterek = 0;
  117. int parhuzamos_muveletek = 0;
  118. bool contains = true;
  119. bool nagybetu_hiba = false;
  120. bool szam_hiba = false;
  121. bool kisbetu_hiba=false;
  122. bool muveletijel_hiba=false;
  123. bool ertelmetlen_kifejezes=false;
  124. std::map<std::string, std::string> egyenletek = beolvas(AritCtrl, regiszterek, parhuzamos_muveletek, szam_hiba, nagybetu_hiba, kisbetu_hiba, contains);
  125. std::map<std::string, std::vector<Token> > infixtokenegyenletek = egyenletek2tokenegyenletek(egyenletek, ertelmetlen_kifejezes, muveletijel_hiba);
  126. if(szam_hiba) {
  127. wxString msg = "Nem adta meg a parhuzamosan vegezheto muveletek maximalis szamat!";
  128. wxMessageBox(msg, _("Hibauzenet"));
  129. }else if(nagybetu_hiba) {
  130. wxString msg = "Hibas kifejezes";
  131. wxMessageBox(msg, _("Hibauzenet"));
  132. }else if(kisbetu_hiba) {
  133. wxString msg = "Hibas aritmtikai kifejezes: Nagybetu van az aritmetikai kifejezesben.";
  134. wxMessageBox(msg, _("Hibauzenet"));
  135. } else if(ertelmetlen_kifejezes) {
  136. wxString msg = "Hibas aritmetikai kifejezes: Az aritmetikai kifejezes ertelmetlen.";
  137. wxMessageBox(msg, _("Hibauzenet"));
  138. }
  139. else if(muveletijel_hiba) {
  140. wxString msg = "Hibas aritmtikai kifejezes: Hibas muveleti jel hasznalat.";
  141. wxMessageBox(msg, _("Hibauzenet"));
  142. } else {
  143. std::map<std::string, std::vector<Token> > postfixtokenegyenletek = infixtoken2postfixtoken(infixtokenegyenletek);
  144. AdatCtrl->SetValue(tokenkiiratas(postfixtokenegyenletek));
  145. std::map<std::string, ExpNode* > exptrees = postfixtoken2exptree(postfixtokenegyenletek);
  146. std::list<ExpNode*> commonExpressions;
  147. std::cout << std::endl;
  148. sokfabejaras(exptrees);
  149. std::cout << std::endl;
  150. expTreeAnalyse(exptrees, commonExpressions);
  151. char antireg='0';
  152. char memo='0';
  153. GepiCtrl->SetValue(kiir(exptrees, commonExpressions,parhuzamos_muveletek, regiszterek, antireg,memo));
  154.  
  155. }
  156. }
Add Comment
Please, Sign In to add comment