Changeset 8135d4c for src/SynTree
- Timestamp:
- Aug 22, 2017, 7:31:52 PM (8 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- 9aaac6e9
- Parents:
- fc56cdbf (diff), b3d413b (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Location:
- src/SynTree
- Files:
-
- 49 edited
Legend:
- Unmodified
- Added
- Removed
-
src/SynTree/AddStmtVisitor.cc
rfc56cdbf r8135d4c 15 15 16 16 #include "AddStmtVisitor.h" 17 #include "Statement.h" 18 #include "Declaration.h" 19 #include "Expression.h" 20 #include "Common/utility.h" 17 18 #include "Common/SemanticError.h" // for SemanticError 19 #include "Declaration.h" // for Declaration 20 #include "Expression.h" // for Expression 21 #include "Statement.h" // for CompoundStmt, ForStmt, IfStmt, Sta... 22 #include "SynTree/Label.h" // for Label, noLabels 21 23 22 24 void AddStmtVisitor::visitStatementList( std::list< Statement* > &statements ) { -
src/SynTree/AddStmtVisitor.h
rfc56cdbf r8135d4c 16 16 #pragma once 17 17 18 #include <list> 18 #include <list> // for list 19 19 20 #include "SynTree/SynTree.h" 21 #include "SynTree/Visitor.h" 20 #include "SynTree/SynTree.h" // for Visitor Nodes 21 #include "SynTree/Visitor.h" // for Visitor 22 22 23 23 class AddStmtVisitor : public Visitor { -
src/SynTree/AddressExpr.cc
rfc56cdbf r8135d4c 14 14 // 15 15 16 #include "Expression.h" 17 #include "Type.h" 18 #include "Common/utility.h" 16 #include <ostream> // for ostream, operator<<, basic_ostream, endl 17 #include <string> // for operator<<, string 18 19 #include "Common/utility.h" // for maybeClone 20 #include "Expression.h" // for AddressExpr, Expression 21 #include "Type.h" // for PointerType, Type, Type::Qualifiers 19 22 20 23 // Address expressions are typed based on the following inference rules: -
src/SynTree/AggregateDecl.cc
rfc56cdbf r8135d4c 14 14 // 15 15 16 #include "Declaration.h" 17 #include "Attribute.h" 18 #include "Type.h" 19 #include "Common/utility.h" 16 #include <list> // for list 17 #include <ostream> // for operator<<, basic_ostream, ostream 18 #include <string> // for operator<<, string, char_traits 19 20 #include "Attribute.h" // for Attribute 21 #include "Common/utility.h" // for printAll, cloneAll, deleteAll 22 #include "Declaration.h" // for AggregateDecl, TypeDecl, Declaration 23 #include "Parser/LinkageSpec.h" // for Spec, linkageName, Cforall 24 #include "Type.h" // for Type, Type::StorageClasses 20 25 21 26 -
src/SynTree/ApplicationExpr.cc
rfc56cdbf r8135d4c 14 14 // 15 15 16 #include <cassert> 16 #include <cassert> // for safe_dynamic_cast, assert 17 #include <list> // for list 18 #include <map> // for _Rb_tree_const_iterator, map, map<>:... 19 #include <memory> // for unique_ptr 20 #include <ostream> // for operator<<, ostream, basic_ostream 21 #include <string> // for operator<<, string, char_traits 22 #include <utility> // for pair 17 23 18 #include "Expression.h" 19 #include "Declaration.h" 20 #include "Type.h" 21 #include "TypeSubstitution.h" 22 #include "Common/utility.h" 23 #include "ResolvExpr/typeops.h" 24 #include "Common/utility.h" // for maybeClone, cloneAll, deleteAll, pri... 25 #include "Declaration.h" // for Declaration 26 #include "Expression.h" // for ParamEntry, ApplicationExpr, Expression 27 #include "ResolvExpr/typeops.h" // for extractResultType 28 #include "Type.h" // for Type, PointerType, FunctionType 24 29 25 30 ParamEntry::ParamEntry( const ParamEntry &other ) : -
src/SynTree/ArrayType.cc
rfc56cdbf r8135d4c 14 14 // 15 15 16 #include "Type.h" 17 #include "Expression.h" 18 #include "Common/utility.h" 16 #include <list> // for list 17 #include <ostream> // for operator<<, ostream 18 19 #include "Common/utility.h" // for maybeClone 20 #include "Expression.h" // for Expression 21 #include "Type.h" // for ArrayType, Type, Type::Qualifiers 22 23 class Attribute; 19 24 20 25 -
src/SynTree/AttrType.cc
rfc56cdbf r8135d4c 14 14 // 15 15 16 #include "Type.h" 17 #include "Expression.h" 18 #include "Common/utility.h" 16 #include <list> // for list 17 #include <ostream> // for operator<<, ostream, basic_ostream 18 #include <string> // for char_traits, operator<<, string 19 20 #include "Common/utility.h" // for maybeClone 21 #include "Expression.h" // for Expression 22 #include "Type.h" // for AttrType, Type, Type::Qualifiers 23 24 class Attribute; 19 25 20 26 -
src/SynTree/Attribute.cc
rfc56cdbf r8135d4c 14 14 // 15 15 16 #include < cassert>16 #include <ostream> // for operator<<, ostream, basic_ostream, endl 17 17 18 #include "Common/utility.h"19 18 #include "Attribute.h" 20 #include "Expression.h" 19 #include "Common/utility.h" // for cloneAll, deleteAll, printAll 20 #include "Expression.h" // for Expression 21 21 22 22 Attribute::Attribute( const Attribute &other ) : name( other.name ) { -
src/SynTree/Attribute.h
rfc56cdbf r8135d4c 16 16 #pragma once 17 17 18 #include "SynTree.h" 18 #include <iosfwd> // for ostream 19 #include <list> // for list 20 #include <string> // for string, operator== 21 22 class Expression; 19 23 20 24 // GCC attribute -
src/SynTree/BaseSyntaxNode.h
rfc56cdbf r8135d4c 9 9 // Author : Thierry Delisle 10 10 // Created On : Tue Feb 14 07:44:20 2017 11 // Last Modified By : 12 // Last Modified On : 13 // Update Count : 11 // Last Modified By : Andrew Beach 12 // Last Modified On : Thr Aug 17 13:44:00 13 // Update Count : 1 14 14 // 15 15 16 16 #pragma once 17 17 18 #include "Common/ utility.h"19 #include "Visitor.h" 18 #include "Common/CodeLocation.h" 19 class Visitor; 20 20 21 21 class BaseSyntaxNode { -
src/SynTree/BasicType.cc
rfc56cdbf r8135d4c 14 14 // 15 15 16 #include <cassert> 17 #include "Type.h" 16 #include <cassert> // for assert 17 #include <list> // for list 18 #include <ostream> // for operator<<, ostream 19 20 #include "Type.h" // for BasicType, Type, BasicType::Kind, BasicType::Kind... 21 22 class Attribute; 18 23 19 24 BasicType::BasicType( const Type::Qualifiers &tq, Kind bt, const std::list< Attribute * > & attributes ) : Type( tq, attributes ), kind( bt ) {} -
src/SynTree/CommaExpr.cc
rfc56cdbf r8135d4c 14 14 // 15 15 16 #include "Expression.h" 17 #include "Type.h" 18 #include "Common/utility.h" 16 #include <ostream> // for ostream, endl, operator<<, basic_ostream 17 #include <string> // for operator<<, string 18 19 #include "Common/utility.h" // for maybeClone 20 #include "Expression.h" // for CommaExpr, Expression 21 #include "Type.h" // for Type 19 22 20 23 CommaExpr::CommaExpr( Expression *arg1, Expression *arg2, Expression *_aname ) -
src/SynTree/CompoundStmt.cc
rfc56cdbf r8135d4c 14 14 // 15 15 16 #include "Statement.h" 17 #include "Common/utility.h" 18 #include <algorithm> 19 #include <functional> 20 #include "Expression.h" 21 #include "Declaration.h" 22 #include "SynTree/VarExprReplacer.h" 16 #include <cassert> // for assert, safe_dynamic_cast 17 #include <list> // for list, _List_const_iterator, lis... 18 #include <ostream> // for operator<<, ostream, basic_ostream 19 #include <string> // for operator==, string 20 21 #include "Common/utility.h" // for cloneAll, deleteAll, printAll 22 #include "Declaration.h" // for DeclarationWithType, Declaration 23 #include "Statement.h" // for CompoundStmt, Statement, DeclStmt 24 #include "SynTree/Label.h" // for Label 25 #include "SynTree/VarExprReplacer.h" // for VarExprReplacer, VarExprReplace... 23 26 24 27 using std::string; -
src/SynTree/Constant.cc
rfc56cdbf r8135d4c 14 14 // 15 15 16 #include < iostream>17 #include < list>18 #include <string> 16 #include <cassert> // for safe_dynamic_cast, assertf 17 #include <iostream> // for operator<<, ostream, basic_ostream 18 #include <string> // for to_string, string, char_traits, operator<< 19 19 20 20 #include "Constant.h" 21 #include "Type.h" 21 #include "Type.h" // for BasicType, Type, Type::Qualifiers, PointerType 22 22 23 23 Constant::Constant( Type * type, std::string rep, unsigned long long val ) : type( type ), rep( rep ), val( val ) {} -
src/SynTree/Constant.h
rfc56cdbf r8135d4c 16 16 #pragma once 17 17 18 #include "SynTree.h" 19 #include "Visitor.h" 20 #include "Mutator.h" 18 #include <iosfwd> // for ostream 19 #include <string> // for string 20 21 #include "Mutator.h" // for Mutator 22 #include "Visitor.h" // for Visitor 23 24 class Type; 21 25 22 26 class Constant { -
src/SynTree/DeclStmt.cc
rfc56cdbf r8135d4c 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // DeclStmt.cc -- 7 // DeclStmt.cc -- 8 8 // 9 9 // Author : Richard C. Bilson … … 14 14 // 15 15 16 #include "Statement.h" 17 #include "Declaration.h" 18 #include "Common/utility.h" 16 #include <cassert> // for assert 17 #include <list> // for list 18 #include <ostream> // for operator<<, ostream 19 20 #include "Common/utility.h" // for maybeClone 21 #include "Declaration.h" // for Declaration 22 #include "Statement.h" // for DeclStmt, Statement 23 #include "SynTree/Label.h" // for Label 19 24 20 25 DeclStmt::DeclStmt( std::list<Label> labels, Declaration *decl ) : Statement( labels ), decl( decl ) { -
src/SynTree/Declaration.cc
rfc56cdbf r8135d4c 14 14 // 15 15 16 #include <string> 17 #include <map> 16 #include <map> // for _Rb_tree_const_iterator, map<>::... 17 #include <ostream> // for ostream, operator<<, basic_ostre... 18 #include <string> // for string 19 #include <utility> // for pair 20 21 #include "Common/utility.h" // for maybeClone 18 22 #include "Declaration.h" 19 #include "Expression.h" 20 #include "Initializer.h" 21 #include "Type.h" 22 #include "Attribute.h" 23 #include "Common/utility.h" 23 #include "SynTree/BaseSyntaxNode.h" // for BaseSyntaxNode 24 #include "SynTree/Statement.h" // for AsmStmt 25 #include "SynTree/SynTree.h" // for UniqueId 26 #include "Type.h" // for Type, Type::StorageClasses 24 27 25 28 static UniqueId lastUniqueId = 0; -
src/SynTree/Declaration.h
rfc56cdbf r8135d4c 16 16 #pragma once 17 17 18 #include <string> 19 20 #include "BaseSyntaxNode.h" 21 #include "Mutator.h" 22 #include "Visitor.h" 23 #include "SynTree.h" 24 #include "Parser/LinkageSpec.h" 25 #include "Parser/ParseNode.h" 18 #include <cassert> // for assertf 19 #include <iosfwd> // for ostream 20 #include <list> // for list 21 #include <string> // for string, operator+, allocator, to_string 22 23 #include "BaseSyntaxNode.h" // for BaseSyntaxNode 24 #include "Mutator.h" // for Mutator 25 #include "Parser/LinkageSpec.h" // for Spec, Cforall 26 #include "Parser/ParseNode.h" // for DeclarationNode, DeclarationNode::Ag... 27 #include "SynTree.h" // for UniqueId 28 #include "SynTree/Type.h" // for Type, Type::StorageClasses, Type::Fu... 29 #include "Visitor.h" // for Visitor 30 31 class AsmStmt; 32 class Attribute; 33 class CompoundStmt; 34 class ConstantExpr; 35 class Expression; 36 class Initializer; 37 class TypeDecl; 26 38 27 39 class Declaration : public BaseSyntaxNode { -
src/SynTree/DeclarationWithType.cc
rfc56cdbf r8135d4c 14 14 // 15 15 16 #include "Declaration.h" 17 #include "Type.h" 18 #include "Attribute.h" 19 #include "Common/utility.h" 16 #include <list> // for list 17 #include <string> // for string 18 19 #include "Attribute.h" // for Attribute 20 #include "Common/utility.h" // for cloneAll, deleteAll, maybeClone 21 #include "Declaration.h" // for DeclarationWithType, Declaration 22 #include "Parser/LinkageSpec.h" // for Spec 23 #include "SynTree/Expression.h" // for ConstantExpr 24 #include "Type.h" // for Type, Type::FuncSpecifiers, Type::St... 20 25 21 26 DeclarationWithType::DeclarationWithType( const std::string &name, Type::StorageClasses scs, LinkageSpec::Spec linkage, const std::list< Attribute * > & attributes, Type::FuncSpecifiers fs ) -
src/SynTree/Expression.cc
rfc56cdbf r8135d4c 14 14 // 15 15 16 #include <iostream> 17 #include <cassert> 18 #include <list> 19 #include <algorithm> 20 21 #include <iterator> 22 23 #include "Declaration.h" 24 #include "Expression.h" 25 #include "Initializer.h" 26 #include "Statement.h" 27 #include "Type.h" 28 #include "TypeSubstitution.h" 29 #include "VarExprReplacer.h" 30 31 #include "Common/utility.h" 32 #include "Common/PassVisitor.h" 33 34 #include "InitTweak/InitTweak.h" 16 #include "SynTree/Expression.h" 17 18 #include <cassert> // for assert, assertf 19 #include <iostream> // for ostream, operator<<, basic_ostream 20 #include <list> // for list, _List_iterator, list<>::co... 21 22 #include "Common/utility.h" // for maybeClone, cloneAll, deleteAll 23 #include "Declaration.h" // for ObjectDecl, DeclarationWithType 24 #include "Expression.h" // for Expression, ImplicitCopyCtorExpr 25 #include "InitTweak/InitTweak.h" // for getCallArg, getPointerBase 26 #include "Initializer.h" // for Designation, Initializer 27 #include "Statement.h" // for CompoundStmt, ExprStmt, Statement 28 #include "SynTree/BaseSyntaxNode.h" // for BaseSyntaxNode 29 #include "SynTree/Constant.h" // for Constant 30 #include "Type.h" // for Type, BasicType, Type::Qualifiers 31 #include "TypeSubstitution.h" // for TypeSubstitution 35 32 36 33 #include "GenPoly/Lvalue.h" -
src/SynTree/Expression.h
rfc56cdbf r8135d4c 13 13 // Update Count : 44 14 14 // 15 16 15 #pragma once 17 16 18 #include <map> 19 #include <memory> 20 21 #include "BaseSyntaxNode.h" 22 #include "Constant.h" 23 #include "Mutator.h" 24 #include "SynTree.h" 25 #include "Visitor.h" 26 #include "Common/UniqueName.h" 17 #include <iosfwd> // for ostream 18 #include <list> // for list, list<>::iterator 19 #include <map> // for map, map<>::value_compare 20 #include <memory> // for allocator, unique_ptr 21 #include <string> // for string 22 23 #include "BaseSyntaxNode.h" // for BaseSyntaxNode 24 #include "Constant.h" // for Constant 25 #include "Initializer.h" // for Designation (ptr only), Initializer 26 #include "Mutator.h" // for Mutator 27 #include "SynTree.h" // for UniqueId 28 #include "Visitor.h" // for Visitor 29 27 30 28 31 /// Expression is the root type for all expressions … … 57 60 58 61 struct ParamEntry; 62 59 63 typedef std::map< UniqueId, ParamEntry > InferredParams; 60 64 -
src/SynTree/FunctionDecl.cc
rfc56cdbf r8135d4c 14 14 // 15 15 16 #include <cassert> 16 #include <cassert> // for assert 17 #include <list> // for list 18 #include <ostream> // for operator<<, ostream, basic_ostream 19 #include <string> // for operator<<, string, char_traits, ope... 17 20 18 #include " Declaration.h"19 #include " Statement.h"20 #include " Type.h"21 #include " Attribute.h"22 #include " Common/utility.h"23 #include " InitTweak/InitTweak.h"24 #include " CodeGen/FixMain.h"21 #include "Attribute.h" // for Attribute 22 #include "CodeGen/FixMain.h" // for FixMain 23 #include "Common/utility.h" // for maybeClone, printAll 24 #include "Declaration.h" // for FunctionDecl, FunctionDecl::Parent 25 #include "Parser/LinkageSpec.h" // for Spec, linkageName, Cforall 26 #include "Statement.h" // for CompoundStmt 27 #include "Type.h" // for Type, FunctionType, Type::FuncSpecif... 25 28 26 29 extern bool translation_unit_nomain; -
src/SynTree/FunctionType.cc
rfc56cdbf r8135d4c 14 14 // 15 15 16 #include <algorithm> 16 #include <list> // for list 17 #include <ostream> // for operator<<, basic_ostream, ostream, endl 18 #include <string> // for operator<<, char_traits, string 17 19 18 #include "Type.h" 19 #include "Declaration.h" 20 #include "Common/utility.h" 21 #include "Tuples/Tuples.h" 20 #include "Common/utility.h" // for cloneAll, deleteAll, printAll 21 #include "Declaration.h" // for DeclarationWithType 22 #include "Tuples/Tuples.h" // for isTtype 23 #include "Type.h" // for FunctionType, Type, Type::Qualifiers 24 25 class Attribute; 22 26 23 27 FunctionType::FunctionType( const Type::Qualifiers &tq, bool isVarArgs, const std::list< Attribute * > & attributes ) : Type( tq, attributes ), isVarArgs( isVarArgs ) { -
src/SynTree/Initializer.cc
rfc56cdbf r8135d4c 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Andrew Beach12 // Last Modified On : Thr Aug 3 11:33:00 201613 // Update Count : 2911 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Aug 21 09:53:15 2017 13 // Update Count : 30 14 14 // 15 15 16 16 #include "Initializer.h" 17 #include "Expression.h" 18 #include "Statement.h" 19 #include "Common/utility.h" 17 18 #include <cassert> // for assertf 19 #include <ostream> // for ostream, operator<<, basic_ostream 20 #include <string> // for operator<<, string, char_traits 21 22 #include "Common/utility.h" // for maybeClone, cloneAll, deleteAll 23 #include "Expression.h" // for Expression 24 #include "Statement.h" // for Statement 25 #include "SynTree/BaseSyntaxNode.h" // for BaseSyntaxNode 20 26 21 27 Designation::Designation( const std::list< Expression * > & designators ) : designators( designators ) {} … … 74 80 } 75 81 } 76 assertf( initializers.size() == designations.size(), "Created ListInit with mismatching initializers (% lu) and designations (%lu)", initializers.size(), designations.size() );82 assertf( initializers.size() == designations.size(), "Created ListInit with mismatching initializers (%zd) and designations (%zd)", initializers.size(), designations.size() ); 77 83 } 78 84 -
src/SynTree/Initializer.h
rfc56cdbf r8135d4c 16 16 #pragma once 17 17 18 #include <cassert> 18 #include <iosfwd> // for ostream 19 #include <list> // for list, list<>::const_iterator, list<>::it... 19 20 20 #include "BaseSyntaxNode.h" 21 #include "Mutator.h" 22 #include "SynTree.h" 23 #include "Type.h" 24 #include "Visitor.h" 21 #include "BaseSyntaxNode.h" // for BaseSyntaxNode 22 #include "Mutator.h" // for Mutator 23 #include "Visitor.h" // for Visitor 24 25 class Expression; 26 class Statement; 25 27 26 28 // Designation: list of designator (NameExpr, VariableExpr, and ConstantExpr) expressions that specify an object being initialized. -
src/SynTree/Mutator.cc
rfc56cdbf r8135d4c 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Andrew Beach12 // Last Modified On : Mon Jul 24 16:32:00201713 // Update Count : 2 511 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Aug 17 15:39:37 2017 13 // Update Count : 27 14 14 // 15 15 16 #include <cassert> 16 #include <cassert> // for assert 17 #include <list> // for list 18 19 #include "Declaration.h" // for ObjectDecl, Declaration, DeclarationWi... 20 #include "Expression.h" // for Expression, ConstantExpr, ConditionalExpr 21 #include "Initializer.h" // for ConstructorInit, Initializer, Designation 17 22 #include "Mutator.h" 18 #include "Initializer.h" 19 #include "Statement.h" 20 #include "Type.h" 21 #include "Declaration.h" 22 #include "Expression.h" 23 #include "Constant.h" 24 #include "Common/utility.h" 25 #include "TypeSubstitution.h" 23 #include "Statement.h" // for Statement, CatchStmt, AsmStmt, ForStmt 24 #include "Type.h" // for Type, Type::ForallList, AttrType, Arra... 25 #include "TypeSubstitution.h" // for TypeSubstitution 26 27 class Constant; 28 class Subrange; 26 29 27 30 Mutator::Mutator() {} … … 111 114 112 115 Statement *Mutator::mutate( IfStmt *ifStmt ) { 116 mutateAll( ifStmt->get_initialization(), *this ); 113 117 ifStmt->set_condition( maybeMutate( ifStmt->get_condition(), *this ) ); 114 118 ifStmt->set_thenPart( maybeMutate( ifStmt->get_thenPart(), *this ) ); -
src/SynTree/Mutator.h
rfc56cdbf r8135d4c 13 13 // Update Count : 16 14 14 // 15 # include <cassert>15 #pragma once 16 16 17 #include "SynTree.h" 18 #include "Common/SemanticError.h" 17 #include <cassert> // for assert 19 18 20 #pragma once 19 #include "Common/SemanticError.h" // for SemanticError 20 #include "SynTree/SynTree.h" // for AST nodes 21 21 22 22 class Mutator { -
src/SynTree/NamedTypeDecl.cc
rfc56cdbf r8135d4c 14 14 // 15 15 16 #include "Declaration.h" 17 #include "Type.h" 18 #include "Common/utility.h" 16 #include <list> // for list 17 #include <ostream> // for operator<<, ostream, basic_ostream 18 #include <string> // for operator<<, string, char_traits, ope... 19 20 #include "Common/utility.h" // for printAll, cloneAll, deleteAll, maybe... 21 #include "Declaration.h" // for NamedTypeDecl, DeclarationWithType 22 #include "Parser/LinkageSpec.h" // for Spec, Cforall, linkageName 23 #include "Type.h" // for Type, Type::StorageClasses 19 24 20 25 NamedTypeDecl::NamedTypeDecl( const std::string &name, Type::StorageClasses scs, Type *base ) -
src/SynTree/ObjectDecl.cc
rfc56cdbf r8135d4c 14 14 // 15 15 16 #include "Declaration.h" 17 #include "Type.h" 18 #include "Initializer.h" 19 #include "Expression.h" 20 #include "Attribute.h" 21 #include "Common/utility.h" 22 #include "Statement.h" 16 #include <list> // for list 17 #include <ostream> // for operator<<, ostream, basic_ostream 18 #include <string> // for operator<<, string, char_traits, ope... 19 20 #include "Attribute.h" // for Attribute 21 #include "Common/utility.h" // for maybeClone, printAll 22 #include "Declaration.h" // for ObjectDecl, ObjectDecl::Parent 23 #include "Expression.h" // for Expression 24 #include "Initializer.h" // for Initializer 25 #include "Parser/LinkageSpec.h" // for Spec, linkageName, Cforall 26 #include "Type.h" // for Type, Type::StorageClasses, Type::Fu... 23 27 24 28 ObjectDecl::ObjectDecl( const std::string &name, Type::StorageClasses scs, LinkageSpec::Spec linkage, Expression *bitfieldWidth, Type *type, Initializer *init, const std::list< Attribute * > attributes, Type::FuncSpecifiers fs ) -
src/SynTree/PointerType.cc
rfc56cdbf r8135d4c 14 14 // 15 15 16 #include "Type.h" 17 #include "Expression.h" 18 #include "Common/utility.h" 16 #include <list> // for list 17 #include <ostream> // for operator<<, ostream 18 19 #include "Common/utility.h" // for maybeClone 20 #include "Expression.h" // for Expression 21 #include "Type.h" // for PointerType, Type, Type::Qualifiers 22 23 class Attribute; 19 24 20 25 PointerType::PointerType( const Type::Qualifiers &tq, Type *base, const std::list< Attribute * > & attributes ) -
src/SynTree/ReferenceToType.cc
rfc56cdbf r8135d4c 14 14 // 15 15 16 #include <string> 17 #include <cassert> 16 #include <stddef.h> // for NULL 17 #include <cassert> // for assert 18 #include <list> // for list, _List_const_iterator, list<>::cons... 19 #include <ostream> // for operator<<, basic_ostream, ostream, endl 20 #include <string> // for string, operator<<, char_traits, operator== 18 21 19 #include "Type.h" 20 #include "Declaration.h" 21 #include "Expression.h" 22 #include "TypeSubstitution.h" 23 #include "Common/utility.h" 22 #include "Common/utility.h" // for printAll, cloneAll, deleteAll 23 #include "Declaration.h" // for StructDecl, UnionDecl, EnumDecl, Declara... 24 #include "Expression.h" // for Expression 25 #include "Type.h" // for TypeInstType, StructInstType, UnionInstType 26 27 class Attribute; 24 28 25 29 ReferenceToType::ReferenceToType( const Type::Qualifiers &tq, const std::string &name, const std::list< Attribute * > & attributes ) : Type( tq, attributes ), name( name ), hoistType( false ) { -
src/SynTree/Statement.cc
rfc56cdbf r8135d4c 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Andrew Beach12 // Last Modified On : Mon Jun 12 10:37:00 201713 // Update Count : 6 411 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Aug 17 16:17:20 2017 13 // Update Count : 67 14 14 // 15 15 16 #include <functional> 17 #include <algorithm> 18 #include <iostream> 19 #include <list> 20 #include <cassert> 21 22 #include "Statement.h" 23 #include "Expression.h" 24 #include "Declaration.h" 25 #include "Common/SemanticError.h" 16 #include "SynTree/Statement.h" 17 18 #include <stddef.h> // for NULL 19 #include <cassert> // for assert, assertf 20 #include <iostream> // for operator<<, basic_ostream, endl 21 #include <list> // for list, list<>::const_iterator, _Lis... 22 #include <string> // for operator<<, string, char_traits 23 24 #include "Common/SemanticError.h" // for SemanticError 25 #include "Common/utility.h" // for maybeClone, cloneAll, deleteAll 26 #include "Declaration.h" // for Declaration 27 #include "Expression.h" // for Expression, ConstantExpr 28 #include "Statement.h" // for Statement, ForStmt, AsmStmt, Catch... 29 #include "SynTree/Label.h" // for Label, operator<< 26 30 27 31 using std::string; 28 32 using std::endl; 29 33 30 Statement::Statement( std::list<Label> _labels ) : labels( _labels ) {}34 Statement::Statement( std::list<Label> labels ) : labels( labels ) {} 31 35 32 36 void Statement::print( __attribute__((unused)) std::ostream &, __attribute__((unused)) int indent ) const {} … … 34 38 Statement::~Statement() {} 35 39 36 ExprStmt::ExprStmt( std::list<Label> _labels, Expression *_expr ) : Statement( _labels ), expr( _expr ) {}40 ExprStmt::ExprStmt( std::list<Label> labels, Expression *expr ) : Statement( labels ), expr( expr ) {} 37 41 38 42 ExprStmt::ExprStmt( const ExprStmt &other ) : Statement( other ), expr( maybeClone( other.expr ) ) {} … … 84 88 const char *BranchStmt::brType[] = { "Goto", "Break", "Continue" }; 85 89 86 BranchStmt::BranchStmt( std::list<Label> labels, Label _target, Type _type ) throw ( SemanticError ) :87 Statement( labels ), originalTarget( _target ), target( _target ), computedTarget( NULL ), type( _type ) {90 BranchStmt::BranchStmt( std::list<Label> labels, Label target, Type type ) throw ( SemanticError ) : 91 Statement( labels ), originalTarget( target ), target( target ), computedTarget( NULL ), type( type ) { 88 92 //actually this is a syntactic error signaled by the parser 89 93 if ( type == BranchStmt::Goto && target.empty() ) … … 91 95 } 92 96 93 BranchStmt::BranchStmt( std::list<Label> labels, Expression * _computedTarget, Type _type ) throw ( SemanticError ) :94 Statement( labels ), computedTarget( _computedTarget ), type( _type ) {97 BranchStmt::BranchStmt( std::list<Label> labels, Expression *computedTarget, Type type ) throw ( SemanticError ) : 98 Statement( labels ), computedTarget( computedTarget ), type( type ) { 95 99 if ( type != BranchStmt::Goto || computedTarget == 0 ) 96 100 throw SemanticError("Computed target not valid in branch statement"); … … 101 105 } 102 106 103 ReturnStmt::ReturnStmt( std::list<Label> labels, Expression * _expr ) : Statement( labels ), expr( _expr ) {}107 ReturnStmt::ReturnStmt( std::list<Label> labels, Expression *expr ) : Statement( labels ), expr( expr ) {} 104 108 105 109 ReturnStmt::ReturnStmt( const ReturnStmt & other ) : Statement( other ), expr( maybeClone( other.expr ) ) {} … … 118 122 } 119 123 120 IfStmt::IfStmt( std::list<Label> _labels, Expression *_condition, Statement *_thenPart, Statement *_elsePart):121 Statement( _labels ), condition( _condition ), thenPart( _thenPart ), elsePart( _elsePart) {}124 IfStmt::IfStmt( std::list<Label> labels, Expression *condition, Statement *thenPart, Statement *elsePart, std::list<Statement *> initialization ): 125 Statement( labels ), condition( condition ), thenPart( thenPart ), elsePart( elsePart ), initialization( initialization ) {} 122 126 123 127 IfStmt::IfStmt( const IfStmt & other ) : 124 Statement( other ), condition( maybeClone( other.condition ) ), thenPart( maybeClone( other.thenPart ) ), elsePart( maybeClone( other.elsePart ) ) {} 128 Statement( other ), condition( maybeClone( other.condition ) ), thenPart( maybeClone( other.thenPart ) ), elsePart( maybeClone( other.elsePart ) ) { 129 cloneAll( other.initialization, initialization ); 130 } 125 131 126 132 IfStmt::~IfStmt() { 133 deleteAll( initialization ); 127 134 delete condition; 128 135 delete thenPart; … … 135 142 condition->print( os, indent + 4 ); 136 143 144 if ( !initialization.empty() ) { 145 os << string( indent + 2, ' ' ) << "initialization: \n"; 146 for ( std::list<Statement *>::const_iterator it = initialization.begin(); it != initialization.end(); ++it ) { 147 os << string( indent + 4, ' ' ); 148 (*it)->print( os, indent + 4 ); 149 } 150 os << endl; 151 } 152 137 153 os << string( indent+2, ' ' ) << "... then: " << endl; 138 154 … … 147 163 } 148 164 149 SwitchStmt::SwitchStmt( std::list<Label> _labels, Expression * _condition, std::list<Statement *> &_statements ):150 Statement( _labels ), condition( _condition ), statements( _statements ) {165 SwitchStmt::SwitchStmt( std::list<Label> labels, Expression * condition, std::list<Statement *> &statements ): 166 Statement( labels ), condition( condition ), statements( statements ) { 151 167 } 152 168 … … 175 191 } 176 192 177 CaseStmt::CaseStmt( std::list<Label> _labels, Expression *_condition, std::list<Statement *> &_statements, bool deflt ) throw ( SemanticError ) :178 Statement( _labels ), condition( _condition ), stmts( _statements ), _isDefault( deflt ) {193 CaseStmt::CaseStmt( std::list<Label> labels, Expression *condition, std::list<Statement *> &statements, bool deflt ) throw ( SemanticError ) : 194 Statement( labels ), condition( condition ), stmts( statements ), _isDefault( deflt ) { 179 195 if ( isDefault() && condition != 0 ) 180 196 throw SemanticError("default with conditions"); … … 212 228 } 213 229 214 WhileStmt::WhileStmt( std::list<Label> labels, Expression *condition _, Statement *body_, bool isDoWhile_):215 Statement( labels ), condition( condition _), body( body_), isDoWhile( isDoWhile_) {230 WhileStmt::WhileStmt( std::list<Label> labels, Expression *condition, Statement *body, bool isDoWhile ): 231 Statement( labels ), condition( condition), body( body), isDoWhile( isDoWhile) { 216 232 } 217 233 … … 234 250 } 235 251 236 ForStmt::ForStmt( std::list<Label> labels, std::list<Statement *> initialization _, Expression *condition_, Expression *increment_, Statement *body_):237 Statement( labels ), initialization( initialization _ ), condition( condition_ ), increment( increment_ ), body( body_) {252 ForStmt::ForStmt( std::list<Label> labels, std::list<Statement *> initialization, Expression *condition, Expression *increment, Statement *body ): 253 Statement( labels ), initialization( initialization ), condition( condition ), increment( increment ), body( body ) { 238 254 } 239 255 … … 313 329 } 314 330 315 TryStmt::TryStmt( std::list<Label> labels, CompoundStmt *tryBlock, std::list<CatchStmt *> & _handlers, FinallyStmt *_finallyBlock ) :316 Statement( labels ), block( tryBlock ), handlers( _handlers ), finallyBlock( _finallyBlock ) {331 TryStmt::TryStmt( std::list<Label> labels, CompoundStmt *tryBlock, std::list<CatchStmt *> &handlers, FinallyStmt *finallyBlock ) : 332 Statement( labels ), block( tryBlock ), handlers( handlers ), finallyBlock( finallyBlock ) { 317 333 } 318 334 … … 329 345 void TryStmt::print( std::ostream &os, int indent ) const { 330 346 os << "Try Statement" << endl; 331 os << string( indent + 2, ' ' ) << "with block: " << endl; 347 os << string( indent + 2, ' ' ) << "with block:" << endl; 348 os << string( indent + 4, ' ' ); 332 349 block->print( os, indent + 4 ); 333 350 334 351 // handlers 335 os << string( indent + 2, ' ' ) << "and handlers: " << endl; 336 for ( std::list<CatchStmt *>::const_iterator i = handlers.begin(); i != handlers.end(); i++) 352 os << string( indent + 2, ' ' ) << "and handlers:" << endl; 353 for ( std::list<CatchStmt *>::const_iterator i = handlers.begin(); i != handlers.end(); i++) { 354 os << string( indent + 4, ' ' ); 337 355 (*i )->print( os, indent + 4 ); 356 } 338 357 339 358 // finally block 340 359 if ( finallyBlock != 0 ) { 341 os << string( indent + 2, ' ' ) << " Finally block:" << endl;360 os << string( indent + 2, ' ' ) << "and finally:" << endl; 342 361 finallyBlock->print( os, indent + 4 ); 343 362 } // if 344 363 } 345 364 346 CatchStmt::CatchStmt( std::list<Label> labels, Kind _kind, Declaration *_decl, Expression *_cond, Statement *_body ) :347 Statement( labels ), kind ( _kind ), decl ( _decl ), cond ( _cond ), body( _body ) {365 CatchStmt::CatchStmt( std::list<Label> labels, Kind kind, Declaration *decl, Expression *cond, Statement *body ) : 366 Statement( labels ), kind ( kind ), decl ( decl ), cond ( cond ), body( body ) { 348 367 } 349 368 … … 360 379 os << "Catch " << ((Terminate == kind) ? "Terminate" : "Resume") << " Statement" << endl; 361 380 362 os << string( indent , ' ' ) << "... catching" << endl;381 os << string( indent + 2, ' ' ) << "... catching: "; 363 382 if ( decl ) { 364 383 decl->printShort( os, indent + 4 ); … … 367 386 else 368 387 os << string( indent + 4 , ' ' ) << ">>> Error: this catch clause must have a declaration <<<" << endl; 369 } 370 371 372 FinallyStmt::FinallyStmt( std::list<Label> labels, CompoundStmt *_block ) : Statement( labels ), block( _block ) { 388 389 if ( cond ) { 390 os << string( indent + 2, ' ' ) << "with conditional:" << endl; 391 os << string( indent + 4, ' ' ); 392 cond->print( os, indent + 4 ); 393 } 394 else 395 os << string( indent + 2, ' ' ) << "with no conditional" << endl; 396 397 os << string( indent + 2, ' ' ) << "with block:" << endl; 398 os << string( indent + 4, ' ' ); 399 body->print( os, indent + 4 ); 400 } 401 402 403 FinallyStmt::FinallyStmt( std::list<Label> labels, CompoundStmt *block ) : Statement( labels ), block( block ) { 373 404 assert( labels.empty() ); // finally statement cannot be labeled 374 405 } … … 383 414 void FinallyStmt::print( std::ostream &os, int indent ) const { 384 415 os << "Finally Statement" << endl; 385 os << string( indent + 2, ' ' ) << "with block: " << endl; 416 os << string( indent + 2, ' ' ) << "with block:" << endl; 417 os << string( indent + 4, ' ' ); 386 418 block->print( os, indent + 4 ); 387 419 } -
src/SynTree/Statement.h
rfc56cdbf r8135d4c 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Andrew Beach12 // Last Modified On : Th r Aug 3 14:08:00201713 // Update Count : 6911 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Aug 17 15:37:53 2017 13 // Update Count : 72 14 14 // 15 15 16 16 #pragma once 17 17 18 #include "BaseSyntaxNode.h" 19 #include "Label.h" 20 #include "Mutator.h" 21 #include "SynTree.h" 22 #include "Type.h" 23 #include "Visitor.h" 24 #include "Common/SemanticError.h" 18 #include <iosfwd> // for ostream 19 #include <list> // for list 20 #include <memory> // for allocator 21 22 #include "BaseSyntaxNode.h" // for BaseSyntaxNode 23 #include "Common/SemanticError.h" // for SemanticError 24 #include "Label.h" // for Label 25 #include "Mutator.h" // for Mutator 26 #include "Visitor.h" // for Visitor 27 28 class CatchStmt; 29 class ConstantExpr; 30 class Declaration; 31 class Expression; 32 class FinallyStmt; 25 33 26 34 class Statement : public BaseSyntaxNode { … … 122 130 Statement *thenPart; 123 131 Statement *elsePart; 124 125 IfStmt( std::list<Label> labels, Expression *condition, Statement *thenPart, Statement *elsePart ); 132 std::list<Statement *> initialization; 133 134 IfStmt( std::list<Label> labels, Expression *condition, Statement *thenPart, Statement *elsePart, 135 std::list<Statement *> initialization = std::list<Statement *>() ); 126 136 IfStmt( const IfStmt &other ); 127 137 virtual ~IfStmt(); 128 138 139 std::list<Statement *> &get_initialization() { return initialization; } 129 140 Expression *get_condition() { return condition; } 130 141 void set_condition( Expression *newValue ) { condition = newValue; } … … 228 239 229 240 std::list<Statement *> &get_initialization() { return initialization; } 230 void set_initialization( std::list<Statement *> newValue ) { initialization = newValue; }231 241 Expression *get_condition() { return condition; } 232 242 void set_condition( Expression *newValue ) { condition = newValue; } -
src/SynTree/TupleExpr.cc
rfc56cdbf r8135d4c 14 14 // 15 15 16 #include "Expression.h" 17 #include "Common/utility.h" 18 #include "Type.h" 19 #include "Declaration.h" 20 #include "Tuples/Tuples.h" 21 #include "VarExprReplacer.h" 16 #include <cassert> // for assert, safe_dynamic_cast, assertf 17 #include <iterator> // for next 18 #include <list> // for list, _List_iterator 19 #include <ostream> // for ostream, operator<<, basic_ostream, endl 20 #include <string> // for operator<<, string, char_traits 21 22 #include "Common/utility.h" // for cloneAll, deleteAll, printAll, toString 23 #include "Declaration.h" // for ObjectDecl 24 #include "Expression.h" // for Expression, TupleExpr, TupleIndexExpr 25 #include "SynTree/Label.h" // for Label, noLabels 26 #include "SynTree/Statement.h" // for CompoundStmt, DeclStmt, ExprStmt, Sta... 27 #include "Tuples/Tuples.h" // for makeTupleType 28 #include "Type.h" // for TupleType, Type 22 29 23 30 UntypedTupleExpr::UntypedTupleExpr( const std::list< Expression * > & exprs, Expression *_aname ) : Expression( _aname ), exprs( exprs ) { -
src/SynTree/TupleType.cc
rfc56cdbf r8135d4c 14 14 // 15 15 16 #include "Declaration.h" 17 #include "Initializer.h" 18 #include "Type.h" 19 #include "Common/utility.h" 20 #include "Parser/LinkageSpec.h" 16 #include <list> // for list 17 #include <ostream> // for operator<<, ostream, basic_ostream 18 19 #include "Common/utility.h" // for cloneAll, deleteAll, printAll 20 #include "Declaration.h" // for Declaration, ObjectDecl 21 #include "Initializer.h" // for ListInit 22 #include "Parser/LinkageSpec.h" // for Cforall 23 #include "Type.h" // for TupleType, Type, Type::Qualifiers 24 25 class Attribute; 21 26 22 27 TupleType::TupleType( const Type::Qualifiers &tq, const std::list< Type * > & types, const std::list< Attribute * > & attributes ) : Type( tq, attributes ), types( types ) { -
src/SynTree/Type.cc
rfc56cdbf r8135d4c 13 13 // Update Count : 29 14 14 // 15 #include "Type.h" 15 16 16 #include "SynTree.h" 17 #include "Visitor.h" 18 #include "Type.h" 19 #include "Declaration.h" 20 #include "Attribute.h" 21 #include "InitTweak/InitTweak.h" 22 #include "Common/utility.h" 17 #include "Attribute.h" // for Attribute 18 #include "Common/utility.h" // for cloneAll, deleteAll, printAll 19 #include "InitTweak/InitTweak.h" // for getPointerBase 20 #include "SynTree/BaseSyntaxNode.h" // for BaseSyntaxNode 21 #include "SynTree/Declaration.h" // for TypeDecl 23 22 24 23 using namespace std; -
src/SynTree/Type.h
rfc56cdbf r8135d4c 16 16 #pragma once 17 17 18 #include "BaseSyntaxNode.h" 19 #include "Mutator.h" 20 #include "SynTree.h" 21 #include "Visitor.h" 22 #include <strings.h> // ffs 18 #include <strings.h> // for ffs 19 #include <cassert> // for assert, assertf 20 #include <list> // for list, _List_iterator 21 #include <ostream> // for ostream, operator<<, basic_ostream 22 #include <string> // for string 23 24 #include "BaseSyntaxNode.h" // for BaseSyntaxNode 25 #include "Common/utility.h" // for operator+ 26 #include "Mutator.h" // for Mutator 27 #include "SynTree.h" // for AST nodes 28 #include "Visitor.h" // for Visitor 23 29 24 30 class Type : public BaseSyntaxNode { -
src/SynTree/TypeDecl.cc
rfc56cdbf r8135d4c 14 14 // 15 15 16 #include "Declaration.h" 17 #include "Type.h" 18 #include "Common/utility.h" 16 #include <ostream> // for ostream, operator<<, basic_ostream, basi... 17 #include <string> // for string, char_traits, operator+, operator<< 18 19 #include "Common/utility.h" // for maybeClone 20 #include "Declaration.h" // for TypeDecl, TypeDecl::Data, TypeDecl::Kind... 21 #include "Type.h" // for Type, Type::StorageClasses 19 22 20 23 TypeDecl::TypeDecl( const std::string &name, Type::StorageClasses scs, Type *type, Kind kind, Type * init ) : Parent( name, scs, type ), init( init ), sized( kind == Any || kind == Ttype ), kind( kind ) { -
src/SynTree/TypeExpr.cc
rfc56cdbf r8135d4c 14 14 // 15 15 16 #include "Expression.h" 17 #include "Type.h" 18 #include "Common/utility.h" 16 #include <iosfwd> // for ostream 17 18 #include "Common/utility.h" // for maybeClone 19 #include "Expression.h" // for TypeExpr, Expression 20 #include "Type.h" // for Type 19 21 20 22 TypeExpr::TypeExpr( Type *type ) : type( type ) { -
src/SynTree/TypeSubstitution.cc
rfc56cdbf r8135d4c 14 14 // 15 15 16 #include "Type.h" 16 #include <ostream> // for ostream, basic_ostream, operator<<, endl 17 18 #include "Type.h" // for TypeInstType, Type, StructInstType, UnionInstType 17 19 #include "TypeSubstitution.h" 18 20 -
src/SynTree/TypeSubstitution.h
rfc56cdbf r8135d4c 16 16 #pragma once 17 17 18 #include <map> 19 #include <set> 20 #include <cassert> 18 #include <cassert> // for assert 19 #include <iosfwd> // for ostream 20 #include <list> // for list<>::iterator, _List_iterator 21 #include <map> // for _Rb_tree_iterator, map, map<>::val... 22 #include <set> // for set 23 #include <string> // for string, operator!= 24 #include <utility> // for pair 21 25 22 #include "SynTree/Mutator.h" 23 #include "SynTree/Declaration.h" 24 #include "SynTree/Expression.h" 26 #include "Common/SemanticError.h" // for SemanticError 27 #include "SynTree/Declaration.h" // for TypeDecl, Declaration (ptr only) 28 #include "SynTree/Expression.h" // for Expression (ptr only), NameExpr (p... 29 #include "SynTree/Mutator.h" // for Mutator 30 #include "SynTree/Type.h" // for Type, ArrayType (ptr only), BasicT... 25 31 26 32 class TypeSubstitution : public Mutator { -
src/SynTree/TypeofType.cc
rfc56cdbf r8135d4c 14 14 // 15 15 16 #include "Type.h" 17 #include "Expression.h" 18 #include "Common/utility.h" 16 #include <list> // for list 17 #include <ostream> // for operator<<, ostream 18 19 #include "Common/utility.h" // for maybeClone 20 #include "Expression.h" // for Expression 21 #include "Type.h" // for TypeofType, Type, Type::Qualifiers 22 23 class Attribute; 19 24 20 25 TypeofType::TypeofType( const Type::Qualifiers &tq, Expression *expr, const std::list< Attribute * > & attributes ) : Type( tq, attributes ), expr( expr ) { -
src/SynTree/VarArgsType.cc
rfc56cdbf r8135d4c 14 14 // 15 15 16 #include "Type.h" 16 #include <list> // for list 17 #include <ostream> // for operator<<, ostream 18 19 #include "Type.h" // for Type, VarArgsType, Type::Qualifiers 20 21 class Attribute; 17 22 18 23 VarArgsType::VarArgsType() : Type( Type::Qualifiers(), std::list< Attribute * >() ) {} -
src/SynTree/VarExprReplacer.cc
rfc56cdbf r8135d4c 14 14 // 15 15 16 #include "Declaration.h" 17 #include "Expression.h" 16 #include <iostream> // for operator<<, basic_ostream, ostream, basic_o... 17 18 #include "Declaration.h" // for operator<<, DeclarationWithType 19 #include "Expression.h" // for VariableExpr 18 20 #include "VarExprReplacer.h" 19 21 -
src/SynTree/VarExprReplacer.h
rfc56cdbf r8135d4c 16 16 #pragma once 17 17 18 #include <map> 18 #include <map> // for map, map<>::value_compare 19 19 20 #include "SynTree/SynTree.h" 20 #include "SynTree/Visitor.h" // for Visitor 21 22 class DeclarationWithType; 23 class VariableExpr; 21 24 22 25 /// Visitor that replaces the declarations that VariableExprs refer to, according to the supplied mapping -
src/SynTree/Visitor.cc
rfc56cdbf r8135d4c 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Andrew Beach12 // Last Modified On : Mon Jul 24 16:30:00201713 // Update Count : 2 711 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Aug 17 15:39:38 2017 13 // Update Count : 29 14 14 // 15 15 16 #include <cassert> 16 #include <cassert> // for assert 17 #include <list> // for list 18 19 #include "Constant.h" // for Constant 20 #include "Declaration.h" // for DeclarationWithType, ObjectDecl, Declaration 21 #include "Expression.h" // for Expression, ConstantExpr, ImplicitCopyCtorExpr 22 #include "Initializer.h" // for Initializer, Designation, ConstructorInit 23 #include "Statement.h" // for Statement, CatchStmt, AsmStmt, CompoundStmt 24 #include "Type.h" // for Type, Type::ForallList, AttrType, FunctionType 17 25 #include "Visitor.h" 18 #include "Initializer.h" 19 #include "Statement.h" 20 #include "Type.h" 21 #include "Declaration.h" 22 #include "Expression.h" 23 #include "Constant.h" 26 27 class Subrange; 24 28 25 29 Visitor::Visitor() {} … … 95 99 96 100 void Visitor::visit( IfStmt *ifStmt ) { 101 acceptAll( ifStmt->get_initialization(), *this ); 97 102 maybeAccept( ifStmt->get_condition(), *this ); 98 103 maybeAccept( ifStmt->get_thenPart(), *this ); -
src/SynTree/Visitor.h
rfc56cdbf r8135d4c 16 16 #pragma once 17 17 18 #include "SynTree.h" 19 #include "Common/SemanticError.h" 20 #include "Common/CompilerError.h" 18 #include "Common/SemanticError.h" // for SemanticError 19 #include "SynTree.h" // for AST nodes 21 20 22 21 class Visitor { -
src/SynTree/VoidType.cc
rfc56cdbf r8135d4c 14 14 // 15 15 16 #include "Type.h" 16 #include <list> // for list 17 #include <ostream> // for operator<<, ostream 18 19 #include "Type.h" // for VoidType, Type, Type::Qualifiers 20 21 class Attribute; 17 22 18 23 VoidType::VoidType( const Type::Qualifiers &tq, const std::list< Attribute * > & attributes ) : Type( tq, attributes ) { -
src/SynTree/ZeroOneType.cc
rfc56cdbf r8135d4c 14 14 // 15 15 16 #include "Type.h" 16 #include <list> // for list 17 #include <ostream> // for operator<<, ostream 18 19 #include "Type.h" // for Type, Type::Qualifiers, OneType, ZeroType 20 21 class Attribute; 17 22 18 23 ZeroType::ZeroType() : Type( Type::Qualifiers(), std::list< Attribute * >() ) {}
Note:
See TracChangeset
for help on using the changeset viewer.