Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/ParseNode.h

    rb2e0df3 r07de76b  
    1010// Created On       : Sat May 16 13:28:16 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Oct 24 03:53:54 2020
    13 // Update Count     : 895
     12// Last Modified On : Mon Dec 16 07:46:01 2019
     13// Update Count     : 888
    1414//
    1515
     
    3737class Attribute;
    3838class Declaration;
    39 struct DeclarationNode;
     39class DeclarationNode;
    4040class DeclarationWithType;
    4141class ExpressionNode;
    4242class Initializer;
    43 struct StatementNode;
     43class StatementNode;
    4444
    4545//##############################################################################
     
    8686class InitializerNode : public ParseNode {
    8787  public:
    88         InitializerNode( ExpressionNode *, bool aggrp = false, ExpressionNode * des = nullptr );
     88        InitializerNode( ExpressionNode *, bool aggrp = false,  ExpressionNode * des = nullptr );
    8989        InitializerNode( InitializerNode *, bool aggrp = false, ExpressionNode * des = nullptr );
    9090        InitializerNode( bool isDelete );
     
    205205struct TypeData;
    206206
    207 struct DeclarationNode : public ParseNode {
     207class DeclarationNode : public ParseNode {
     208  public:
    208209        // These enumerations must harmonize with their names in DeclarationNode.cc.
    209210        enum BasicType { Void, Bool, Char, Int, Int128,
     
    303304        bool get_inLine() const { return inLine; }
    304305        DeclarationNode * set_inLine( bool inL ) { inLine = inL; return this; }
    305 
     306  public:
    306307        DeclarationNode * get_last() { return (DeclarationNode *)ParseNode::get_last(); }
    307308
     
    359360//##############################################################################
    360361
    361 struct StatementNode final : public ParseNode {
     362class StatementNode final : public ParseNode {
     363  public:
    362364        StatementNode() { stmt = nullptr; }
    363365        StatementNode( Statement * stmt ) : stmt( stmt ) {}
     
    380382                os << stmt.get() << std::endl;
    381383        }
    382 
     384  private:
    383385        std::unique_ptr<Statement> stmt;
    384386}; // StatementNode
     
    424426Statement * build_finally( StatementNode * stmt );
    425427Statement * build_compound( StatementNode * first );
    426 StatementNode * maybe_build_compound( StatementNode * first );
    427428Statement * build_asm( bool voltile, Expression * instruction, ExpressionNode * output = nullptr, ExpressionNode * input = nullptr, ExpressionNode * clobber = nullptr, LabelNode * gotolabels = nullptr );
    428429Statement * build_directive( std::string * directive );
    429 SuspendStmt * build_suspend( StatementNode *, SuspendStmt::Type = SuspendStmt::None);
    430430WaitForStmt * build_waitfor( ExpressionNode * target, StatementNode * stmt, ExpressionNode * when );
    431431WaitForStmt * build_waitfor( ExpressionNode * target, StatementNode * stmt, ExpressionNode * when, WaitForStmt * existing );
     
    449449                                * out++ = result;
    450450                        } else {
    451                                 SemanticError( cur->location, "type specifier declaration in forall clause is currently unimplemented." );
     451                                assertf(false, "buildList unknown type");
    452452                        } // if
    453453                } catch( SemanticErrorException & e ) {
Note: See TracChangeset for help on using the changeset viewer.