Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/ParseNode.h

    r658fafe4 r9706554  
    1010// Created On       : Sat May 16 13:28:16 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun Jul 24 02:17:00 2016
    13 // Update Count     : 269
     12// Last Modified On : Fri Aug  5 11:42:50 2016
     13// Update Count     : 293
    1414//
    1515
     
    225225};
    226226
     227Expression *build_cast( TypeValueNode * arg, ExpressionNode *expr_node );
     228Expression *build_fieldSel( ExpressionNode *expr_node, VarRefNode *member );
     229Expression *build_pfieldSel( ExpressionNode *expr_node, VarRefNode *member );
     230Expression *build_addressOf( ExpressionNode *expr_node );
     231Expression *build_sizeOf( ExpressionNode *expr_node );
     232Expression *build_alignOf( ExpressionNode *expr_node );
     233Expression *build_offsetOf( TypeValueNode * arg, VarRefNode *member );
     234Expression *build_and( ExpressionNode *expr_node1, ExpressionNode *expr_node2 );
     235Expression *build_and_or( ExpressionNode *expr_node1, ExpressionNode *expr_node2, bool kind );
     236Expression *build_unary_val( OperatorNode::Type op, ExpressionNode *expr_node );
     237Expression *build_unary_ptr( OperatorNode::Type op, ExpressionNode *expr_node );
     238Expression *build_binary_val( OperatorNode::Type op, ExpressionNode *expr_node1, ExpressionNode *expr_node2 );
     239Expression *build_binary_ptr( OperatorNode::Type op, ExpressionNode *expr_node1, ExpressionNode *expr_node2 );
     240Expression *build_cond( ExpressionNode *expr_node1, ExpressionNode *expr_node2, ExpressionNode *expr_node3 );
     241Expression *build_comma( ExpressionNode *expr_node1, ExpressionNode *expr_node2 );
     242Expression *build_attr( VarRefNode *var, ExpressionNode * expr = 0 );
     243Expression *build_tuple( ExpressionNode * expr = 0 );
     244Expression *build_func( ExpressionNode * function, ExpressionNode * expr );
     245
     246class CompositeExprNode2 : public ExpressionNode {
     247  public:
     248        CompositeExprNode2( Expression *expr );
     249        CompositeExprNode2( const CompositeExprNode2 &other );
     250        virtual ~CompositeExprNode2();
     251
     252        virtual CompositeExprNode2 *clone() const { return new CompositeExprNode2( *this ); }
     253        virtual Expression *build() const { return expr->clone(); }
     254
     255        virtual void print( std::ostream &, int indent = 0) const;
     256        virtual void printOneLine( std::ostream &, int indent = 0) const;
     257  private:
     258        Expression *expr;
     259};
     260
    227261class CompositeExprNode : public ExpressionNode {
    228262  public:
     
    290324  private:
    291325        std::list< Label > labels;
     326};
     327
     328class CommaExprNode : public CompositeExprNode {
     329  public:
     330        CommaExprNode();
     331        CommaExprNode( ExpressionNode * );
     332        CommaExprNode( ExpressionNode *, ExpressionNode * );
     333        CommaExprNode( const CommaExprNode &other );
     334
     335        // virtual CommaExprNode *add_to_list( ExpressionNode * );
     336        virtual CommaExprNode *clone() const { return new CommaExprNode( *this ); }
    292337};
    293338
     
    522567};
    523568
     569class NullStmtNode : public CompoundStmtNode {
     570  public:
     571        Statement *build() const;
     572        void print( std::ostream &, int indent = 0 ) const;
     573};
     574
    524575class InitializerNode : public ParseNode {
    525576  public:
Note: See TracChangeset for help on using the changeset viewer.