diff options
Diffstat (limited to 'source/compiler-core')
| -rw-r--r-- | source/compiler-core/slang-lexer.cpp | 10 | ||||
| -rw-r--r-- | source/compiler-core/slang-lexer.h | 5 |
2 files changed, 13 insertions, 2 deletions
diff --git a/source/compiler-core/slang-lexer.cpp b/source/compiler-core/slang-lexer.cpp index bf109e7fb..84a4df93b 100644 --- a/source/compiler-core/slang-lexer.cpp +++ b/source/compiler-core/slang-lexer.cpp @@ -673,7 +673,10 @@ static int _readOptionalBase(char const** ioCursor) } -IntegerLiteralValue getIntegerLiteralValue(Token const& token, UnownedStringSlice* outSuffix) +IntegerLiteralValue getIntegerLiteralValue( + Token const& token, + UnownedStringSlice* outSuffix, + bool* outIsDecimalBase) { IntegerLiteralValue value = 0; @@ -698,6 +701,11 @@ IntegerLiteralValue getIntegerLiteralValue(Token const& token, UnownedStringSlic *outSuffix = UnownedStringSlice(cursor, end); } + if (outIsDecimalBase) + { + *outIsDecimalBase = (base == 10); + } + return value; } diff --git a/source/compiler-core/slang-lexer.h b/source/compiler-core/slang-lexer.h index a9883ced6..a36719ab7 100644 --- a/source/compiler-core/slang-lexer.h +++ b/source/compiler-core/slang-lexer.h @@ -172,7 +172,10 @@ String getFileNameTokenValue(Token const& token); typedef int64_t IntegerLiteralValue; typedef double FloatingPointLiteralValue; -IntegerLiteralValue getIntegerLiteralValue(Token const& token, UnownedStringSlice* outSuffix = 0); +IntegerLiteralValue getIntegerLiteralValue( + Token const& token, + UnownedStringSlice* outSuffix = 0, + bool* outIsDecimalBase = 0); FloatingPointLiteralValue getFloatingPointLiteralValue( Token const& token, UnownedStringSlice* outSuffix = 0); |
