diff options
Diffstat (limited to 'source/slang/slang-preprocessor.cpp')
| -rw-r--r-- | source/slang/slang-preprocessor.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/source/slang/slang-preprocessor.cpp b/source/slang/slang-preprocessor.cpp index aefbf7619..02f46103b 100644 --- a/source/slang/slang-preprocessor.cpp +++ b/source/slang/slang-preprocessor.cpp @@ -3635,6 +3635,29 @@ static void HandlePragmaDirective(PreprocessorDirectiveContext* context) (subDirective->callback)(context, subDirectiveToken); } +static void HandleExtensionDirective(PreprocessorDirectiveContext* context) +{ + SkipToEndOfLine(context); +} + +static void HandleVersionDirective(PreprocessorDirectiveContext* context) +{ + [[maybe_unused]] + int version; + switch(PeekTokenType(context)) + { + case TokenType::IntegerLiteral: + version = stringToInt(AdvanceToken(context).getContent()); + break; + default: + GetSink(context)->diagnose(GetDirectiveLoc(context), Diagnostics::expectedIntegralVersionNumber); + break; + } + + SkipToEndOfLine(context); + // TODO, just skip the version for now +} + // Handle an invalid directive static void HandleInvalidDirective(PreprocessorDirectiveContext* context) { @@ -3689,6 +3712,11 @@ static const PreprocessorDirective kDirectives[] = { "line", &HandleLineDirective, 0 }, { "pragma", &HandlePragmaDirective, 0 }, + // GLSL + { "version", &HandleVersionDirective, 0 }, + { "extension", &HandleExtensionDirective, 0 }, + + { nullptr, nullptr, 0 }, }; |
