Significantly reduce the tendrils of DeclSpecs/Declarator/Declaration code

The stuff in decl.h/decl.cpp is messy, largely due to its close mapping
to C-style variable declarations.  This checkin has updated code throughout
all of the declaration statement, variable, and function code that operates
on symbols and types directly.  Thus, Decl* related stuff is now localized
to decl.h/decl.cpp and the parser.

Issue #13.
This commit is contained in:
Matt Pharr
2011-10-18 15:33:18 -07:00
parent 9b8ea3d500
commit f45ab0744e
13 changed files with 562 additions and 498 deletions

6
func.h
View File

@@ -43,9 +43,7 @@
class Function {
public:
Function(DeclSpecs *ds, Declarator *decl, Stmt *code);
static Symbol *InitFunctionSymbol(DeclSpecs *ds, Declarator *decl);
Function(Symbol *sym, const std::vector<Symbol *> &args, Stmt *code);
const Type *GetReturnType() const;
const FunctionType *GetType() const;
@@ -58,10 +56,8 @@ private:
SourcePos firstStmtPos);
Symbol *sym;
const FunctionType *type;
std::vector<Symbol *> args;
Stmt *code;
bool isExported;
Symbol *maskSymbol;
Symbol *threadIndexSym, *threadCountSym;
Symbol *taskIndexSym, *taskCountSym;