Skip to content

Instantly share code, notes, and snippets.

@Borgleader
Created January 31, 2015 03:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Borgleader/f17c28073a81e8e39749 to your computer and use it in GitHub Desktop.
Save Borgleader/f17c28073a81e8e39749 to your computer and use it in GitHub Desktop.
I like to std::move it std::move it
AstNodePtr CompileMulDiv(TokenIterator& it, TokenIterator& end)
{
auto lhs = CompileTerm(it, end);
for (;;)
{
if (it->id() == TokenType::Multiply)
{
IncrIter(it);
lhs = std::move(AstNodePtr(new BinaryOpNode(TokenType::Multiply, std::move(lhs), CompileTerm(it, end))));
}
else if (it->id() == TokenType::Divide)
{
IncrIter(it);
lhs = std::move(AstNodePtr(new BinaryOpNode(TokenType::Divide, std::move(lhs), CompileTerm(it, end))));
}
else
break;
}
return lhs;
}
@Borgleader
Copy link
Author

typedef std::unique_ptr AstNodePtr;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment