Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<fstream>
- #include<string>
- using namespace std;
- class forLoopCheck{
- private:
- int mainTable[11][11];
- int iniTable[6][7];
- int tableVar[4][4];
- public:
- forLoopCheck(){
- setMain();
- setIni();
- }
- void setMain(){
- mainTable[0][0] = 0;
- mainTable[0][1] = 1;
- mainTable[0][2] = 10;
- mainTable[0][3] = 10;
- mainTable[0][4] = 10;
- mainTable[0][5] = 10;
- mainTable[0][6] = 10;
- mainTable[0][7] = 10;
- mainTable[0][8] = 10;
- mainTable[0][9] = 10;
- mainTable[0][10] = 10;
- mainTable[1][0] = 1;
- mainTable[1][1] = 10;
- mainTable[1][2] = 2;
- mainTable[1][3] = 10;
- mainTable[1][4] = 10;
- mainTable[1][5] = 10;
- mainTable[1][6] = 10;
- mainTable[1][7] = 10;
- mainTable[1][8] = 10;
- mainTable[1][9] = 10;
- mainTable[1][10] = 10;
- mainTable[2][0] = 2;
- mainTable[2][1] = 10;
- mainTable[2][2] = 10;
- mainTable[2][3] = 3;
- mainTable[2][4] = 10;
- mainTable[2][5] = 10;
- mainTable[2][6] = 10;
- mainTable[2][7] = 10;
- mainTable[2][8] = 10;
- mainTable[2][9] = 10;
- mainTable[2][10] = 10;
- mainTable[3][0] = 3;
- mainTable[3][1] = 10;
- mainTable[3][2] = 10;
- mainTable[3][3] = 10;
- mainTable[3][4] = 4;
- mainTable[3][5] = 10;
- mainTable[3][6] = 10;
- mainTable[3][7] = 10;
- mainTable[3][8] = 10;
- mainTable[3][9] = 10;
- mainTable[3][10] = 10;
- mainTable[4][0] = 4;
- mainTable[4][1] = 10;
- mainTable[4][2] = 10;
- mainTable[4][3] = 10;
- mainTable[4][4] = 10;
- mainTable[4][5] = 5;
- mainTable[4][6] = 10;
- mainTable[4][7] = 10;
- mainTable[4][8] = 10;
- mainTable[4][9] = 10;
- mainTable[4][10] = 10;
- mainTable[5][0] = 5;
- mainTable[5][1] = 10;
- mainTable[5][2] = 10;
- mainTable[5][3] = 10;
- mainTable[5][4] = 10;
- mainTable[5][5] = 10;
- mainTable[5][6] = 6;
- mainTable[5][7] = 10;
- mainTable[5][8] = 10;
- mainTable[5][9] = 10;
- mainTable[5][10] = 10;
- mainTable[6][0] = 6;
- mainTable[6][1] = 10;
- mainTable[6][2] = 10;
- mainTable[6][3] = 10;
- mainTable[6][4] = 10;
- mainTable[6][5] = 10;
- mainTable[6][6] = 10;
- mainTable[6][7] = 7;
- mainTable[6][8] = 9;
- mainTable[6][9] = 10;
- mainTable[6][10] = 10;
- mainTable[7][0] = 7;
- mainTable[7][1] = 10;
- mainTable[7][2] = 10;
- mainTable[7][3] = 10;
- mainTable[7][4] = 10;
- mainTable[7][5] = 10;
- mainTable[7][6] = 10;
- mainTable[7][7] = 10;
- mainTable[7][8] = 8;
- mainTable[7][9] = 10;
- mainTable[7][10] = 10;
- mainTable[8][0] = 8;
- mainTable[8][1] = 10;
- mainTable[8][2] = 10;
- mainTable[8][3] = 10;
- mainTable[8][4] = 10;
- mainTable[8][5] = 10;
- mainTable[8][6] = 10;
- mainTable[8][7] = 10;
- mainTable[8][8] = 10;
- mainTable[8][9] = 9;
- mainTable[8][10] = 10;
- mainTable[9][0] = 9;
- mainTable[9][1] = 10;
- mainTable[9][2] = 10;
- mainTable[9][3] = 10;
- mainTable[9][4] = 10;
- mainTable[9][5] = 10;
- mainTable[9][6] = 10;
- mainTable[9][7] = 10;
- mainTable[9][8] = 10;
- mainTable[9][9] = 10;
- mainTable[9][10] = 10;
- mainTable[10][0] = 10;
- mainTable[10][1] = 10;
- mainTable[10][2] = 10;
- mainTable[10][3] = 10;
- mainTable[10][4] = 10;
- mainTable[10][5] = 10;
- mainTable[10][6] = 10;
- mainTable[10][7] = 10;
- mainTable[10][8] = 10;
- mainTable[10][9] = 10;
- mainTable[10][10] = 10;
- }
- void setIni(){
- iniTable[0][0] = 0;
- iniTable[0][1] = 1;
- iniTable[0][2] = 2;
- iniTable[0][3] = 6;
- iniTable[0][4] = 6;
- iniTable[0][5] = 5;
- iniTable[0][6] = 6;
- iniTable[0][7] = 6;
- iniTable[1][0] = 1;
- iniTable[1][1] = 6;
- iniTable[1][2] = 2;
- iniTable[1][3] = 6;
- iniTable[1][4] = 6;
- iniTable[1][5] = 6;
- iniTable[1][6] = 6;
- iniTable[1][7] = 6;
- iniTable[2][0] = 2;
- iniTable[2][1] = 6;
- iniTable[2][2] = 6;
- iniTable[2][3] = 3;
- iniTable[2][4] = 6;
- iniTable[2][5] = 5;
- iniTable[2][6] = 1;
- iniTable[2][7] = 6;
- iniTable[3][0] = 3;
- iniTable[3][1] = 6;
- iniTable[3][2] = 4;
- iniTable[3][3] = 6;
- iniTable[3][4] = 4;
- iniTable[3][5] = 6;
- iniTable[3][6] = 6;
- iniTable[3][7] = 6;
- iniTable[4][0] = 4;
- iniTable[4][1] = 6;
- iniTable[4][2] = 6;
- iniTable[4][3] = 6;
- iniTable[4][4] = 6;
- iniTable[4][5] = 5;
- iniTable[4][6] = 1;
- iniTable[4][7] = 6;
- iniTable[5][0] = 5;
- iniTable[5][1] = 6;
- iniTable[5][2] = 6;
- iniTable[5][3] = 6;
- iniTable[5][4] = 6;
- iniTable[5][5] = 6;
- iniTable[5][6] = 6;
- iniTable[5][7] = 6;
- iniTable[6][0] = 6;
- iniTable[6][1] = 6;
- iniTable[6][2] = 6;
- iniTable[6][3] = 6;
- iniTable[6][4] = 6;
- iniTable[6][5] = 6;
- iniTable[6][6] = 6;
- iniTable[6][7] = 6;
- }
- void setVariable(){
- tableVar[0][0] = 0;
- tableVar[0][1] = 1;
- tableVar[0][2] = 3;
- tableVar[0][3] = 3;
- tableVar[1][0] = 3;
- tableVar[1][1] = 1;
- tableVar[1][2] = 2;
- tableVar[1][3] = 3;
- tableVar[2][0] = 3;
- tableVar[2][1] = 1;
- tableVar[2][2] = 2;
- tableVar[2][3] = 3;
- tableVar[3][0] = 3;
- tableVar[3][1] = 3;
- tableVar[3][2] = 3;
- tableVar[3][3] = 3;
- }
- bool getInputVar(string type){
- int input = 0, state = 0;
- for(int i=0; type[i] != '\0'; i++){
- if(type[i] == ' '){
- input = 0;
- }
- else if(isAlpha(type[i]) == true){
- input = 1;
- }
- else if(isDigit(type[i]) == true){
- input = 2;
- }
- else{
- input = 3;
- }
- state = tableVar[state][input];
- cout<<"i "<<i<<endl;
- cout<<"strng "<<type[i]<<endl;
- cout<<"state "<<state<<endl;
- }
- cout<<state;
- if(state == 1 || state == 2)
- return true;
- else
- return false;
- }
- bool validDtype(string type){
- for(int i=0; type[i] != NULL; i++){
- if(type[i] == 'i' && type[i+1] == 'n' && type[i+2] == 't' && type[i+3] == NULL){
- if(type[0] == 'i' || type[i-1] == ' '){
- cout<<"pretty";
- return true;
- }
- }
- 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){
- if(type[0] == 'f' || type[i-1] == ' ')
- return true;
- }
- 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){
- if(type[0] == 'd' || type[i-1] == ' ')
- return true;
- }
- }
- return false;
- }
- bool isNumber(string type){
- for(int i=0; type[i] != NULL; i++){
- cout<<i;
- if(type[i] < '0' || type[i] > '9'){
- cout<<"I saw "<<i;
- return false;
- }
- }
- return true;
- }
- bool isAlpha(char ch){
- if((ch >= 'a' && ch <= 'z')||(ch >= 'A' && ch <= 'Z'))
- return true;
- else
- return false;
- }
- bool isDigit(char ch){
- if(ch >= '0' && ch <= '9')
- return true;
- else
- return false;
- }
- };
- void main(){
- forLoopCheck mine;
- string var = "hep12lo";
- cout<<var<<endl;
- if(mine.getInputVar(var) == true)
- cout<<"variable.";
- else
- cout<<"not variable";
- //string
- string first, forFor="", forOpen="", forIni="", forCondi="", forIter8="", forClose="", opCurly="", clCurly="", forInside="";
- string forIniExtra="", forIniData="", forIniIni="";
- string line;
- //array of strings
- string myCondi[100], myIni[100];
- int t=0;
- //boolean
- bool firstline = true;
- bool CHforFor = true, CHforOpen = false, CHforIni = false, CHforCondi = false, CHforIter8 = false, CHforClose = false;
- bool CHopCurly = false, CHclCurly = false, CHforInside = true;
- bool CHiniExtra = true, CHiniData = false, CHiniIni = false;
- ifstream myfile ("test.txt");
- if(myfile.is_open()){
- while(!myfile.eof()){
- getline (myfile,line);
- first = line;
- cout<<line<<endl;
- //cout<<first<<endl;
- //TOKENIZINGGGGG
- if(firstline){
- for(int i=0; line[i] != NULL; i++){
- if(CHforFor){
- if(line[i] != '('){
- forFor = forFor + line[i];
- }
- else{
- CHforFor = false;
- CHforOpen = true;
- }
- }
- if(CHforOpen){
- if(line[i] == '(')
- forOpen = forOpen + line[i];
- else{
- CHforOpen = false;
- CHforIni = true;
- }
- }
- if(CHforIni){
- if(line[i] != ';')
- forIni = forIni + line[i];
- else{
- forIni = forIni + line[i];
- CHforIni = false;
- CHforCondi = true;
- i++;
- }
- }
- if(CHforCondi){
- if(line[i] != ';')
- forCondi = forCondi + line[i];
- else{
- forCondi = forCondi + line[i];
- CHforCondi = false;
- CHforIter8 = true;
- i++;
- }
- }
- if(CHforIter8){
- if(line[i] != ')')
- forIter8 = forIter8 + line[i];
- else{
- CHforIter8 = false;
- CHforClose = true;
- }
- }
- if(CHforClose){
- if(line[i] == ')')
- forClose = forClose + line[i];
- else{
- CHforClose = false;
- CHopCurly = true;
- }
- }
- if(CHopCurly){
- if(line[i] == '{')
- opCurly = opCurly + line[i];
- else{
- opCurly = opCurly + line[i];
- CHopCurly = false;
- }
- }
- }
- firstline = false;
- }
- else{
- for(int i=0; line[i] != NULL; i++){
- if(CHforInside){
- if(line[i] != '\0')
- if(line[i] != '}')
- forInside = forInside + line[i];
- else{
- CHforInside = false;
- CHclCurly = true;
- }
- }
- if(CHclCurly){
- if(line[i] == '}')
- clCurly = clCurly + line[i];
- else{
- CHclCurly = false;
- }
- }
- } //close for
- }//close else
- }
- myfile.close();
- cout<<"--TOKENS--"<<endl;
- cout<<"1: "<<forFor<<endl;
- cout<<"2: "<<forOpen<<endl;
- cout<<"3: "<<forIni<<endl;
- cout<<"4: "<<forCondi<<endl;
- cout<<"5: "<<forIter8<<endl;
- cout<<"6: "<<forClose<<endl;
- cout<<"7: "<<opCurly<<endl;
- cout<<"8: "<<forInside<<endl;
- cout<<"9: "<<clCurly<<endl;
- cout<<"--END--"<<endl;
- for(int y=0; forIni[y] != NULL; y++){
- if(CHiniExtra){
- if(forIni[y] != 'f' && forIni[y] != 'd' && forIni[y] != 'i')
- forIniExtra = forIniExtra + forIni[y];
- else{
- CHiniExtra = false;
- CHiniData = true;
- }
- }
- if(CHiniData){
- if(forIni[y] != 'e' && forIni[y] != 't')
- forIniData = forIniData + forIni[y];
- else{
- forIniData = forIniData + forIni[y];
- CHiniData = false;
- CHiniIni = true;
- y++;
- }
- }
- if(CHiniIni){
- if(forIni[y] != NULL)
- forIniIni = forIniIni + forIni[y];
- else{
- CHiniIni = false;
- }
- }
- }//end of for
- cout<<endl;
- cout<<endl;
- cout<<"001. "<<forIniExtra<<endl;
- cout<<"002. "<<forIniData<<endl;
- cout<<"003. "<<forIniIni<<endl;
- }
- else
- cout<<"Oops. Unable to open file. "<<endl;
- }
Add Comment
Please, Sign In to add comment