Index: src/SynTree/Declaration.cc
===================================================================
--- src/SynTree/Declaration.cc	(revision c0aa3360803b4a312708b494a8067a91f03e9e8f)
+++ src/SynTree/Declaration.cc	(revision 6ef2d812b3d79020b26eb8dac1a9ae5249363236)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Aug 18 23:49:57 2016
-// Update Count     : 13
+// Last Modified On : Thu Feb  9 14:28:05 2017
+// Update Count     : 16
 //
 
@@ -66,4 +66,23 @@
 
 
+AsmDecl::AsmDecl( AsmStmt *stmt ) : Declaration( "", DeclarationNode::NoStorageClass, LinkageSpec::C ), stmt( stmt ) {
+}
+
+AsmDecl::AsmDecl( const AsmDecl &other ) : Declaration( other ), stmt( maybeClone( other.stmt ) ) {
+}
+
+AsmDecl::~AsmDecl() {
+	delete stmt;
+}
+
+void AsmDecl::print( std::ostream &os, int indent ) const {
+	stmt->print( os, indent );
+}
+
+void AsmDecl::printShort( std::ostream &os, int indent ) const {
+	stmt->print( os, indent );
+}
+
+
 // Local Variables: //
 // tab-width: 4 //
Index: src/SynTree/Declaration.h
===================================================================
--- src/SynTree/Declaration.h	(revision c0aa3360803b4a312708b494a8067a91f03e9e8f)
+++ src/SynTree/Declaration.h	(revision 6ef2d812b3d79020b26eb8dac1a9ae5249363236)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Jan 20 15:07:29 2017
-// Update Count     : 53
+// Last Modified On : Thu Feb  9 14:27:08 2017
+// Update Count     : 56
 //
 
@@ -304,4 +304,22 @@
 };
 
+class AsmDecl : public Declaration {
+  public:
+	AsmDecl( AsmStmt *stmt );
+	AsmDecl( const AsmDecl &other );
+	virtual ~AsmDecl();
+
+	AsmStmt *get_stmt() { return stmt; }
+	void set_stmt( AsmStmt *newValue ) { stmt = newValue; }
+
+	virtual AsmDecl *clone() const { return new AsmDecl( *this ); }
+	virtual void accept( Visitor &v ) { v.visit( this ); }
+	virtual AsmDecl *acceptMutator( Mutator &m ) { return m.mutate( this ); }
+	virtual void print( std::ostream &os, int indent = 0 ) const;
+	virtual void printShort( std::ostream &os, int indent = 0 ) const;
+  private:
+	AsmStmt *stmt;
+};
+
 std::ostream & operator<<( std::ostream & out, const Declaration * decl );
 std::ostream & operator<<( std::ostream & os, const TypeDecl::Data & data );
Index: src/SynTree/Mutator.cc
===================================================================
--- src/SynTree/Mutator.cc	(revision c0aa3360803b4a312708b494a8067a91f03e9e8f)
+++ src/SynTree/Mutator.cc	(revision 6ef2d812b3d79020b26eb8dac1a9ae5249363236)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Aug  4 11:23:21 2016
-// Update Count     : 19
+// Last Modified On : Thu Feb  9 14:22:56 2017
+// Update Count     : 20
 //
 
@@ -86,4 +86,10 @@
 }
 
+AsmDecl *Mutator::mutate( AsmDecl *asmDecl ) {
+	asmDecl->set_stmt( maybeMutate( asmDecl->get_stmt(), *this ) );
+	return asmDecl;
+}
+
+
 CompoundStmt *Mutator::mutate( CompoundStmt *compoundStmt ) {
 	mutateAll( compoundStmt->get_kids(), *this );
@@ -177,4 +183,5 @@
 	return impCtorDtorStmt;
 }
+
 
 Expression *Mutator::mutate( ApplicationExpr *applicationExpr ) {
@@ -433,4 +440,5 @@
 }
 
+
 Type *Mutator::mutate( VoidType *voidType ) {
 	mutateAll( voidType->get_forall(), *this );
@@ -533,4 +541,5 @@
 }
 
+
 Initializer *Mutator::mutate( SingleInit *singleInit ) {
 	singleInit->set_value( singleInit->get_value()->acceptMutator( *this ) );
@@ -551,7 +560,9 @@
 }
 
+
 Subrange *Mutator::mutate( Subrange *subrange ) {
 	return subrange;
 }
+
 
 Constant *Mutator::mutate( Constant *constant ) {
Index: src/SynTree/Mutator.h
===================================================================
--- src/SynTree/Mutator.h	(revision c0aa3360803b4a312708b494a8067a91f03e9e8f)
+++ src/SynTree/Mutator.h	(revision 6ef2d812b3d79020b26eb8dac1a9ae5249363236)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Aug  3 16:59:45 2016
-// Update Count     : 12
+// Last Modified On : Thu Feb  9 14:23:23 2017
+// Update Count     : 13
 //
 #include <cassert>
@@ -34,4 +34,5 @@
 	virtual TypeDecl* mutate( TypeDecl *typeDecl );
 	virtual Declaration* mutate( TypedefDecl *typeDecl );
+	virtual AsmDecl* mutate( AsmDecl *asmDecl );
 
 	virtual CompoundStmt* mutate( CompoundStmt *compoundStmt );
Index: src/SynTree/SynTree.h
===================================================================
--- src/SynTree/SynTree.h	(revision c0aa3360803b4a312708b494a8067a91f03e9e8f)
+++ src/SynTree/SynTree.h	(revision 6ef2d812b3d79020b26eb8dac1a9ae5249363236)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Aug  3 17:02:34 2016
-// Update Count     : 7
+// Last Modified On : Thu Feb  9 14:23:49 2017
+// Update Count     : 8
 //
 
@@ -36,4 +36,5 @@
 class DtypeDecl;
 class TypedefDecl;
+class AsmDecl;
 
 class Statement;
Index: src/SynTree/Visitor.cc
===================================================================
--- src/SynTree/Visitor.cc	(revision c0aa3360803b4a312708b494a8067a91f03e9e8f)
+++ src/SynTree/Visitor.cc	(revision 6ef2d812b3d79020b26eb8dac1a9ae5249363236)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Aug  4 11:24:25 2016
-// Update Count     : 21
+// Last Modified On : Thu Feb  9 14:19:22 2017
+// Update Count     : 22
 //
 
@@ -74,4 +74,9 @@
 }
 
+void Visitor::visit( AsmDecl *asmDecl ) {
+	maybeAccept( asmDecl->get_stmt(), *this );
+}
+
+
 void Visitor::visit( CompoundStmt *compoundStmt ) {
 	acceptAll( compoundStmt->get_kids(), *this );
@@ -148,4 +153,5 @@
 	maybeAccept( impCtorDtorStmt->get_callStmt(), *this );
 }
+
 
 void Visitor::visit( ApplicationExpr *applicationExpr ) {
@@ -338,4 +344,5 @@
 	maybeAccept( uniqueExpr->get_expr(), *this );
 }
+
 
 void Visitor::visit( VoidType *voidType ) {
@@ -422,4 +429,5 @@
 }
 
+
 void Visitor::visit( SingleInit *singleInit ) {
 	singleInit->get_value()->accept( *this );
@@ -437,5 +445,7 @@
 }
 
+
 void Visitor::visit( Subrange *subrange ) {}
+
 
 void Visitor::visit( Constant *constant ) {}
Index: src/SynTree/Visitor.h
===================================================================
--- src/SynTree/Visitor.h	(revision c0aa3360803b4a312708b494a8067a91f03e9e8f)
+++ src/SynTree/Visitor.h	(revision 6ef2d812b3d79020b26eb8dac1a9ae5249363236)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Aug  3 17:01:50 2016
-// Update Count     : 9
+// Last Modified On : Thu Feb  9 14:23:24 2017
+// Update Count     : 10
 //
 
@@ -34,4 +34,5 @@
 	virtual void visit( TypeDecl *typeDecl );
 	virtual void visit( TypedefDecl *typeDecl );
+	virtual void visit( AsmDecl *asmDecl );
 
 	virtual void visit( CompoundStmt *compoundStmt );
