primaryexp -> NAME | '(' expr ')' */
| 943 | |
| 944 | /* primaryexp -> NAME | '(' expr ')' */ |
| 945 | CompleteMarker LuaParser::PrimaryExpression() { |
| 946 | auto m = Mark(); |
| 947 | switch (Current()) { |
| 948 | case '(': { |
| 949 | Next(); |
| 950 | Expression(); |
| 951 | CheckAndNext(')'); |
| 952 | return m.Complete(*this, LuaSyntaxNodeKind::ParExpression); |
| 953 | } |
| 954 | case TK_NAME: { |
| 955 | Next(); |
| 956 | return m.Complete(*this, LuaSyntaxNodeKind::NameExpression); |
| 957 | } |
| 958 | default: |
| 959 | LuaExpectedError("unexpected symbol"); |
| 960 | } |
| 961 | m.Undo(*this); |
| 962 | return m.Complete(*this, LuaSyntaxNodeKind::None); |
| 963 | } |
| 964 | |
| 965 | UnOpr LuaParser::GetUnaryOperator(LuaTokenKind op) { |
| 966 | switch (op) { |