Process function declarations.

This commit is contained in:
Roberto Raggi
2010-11-25 14:55:43 +01:00
parent 4f9be97600
commit e2419153a5
11 changed files with 170 additions and 74 deletions

View File

@@ -98,6 +98,7 @@ public:
const QString *identifier(const char *s, int n);
QSet<QString> identifiers() const;
// types
const UndefinedType *undefinedType();
const VoidType *voidType();
const BoolType *boolType();
@@ -108,6 +109,13 @@ public:
const VectorType *vectorType(const Type *elementType, int dimension);
const MatrixType *matrixType(const Type *elementType, int columns, int rows);
// symbols
Struct *newStruct(Scope *scope = 0);
Block *newBlock(Scope *scope = 0);
Function *newFunction(Scope *scope = 0);
Argument *newArgument(Function *function, const QString &name, const Type *type);
Variable *newVariable(Scope *scope, const QString &name, const Type *type);
MemoryPool *pool();
QList<DiagnosticMessage> diagnosticMessages() const;
@@ -120,6 +128,7 @@ private:
TypeTable<MatrixType> _matrixTypes;
MemoryPool _pool;
QList<DiagnosticMessage> _diagnosticMessages;
QList<Symbol *> _symbols;
};
} // namespace GLSL