Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <stdlib.h>
- #include "Language.h"
- int main(int argc, char **argv) {
- if (--argc < 2) {
- std::cout << "Usage: chains REGEX LENGTH" << std::endl;
- return 1;
- }
- Language lang(argv[1]);
- lang.GenerateWords(atoi(argv[2]));
- return 0;
- }
- #include <iostream>
- #include <cctype>
- #include "Language.h"
- using namespace std;
- static string word;
- Language::Language(string reg)
- {
- this->reg = regex(reg);
- for (int i = 0; i < reg.length(); i++)
- if (isalpha(reg[i]))
- alphabet.insert(reg[i]);
- }
- Language::Language(string alphabet, string reg)
- {
- this->reg = regex(reg);
- for (int i = 0; i< alphabet.length(); i++)
- this->alphabet.insert(alphabet[i]);
- }
- void Language::_GenerateWords(int i)
- {
- for (auto& letter : alphabet) {
- word[i] = letter;
- if (i < word.length() - 1)
- _GenerateWords(i+1);
- else if (regex_match(word, reg))
- cout << word << endl;
- }
- }
- void Language::GenerateWords(int length)
- {
- word = string(length, *(alphabet.begin()));
- _GenerateWords(0);
- }
- #include <regex>
- #include <set>
- class Language {
- std::set<char> alphabet;
- std::regex reg;
- void _GenerateWords(int);
- public:
- Language(std::string);
- Language(std::string, std::string);
- void GenerateWords(int = 1);
- };
Add Comment
Please, Sign In to add comment