diff options
author | John Hodge <tpg@mutabah.net> | 2015-03-08 17:53:17 +0800 |
---|---|---|
committer | John Hodge <tpg@mutabah.net> | 2015-03-08 17:53:17 +0800 |
commit | 54ab187e82a41f7221660c7b1dc7777ce8a17228 (patch) | |
tree | 7666a9f00e43a29a709cac83643519824a8a6aad /src/parse/expr.cpp | |
parent | 6817bc18309f903a07cb86dbd13eeed97b1ca995 (diff) | |
download | mrust-54ab187e82a41f7221660c7b1dc7777ce8a17228.tar.gz |
Correct parsing of macro expansion template.
Diffstat (limited to 'src/parse/expr.cpp')
-rw-r--r-- | src/parse/expr.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/parse/expr.cpp b/src/parse/expr.cpp index 34630115..c7cceee0 100644 --- a/src/parse/expr.cpp +++ b/src/parse/expr.cpp @@ -492,18 +492,18 @@ ExprNodeP Parse_ExprFC(TokenStream& lex); ExprNodeP Parse_Expr12(TokenStream& lex)
{
Token tok;
- switch((tok = lex.getToken()).type())
+ switch(GET_TOK(tok, lex))
{
case TOK_DASH:
- throw ParseError::Todo("expr - negate");
+ return NEWNODE( AST::ExprNode_UniOp, AST::ExprNode_UniOp::NEGATE, Parse_Expr12(lex) );
case TOK_EXCLAM:
- throw ParseError::Todo("expr - logical negate");
+ return NEWNODE( AST::ExprNode_UniOp, AST::ExprNode_UniOp::INVERT, Parse_Expr12(lex) );
case TOK_STAR:
- throw ParseError::Todo("expr - dereference");
+ return NEWNODE( AST::ExprNode_Deref, Parse_Expr12(lex) );
case TOK_RWORD_BOX:
- throw ParseError::Todo("expr - box");
+ return NEWNODE( AST::ExprNode_UniOp, AST::ExprNode_UniOp::BOX, Parse_Expr12(lex) );
case TOK_AMP:
- throw ParseError::Todo("expr - borrow");
+ return NEWNODE( AST::ExprNode_UniOp, AST::ExprNode_UniOp::REF, Parse_Expr12(lex) );
default:
lex.putback(tok);
return Parse_ExprFC(lex);
|