#include #include #include "model/nonterminal_rules/wfe_nonterminal.h" using namespace std; extern list parsed_expressions; // --------------------------------------------------------------------------- // Made global so that anyone can call Print_Strings wfe_nonterminal start; void Print_Strings(ostream &in_stream) { const list start_string_list = start.Get_String(); bool need_space = false; in_stream << "--" << endl; list::const_iterator a_string; for (a_string = start_string_list.begin(); a_string != start_string_list.end(); a_string++) { if(need_space) in_stream << " "; else need_space = true; in_stream << *a_string; if (a_string->size() > 0 && a_string->substr(a_string->size()-1,1) == "\n") need_space = false; if (*a_string == "-") need_space = false; } in_stream << endl; } // --------------------------------------------------------------------------- int main(int argc, char *argv[]) { if (argc != 2) { cerr << "You must provide a number to generate\n"; return 1; } istringstream number_string(argv[1]); unsigned int allowed_length; number_string >> allowed_length; cout << "Initializing grammar..." << endl; start.Reset_String(allowed_length); cout << "Generating strings..." << endl; while(start.Check_For_String()) { Print_Strings(cout); } return 0; }