diff options
Diffstat (limited to 'cpp/demo/Freeze/library/Parser.cpp')
-rw-r--r-- | cpp/demo/Freeze/library/Parser.cpp | 440 |
1 files changed, 220 insertions, 220 deletions
diff --git a/cpp/demo/Freeze/library/Parser.cpp b/cpp/demo/Freeze/library/Parser.cpp index eeb8046327d..c884b42fd6e 100644 --- a/cpp/demo/Freeze/library/Parser.cpp +++ b/cpp/demo/Freeze/library/Parser.cpp @@ -51,37 +51,37 @@ Parser::addBook(const list<string>& _args) { if(_args.size() != 3) { - error("`add' requires at exactly three arguments (type `help' for more info)"); - return; + error("`add' requires at exactly three arguments (type `help' for more info)"); + return; } try { - list<string> args = _args; + list<string> args = _args; - BookDescription desc; - desc.isbn = args.front(); - args.pop_front(); - desc.title = args.front(); - args.pop_front(); - desc.authors = args.front(); + BookDescription desc; + desc.isbn = args.front(); + args.pop_front(); + desc.title = args.front(); + args.pop_front(); + desc.authors = args.front(); - BookPrx book = _library->createBook(desc); - cout << "added new book with isbn " << desc.isbn << endl; + BookPrx book = _library->createBook(desc); + cout << "added new book with isbn " << desc.isbn << endl; } catch(const DatabaseException& ex) { - error(ex.message); + error(ex.message); } catch(const BookExistsException&) { - error("the book already exists."); + error("the book already exists."); } catch(const Ice::Exception& ex) { - ostringstream s; - s << ex; - error(s.str()); + ostringstream s; + s << ex; + error(s.str()); } } @@ -90,36 +90,36 @@ Parser::findIsbn(const list<string>& args) { if(args.size() != 1) { - error("`isbn' requires exactly one argument (type `help' for more info)"); - return; + error("`isbn' requires exactly one argument (type `help' for more info)"); + return; } try { - _foundBooks.clear(); - _current = _foundBooks.begin(); - - BookPrx book = _library->findByIsbn(args.front()); - if(!book) - { - cout << "no book with that ISBN number exists." << endl; - } - else - { - _foundBooks.push_back(book); - _current = _foundBooks.begin(); - printCurrent(); - } + _foundBooks.clear(); + _current = _foundBooks.begin(); + + BookPrx book = _library->findByIsbn(args.front()); + if(!book) + { + cout << "no book with that ISBN number exists." << endl; + } + else + { + _foundBooks.push_back(book); + _current = _foundBooks.begin(); + printCurrent(); + } } catch(const DatabaseException& ex) { - error(ex.message); + error(ex.message); } catch(const Ice::Exception& ex) { - ostringstream s; - s << ex; - error(s.str()); + ostringstream s; + s << ex; + error(s.str()); } } @@ -128,26 +128,26 @@ Parser::findAuthors(const list<string>& args) { if(args.size() != 1) { - error("`authors' requires exactly one argument (type `help' for more info)"); - return; + error("`authors' requires exactly one argument (type `help' for more info)"); + return; } try { - _foundBooks = _library->findByAuthors(args.front()); - _current = _foundBooks.begin(); - cout << "number of books found: " << _foundBooks.size() << endl; - printCurrent(); + _foundBooks = _library->findByAuthors(args.front()); + _current = _foundBooks.begin(); + cout << "number of books found: " << _foundBooks.size() << endl; + printCurrent(); } catch(const DatabaseException& ex) { - error(ex.message); + error(ex.message); } catch(const Ice::Exception& ex) { - ostringstream s; - s << ex; - error(s.str()); + ostringstream s; + s << ex; + error(s.str()); } } @@ -156,7 +156,7 @@ Parser::nextFoundBook() { if(_current != _foundBooks.end()) { - ++_current; + ++_current; } printCurrent(); } @@ -166,31 +166,31 @@ Parser::printCurrent() { try { - if(_current != _foundBooks.end()) - { - BookDescription desc = (*_current)->getBookDescription(); - string renter; - try - { - renter = (*_current)->getRenterName(); - } - catch(const BookNotRentedException&) - { - } - - cout << "current book is:" << endl; - cout << "isbn: " << desc.isbn << endl; - cout << "title: " << desc.title << endl; - cout << "authors: " << desc.authors << endl; - if(!renter.empty()) - { - cout << "rented: " << renter << endl; - } - } - else - { - cout << "no current book" << endl; - } + if(_current != _foundBooks.end()) + { + BookDescription desc = (*_current)->getBookDescription(); + string renter; + try + { + renter = (*_current)->getRenterName(); + } + catch(const BookNotRentedException&) + { + } + + cout << "current book is:" << endl; + cout << "isbn: " << desc.isbn << endl; + cout << "title: " << desc.title << endl; + cout << "authors: " << desc.authors << endl; + if(!renter.empty()) + { + cout << "rented: " << renter << endl; + } + } + else + { + cout << "no current book" << endl; + } } catch(const Ice::ObjectNotExistException&) { @@ -198,9 +198,9 @@ Parser::printCurrent() } catch(const Ice::Exception& ex) { - ostringstream s; - s << ex; - error(s.str()); + ostringstream s; + s << ex; + error(s.str()); } } @@ -209,25 +209,25 @@ Parser::rentCurrent(const list<string>& args) { if(args.size() != 1) { - error("`rent' requires exactly one argument (type `help' for more info)"); - return; + error("`rent' requires exactly one argument (type `help' for more info)"); + return; } try { - if(_current != _foundBooks.end()) - { - (*_current)->rentBook(args.front()); - cout << "the book is now rented by `" << args.front() << "'" << endl; - } - else - { - cout << "no current book" << endl; - } + if(_current != _foundBooks.end()) + { + (*_current)->rentBook(args.front()); + cout << "the book is now rented by `" << args.front() << "'" << endl; + } + else + { + cout << "no current book" << endl; + } } catch(const BookRentedException&) { - cout << "the book has already been rented." << endl; + cout << "the book has already been rented." << endl; } catch(const Ice::ObjectNotExistException&) { @@ -235,13 +235,13 @@ Parser::rentCurrent(const list<string>& args) } catch(const DatabaseException& ex) { - error(ex.message); + error(ex.message); } catch(const Ice::Exception& ex) { - ostringstream s; - s << ex; - error(s.str()); + ostringstream s; + s << ex; + error(s.str()); } } @@ -250,19 +250,19 @@ Parser::returnCurrent() { try { - if(_current != _foundBooks.end()) - { - (*_current)->returnBook(); - cout << "the book has been returned." << endl; - } - else - { - cout << "no current book" << endl; - } + if(_current != _foundBooks.end()) + { + (*_current)->returnBook(); + cout << "the book has been returned." << endl; + } + else + { + cout << "no current book" << endl; + } } catch(const BookNotRentedException&) { - cout << "the book is not currently rented." << endl; + cout << "the book is not currently rented." << endl; } catch(const Ice::ObjectNotExistException&) { @@ -270,13 +270,13 @@ Parser::returnCurrent() } catch(const DatabaseException& ex) { - error(ex.message); + error(ex.message); } catch(const Ice::Exception& ex) { - ostringstream s; - s << ex; - error(s.str()); + ostringstream s; + s << ex; + error(s.str()); } } @@ -285,15 +285,15 @@ Parser::removeCurrent() { try { - if(_current != _foundBooks.end()) - { - (*_current)->destroy(); - cout << "removed current book" << endl; - } - else - { - cout << "no current book" << endl; - } + if(_current != _foundBooks.end()) + { + (*_current)->destroy(); + cout << "removed current book" << endl; + } + else + { + cout << "no current book" << endl; + } } catch(const Ice::ObjectNotExistException&) { @@ -301,13 +301,13 @@ Parser::removeCurrent() } catch(const DatabaseException& ex) { - error(ex.message); + error(ex.message); } catch(const Ice::Exception& ex) { - ostringstream s; - s << ex; - error(s.str()); + ostringstream s; + s << ex; + error(s.str()); } } @@ -316,23 +316,23 @@ Parser::setEvictorSize(const list<string>& args) { if(args.size() != 1) { - error("`size' requires exactly one argument (type `help' for more info)"); - return; + error("`size' requires exactly one argument (type `help' for more info)"); + return; } try { - _library->setEvictorSize(atoi(args.front().c_str())); + _library->setEvictorSize(atoi(args.front().c_str())); } catch(const DatabaseException& ex) { - error(ex.message); + error(ex.message); } catch(const Ice::Exception& ex) { - ostringstream s; - s << ex; - error(s.str()); + ostringstream s; + s << ex; + error(s.str()); } } @@ -341,13 +341,13 @@ Parser::shutdown() { try { - _library->shutdown(); + _library->shutdown(); } catch(const Ice::Exception& ex) { - ostringstream s; - s << ex; - error(s.str()); + ostringstream s; + s << ex; + error(s.str()); } } @@ -356,105 +356,105 @@ Parser::getInput(char* buf, int& result, int maxSize) { if(!_commands.empty()) { - if(_commands == ";") - { - result = 0; - } - else - { + if(_commands == ";") + { + result = 0; + } + else + { #if defined(_MSC_VER) && !defined(_STLP_MSVC) - // COMPILERBUG: Stupid Visual C++ defines min and max as macros - result = _MIN(maxSize, static_cast<int>(_commands.length())); + // COMPILERBUG: Stupid Visual C++ defines min and max as macros + result = _MIN(maxSize, static_cast<int>(_commands.length())); #else - result = min(maxSize, static_cast<int>(_commands.length())); + result = min(maxSize, static_cast<int>(_commands.length())); #endif - strncpy(buf, _commands.c_str(), result); - _commands.erase(0, result); - if(_commands.empty()) - { - _commands = ";"; - } - } + strncpy(buf, _commands.c_str(), result); + _commands.erase(0, result); + if(_commands.empty()) + { + _commands = ";"; + } + } } else if(isatty(fileno(yyin))) { #ifdef HAVE_READLINE const char* prompt = parser->getPrompt(); - char* line = readline(const_cast<char*>(prompt)); - if(!line) - { - result = 0; - } - else - { - if(*line) - { - add_history(line); - } - - result = strlen(line) + 1; - if(result > maxSize) - { - free(line); - error("input line too long"); - result = 0; - } - else - { - strcpy(buf, line); - strcat(buf, "\n"); - free(line); - } - } + char* line = readline(const_cast<char*>(prompt)); + if(!line) + { + result = 0; + } + else + { + if(*line) + { + add_history(line); + } + + result = strlen(line) + 1; + if(result > maxSize) + { + free(line); + error("input line too long"); + result = 0; + } + else + { + strcpy(buf, line); + strcat(buf, "\n"); + free(line); + } + } #else - cout << parser->getPrompt() << flush; - - string line; - while(true) - { - char c = static_cast<char>(getc(yyin)); - if(c == EOF) - { - if(line.size()) - { - line += '\n'; - } - break; - } - - line += c; - - if(c == '\n') - { - break; - } - } - - result = static_cast<int>(line.length()); - if(result > maxSize) - { - error("input line too long"); - buf[0] = EOF; - result = 1; - } - else - { - strcpy(buf, line.c_str()); - } + cout << parser->getPrompt() << flush; + + string line; + while(true) + { + char c = static_cast<char>(getc(yyin)); + if(c == EOF) + { + if(line.size()) + { + line += '\n'; + } + break; + } + + line += c; + + if(c == '\n') + { + break; + } + } + + result = static_cast<int>(line.length()); + if(result > maxSize) + { + error("input line too long"); + buf[0] = EOF; + result = 1; + } + else + { + strcpy(buf, line.c_str()); + } #endif } else { - if(((result = static_cast<int>(fread(buf, 1, maxSize, yyin))) == 0) && ferror(yyin)) - { - error("input in flex scanner failed"); - buf[0] = EOF; - result = 1; - } + if(((result = static_cast<int>(fread(buf, 1, maxSize, yyin))) == 0) && ferror(yyin)) + { + error("input in flex scanner failed"); + buf[0] = EOF; + result = 1; + } } } @@ -477,12 +477,12 @@ Parser::getPrompt() if(_continue) { - _continue = false; - return "(cont) "; + _continue = false; + return "(cont) "; } else { - return ">>> "; + return ">>> "; } } @@ -491,11 +491,11 @@ Parser::error(const char* s) { if(_commands.empty() && !isatty(fileno(yyin))) { - cerr << _currentFile << ':' << _currentLine << ": " << s << endl; + cerr << _currentFile << ':' << _currentLine << ": " << s << endl; } else { - cerr << "error: " << s << endl; + cerr << "error: " << s << endl; } _errors++; } @@ -511,11 +511,11 @@ Parser::warning(const char* s) { if(_commands.empty() && !isatty(fileno(yyin))) { - cerr << _currentFile << ':' << _currentLine << ": warning: " << s << endl; + cerr << _currentFile << ':' << _currentLine << ": warning: " << s << endl; } else { - cerr << "warning: " << s << endl; + cerr << "warning: " << s << endl; } } @@ -550,7 +550,7 @@ Parser::parse(FILE* file, bool debug) int status = yyparse(); if(_errors) { - status = EXIT_FAILURE; + status = EXIT_FAILURE; } parser = 0; @@ -582,7 +582,7 @@ Parser::parse(const string& commands, bool debug) int status = yyparse(); if(_errors) { - status = EXIT_FAILURE; + status = EXIT_FAILURE; } parser = 0; |