stat -> LOCAL ATTRIB NAME {',' ATTRIB NAME} ['=' explist] */
| 399 | |
| 400 | /* stat -> LOCAL ATTRIB NAME {',' ATTRIB NAME} ['=' explist] */ |
| 401 | void LuaParser::LocalStatement() { |
| 402 | auto m = Mark(); |
| 403 | |
| 404 | CheckAndNext(TK_LOCAL); |
| 405 | |
| 406 | auto nm = Mark(); |
| 407 | do { |
| 408 | CheckName(); |
| 409 | LocalAttribute(); |
| 410 | } while (TestAndNext(',')); |
| 411 | nm.Complete(*this, LuaSyntaxNodeKind::NameDefList); |
| 412 | |
| 413 | if (TestAndNext('=')) { |
| 414 | ExpressionList(); |
| 415 | } |
| 416 | // 如果有一个分号则加入到localstatement |
| 417 | TestAndNext(';'); |
| 418 | |
| 419 | m.Complete(*this, LuaSyntaxNodeKind::LocalStatement); |
| 420 | } |
| 421 | |
| 422 | void LuaParser::LabelStatement() { |
| 423 | auto m = Mark(); |