aboutsummaryrefslogtreecommitdiff
path: root/MoonParser/moon_parser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'MoonParser/moon_parser.cpp')
-rw-r--r--MoonParser/moon_parser.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/MoonParser/moon_parser.cpp b/MoonParser/moon_parser.cpp
index 7731513..ae8c53d 100644
--- a/MoonParser/moon_parser.cpp
+++ b/MoonParser/moon_parser.cpp
@@ -1,5 +1,13 @@
1#include "moon_parser.h" 1#include "moon_parser.h"
2 2
3std::unordered_set<std::string> State::keywords = {
4 "and", "while", "else", "using", "continue",
5 "local", "not", "then", "return", "from",
6 "extends", "for", "do", "or", "export",
7 "class", "in", "unless", "when", "elseif",
8 "switch", "break", "if", "with", "import", "true", "false", "nil"
9};
10
3rule plain_space = *set(" \t"); 11rule plain_space = *set(" \t");
4rule Break = nl(-expr('\r') >> '\n'); 12rule Break = nl(-expr('\r') >> '\n');
5rule Any = Break | any(); 13rule Any = Break | any();
@@ -185,7 +193,9 @@ rule For = key("for") >> DisableDo >>
185 193
186extern rule AssignableNameList; 194extern rule AssignableNameList;
187 195
188rule for_in = sym('*') >> Exp | ExpList; 196extern rule star_exp;
197
198rule for_in = star_exp | ExpList;
189 199
190rule ForEach = key("for") >> AssignableNameList >> key("in") >> 200rule ForEach = key("for") >> AssignableNameList >> key("in") >>
191 DisableDo >> ensure(for_in, PopDo) >> 201 DisableDo >> ensure(for_in, PopDo) >>