Changeset 6611177 for src/Parser/ExpressionNode.h
- Timestamp:
- Apr 11, 2023, 12:48:03 PM (22 months ago)
- Branches:
- ADT, ast-experimental, master
- Children:
- 5541a44e
- Parents:
- 9921573
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/ExpressionNode.h
r9921573 r6611177 41 41 bool isExpressionType() const { return nullptr != dynamic_cast<T>(expr.get()); } 42 42 43 ast::Expr * build() const{44 ast::Expr * node = const_cast<ExpressionNode *>(this)->expr.release();43 ast::Expr * build() { 44 ast::Expr * node = expr.release(); 45 45 node->set_extension( this->get_extension() ); 46 46 node->location = this->location; … … 53 53 bool extension = false; 54 54 }; // ExpressionNode 55 56 /*57 // Must harmonize with OperName.58 enum class OperKinds {59 // diadic60 SizeOf, AlignOf, OffsetOf, Plus, Minus, Exp, Mul, Div, Mod, Or, And,61 BitOr, BitAnd, Xor, Cast, LShift, RShift, LThan, GThan, LEThan, GEThan, Eq, Neq,62 Assign, AtAssn, ExpAssn, MulAssn, DivAssn, ModAssn, PlusAssn, MinusAssn, LSAssn, RSAssn, AndAssn, ERAssn, OrAssn,63 Index, Range,64 // monadic65 UnPlus, UnMinus, AddressOf, PointTo, Neg, BitNeg, Incr, IncrPost, Decr, DecrPost,66 Ctor, Dtor,67 }; // OperKinds68 69 enum class EnumHiding { Visible, Hide };70 71 struct LabelNode {72 std::vector<ast::Label> labels;73 };74 */75 55 76 56 // These 4 routines modify the string: … … 99 79 ast::Expr * build_unary_val( const CodeLocation &, OperKinds op, ExpressionNode * expr_node ); 100 80 ast::Expr * build_binary_val( const CodeLocation &, OperKinds op, ExpressionNode * expr_node1, ExpressionNode * expr_node2 ); 101 ast::Expr * build_binary_ptr( const CodeLocation &, OperKinds op, ExpressionNode * expr_node1, ExpressionNode * expr_node2 );102 81 ast::Expr * build_cond( const CodeLocation &, ExpressionNode * expr_node1, ExpressionNode * expr_node2, ExpressionNode * expr_node3 ); 103 82 ast::Expr * build_tuple( const CodeLocation &, ExpressionNode * expr_node = nullptr );
Note: See TracChangeset
for help on using the changeset viewer.