1 2 /****************************************************************************** 3 * MODULE : multiline.cpp 4 * DESCRIPTION: A plugin which uses multiline input as long as 5 * the input is not terminated by ';' 6 * COPYRIGHT : (C) 2003 Joris van der Hoeven 7 ******************************************************************************* 8 * This software falls under the GNU general public license version 3 or later. 9 * It comes WITHOUT ANY WARRANTY WHATSOEVER. For details, see the file LICENSE 10 * in the root directory or <http://www.gnu.org/licenses/gpl-3.0.html>. 11 ******************************************************************************/ 12 13 #include <iostream> 14 using namespace std; 15 16 #define DATA_BEGIN ((char) 2) 17 #define DATA_END ((char) 5) 18 #define DATA_COMMAND ((char) 16) 19 #define DATA_ESCAPE ((char) 27) 20 21 int main()22main () { 23 cout << DATA_BEGIN << "verbatim:"; 24 cout << "Terminate your input by ';'"; 25 cout << DATA_END; 26 cout.flush (); 27 28 while (true) { 29 char buffer[100]; 30 cin.getline (buffer, 100, '\n'); 31 if (buffer[0] != DATA_COMMAND) { 32 cout << DATA_BEGIN << "verbatim:"; 33 cout << buffer; 34 cout << DATA_END; 35 } 36 else { 37 int n = strlen (buffer); 38 cout << DATA_BEGIN << "scheme:"; 39 if (n>0 && buffer[n-1] == ')') n--; 40 if (n>0 && buffer[n-1] == '\"') n--; 41 if (n>0 && buffer[n-1] == ';') cout << "#t"; 42 else cout << "#f"; 43 cout << DATA_END; 44 } 45 cout.flush (); 46 } 47 return 0; 48 } 49