Changes in src/Parser/ParseNode.h [b2e0df3:07de76b]
- File:
-
- 1 edited
-
src/Parser/ParseNode.h (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/ParseNode.h
rb2e0df3 r07de76b 10 10 // Created On : Sat May 16 13:28:16 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Oct 24 03:53:54 202013 // Update Count : 8 9512 // Last Modified On : Mon Dec 16 07:46:01 2019 13 // Update Count : 888 14 14 // 15 15 … … 37 37 class Attribute; 38 38 class Declaration; 39 structDeclarationNode;39 class DeclarationNode; 40 40 class DeclarationWithType; 41 41 class ExpressionNode; 42 42 class Initializer; 43 structStatementNode;43 class StatementNode; 44 44 45 45 //############################################################################## … … 86 86 class InitializerNode : public ParseNode { 87 87 public: 88 InitializerNode( ExpressionNode *, bool aggrp = false, ExpressionNode * des = nullptr );88 InitializerNode( ExpressionNode *, bool aggrp = false, ExpressionNode * des = nullptr ); 89 89 InitializerNode( InitializerNode *, bool aggrp = false, ExpressionNode * des = nullptr ); 90 90 InitializerNode( bool isDelete ); … … 205 205 struct TypeData; 206 206 207 struct DeclarationNode : public ParseNode { 207 class DeclarationNode : public ParseNode { 208 public: 208 209 // These enumerations must harmonize with their names in DeclarationNode.cc. 209 210 enum BasicType { Void, Bool, Char, Int, Int128, … … 303 304 bool get_inLine() const { return inLine; } 304 305 DeclarationNode * set_inLine( bool inL ) { inLine = inL; return this; } 305 306 public: 306 307 DeclarationNode * get_last() { return (DeclarationNode *)ParseNode::get_last(); } 307 308 … … 359 360 //############################################################################## 360 361 361 struct StatementNode final : public ParseNode { 362 class StatementNode final : public ParseNode { 363 public: 362 364 StatementNode() { stmt = nullptr; } 363 365 StatementNode( Statement * stmt ) : stmt( stmt ) {} … … 380 382 os << stmt.get() << std::endl; 381 383 } 382 384 private: 383 385 std::unique_ptr<Statement> stmt; 384 386 }; // StatementNode … … 424 426 Statement * build_finally( StatementNode * stmt ); 425 427 Statement * build_compound( StatementNode * first ); 426 StatementNode * maybe_build_compound( StatementNode * first );427 428 Statement * build_asm( bool voltile, Expression * instruction, ExpressionNode * output = nullptr, ExpressionNode * input = nullptr, ExpressionNode * clobber = nullptr, LabelNode * gotolabels = nullptr ); 428 429 Statement * build_directive( std::string * directive ); 429 SuspendStmt * build_suspend( StatementNode *, SuspendStmt::Type = SuspendStmt::None);430 430 WaitForStmt * build_waitfor( ExpressionNode * target, StatementNode * stmt, ExpressionNode * when ); 431 431 WaitForStmt * build_waitfor( ExpressionNode * target, StatementNode * stmt, ExpressionNode * when, WaitForStmt * existing ); … … 449 449 * out++ = result; 450 450 } else { 451 SemanticError( cur->location, "type specifier declaration in forall clause is currently unimplemented.");451 assertf(false, "buildList unknown type"); 452 452 } // if 453 453 } catch( SemanticErrorException & e ) {
Note:
See TracChangeset
for help on using the changeset viewer.