summaryrefslogtreecommitdiff
path: root/src/parse/expr.cpp
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2015-03-08 17:53:17 +0800
committerJohn Hodge <tpg@mutabah.net>2015-03-08 17:53:17 +0800
commit54ab187e82a41f7221660c7b1dc7777ce8a17228 (patch)
tree7666a9f00e43a29a709cac83643519824a8a6aad /src/parse/expr.cpp
parent6817bc18309f903a07cb86dbd13eeed97b1ca995 (diff)
downloadmrust-54ab187e82a41f7221660c7b1dc7777ce8a17228.tar.gz
Correct parsing of macro expansion template.
Diffstat (limited to 'src/parse/expr.cpp')
-rw-r--r--src/parse/expr.cpp12
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);