36 enum RemoveCommentsState {
47 for (
int i = 0; i < program.size(); i++) {
50 if (program[i] ==
'/') {
53 }
else if (program[i] ==
'*') {
58 cleaned += program[i];
62 if ((program[i] ==
'\"') && ((i == 0) || (program[i - 1] !=
'\\'))) {
67 }
else if ((program[i] ==
'\'') && ((i == 0) || (program[i - 1] !=
'\\'))) {
75 case StartEndCComment:
77 if (program[i] ==
'/') {
83 cpos.append(curComment);
84 }
else if (program[i] ==
'*') {
85 state = StartEndCComment;
89 if (program[i] ==
'*') {
90 state = StartEndCComment;
94 if ((program[i] ==
'\n') || (program[i] ==
'\r')) {
95 cleaned += program[i];
99 cpos.append(curComment);
103 cleaned += program[i];
105 if ((program[i] ==
'"') && ((i == 0) || (program[i - 1] !=
'\\'))) {
108 curString.
parsedEnd = cleaned.size() - 1;
109 spos.append(curString);
113 cleaned += program[i];
117 if ((program[i] ==
'\'') && ((i == 0) || (program[i - 1] !=
'\\'))) {
120 curString.
parsedEnd = cleaned.size() - 1;
121 spos.append(curString);
125 if (program[i] ==
'/') {
129 cleaned += program[i];
132 if ((program[i] ==
'\"') && ((i == 0) || (program[i - 1] !=
'\\'))) {
137 }
else if ((program[i] ==
'\'') && ((i == 0) || (program[i - 1] !=
'\\'))) {
150 case StartEndCComment:
156 cpos.append(curComment);
161 curString.
parsedEnd = cleaned.size() - 1;
162 spos.append(curString);
168 if (commentsPos != NULL) {
171 if (stringsPos != NULL) {