summaryrefslogtreecommitdiffstats
path: root/source/compiler-core
diff options
context:
space:
mode:
Diffstat (limited to 'source/compiler-core')
-rw-r--r--source/compiler-core/slang-lexer.cpp10
-rw-r--r--source/compiler-core/slang-lexer.h5
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);