summaryrefslogtreecommitdiff
path: root/src/ast/expr.hpp
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2015-03-08 16:14:15 +0800
committerJohn Hodge <tpg@mutabah.net>2015-03-08 16:14:15 +0800
commit0ab6d527125669ca7a36e5b27ff429c0f402ba77 (patch)
tree1c7e14e452d563ebbe95acf39f2a7364a3c2d48b /src/ast/expr.hpp
parentfcec09900f158aa939eb1c96607aaabf4c8171ef (diff)
downloadmrust-0ab6d527125669ca7a36e5b27ff429c0f402ba77.tar.gz
Macro parsing, saving, and evaluating
Diffstat (limited to 'src/ast/expr.hpp')
-rw-r--r--src/ast/expr.hpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/ast/expr.hpp b/src/ast/expr.hpp
index bbb82bde..843abb3b 100644
--- a/src/ast/expr.hpp
+++ b/src/ast/expr.hpp
@@ -43,15 +43,21 @@ public:
struct ExprNode_Block:
public ExprNode
{
+ bool m_is_unsafe;
::std::vector< ::std::unique_ptr<ExprNode> > m_nodes;
- ExprNode_Block() {}
+ ExprNode_Block():
+ m_is_unsafe(false)
+ {}
ExprNode_Block(::std::vector< ::std::unique_ptr<ExprNode> >&& nodes):
+ m_is_unsafe(false),
m_nodes( move(nodes) )
{
}
virtual ~ExprNode_Block() override;
+ void set_unsafe() { m_is_unsafe = true; }
+
NODE_METHODS();
};
@@ -310,6 +316,10 @@ struct ExprNode_BinOp:
enum Type {
CMPEQU,
CMPNEQU,
+ CMPLT,
+ CMPLTE,
+ CMPGT,
+ CMPGTE,
BITAND,
BITOR,
@@ -317,6 +327,10 @@ struct ExprNode_BinOp:
SHL,
SHR,
+
+ MULTIPLY,
+ DIVIDE,
+ MODULO,
};
Type m_type;