【问题标题】:InnoSetup - how can you have inline comments in the setup source?InnoSetup - 如何在设置源中添加内联注释?
【发布时间】:2014-05-19 20:22:42
【问题描述】:

有谁知道是否有办法将内联 cmets 添加到 InnoSetup 源文件?

我做了一些实验:

;   a comment                                       (allowed)

[Setup]
AppName=MyApp                       // a comment    (allowed)
AppVersion=1.2.3.4                  ; a comment     (allowed)
DefaultDirName="{pf}\My App"        seems you can have anything at all here (allowed)

[Dirs]
Name: "{userdocs}\My App"
Name: {userdocs}\MyApp              // a comment    (allowed)
Name: "{userdocs}\My App"           // a comment    (not allowed)
Name: {userdocs}\MyApp ;            // a comment    (not allowed)
Name: "{userdocs}\My App" ;         // a comment    (not allowed)

并且(我认为)我发现在编译器不再期望任何操作数的任何地方都允许使用注释,但如果存在的话,我更愿意使用更严格的语法。

【问题讨论】:

  • script 部分(除[Code] 之外的任何内容)中,分号用于内联注释。在名称值部分中,不可能内联注释,因为无论如何都没有包含值部分,所以等号后面的就是值,不管它是什么。分号分隔的部分也不能内联它,因为它是它们的分隔符。您的示例脚本中实际上只有一个注释,即第一个注释。
  • 谢谢@TLama,是的,我就是这么想的。事实上,在我说a comment is allowed anywhere where the compiler isn't expecting any more operands 的地方,我应该说的是“编译器不会检查一行上的意外操作数”。

标签: comments inline inno-setup


【解决方案1】:

如何在源码的脚本部分进行注释?

在源代码的脚本部分(包括除[Code] 之外的所有部分),行首的分号分隔注释。 Script Format Overview 主题中将其描述为(我强调):

您可以在脚本中添加“cmets”(被 编译器)在行首放置分号。为了 示例:

; This is a comment. I could put reminders to myself here...

所以,这就是脚本注释分隔符(除[Code] 之外的部分)。现在,让我们考虑一下为什么我们不能将 cmets 内联到任何这些部分。

为什么 cmets 不能在名称值部分内联?

在名称值部分中,例如[Setup][Messages] 或类似名称,您不能为它们的条目内联 cmets,因为值部分是等号后面的所有内容,无论它是什么。因此,以下示例部分中没有评论。相反,这些指令得到了相当长且非常奇特的值:

[Setup]
AppName=MyApp                       // a comment    (allowed)
AppVersion=1.2.3.4                  ; a comment     (allowed)
DefaultDirName="{pf}\My App"        seems you can have anything at all here (allowed)

评论它们的正确方法是使用以分号开头的单独行:

[Setup]
; comment for AppName
AppName=MyApp
; comment for AppVersion
AppVersion=1.2.3.4
; comment for DefaultDirName
DefaultDirName={pf}\My App

为什么不能在分号分隔的部分中内联 cmets?

对于带有分号分隔参数的部分,不应内联分号分隔的注释,因为它们的分隔符。如果在某些情况下这是可能的,我会认为这是由编译器解析器的懒惰引起的(小)错误。

【讨论】:

    猜你喜欢
    • 2016-01-26
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 2012-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-01
    相关资源
    最近更新 更多