Guest User

Untitled

a guest
Apr 23rd, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 10.55 KB | None | 0 0
  1. #include<iostream>
  2. #include<fstream>
  3. #include<string>
  4. using namespace std;
  5.  
  6. class forLoopCheck{
  7. private:
  8.     int mainTable[11][11];
  9.     int iniTable[6][7];
  10.     int tableVar[4][4];
  11.  
  12. public:
  13.     forLoopCheck(){
  14.         setMain();
  15.         setIni();
  16.     }
  17.  
  18.     void setMain(){
  19.         mainTable[0][0] = 0;
  20.         mainTable[0][1] = 1;
  21.         mainTable[0][2] = 10;
  22.         mainTable[0][3] = 10;
  23.         mainTable[0][4] = 10;
  24.         mainTable[0][5] = 10;
  25.         mainTable[0][6] = 10;
  26.         mainTable[0][7] = 10;
  27.         mainTable[0][8] = 10;
  28.         mainTable[0][9] = 10;
  29.         mainTable[0][10] = 10;
  30.  
  31.         mainTable[1][0] = 1;
  32.         mainTable[1][1] = 10;
  33.         mainTable[1][2] = 2;
  34.         mainTable[1][3] = 10;
  35.         mainTable[1][4] = 10;
  36.         mainTable[1][5] = 10;
  37.         mainTable[1][6] = 10;
  38.         mainTable[1][7] = 10;
  39.         mainTable[1][8] = 10;
  40.         mainTable[1][9] = 10;
  41.         mainTable[1][10] = 10;
  42.  
  43.         mainTable[2][0] = 2;
  44.         mainTable[2][1] = 10;
  45.         mainTable[2][2] = 10;
  46.         mainTable[2][3] = 3;
  47.         mainTable[2][4] = 10;
  48.         mainTable[2][5] = 10;
  49.         mainTable[2][6] = 10;
  50.         mainTable[2][7] = 10;
  51.         mainTable[2][8] = 10;
  52.         mainTable[2][9] = 10;
  53.         mainTable[2][10] = 10;
  54.  
  55.         mainTable[3][0] = 3;
  56.         mainTable[3][1] = 10;
  57.         mainTable[3][2] = 10;
  58.         mainTable[3][3] = 10;
  59.         mainTable[3][4] = 4;
  60.         mainTable[3][5] = 10;
  61.         mainTable[3][6] = 10;
  62.         mainTable[3][7] = 10;
  63.         mainTable[3][8] = 10;
  64.         mainTable[3][9] = 10;
  65.         mainTable[3][10] = 10;
  66.  
  67.         mainTable[4][0] = 4;
  68.         mainTable[4][1] = 10;
  69.         mainTable[4][2] = 10;
  70.         mainTable[4][3] = 10;
  71.         mainTable[4][4] = 10;
  72.         mainTable[4][5] = 5;
  73.         mainTable[4][6] = 10;
  74.         mainTable[4][7] = 10;
  75.         mainTable[4][8] = 10;
  76.         mainTable[4][9] = 10;
  77.         mainTable[4][10] = 10;
  78.  
  79.         mainTable[5][0] = 5;
  80.         mainTable[5][1] = 10;
  81.         mainTable[5][2] = 10;
  82.         mainTable[5][3] = 10;
  83.         mainTable[5][4] = 10;
  84.         mainTable[5][5] = 10;
  85.         mainTable[5][6] = 6;
  86.         mainTable[5][7] = 10;
  87.         mainTable[5][8] = 10;
  88.         mainTable[5][9] = 10;
  89.         mainTable[5][10] = 10;
  90.  
  91.         mainTable[6][0] = 6;
  92.         mainTable[6][1] = 10;
  93.         mainTable[6][2] = 10;
  94.         mainTable[6][3] = 10;
  95.         mainTable[6][4] = 10;
  96.         mainTable[6][5] = 10;
  97.         mainTable[6][6] = 10;
  98.         mainTable[6][7] = 7;
  99.         mainTable[6][8] = 9;
  100.         mainTable[6][9] = 10;
  101.         mainTable[6][10] = 10;
  102.  
  103.         mainTable[7][0] = 7;
  104.         mainTable[7][1] = 10;
  105.         mainTable[7][2] = 10;
  106.         mainTable[7][3] = 10;
  107.         mainTable[7][4] = 10;
  108.         mainTable[7][5] = 10;
  109.         mainTable[7][6] = 10;
  110.         mainTable[7][7] = 10;
  111.         mainTable[7][8] = 8;
  112.         mainTable[7][9] = 10;
  113.         mainTable[7][10] = 10;
  114.  
  115.         mainTable[8][0] = 8;
  116.         mainTable[8][1] = 10;
  117.         mainTable[8][2] = 10;
  118.         mainTable[8][3] = 10;
  119.         mainTable[8][4] = 10;
  120.         mainTable[8][5] = 10;
  121.         mainTable[8][6] = 10;
  122.         mainTable[8][7] = 10;
  123.         mainTable[8][8] = 10;
  124.         mainTable[8][9] = 9;
  125.         mainTable[8][10] = 10;
  126.  
  127.         mainTable[9][0] = 9;
  128.         mainTable[9][1] = 10;
  129.         mainTable[9][2] = 10;
  130.         mainTable[9][3] = 10;
  131.         mainTable[9][4] = 10;
  132.         mainTable[9][5] = 10;
  133.         mainTable[9][6] = 10;
  134.         mainTable[9][7] = 10;
  135.         mainTable[9][8] = 10;
  136.         mainTable[9][9] = 10;
  137.         mainTable[9][10] = 10;
  138.  
  139.         mainTable[10][0] = 10;
  140.         mainTable[10][1] = 10;
  141.         mainTable[10][2] = 10;
  142.         mainTable[10][3] = 10;
  143.         mainTable[10][4] = 10;
  144.         mainTable[10][5] = 10;
  145.         mainTable[10][6] = 10;
  146.         mainTable[10][7] = 10;
  147.         mainTable[10][8] = 10;
  148.         mainTable[10][9] = 10;
  149.         mainTable[10][10] = 10;
  150.  
  151.     }
  152.  
  153.     void setIni(){
  154.         iniTable[0][0] = 0;
  155.         iniTable[0][1] = 1;
  156.         iniTable[0][2] = 2;
  157.         iniTable[0][3] = 6;
  158.         iniTable[0][4] = 6;
  159.         iniTable[0][5] = 5;
  160.         iniTable[0][6] = 6;
  161.         iniTable[0][7] = 6;
  162.  
  163.         iniTable[1][0] = 1;
  164.         iniTable[1][1] = 6;
  165.         iniTable[1][2] = 2;
  166.         iniTable[1][3] = 6;
  167.         iniTable[1][4] = 6;
  168.         iniTable[1][5] = 6;
  169.         iniTable[1][6] = 6;
  170.         iniTable[1][7] = 6;
  171.  
  172.         iniTable[2][0] = 2;
  173.         iniTable[2][1] = 6;
  174.         iniTable[2][2] = 6;
  175.         iniTable[2][3] = 3;
  176.         iniTable[2][4] = 6;
  177.         iniTable[2][5] = 5;
  178.         iniTable[2][6] = 1;
  179.         iniTable[2][7] = 6;
  180.  
  181.         iniTable[3][0] = 3;
  182.         iniTable[3][1] = 6;
  183.         iniTable[3][2] = 4;
  184.         iniTable[3][3] = 6;
  185.         iniTable[3][4] = 4;
  186.         iniTable[3][5] = 6;
  187.         iniTable[3][6] = 6;
  188.         iniTable[3][7] = 6;
  189.  
  190.         iniTable[4][0] = 4;
  191.         iniTable[4][1] = 6;
  192.         iniTable[4][2] = 6;
  193.         iniTable[4][3] = 6;
  194.         iniTable[4][4] = 6;
  195.         iniTable[4][5] = 5;
  196.         iniTable[4][6] = 1;
  197.         iniTable[4][7] = 6;
  198.  
  199.         iniTable[5][0] = 5;
  200.         iniTable[5][1] = 6;
  201.         iniTable[5][2] = 6;
  202.         iniTable[5][3] = 6;
  203.         iniTable[5][4] = 6;
  204.         iniTable[5][5] = 6;
  205.         iniTable[5][6] = 6;
  206.         iniTable[5][7] = 6;
  207.  
  208.         iniTable[6][0] = 6;
  209.         iniTable[6][1] = 6;
  210.         iniTable[6][2] = 6;
  211.         iniTable[6][3] = 6;
  212.         iniTable[6][4] = 6;
  213.         iniTable[6][5] = 6;
  214.         iniTable[6][6] = 6;
  215.         iniTable[6][7] = 6;
  216.     }
  217.  
  218.     void setVariable(){
  219.  
  220.         tableVar[0][0] = 0;
  221.         tableVar[0][1] = 1;
  222.         tableVar[0][2] = 3;
  223.         tableVar[0][3] = 3;
  224.  
  225.         tableVar[1][0] = 3;
  226.         tableVar[1][1] = 1;
  227.         tableVar[1][2] = 2;
  228.         tableVar[1][3] = 3;
  229.  
  230.         tableVar[2][0] = 3;
  231.         tableVar[2][1] = 1;
  232.         tableVar[2][2] = 2;
  233.         tableVar[2][3] = 3;
  234.  
  235.         tableVar[3][0] = 3;
  236.         tableVar[3][1] = 3;
  237.         tableVar[3][2] = 3;
  238.         tableVar[3][3] = 3;
  239.     }
  240.  
  241.     bool getInputVar(string type){
  242.         int input = 0, state = 0;
  243.         for(int i=0; type[i] != '\0'; i++){
  244.  
  245.             if(type[i] == ' '){
  246.                 input = 0;
  247.             }
  248.  
  249.             else if(isAlpha(type[i]) == true){
  250.                 input = 1;
  251.             }
  252.  
  253.             else if(isDigit(type[i]) == true){
  254.                 input = 2;
  255.             }
  256.             else{
  257.                 input = 3;
  258.             }
  259.  
  260.             state = tableVar[state][input];
  261.  
  262.             cout<<"i "<<i<<endl;
  263.             cout<<"strng "<<type[i]<<endl;
  264.             cout<<"state "<<state<<endl;
  265.         }
  266.  
  267.         cout<<state;
  268.  
  269.         if(state == 1 || state == 2)
  270.             return true;
  271.         else
  272.             return false;
  273.     }
  274.  
  275.     bool validDtype(string type){
  276.         for(int i=0; type[i] != NULL; i++){
  277.             if(type[i] == 'i' && type[i+1] == 'n' && type[i+2] == 't' && type[i+3] == NULL){
  278.                 if(type[0] == 'i' || type[i-1] == ' '){
  279.                     cout<<"pretty";
  280.                     return true;
  281.                 }
  282.             }
  283.  
  284.             else if(type[i] == 'f' && type[i+1] == 'l' && type[i+2] == 'o' && type[i+3] == 'a' && type[i+4] == 't' && type[i+5] == NULL){
  285.                 if(type[0] == 'f' || type[i-1] == ' ')
  286.                     return true;
  287.             }
  288.  
  289.             else if(type[i] == 'd' && type[i+1] == 'o' && type[i+2] == 'u' && type[i+3] == 'b' && type[i+4] == 'l' && type[i+5] == 'e' && type[i+6] == NULL){
  290.                 if(type[0] == 'd' || type[i-1] == ' ')
  291.                     return true;
  292.             }
  293.         }
  294.  
  295.         return false;
  296.     }
  297.  
  298.     bool isNumber(string type){
  299.         for(int i=0; type[i] != NULL; i++){
  300.             cout<<i;
  301.             if(type[i] < '0' || type[i] > '9'){
  302.                 cout<<"I saw "<<i;
  303.                 return false;
  304.             }
  305.         }
  306.  
  307.         return true;
  308.     }
  309.  
  310.     bool isAlpha(char ch){
  311.         if((ch >= 'a' && ch <= 'z')||(ch >= 'A' && ch <= 'Z'))
  312.             return true;
  313.         else
  314.             return false;
  315.     }
  316.  
  317.     bool isDigit(char ch){
  318.         if(ch >= '0' && ch <= '9')
  319.             return true;
  320.         else
  321.             return false;
  322.     }
  323.  
  324. };
  325.  
  326. void main(){
  327.     forLoopCheck mine;
  328.  
  329.     string var = "hep12lo";
  330.     cout<<var<<endl;
  331.  
  332.  
  333.     if(mine.getInputVar(var) == true)
  334.         cout<<"variable.";
  335.     else
  336.         cout<<"not variable";
  337.  
  338.     //string
  339.     string first, forFor="", forOpen="", forIni="", forCondi="", forIter8="", forClose="", opCurly="", clCurly="", forInside="";
  340.     string forIniExtra="", forIniData="", forIniIni="";
  341.     string line;
  342.  
  343.     //array of strings
  344.     string myCondi[100], myIni[100];
  345.  
  346.     int t=0;
  347.  
  348.     //boolean
  349.     bool firstline = true;
  350.     bool CHforFor = true, CHforOpen = false, CHforIni = false, CHforCondi = false, CHforIter8 = false, CHforClose = false;
  351.     bool CHopCurly = false, CHclCurly = false, CHforInside = true;
  352.     bool CHiniExtra = true, CHiniData = false, CHiniIni = false;
  353.  
  354.     ifstream myfile ("test.txt");
  355.    
  356.     if(myfile.is_open()){
  357.         while(!myfile.eof()){
  358.             getline (myfile,line);
  359.  
  360.             first = line;
  361.             cout<<line<<endl;
  362.  
  363.             //cout<<first<<endl;
  364.  
  365.             //TOKENIZINGGGGG
  366.  
  367.             if(firstline){
  368.  
  369.                 for(int i=0; line[i] != NULL; i++){
  370.                     if(CHforFor){
  371.                         if(line[i] != '('){
  372.                                 forFor = forFor + line[i];
  373.                         }
  374.  
  375.                         else{
  376.                             CHforFor = false;
  377.                             CHforOpen = true;
  378.                         }
  379.                     }
  380.  
  381.                     if(CHforOpen){
  382.                         if(line[i] == '(')
  383.                             forOpen = forOpen + line[i];
  384.                         else{
  385.                             CHforOpen = false;
  386.                             CHforIni = true;
  387.                         }
  388.                     }
  389.  
  390.                     if(CHforIni){
  391.                         if(line[i] != ';')
  392.                             forIni = forIni + line[i];
  393.                         else{
  394.                             forIni = forIni + line[i];
  395.                             CHforIni = false;
  396.                             CHforCondi = true;
  397.                             i++;
  398.                         }
  399.                     }
  400.  
  401.                     if(CHforCondi){
  402.                         if(line[i] != ';')
  403.                             forCondi = forCondi + line[i];
  404.                         else{
  405.                             forCondi = forCondi + line[i];
  406.                             CHforCondi = false;
  407.                             CHforIter8 = true;
  408.                             i++;
  409.                         }
  410.                     }
  411.  
  412.                     if(CHforIter8){
  413.                         if(line[i] != ')')
  414.                             forIter8 = forIter8 + line[i];
  415.                         else{
  416.                             CHforIter8 = false;
  417.                             CHforClose = true;
  418.                         }
  419.                     }
  420.  
  421.                     if(CHforClose){
  422.                         if(line[i] == ')')
  423.                             forClose = forClose + line[i];
  424.                         else{
  425.                             CHforClose = false;
  426.                             CHopCurly = true;
  427.                         }
  428.                     }
  429.  
  430.                     if(CHopCurly){
  431.                         if(line[i] == '{')
  432.                             opCurly = opCurly + line[i];
  433.                         else{
  434.                             opCurly = opCurly + line[i];
  435.                             CHopCurly = false;
  436.                         }
  437.                     }
  438.                 }
  439.  
  440.                 firstline = false;
  441.  
  442.             }
  443.  
  444.             else{
  445.                 for(int i=0; line[i] != NULL; i++){
  446.                     if(CHforInside){
  447.                         if(line[i] != '\0')
  448.                             if(line[i] != '}')
  449.                                 forInside = forInside + line[i];
  450.                         else{
  451.                             CHforInside = false;
  452.                             CHclCurly = true;
  453.                         }
  454.                     }
  455.  
  456.                     if(CHclCurly){
  457.                         if(line[i] == '}')
  458.                             clCurly = clCurly + line[i];
  459.                         else{
  460.                             CHclCurly = false;
  461.                         }
  462.                     }
  463.  
  464.                 } //close for
  465.                
  466.             }//close else
  467.  
  468.         }
  469.  
  470.         myfile.close();
  471.             cout<<"--TOKENS--"<<endl;
  472.             cout<<"1: "<<forFor<<endl;
  473.             cout<<"2: "<<forOpen<<endl;
  474.             cout<<"3: "<<forIni<<endl;
  475.             cout<<"4: "<<forCondi<<endl;
  476.             cout<<"5: "<<forIter8<<endl;
  477.             cout<<"6: "<<forClose<<endl;
  478.             cout<<"7: "<<opCurly<<endl;
  479.             cout<<"8: "<<forInside<<endl;
  480.             cout<<"9: "<<clCurly<<endl;
  481.             cout<<"--END--"<<endl;
  482.  
  483.             for(int y=0; forIni[y] != NULL; y++){
  484.                 if(CHiniExtra){
  485.                     if(forIni[y] != 'f' && forIni[y] != 'd' && forIni[y] != 'i')
  486.                         forIniExtra = forIniExtra + forIni[y];
  487.                     else{
  488.                         CHiniExtra = false;
  489.                         CHiniData = true;
  490.                     }
  491.                 }
  492.  
  493.                 if(CHiniData){
  494.                     if(forIni[y] != 'e' && forIni[y] != 't')
  495.                         forIniData = forIniData + forIni[y];
  496.                     else{
  497.                         forIniData = forIniData + forIni[y];
  498.                         CHiniData = false;
  499.                         CHiniIni = true;
  500.                         y++;
  501.                     }
  502.                 }
  503.  
  504.                 if(CHiniIni){
  505.                     if(forIni[y] != NULL)
  506.                         forIniIni = forIniIni + forIni[y];
  507.                     else{
  508.                         CHiniIni = false;
  509.                     }
  510.                 }
  511.             }//end of for
  512.  
  513.             cout<<endl;
  514.             cout<<endl;
  515.             cout<<"001. "<<forIniExtra<<endl;
  516.             cout<<"002. "<<forIniData<<endl;
  517.             cout<<"003. "<<forIniIni<<endl;    
  518.     }
  519.  
  520.     else
  521.         cout<<"Oops. Unable to open file. "<<endl;
  522.  
  523.  
  524. }
Add Comment
Please, Sign In to add comment