@@ -25,21 +25,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
2525#include < vector>
2626
2727
28- ListSliceParser::ListSliceParser (std::string s)
29- {
30- defaultString = s;
31- }
32-
33- ListSliceParser::~ListSliceParser ()
34- {
35-
36- }
37-
38- int ListSliceParser::convertToInteger (std::string s)
28+ int ListSliceParser::convertToInteger (String s)
3929{
4030 char ar[20 ];
4131 int i, j, k = 0 ;
42- for (i = 0 ; i < s.size (); i++)
32+ for (i = 0 ; i < s.length (); i++)
4333 {
4434 if (s[i] >= 48 && s[i] <= 57 )
4535 {
@@ -56,18 +46,18 @@ int ListSliceParser::convertToInteger(std::string s)
5646 return k;
5747}
5848
59- std::vector <int > ListSliceParser::parseStringIntoRange (std::string textBoxInfo,int rangeValue)
49+ Array <int > ListSliceParser::parseStringIntoRange (String textBoxInfo, int rangeValue)
6050{
61- std::string s = " ," ;
51+ String s = " ," ;
6252 s += textBoxInfo;
63- std::vector <int > finalList, separator, rangeseparator;
53+ Array <int > finalList, separator, rangeseparator;
6454 int i, j, a, b, k, openb, closeb, otherchar, x, y;
6555 s += " ," ;
66- for (i = 0 ; i < s.size (); i++) // split string by ' , ' or ' ; '
56+ for (i = 0 ; i < s.length (); i++) // split string by ' , ' or ' ; '
6757 {
6858 if (s[i] == ' ;' || s[i] == ' ,' )
6959 {
70- separator.push_back (i);
60+ separator.add (i);
7161 }
7262 }
7363 for (i = 0 ; i < separator.size () - 1 ; i++) // split ranges by ' : ' or ' - '
@@ -79,7 +69,7 @@ std::vector<int> ListSliceParser::parseStringIntoRange(std::string textBoxInfo,i
7969 {
8070 if (s[j] == ' -' || s[j] == ' :' )
8171 {
82- rangeseparator.push_back (j);
72+ rangeseparator.add (j);
8373 }
8474 else if (((int )s[j] == 32 ))
8575 {
@@ -127,19 +117,19 @@ std::vector<int> ListSliceParser::parseStringIntoRange(std::string textBoxInfo,i
127117
128118 if (rangeseparator.size () == 0 ) // syntax of form - x or [x]
129119 {
130- a = convertToInteger (s.substr (x, y - x + 1 ));
120+ a = convertToInteger (s.substring (x, y + 1 ));
131121 if (a == 0 || a>rangeValue)
132122 {
133123 continue ;
134124 }
135- finalList.push_back (a - 1 );
136- finalList.push_back (a - 1 );
137- finalList.push_back (1 );
125+ finalList.add (a - 1 );
126+ finalList.add (a - 1 );
127+ finalList.add (1 );
138128 }
139129 else if (rangeseparator.size () == 1 ) // syntax of type - x-y or [x-y]
140130 {
141- a = convertToInteger (s.substr (x, rangeseparator[0 ] - x + 1 ));
142- b = convertToInteger (s.substr (rangeseparator[0 ], y - rangeseparator[ 0 ] + 1 ));
131+ a = convertToInteger (s.substring (x, rangeseparator[0 ]));
132+ b = convertToInteger (s.substring (rangeseparator[0 ], y + 1 ));
143133 if (a == 0 )
144134 {
145135 a = 1 ;
@@ -152,15 +142,15 @@ std::vector<int> ListSliceParser::parseStringIntoRange(std::string textBoxInfo,i
152142 {
153143 continue ;
154144 }
155- finalList.push_back (a - 1 );
156- finalList.push_back (b - 1 );
157- finalList.push_back (1 );
145+ finalList.add (a - 1 );
146+ finalList.add (b - 1 );
147+ finalList.add (1 );
158148 }
159149 else if (rangeseparator.size () == 2 ) // syntax of type [x:y:z] or x-y-z
160150 {
161- a = convertToInteger (s.substr (x, rangeseparator[0 ] - x + 1 ));
162- k = convertToInteger (s.substr (rangeseparator[0 ], rangeseparator[1 ] - rangeseparator[ 0 ] + 1 ));
163- b = convertToInteger (s.substr (rangeseparator[1 ], y - rangeseparator[ 1 ] + 1 ));
151+ a = convertToInteger (s.substring (x, rangeseparator[0 ] + 1 ));
152+ k = convertToInteger (s.substring (rangeseparator[0 ], rangeseparator[1 ]));
153+ b = convertToInteger (s.substring (rangeseparator[1 ], y + 1 ));
164154 if (a == 0 )
165155 {
166156 a = 1 ;
@@ -177,9 +167,9 @@ std::vector<int> ListSliceParser::parseStringIntoRange(std::string textBoxInfo,i
177167 {
178168 continue ;
179169 }
180- finalList.push_back (a - 1 );
181- finalList.push_back (b - 1 );
182- finalList.push_back (k);
170+ finalList.add (a - 1 );
171+ finalList.add (b - 1 );
172+ finalList.add (k);
183173 }
184174 }
185175 return finalList;
0 commit comments