Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- set<string> Grammar::FIRST(string& str)
- {
- set<string> result;
- if (str == "e")
- {
- result.insert("e");
- return result;
- }
- for (auto i : FIRSTForG[str])
- {
- result.insert(i);
- }
- return result;
- }
- set<string> Grammar::FIRST(vector<string>& str){
- set<string> result;
- if (str.size() == 1 && str[0] == "e")
- {
- result.insert("e");
- return result;
- }
- if (str.size() == 1)
- {
- for (auto i : FIRSTForG[str[0]])
- {
- result.insert(i);
- }
- return result;
- }
- // Вставляем код задачи 5.1.3
- for (auto i : str)
- {
- set<string> testF = FIRST(i);
- for (auto i : testF)
- {
- if (i != "e")
- {
- result.insert(i);
- }
- }
- if (!testF.count("e") && testF.size()>0)
- return result;
- }
- result.insert("e");
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement