diff options
author | Li Jin <dragon-fly@qq.com> | 2025-05-21 16:19:10 +0800 |
---|---|---|
committer | Li Jin <dragon-fly@qq.com> | 2025-05-21 16:19:10 +0800 |
commit | 040f6802ef02f6541e0213de0440f9b1b758d9fc (patch) | |
tree | 2fa5318eb3eb1192ac6d3c15a5340e3b37e1fae3 /src | |
parent | 68f4b638d40bc31b24509283da309b8aef3fe758 (diff) | |
download | yuescript-040f6802ef02f6541e0213de0440f9b1b758d9fc.tar.gz yuescript-040f6802ef02f6541e0213de0440f9b1b758d9fc.tar.bz2 yuescript-040f6802ef02f6541e0213de0440f9b1b758d9fc.zip |
Added support for mark global var const without initial value.
Diffstat (limited to 'src')
-rw-r--r-- | src/yuescript/yue_compiler.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/yuescript/yue_compiler.cpp b/src/yuescript/yue_compiler.cpp index 452ffbd..5cd2804 100644 --- a/src/yuescript/yue_compiler.cpp +++ b/src/yuescript/yue_compiler.cpp | |||
@@ -78,7 +78,7 @@ static std::unordered_set<std::string> Metamethods = { | |||
78 | "close"s // Lua 5.4 | 78 | "close"s // Lua 5.4 |
79 | }; | 79 | }; |
80 | 80 | ||
81 | const std::string_view version = "0.28.0"sv; | 81 | const std::string_view version = "0.28.1"sv; |
82 | const std::string_view extension = "yue"sv; | 82 | const std::string_view extension = "yue"sv; |
83 | 83 | ||
84 | class CompileError : public std::logic_error { | 84 | class CompileError : public std::logic_error { |
@@ -9569,12 +9569,13 @@ private: | |||
9569 | markVarGlobalConst(name); | 9569 | markVarGlobalConst(name); |
9570 | } | 9570 | } |
9571 | } else { | 9571 | } else { |
9572 | if (global->constAttrib) { | ||
9573 | throw CompileError("missing initial value for global const", global->constAttrib); | ||
9574 | } | ||
9575 | for (auto name : values->nameList->names.objects()) { | 9572 | for (auto name : values->nameList->names.objects()) { |
9576 | auto var = static_cast<Variable_t*>(name); | 9573 | auto var = static_cast<Variable_t*>(name); |
9577 | addGlobalVar(variableToString(var), var); | 9574 | auto varName = variableToString(var); |
9575 | addGlobalVar(varName, var); | ||
9576 | if (global->constAttrib) { | ||
9577 | markVarGlobalConst(varName); | ||
9578 | } | ||
9578 | } | 9579 | } |
9579 | } | 9580 | } |
9580 | break; | 9581 | break; |