aboutsummaryrefslogtreecommitdiff
path: root/MoonParser/moon_ast.h
diff options
context:
space:
mode:
authorLi Jin <dragon-fly@qq.com>2019-09-17 00:41:21 +0800
committerLi Jin <dragon-fly@qq.com>2019-09-17 00:41:21 +0800
commit74c4f6eab47f76b093e17f515204525e00a3b352 (patch)
treed737b1437f103842f30c96a2787468d474405efb /MoonParser/moon_ast.h
parentb65798d7960d797f2b7074c4cc47b8c70a9f5270 (diff)
downloadyuescript-74c4f6eab47f76b093e17f515204525e00a3b352.tar.gz
yuescript-74c4f6eab47f76b093e17f515204525e00a3b352.tar.bz2
yuescript-74c4f6eab47f76b093e17f515204525e00a3b352.zip
completing spec/class.moon
Diffstat (limited to 'MoonParser/moon_ast.h')
-rw-r--r--MoonParser/moon_ast.h43
1 files changed, 22 insertions, 21 deletions
diff --git a/MoonParser/moon_ast.h b/MoonParser/moon_ast.h
index 9eab2f9..9733bf9 100644
--- a/MoonParser/moon_ast.h
+++ b/MoonParser/moon_ast.h
@@ -48,25 +48,25 @@ public: \
48AST_LEAF(Num, "Num"_id) 48AST_LEAF(Num, "Num"_id)
49AST_END(Num) 49AST_END(Num)
50 50
51AST_LEAF(_Name, "_Name"_id) 51AST_LEAF(Name, "Name"_id)
52AST_END(_Name)
53
54AST_NODE(Name, "Name"_id)
55 ast_ptr<_Name_t> name;
56AST_END(Name) 52AST_END(Name)
57 53
54AST_NODE(Variable, "Variable"_id)
55 ast_ptr<Name_t> name;
56AST_END(Variable)
57
58AST_LEAF(self, "self"_id) 58AST_LEAF(self, "self"_id)
59AST_END(self) 59AST_END(self)
60 60
61AST_NODE(self_name, "self_name"_id) 61AST_NODE(self_name, "self_name"_id)
62 ast_ptr<_Name_t> name; 62 ast_ptr<Name_t> name;
63AST_END(self_name) 63AST_END(self_name)
64 64
65AST_LEAF(self_class, "self_class"_id) 65AST_LEAF(self_class, "self_class"_id)
66AST_END(self_class) 66AST_END(self_class)
67 67
68AST_NODE(self_class_name, "self_class_name"_id) 68AST_NODE(self_class_name, "self_class_name"_id)
69 ast_ptr<_Name_t> name; 69 ast_ptr<Name_t> name;
70AST_END(self_class_name) 70AST_END(self_class_name)
71 71
72AST_NODE(SelfName, "SelfName"_id) 72AST_NODE(SelfName, "SelfName"_id)
@@ -74,7 +74,7 @@ AST_NODE(SelfName, "SelfName"_id)
74AST_END(SelfName) 74AST_END(SelfName)
75 75
76AST_NODE(KeyName, "KeyName"_id) 76AST_NODE(KeyName, "KeyName"_id)
77 ast_ptr<ast_node> name; // SelfName_t | _Name_t 77 ast_ptr<ast_node> name; // SelfName_t | Name_t
78AST_END(KeyName) 78AST_END(KeyName)
79 79
80AST_LEAF(VarArg, "VarArg"_id) 80AST_LEAF(VarArg, "VarArg"_id)
@@ -88,7 +88,7 @@ AST_END(Seperator)
88 88
89AST_NODE(NameList, "NameList"_id) 89AST_NODE(NameList, "NameList"_id)
90 ast_ptr<Seperator_t> sep; 90 ast_ptr<Seperator_t> sep;
91 ast_list<Name_t> names; 91 ast_list<Variable_t> names;
92AST_END(NameList) 92AST_END(NameList)
93 93
94AST_NODE(Local, "Local"_id) 94AST_NODE(Local, "Local"_id)
@@ -96,13 +96,13 @@ AST_NODE(Local, "Local"_id)
96AST_END(Local) 96AST_END(Local)
97 97
98AST_NODE(colon_import_name, "colon_import_name"_id) 98AST_NODE(colon_import_name, "colon_import_name"_id)
99 ast_ptr<Name_t> name; 99 ast_ptr<Variable_t> name;
100AST_END(colon_import_name) 100AST_END(colon_import_name)
101 101
102class Exp_t; 102class Exp_t;
103 103
104AST_NODE(ImportName, "ImportName"_id) 104AST_NODE(ImportName, "ImportName"_id)
105 ast_ptr<ast_node> name; // colon_import_name_t | Name_t 105 ast_ptr<ast_node> name; // colon_import_name_t | Variable_t
106AST_END(ImportName) 106AST_END(ImportName)
107 107
108AST_NODE(Import, "Import"_id) 108AST_NODE(Import, "Import"_id)
@@ -182,7 +182,7 @@ AST_NODE(for_step_value, "for_step_value"_id)
182AST_END(for_step_value) 182AST_END(for_step_value)
183 183
184AST_NODE(For, "For"_id) 184AST_NODE(For, "For"_id)
185 ast_ptr<Name_t> varName; 185 ast_ptr<Variable_t> varName;
186 ast_ptr<Exp_t> startValue; 186 ast_ptr<Exp_t> startValue;
187 ast_ptr<Exp_t> stopValue; 187 ast_ptr<Exp_t> stopValue;
188 ast_ptr<for_step_value_t, true> stepValue; 188 ast_ptr<for_step_value_t, true> stepValue;
@@ -228,7 +228,7 @@ AST_NODE(CompForEach, "CompForEach"_id)
228AST_END(CompForEach) 228AST_END(CompForEach)
229 229
230AST_NODE(CompFor, "CompFor"_id) 230AST_NODE(CompFor, "CompFor"_id)
231 ast_ptr<Name_t> varName; 231 ast_ptr<Variable_t> varName;
232 ast_ptr<Exp_t> startValue; 232 ast_ptr<Exp_t> startValue;
233 ast_ptr<Exp_t> stopValue; 233 ast_ptr<Exp_t> stopValue;
234 ast_ptr<for_step_value_t, true> stepValue; 234 ast_ptr<for_step_value_t, true> stepValue;
@@ -264,7 +264,7 @@ AST_END(BinaryOperator)
264class Chain_t; 264class Chain_t;
265 265
266AST_NODE(Assignable, "Assignable"_id) 266AST_NODE(Assignable, "Assignable"_id)
267 ast_ptr<ast_node> item; // Chain_t | Name_t | SelfName_t 267 ast_ptr<ast_node> item; // Chain_t | Variable_t | SelfName_t
268AST_END(Assignable) 268AST_END(Assignable)
269 269
270class Value_t; 270class Value_t;
@@ -280,7 +280,7 @@ AST_NODE(Exp, "Exp"_id)
280AST_END(Exp) 280AST_END(Exp)
281 281
282AST_NODE(Callable, "Callable"_id) 282AST_NODE(Callable, "Callable"_id)
283 ast_ptr<ast_node> item; // Name_t | SelfName_t | VarArg_t | Parens_t 283 ast_ptr<ast_node> item; // Variable_t | SelfName_t | VarArg_t | Parens_t
284AST_END(Callable) 284AST_END(Callable)
285 285
286class InvokeArgs_t; 286class InvokeArgs_t;
@@ -359,11 +359,12 @@ AST_NODE(chain_item, "chain_item"_id)
359AST_END(chain_item) 359AST_END(chain_item)
360 360
361AST_NODE(DotChainItem, "DotChainItem"_id) 361AST_NODE(DotChainItem, "DotChainItem"_id)
362 ast_ptr<_Name_t> name; 362 ast_ptr<Name_t> name;
363AST_END(DotChainItem) 363AST_END(DotChainItem)
364 364
365AST_NODE(ColonChainItem, "ColonChainItem"_id) 365AST_NODE(ColonChainItem, "ColonChainItem"_id)
366 ast_ptr<_Name_t> name; 366 ast_ptr<Name_t> name;
367 bool switchToDot = false;
367AST_END(ColonChainItem) 368AST_END(ColonChainItem)
368 369
369AST_NODE(chain_dot_chain, "chain_dot_chain"_id) 370AST_NODE(chain_dot_chain, "chain_dot_chain"_id)
@@ -430,7 +431,7 @@ AST_NODE(class_member_list, "class_member_list"_id)
430AST_END(class_member_list) 431AST_END(class_member_list)
431 432
432AST_NODE(ClassLine, "ClassLine"_id) 433AST_NODE(ClassLine, "ClassLine"_id)
433 ast_ptr<ast_node> content; // class_member_list_t | Statement_t | Exp_t 434 ast_ptr<ast_node> content; // class_member_list_t | Statement_t
434AST_END(ClassLine) 435AST_END(ClassLine)
435 436
436AST_NODE(ClassBlock, "ClassBlock"_id) 437AST_NODE(ClassBlock, "ClassBlock"_id)
@@ -457,7 +458,7 @@ AST_NODE(Export, "Export"_id)
457AST_END(Export) 458AST_END(Export)
458 459
459AST_NODE(variable_pair, "variable_pair"_id) 460AST_NODE(variable_pair, "variable_pair"_id)
460 ast_ptr<Name_t> name; 461 ast_ptr<Variable_t> name;
461AST_END(variable_pair) 462AST_END(variable_pair)
462 463
463AST_NODE(normal_pair, "normal_pair"_id) 464AST_NODE(normal_pair, "normal_pair"_id)
@@ -470,7 +471,7 @@ AST_NODE(KeyValue, "KeyValue"_id)
470AST_END(KeyValue) 471AST_END(KeyValue)
471 472
472AST_NODE(FnArgDef, "FnArgDef"_id) 473AST_NODE(FnArgDef, "FnArgDef"_id)
473 ast_ptr<ast_node> name; // Name_t | SelfName_t 474 ast_ptr<ast_node> name; // Variable_t | SelfName_t
474 ast_ptr<Exp_t, true> defaultValue; 475 ast_ptr<Exp_t, true> defaultValue;
475AST_END(FnArgDef) 476AST_END(FnArgDef)
476 477
@@ -499,7 +500,7 @@ AST_NODE(FunLit, "FunLit"_id)
499AST_END(FunLit) 500AST_END(FunLit)
500 501
501AST_NODE(NameOrDestructure, "NameOrDestructure"_id) 502AST_NODE(NameOrDestructure, "NameOrDestructure"_id)
502 ast_ptr<ast_node> item; // Name_t | TableLit_t 503 ast_ptr<ast_node> item; // Variable_t | TableLit_t
503AST_END(NameOrDestructure) 504AST_END(NameOrDestructure)
504 505
505AST_NODE(AssignableNameList, "AssignableNameList"_id) 506AST_NODE(AssignableNameList, "AssignableNameList"_id)