@@ -77,13 +77,13 @@ class Stack{
7777 *
7878 * @return string yang berisi operasi apa saja pada sebuah string
7979 */
80- std::string get_operation (const std::string& text){
80+ Mode get_operation (const std::string& text){
8181 std::string ans = " " ;
8282 std::istringstream iss (text);
8383 std::string cmd;
8484 iss >> cmd;
85- Mode m = classifyInput (cmd);
86- return cmd;
85+ return classifyInput (cmd);
86+
8787 }
8888 /* *
8989 * @brief fungsi untuk melakukan parser terhadap string,dengan kata
@@ -139,8 +139,8 @@ class Stack{
139139 if (m == write){
140140 push_arr (text);
141141 }else {
142- std::string operasi = get_operation (text);
143- std::cout << " Error: " << operasi << " not available" << std::endl;
142+ Mode m = get_operation (text);
143+ std::cout << " Error: " << m << " not available" << std::endl;
144144 }
145145 }
146146 /* *
@@ -151,20 +151,15 @@ class Stack{
151151 * 1.push top pada arr ke temp_stack
152152 * 2.pop element top pada arr
153153 */
154- void Undo (const std::string& text){
155- Mode m = classifyInput (top ());
156- if (m == undo){
154+ void Undo (){
157155 if (is_empty ()){
158156 std::runtime_error (" Queue is empty" );
159157 }else {
160158 push_temp ();
161159 pop_arr ();
162160 }
163- }else {
164- std::string operasi = get_operation (top ());
165- }
166161 }
167- void Redo (){
162+ void Redo (){
168163 if (temp_is_empty ()){
169164 throw std::runtime_error (" tidak ada perubahan terbaru" );
170165 }else {
@@ -185,22 +180,21 @@ class Stack{
185180 std::cin >> text;
186181 return text;
187182 }
188- void menu (const std::string& text){
189- std::string operation = get_operation (text);
190- Mode m = classifyInput (text);
191- if (m == write){
192- Write (text);
193- }else if (m == read){
194- Read ();
195- }else if (m == undo){
196- Undo (text);
197- }else if (m == redo){
198- Redo ();
199- }else {
200- std::string operasi = get_operation (top ());
201- std::cout << " Error: " << operasi << " not available" << std::endl;
202- }
203- }
183+ // void menu(const std::string& text){
184+ // Mode m = get_operation(top());
185+ // if(m == write){
186+ // Write(text);
187+ // }else if(m == read){
188+ // Read();
189+ // }else if(m == undo){
190+ // Undo(text);
191+ // }else if(m == redo){
192+ // Redo();
193+ // }else{
194+ // Mode m = get_operation(top());
195+ // std::cout << "Error: " << m << " not available" << std::endl;
196+ // }
197+ // }
204198};
205199int main (){
206200 Stack stack1 (1024 ); //
@@ -209,8 +203,10 @@ int main(){
209203 stack1.Write (" write sayang" );
210204 stack1.Write (" write kamu" );
211205 stack1.Read (); // aku dia sayang kamu
212- stack1.Undo (" undo " ); // aku dia sayang
206+ stack1.Undo (); // aku dia sayang ->membuang perubahan terbaru dari state
213207 stack1.Read ();
208+ stack1.Redo ();
209+ stack1.Read (); // aku dia sayang kamu(balik ke state awal)
214210 std::cin.get ();
215211 return 0 ;
216212}
0 commit comments