Guest User

Untitled

a guest
Feb 19th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.77 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string.h>
  4. #include "Classes.h"
  5.  
  6. using namespace std;
  7.  
  8. int TranslateInput(char *);
  9. char * CheckUVars(char*);
  10.  
  11.  
  12. ifstream file("input");
  13. char buffer[256];
  14. char tbuffer[256];
  15. bool Quit = false;
  16.  
  17. int TranslateInput(char * Command)
  18. {
  19.  
  20.     if(Translate.userVars(buffer) != "")
  21.     {
  22.         GetOperations:
  23.         strcpy(tbuffer, buffer);
  24.         file >> buffer;
  25.         switch(Translate.Operations(buffer))
  26.         {
  27.         case PLUSPLUS:
  28.         {
  29.             int t = atol(Translate.userVars(tbuffer));
  30.             t++;
  31.             Translate.AddValue(tbuffer, t);
  32.          }
  33.             break;
  34.  
  35.         case MINUSMINUS:
  36.         {
  37.             int t = atol(Translate.userVars(tbuffer));
  38.             t--;
  39.             Translate.AddValue(tbuffer, t);
  40.         }
  41.             break;
  42.         case DIVDIV:
  43.         {
  44.                Translate.AddValue(tbuffer, 1);
  45.         }
  46.             break;
  47.         case MULMUL:
  48.         {
  49.             int t = atol(Translate.userVars(tbuffer));
  50.             t *= t;
  51.             Translate.AddValue(tbuffer, t);
  52.         }
  53.             break;
  54.         case ADD:
  55.         {
  56.             double one = atol(Translate.userVars(tbuffer));
  57.             file >> buffer;
  58.             if(strcmp(buffer, "=") == 0)
  59.                 file >> buffer;
  60.             double two;
  61.             two = atol(Translate.userVars(buffer));
  62.             if(two == 0)
  63.                 two = atol(buffer);
  64.             one += two;
  65.             Translate.AddValue(tbuffer, one);
  66.         }
  67.             break;
  68.         case SUB:
  69.         {
  70.             double one = atol(Translate.userVars(tbuffer));
  71.             file >> buffer;
  72.             if(strcmp(buffer, "=") == 0)
  73.                 file >> buffer;
  74.             double two;
  75.             two = atol(Translate.userVars(buffer));
  76.             if(two == 0)
  77.                 two = atol(buffer);
  78.             one -= two;
  79.             Translate.AddValue(tbuffer, one);
  80.         }
  81.             break;
  82.         case MUL:
  83.         {
  84.             double one = atol(Translate.userVars(tbuffer));
  85.             file >> buffer;
  86.             if(strcmp(buffer, "=") == 0)
  87.                 file >> buffer;
  88.             double two;
  89.             two = atol(Translate.userVars(buffer));
  90.             if(two == 0)
  91.                 two = atol(buffer);
  92.             one *= two;
  93.             Translate.AddValue(tbuffer, one);
  94.         }
  95.             break;
  96.         case DIV:
  97.         {
  98.             double one = atol(Translate.userVars(tbuffer));
  99.             file >> buffer;
  100.             if(strcmp(buffer, "=") == 0)
  101.                 file >> buffer;
  102.             double two;
  103.             two = atol(Translate.userVars(buffer));
  104.             if(two == 0)
  105.                 two = atol(buffer);
  106.             one /= two;
  107.             Translate.AddValue(tbuffer, one);
  108.         }
  109.             break;
  110.         case EQUALS:
  111.         {
  112.               file >> buffer;
  113.               goto GetOperations;
  114.         }
  115.  
  116.         default:
  117.         break;
  118.         }
  119.     }
  120.  
  121.     //var a = 100
  122.     if(strcmp(Command, "var") == 0)
  123.     {
  124.         file>>buffer;
  125.         strcpy(uVars[uCounter], buffer);
  126.         file>>buffer;
  127.         file>>buffer;
  128.         strcpy(uValue[uCounter], buffer);
  129.         uCounter++;
  130.         return 0;
  131.     }
  132.  
  133.     if(strcmp(Command, "exit") == 0)
  134.     {
  135.         Quit = true;
  136.     }
  137.     //cmp a b
  138.     //goto :z if true
  139.     //goto :x if false
  140.     if(strcmp(Command, "cmp") == 0 || strcmp(Command, "compare") == 0)
  141.     {
  142.         file >> buffer;
  143.         if(Translate.userVars(buffer) != "")
  144.             strcpy(buffer, Translate.userVars(buffer));
  145.         file >> tbuffer;
  146.         if(Translate.userVars(tbuffer) != "")
  147.             strcpy(tbuffer, Translate.userVars(tbuffer));
  148.  
  149.  
  150.         bool Tester;
  151.         if(strcmp(buffer, tbuffer) == 0)
  152.             Tester = true;
  153.         else
  154.             Tester = false;
  155.  
  156.         file >> buffer;
  157.         file >> tbuffer;
  158.         file >> buffer;
  159.         file >> buffer;
  160.         if(strcmp(buffer, "true") == 0)
  161.         {
  162.             if(Tester == true)
  163.             {
  164.                 while(strcmp(buffer, tbuffer) != 0)
  165.                     file >> buffer;
  166.                 return 0;
  167.             }
  168.         }
  169.             file >> buffer;
  170.             file >> tbuffer;
  171.             file >> buffer;
  172.             file >> buffer;
  173.             if(strcmp(buffer, "false") == 0)
  174.             {
  175.                 if(Tester == false)
  176.                 {
  177.                     while(strcmp(buffer, tbuffer) != 0)
  178.                         file >> buffer;
  179.                 }
  180.             }
  181.  
  182.             else TranslateInput(buffer);
  183.  
  184.     }
  185.  
  186.     if(strcmp(Command, "out") == 0)
  187.     {
  188.         file>>buffer;
  189.         if(Translate.userVars(buffer) != "")
  190.         {
  191.             cout<<Translate.userVars(buffer);
  192.             return 0;
  193.         }
  194.         else if (strcmp(buffer,"break") == 0 || strcmp(buffer,"Break") == 0 )
  195.         {
  196.             cout<<endl;
  197.         }
  198.         else if (strcmp(buffer,"\"") == 0)
  199.         {
  200.             char nBuffer[256];
  201.             file>>buffer;
  202.             strcpy(nBuffer, buffer);
  203.             strcat(nBuffer, " ");
  204.             file>>buffer;
  205.             while(strcmp(buffer,"\"") != 0)
  206.             {
  207.                 strcat(nBuffer, buffer);
  208.                 strcat(nBuffer, " ");
  209.                 file>>buffer;
  210.                     if (strcmp(buffer,"\"") == 0)
  211.                         break;
  212.             }
  213.             cout<<nBuffer;
  214.         }
  215.         return 0;
  216.     }
  217.  
  218.     if(strcmp(Command, "in") == 0)
  219.     {
  220.         file>>buffer;
  221.         if(Translate.userVars(buffer) != "")
  222.         {
  223.  
  224.             cin.getline(tbuffer,256);
  225.             Translate.AddValue(buffer,tbuffer);
  226.             return 0;
  227.         }
  228.         return 0;
  229.     }
  230.  
  231.  
  232.     return 1;
  233.  
  234. }
Add Comment
Please, Sign In to add comment