Index: translator/SynTree/CompoundStmt.cc
===================================================================
--- translator/SynTree/CompoundStmt.cc	(revision bdd516a5257cb93cc0c5b4a4c343cc112252022a)
+++ translator/SynTree/CompoundStmt.cc	(revision c11e31cbaeeeb0709ef952223453f301da13d515)
@@ -11,4 +11,6 @@
 #include <functional>
 
+using std::string;
+using std::endl;
 
 CompoundStmt::CompoundStmt( std::list<Label> labels )
@@ -31,5 +33,6 @@
 CompoundStmt::print( std::ostream &os, int indent )
 {
-    printAll( kids, os, indent );
+    os << "\r" << string(indent, ' ') << "CompoundStmt Statement" << endl ;
+    printAll( kids, os, indent + 4 );
 }
 
Index: translator/SynTree/Declaration.h
===================================================================
--- translator/SynTree/Declaration.h	(revision bdd516a5257cb93cc0c5b4a4c343cc112252022a)
+++ translator/SynTree/Declaration.h	(revision c11e31cbaeeeb0709ef952223453f301da13d515)
@@ -12,9 +12,10 @@
     enum StorageClass {  
 	NoStorageClass,
+	Extern,
+	Static,
 	Auto,
-	Static,
-	Extern,
 	Register,
-	Fortran
+	Inline,
+	Fortran,
     };	
 
@@ -108,6 +109,6 @@
     CompoundStmt *get_statements() const { return statements; }
     void set_statements( CompoundStmt *newValue ) { statements = newValue; }
-    bool get_isInline() const { return isInline; }
-    void set_isInline( bool newValue ) { isInline = newValue; }
+//    bool get_isInline() const { return isInline; }
+//    void set_isInline( bool newValue ) { isInline = newValue; }
     std::list< std::string >& get_oldIdents() { return oldIdents; }
     std::list< Declaration* >& get_oldDecls() { return oldDecls; }
Index: translator/SynTree/FunctionDecl.cc
===================================================================
--- translator/SynTree/FunctionDecl.cc	(revision bdd516a5257cb93cc0c5b4a4c343cc112252022a)
+++ translator/SynTree/FunctionDecl.cc	(revision c11e31cbaeeeb0709ef952223453f301da13d515)
@@ -1,9 +1,2 @@
-/*
- * This file is part of the Cforall project
- *
- * $Id: FunctionDecl.cc,v 1.15 2005/08/29 20:59:25 rcbilson Exp $
- *
- */
-
 #include <cassert>
 
@@ -14,10 +7,8 @@
 
 
-FunctionDecl::FunctionDecl( const std::string &name, StorageClass sc, LinkageSpec::Type linkage, FunctionType *type,
-					    CompoundStmt *statements, bool isInline )
-    : Parent( name, sc, linkage ), type( type ), statements( statements ), isInline( isInline )
-{
-    // this is a pretty brazen hack to force the function "main" to have C linkage
-    if( name == "main" ) {
+FunctionDecl::FunctionDecl( const std::string &name, StorageClass sc, LinkageSpec::Type linkage, FunctionType *type, CompoundStmt *statements, bool isInline )
+	: Parent( name, sc, linkage ), type( type ), statements( statements ), isInline( isInline ) {
+    // this is a brazen hack to force the function "main" to have C linkage
+    if ( name == "main" ) {
 	set_linkage( LinkageSpec::C );
     }
@@ -25,52 +16,43 @@
 
 FunctionDecl::FunctionDecl( const FunctionDecl &other )
-    : Parent( other ), type( maybeClone( other.type ) ), statements( maybeClone( other.statements ) ),
-	isInline( other.isInline )
-{
+    : Parent( other ), type( maybeClone( other.type ) ), statements( maybeClone( other.statements ) ), isInline( other.isInline ) {
 }
 
-FunctionDecl::~FunctionDecl()
-{
+FunctionDecl::~FunctionDecl() {
     delete type;
     delete statements;
 }
 
-Type*
-FunctionDecl::get_type() const
-{
+Type * FunctionDecl::get_type() const {
     return type;
 }
 
-void 
-FunctionDecl::set_type(Type *t)
-{
+void FunctionDecl::set_type( Type *t ) {
     type = dynamic_cast< FunctionType* >( t );
     assert( type );
 }
 
-void
-FunctionDecl::print( std::ostream &os, int indent ) const
-{
+void FunctionDecl::print( std::ostream &os, int indent ) const {
     using std::endl;
     using std::string;
     
-    if( get_name() != "" ) {
+    if ( get_name() != "" ) {
 	os << get_name() << ": a ";
     }
-    if( get_linkage() != LinkageSpec::Cforall ) {
+    if ( get_linkage() != LinkageSpec::Cforall ) {
 	os << LinkageSpec::toString( get_linkage() ) << " ";
     }
-    if( isInline ) {
+    if ( isInline ) {
 	os << "inline ";
     }
-    if( get_storageClass() != NoStorageClass ) {
+    if ( get_storageClass() != NoStorageClass ) {
 	os << storageClassName[ get_storageClass() ] << ' ';
     }
-    if( get_type() ) {
+    if ( get_type() ) {
 	get_type()->print( os, indent );
     } else {
 	os << "untyped entity ";
     }
-    if( !oldIdents.empty() ) {
+    if ( ! oldIdents.empty() ) {
 	os << string( indent+2, ' ' ) << "with parameter names" << endl;
 	for( std::list< std::string >::const_iterator i = oldIdents.begin(); i != oldIdents.end(); ++i ) {
@@ -78,9 +60,9 @@
 	}
     }
-    if( !oldDecls.empty() ) {
+    if ( ! oldDecls.empty() ) {
 	os << string( indent+2, ' ' ) << "with parameter declarations" << endl;
 	printAll( oldDecls, os, indent+4 );
     }
-    if( statements ) {
+    if ( statements ) {
 	os << string( indent+2, ' ' ) << "with body " << endl;
 	statements->print( os, indent+4 );
@@ -88,20 +70,18 @@
 }
 
-void
-FunctionDecl::printShort( std::ostream &os, int indent ) const
-{
+void FunctionDecl::printShort( std::ostream &os, int indent ) const {
     using std::endl;
     using std::string;
     
-    if( get_name() != "" ) {
+    if ( get_name() != "" ) {
 	os << get_name() << ": a ";
     }
-    if( isInline ) {
+    if ( isInline ) {
 	os << "inline ";
     }
-    if( get_storageClass() != NoStorageClass ) {
+    if ( get_storageClass() != NoStorageClass ) {
 	os << storageClassName[ get_storageClass() ] << ' ';
     }
-    if( get_type() ) {
+    if ( get_type() ) {
 	get_type()->print( os, indent );
     } else {
@@ -109,3 +89,2 @@
     }
 }
-
Index: translator/SynTree/Statement.cc
===================================================================
--- translator/SynTree/Statement.cc	(revision bdd516a5257cb93cc0c5b4a4c343cc112252022a)
+++ translator/SynTree/Statement.cc	(revision c11e31cbaeeeb0709ef952223453f301da13d515)
@@ -14,5 +14,4 @@
 
 
-// *** Statement
 Statement::Statement(std::list<Label> _labels):
     labels(_labels) {}
@@ -22,5 +21,4 @@
 Statement::~Statement() {}
 
-//*** ExprStmt
 ExprStmt::ExprStmt( std::list<Label> _labels, Expression *_expr ):
     Statement(_labels), expr(_expr) {}
@@ -33,5 +31,4 @@
 } 
 
-//*** BranchStmt
 const char *BranchStmt::brType[] = { "Goto", "Break", "Continue" };
 
@@ -57,5 +54,4 @@
 }
 
-//*** ReturnStmt
 ReturnStmt::ReturnStmt( std::list<Label> labels, Expression *_expr, bool throwP ) :
     Statement( labels ), expr( _expr ), isThrow( throwP ) {}
@@ -72,5 +68,4 @@
 
 
-// *** IfStmt
 IfStmt::IfStmt( std::list<Label> _labels, Expression *_condition, Statement *_thenPart, Statement *_elsePart ):
     Statement(_labels), condition(_condition), thenPart(_thenPart), elsePart(_elsePart) {}
@@ -91,5 +86,4 @@
 }
 
-// *** SwitchStmt
 SwitchStmt::SwitchStmt(std::list<Label> _labels, Expression * _condition, std::list<Statement *> &_branches):
     Statement(_labels), condition(_condition), branches(_branches)
@@ -116,5 +110,4 @@
 }
 
-// *** CaseStmt
 CaseStmt::CaseStmt( std::list<Label> _labels, Expression *_condition,
 					std::list<Statement *> &_statements, bool deflt )
@@ -147,5 +140,4 @@
 }
 
-//*** ChooseStmt
 //ChooseStmt::ChooseStmt( std::list<Label> labels, Expression *condition, Statement *body ) {}
 ChooseStmt::ChooseStmt(std::list<Label> _labels, Expression * _condition, std::list<Statement *> &_branches):
@@ -172,10 +164,8 @@
 }
 
-//*** FallthruStmt
 void FallthruStmt::print(std::ostream &os, int indent) {
     os << "\r" << string(indent, ' ') << "Fall-through statement" << endl;
 }
 
-//*** WhileStmt
 WhileStmt::WhileStmt( std::list<Label> labels, Expression *condition_,
 					    Statement *body_, bool isDoWhile_ ):
@@ -196,5 +186,4 @@
 }
 
-//*** ForStmt
 ForStmt::ForStmt( std::list<Label> labels, Statement *initialization_,
 				    Expression *condition_, Expression *increment_, Statement *body_ ):
@@ -233,5 +222,4 @@
 }
 
-//*** TryStmt
 TryStmt::TryStmt( std::list<Label> labels, CompoundStmt *tryBlock, std::list<Statement *> &_handlers, FinallyStmt *_finallyBlock ) :
     Statement( labels ), block( tryBlock ),  handlers( _handlers ), finallyBlock( _finallyBlock )
@@ -266,5 +254,4 @@
 }
 
-//*** CatchStmt
 CatchStmt::CatchStmt( std::list<Label> labels, Declaration *_decl, Statement *_body, bool isCatchRest ) :
     Statement( labels ), decl ( _decl ), body( _body ), catchRest ( isCatchRest )
@@ -290,5 +277,4 @@
 
 
-//*** FinallyStmt
 FinallyStmt::FinallyStmt( std::list<Label> labels, CompoundStmt *_block ) :
     Statement( labels ), block( _block )
@@ -307,5 +293,4 @@
 }
 
-//*** NullStmt
 NullStmt::NullStmt( std::list<Label> labels ) : CompoundStmt( labels ) {}
 NullStmt::NullStmt() : CompoundStmt( std::list<Label>() ) {}
Index: translator/SynTree/Statement.h
===================================================================
--- translator/SynTree/Statement.h	(revision bdd516a5257cb93cc0c5b4a4c343cc112252022a)
+++ translator/SynTree/Statement.h	(revision c11e31cbaeeeb0709ef952223453f301da13d515)
@@ -1,9 +1,2 @@
-/*
- * This file is part of the Cforall project
- *
- * $Id: Statement.h,v 1.18 2005/08/29 20:59:26 rcbilson Exp $
- *
- */
-
 #ifndef STATEMENT_H
 #define STATEMENT_H
Index: translator/SynTree/Type.h
===================================================================
--- translator/SynTree/Type.h	(revision bdd516a5257cb93cc0c5b4a4c343cc112252022a)
+++ translator/SynTree/Type.h	(revision c11e31cbaeeeb0709ef952223453f301da13d515)
@@ -10,6 +10,6 @@
   public:
     struct Qualifiers {  
-      Qualifiers(): isConst( false ), isVolatile( false ), isRestrict( false ), isLvalue( false ), isAtomic( false ) {}
-      Qualifiers( bool isConst, bool isVolatile, bool isRestrict, bool isLvalue, bool isAtomic ): isConst( isConst ), isVolatile( isVolatile ), isRestrict( isRestrict ), isLvalue( isLvalue ), isAtomic( isAtomic ) {}
+      Qualifiers(): isConst( false ), isVolatile( false ), isRestrict( false ), isLvalue( false ), isAtomic( false ), isAttribute( false ) {}
+      Qualifiers( bool isConst, bool isVolatile, bool isRestrict, bool isLvalue, bool isAtomic, bool isAttribute): isConst( isConst ), isVolatile( isVolatile ), isRestrict( isRestrict ), isLvalue( isLvalue ), isAtomic( isAtomic ), isAttribute( isAttribute ) {}
 	
 	Qualifiers &operator+=( const Qualifiers &other );
@@ -28,4 +28,5 @@
 	bool isLvalue;
 	bool isAtomic;
+	bool isAttribute;
     };	
 
@@ -40,4 +41,5 @@
     bool get_isLvalue() { return tq.isLvalue; }
     bool get_isAtomic() { return tq.isAtomic; }
+    bool get_isAttribute() { return tq.isAttribute; }
     void set_isConst( bool newValue ) { tq.isConst = newValue; }
     void set_iisVolatile( bool newValue ) { tq.isVolatile = newValue; }
@@ -45,4 +47,5 @@
     void set_isLvalue( bool newValue ) { tq.isLvalue = newValue; }
     void set_isAtomic( bool newValue ) { tq.isAtomic = newValue; }
+    void set_isAttribute( bool newValue ) { tq.isAttribute = newValue; }
     std::list<TypeDecl*>& get_forall() { return forall; }
 
