@@ -25,172 +25,134 @@ using namespace std;
2525 Cycle: while() {..}
2626*/
2727
28- bool isSeparators (int elem)
29- {
30- return elem == 40 || elem == 41 || elem == 91 || elem == 93 || elem == 123 || elem == 125 || elem == 59 ? true : false ;
31- }
32-
33- // \t\a\b...
34- bool isServiceSymbols (int elem)
35- {
36- return elem == 7 || elem == 8 || elem == 9 || elem == 10 || elem == 11 || elem == 12 || elem == 13 ? true : false ;
37- }
38- /* +-/*/
39- bool isOperation (string str, int ind)
40- {
41- return (str[ind] == ' +' && str[ind + 1 ] != ' +' ) || str[ind] == ' -' || str[ind] == ' /' || str[ind] == ' *' ? true : false ;
42- }
43-
44- int main ()
28+ int main (int argc, char * argv[])
4529{
4630 ifstream fileC;
47- ofstream fileAnalysis (" lexical.txt" );
31+ ofstream fileAnalysis (" C: \\ Users \\ swat5 \\ source \\ repos \\ StrongerProgrammer7 \\ MethodsDevelopmentTranslator \\ lexical.txt" );
4832 fileC.exceptions (ifstream::badbit);
4933 try
5034 {
51- fileC.open (" C.txt" );
35+ fileC.open (" C: \\ Users \\ swat5 \\ source \\ repos \\ StrongerProgrammer7 \\ MethodsDevelopmentTranslator \\ C .txt" );
5236
5337 if (fileC.is_open ())
5438 {
5539 while (!fileC.eof ())
5640 {
57- string stringC = " " ;
41+ string stringLanguageC = " " ;
5842 string temp = " " ;
59- getline (fileC, stringC );
60- for (int i = 0 ; i < stringC .length (); i++)
43+ getline (fileC, stringLanguageC );
44+ for (unsigned int i = 0 ; i < stringLanguageC .length (); i++)
6145 {
62- if (isServiceSymbols ((int )stringC [i]) == true )
46+ if (isServiceSymbols ((int )stringLanguageC [i]) == true )
6347 continue ;
6448
65- if (isSeparators ((int )stringC [i]) == true && temp[0 ] != ' \" ' )
49+ if (isSeparators ((int )stringLanguageC [i]) == true && temp[0 ] != ' \" ' )
6650 {
6751 if (temp.length () != 0 )
6852 fileAnalysis << getCodeWord (temp) << " " ;
69- temp = stringC [i];
53+ temp = stringLanguageC [i];
7054 fileAnalysis << getCodeWord (temp) << " " ;
7155 temp = " " ;
7256 continue ;
7357 }
74- if (isOperation (stringC,i)==true )
75- {
76- string temp2 = " " ;
77- temp2 += stringC[i];
78- if (stringC[i + 1 ] == ' +' || stringC[i + 1 ] == ' -' )
79- {
80- temp2 += stringC[i + 1 ];
81- i++;
82- }
83-
84- fileAnalysis << getCodeWord (temp2) << " " ;
85- temp = " " ;
86- continue ;
87- }
8858
89- // <library.h>
90- if (stringC [i] == ' <' || stringC [i] == ' \" ' )
59+ // <library.h> and "string"
60+ if (stringLanguageC [i] == ' <' || stringLanguageC [i] == ' \" ' )
9161 {
9262 int posClose = 0 ;
9363 int countSymbols = 0 ;
94- if (stringC[i] == ' <' )
95- {
96- posClose = stringC.find (" >" , 1 );
97- if (posClose != -1 )
98- {
99- countSymbols = stringC.length () - i;
100- temp.assign (stringC, i, countSymbols);
101- }
102-
103- }
64+ if (stringLanguageC[i] == ' <' )
65+ posClose = stringLanguageC.find (" >" , 1 );
10466 else
67+ posClose = stringLanguageC.rfind (' \" ' );
68+
69+ if (posClose != -1 )
10570 {
106- posClose = stringC.rfind (' \" ' );
107- if (posClose != -1 )
71+ countSymbols = posClose + 1 - i;
72+ temp.assign (stringLanguageC, i, countSymbols);
73+ if (temp.find (" .h" ) != -1 )
10874 {
109- countSymbols = posClose+1 - i;
110- temp.assign (stringC, i, countSymbols);
75+ fileAnalysis << getCodeWord (temp) << " " ;
76+ temp = " " ;
77+ if (stringLanguageC[posClose + 1 ] == ' \0 ' )
78+ break ;
79+ else
80+ i = posClose;
11181 }
112-
113- }
114- if (temp.find (" .h" ) != -1 )
115- {
116- fileAnalysis << getCodeWord (temp) << " " ;
117- temp = " " ;
118- if (stringC[posClose + 1 ] == ' \0 ' )
119- break ;
12082 else
121- i = posClose;
122- }
123- else
124- {
125- if (temp[0 ] == ' \" ' )
12683 {
127- if (temp != " " && ( int )temp[temp. length () - 2 ] != 92 )
84+ if (temp[ 0 ] == ' \" ' )
12885 {
12986 fileAnalysis << getCodeWord (temp) << " " ;
13087 i = posClose;
88+
13189 }
13290 }
133- else
134- {
135- string temp2 = " " ;
136- temp2 += stringC[i];
137- fileAnalysis << getCodeWord (temp2) << " " ;
138- }
139-
14091 temp = " " ;
92+ // continue;
93+ }
94+ }
14195
96+ if (isOperation (stringLanguageC, i) == true || isLogicalOperation (stringLanguageC, i) == true )
97+ {
98+ if (isIncrement (stringLanguageC, i) == true || isDoubleOperation (stringLanguageC, i) == true )
99+ {
100+ temp += stringLanguageC[i];
101+ i++;
142102 }
103+ temp += stringLanguageC[i];
104+ fileAnalysis << getCodeWord (temp) << " " ;
105+ temp = " " ;
143106 continue ;
144107 }
145108
146- if (stringC [i] != ' ' )
109+ if (stringLanguageC [i] != ' ' )
147110 {
148- if (isLetter ((int )stringC [i]) == true && (isLetter ((int )stringC [i+1 ])==false && isDigit ((int )stringC [i+1 ])==false ))
111+ if (isLetter ((int )stringLanguageC [i]) == true && (isLetter ((int )stringLanguageC [i+1 ])==false && isDigit ((int )stringLanguageC [i+1 ])==false ))
149112 {
150- if (temp[0 ] == ' \" ' )
113+ /* if (temp[0] == '\"')
151114 {
152- if (stringC [i] == ' \" ' && stringC [i + 1 ] == ' ' && stringC [i + 1 ] == ' \0 ' )
115+ if (stringLanguageC [i] == '\"' && stringLanguageC [i + 1] == ' ' && stringLanguageC [i + 1] == '\0')
153116 {
154- temp += stringC [i];
117+ temp += stringLanguageC [i];
155118 fileAnalysis << getCodeWord(temp) << " ";
156119 temp = "";
157120 continue;
158121 }
159122 else
160123 {
161- temp += stringC [i];
124+ temp += stringLanguageC [i];
162125 continue;
163126 }
164127 }
165128 else
166- {
167- temp += stringC [i];
129+ {*/
130+ temp += stringLanguageC [i];
168131 fileAnalysis << getCodeWord (temp) << " " ;
169132 temp = " " ;
170133 continue ;
171- }
134+
172135 }
173136 else
174137 {
175- if (stringC [i] == ' #' )
138+ if (stringLanguageC [i] == ' #' )
176139 {
177- temp += stringC [i];
140+ temp += stringLanguageC [i];
178141 continue ;
179142 }
180143
181144 }
182- temp += stringC [i];
145+ temp += stringLanguageC [i];
183146 }
184147 else
185148 {
186- if (stringC[i] == ' ' && temp == " \0 " )
149+ if (temp == " \0 " )
187150 continue ;
188151 else
189- if (stringC[i] == ' ' )
190- {
191- fileAnalysis << getCodeWord (temp) << " " ;
192- temp = " " ;
193- }
152+ {
153+ fileAnalysis << getCodeWord (temp) << " " ;
154+ temp = " " ;
155+ }
194156 }
195157 }
196158 if (temp != " \0 " )
0 commit comments