7 #ifndef COMPILER_PREPROCESSOR_DIRECTIVE_PARSER_H_
8 #define COMPILER_PREPROCESSOR_DIRECTIVE_PARSER_H_
19 class DirectiveHandler;
35 void parseDirective(
Token* token);
36 void parseDefine(
Token* token);
37 void parseUndef(
Token* token);
38 void parseIf(
Token* token);
39 void parseIfdef(
Token* token);
40 void parseIfndef(
Token* token);
41 void parseElse(
Token* token);
42 void parseElif(
Token* token);
43 void parseEndif(
Token* token);
44 void parseError(
Token* token);
45 void parsePragma(
Token* token);
46 void parseExtension(
Token* token);
47 void parseVersion(
Token* token);
48 void parseLine(
Token* token);
50 bool skipping()
const;
51 void parseConditionalIf(
Token* token);
52 int parseExpressionIf(
Token* token);
53 int parseExpressionIfdef(
Token* token);
55 struct ConditionalBlock
67 foundValidGroup(
false),
72 bool mPastFirstStatement;
73 std::vector<ConditionalBlock> mConditionalStack;
81 #endif // COMPILER_PREPROCESSOR_DIRECTIVE_PARSER_H_
GLint GLenum GLsizei GLsizei GLsizei GLint GLenum GLenum type
std::map< std::string, Macro > MacroSet
virtual void lex(Token *token)
GLsizei const GLcharARB ** string
DirectiveParser(Tokenizer *tokenizer, MacroSet *macroSet, Diagnostics *diagnostics, DirectiveHandler *directiveHandler)