Added different parsing mode to TranslationUnit/CppDocument.

This commit is contained in:
Roberto Raggi
2008-12-03 14:01:19 +01:00
parent 4222fae24b
commit e2e4fcd95b
6 changed files with 91 additions and 34 deletions

View File

@@ -95,7 +95,7 @@ public:
NumericLiteral *numericLiteral(unsigned index) const;
MemoryPool *memoryPool() const;
TranslationUnitAST *ast() const;
AST *ast() const;
bool blockErrors(bool block);
@@ -113,7 +113,15 @@ public:
void setSkipFunctionBody(bool skipFunctionBody);
bool isParsed() const;
void parse();
enum ParseMode {
ParseTranlationUnit,
ParseDeclaration,
ParseExpression,
ParseStatement
};
bool parse(ParseMode mode = ParseTranlationUnit);
void resetAST();
void release();
@@ -169,7 +177,7 @@ private:
std::vector<unsigned> _lineOffsets;
std::vector<PPLine> _ppLines;
MemoryPool *_pool;
TranslationUnitAST *_ast;
AST *_ast;
TranslationUnit *_previousTranslationUnit;
union {
unsigned _flags;