From 8259a5fd9a40aeca7550cab76c90dd18bed6a0f4 Mon Sep 17 00:00:00 2001 From: Aoran Zeng Date: Wed, 16 Jul 2025 21:02:44 +0800 Subject: [PATCH] Give Unknown if codeblock not specify --- tool/rawstr4c/lib/Config.rakumod | 17 +++++++++++++++-- tool/rawstr4c/lib/Parser.rakumod | 8 ++++---- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/tool/rawstr4c/lib/Config.rakumod b/tool/rawstr4c/lib/Config.rakumod index bb8359d..4498402 100644 --- a/tool/rawstr4c/lib/Config.rakumod +++ b/tool/rawstr4c/lib/Config.rakumod @@ -94,11 +94,24 @@ class SectionConfig { return self.get-inherited-config('keep-postfix', 'true'); } - #| RS4C-String 或 RS4C-Nil + + #| RS4C-String method language() { - return self.get-direct-config('language'); + # RS4C-String 或 RS4C-Nil + my $config-language = self.get-direct-config('language'); + + my Str $lang; + + if $config-language.is-nil { + # codeblock 没有写语言,就给 Unknown + $lang = 'Unknown'; + } else { + $lang = $config-language.string-value; + } + return Parser::ConfigItem's-Value.new($lang); } + #| RS4C-String method name() { # RS4C-String 或 RS4C-Nil diff --git a/tool/rawstr4c/lib/Parser.rakumod b/tool/rawstr4c/lib/Parser.rakumod index ac2d239..0dbc74e 100644 --- a/tool/rawstr4c/lib/Parser.rakumod +++ b/tool/rawstr4c/lib/Parser.rakumod @@ -70,22 +70,22 @@ class ConfigItem's-Value { # 这些函数防止开发者写错类型 method nil-value() { return self.value if $.type == RS4C-Nil; - die "The config value type is not RS4C-Nil, but: {$.type}"; + die "The config value type should be RS4C-Nil, but it is: {$.type}"; } method string-value() { return self.value if $.type == RS4C-String; - die "The config value type is not RS4C-String, but: {$.type}"; + die "The config value type should be RS4C-String, but it is: {$.type}"; } method bool-value() { return self.value if $.type == RS4C-Bool; - die "The config value type is not RS4C-Bool, but: {$.type}"; + die "The config value type should be RS4C-Bool, but it is: {$.type}"; } method mode-value() { return self.value if $.type == RS4C-Mode; - die "The config value type is not RS4C-Mode, but: {$.type}"; + die "The config value type should be RS4C-Mode, but it is: {$.type}"; }