+11
-21
@@ -13,7 +13,7 @@
|
||||
<!-- section-id: syntax-15-002 -->
|
||||
|
||||
- 标识符大小写无关;下划线可出现在标识符中。
|
||||
- `//` 是行注释;首行 `#!` 可作为 CGI 风格注释;`{ ... }` 与 `(* ... *)` 是块注释。
|
||||
- `//` 是行注释;首行 `#!` 可作为 CGI 风格注释;`{ ... }` 与 `(* ... *)` 是块注释。两种块注释可以交错嵌套,同类块注释不能嵌套。
|
||||
- 条件编译指令使用 `{$define}`、`{$undef}`、`{$ifdef}`、`{$ifndef}`、`{$else}`、`{$endif}`。
|
||||
- 条件编译只编译命中的分支;未命中的分支不参与脚本编译。
|
||||
- `{$explicit+}` 开启后,后续变量必须先用 `var` 声明;`{$explicit-}` 可以在同一源文件里重新关闭这个要求。
|
||||
@@ -58,7 +58,7 @@ TSL 关键字大小写无关;本表统一按文档推荐写法展示。生成
|
||||
|
||||
<!-- section-id: syntax-15-005 -->
|
||||
|
||||
<!-- tags: 注释怎么写, 大小写敏感吗, 变量命名, 下划线 -->
|
||||
<!-- tags: 注释怎么写, 大小写敏感吗, 变量命名, 下划线, 嵌套注释, 块注释 -->
|
||||
|
||||
大小写无关与下划线标识符:
|
||||
|
||||
@@ -112,6 +112,8 @@ writeLn(40);
|
||||
|
||||
- 依次输出 `1`、`10`、`30`
|
||||
- 说明首行 `#!`、`//`、`{ ... }`、`(* ... *)` 都属于文档明确注释形态
|
||||
- 说明外层 `{ ... }` 可以包含 `(* ... *)`;反向交错也可用
|
||||
- 同类 `{ { ... } }` 或 `(* (* ... *) *)` 不构成嵌套注释,会产生语法错误
|
||||
- 说明 `define` / `undef` / `ifdef` / `ifndef` / `else` / `endif` 这一组条件编译指令可以正常生效
|
||||
|
||||
### 显式变量声明开关
|
||||
@@ -184,27 +186,13 @@ writeLn(1);
|
||||
|
||||
<!-- tags: 编译开关, 编译器选项, 改默认行为 -->
|
||||
|
||||
`{$CompileOption}` 用于设置编译期开关,改变编译器的默认行为:
|
||||
TSL 的编译选项使用 `{$Option+}` / `{$Option-}` 一类指令改变后续源码的编译方式。本页只拥有已经分别验证并有专题规则的选项:
|
||||
|
||||
代码块身份:可直接照写示例
|
||||
- `{$explicit+}` / `{$explicit-}`:切换变量是否必须预先声明,见上一节
|
||||
- `{$varByRef+}` / `{$varByRef-}`:切换未修饰形参的默认传递方式,见下一节
|
||||
- `{$ifdef ...}` 等条件编译指令:控制分支是否参与编译
|
||||
|
||||
```tsl
|
||||
{$CompileOption optimize=1}
|
||||
echo 1 + 1;
|
||||
```
|
||||
|
||||
代码块身份:输出片段
|
||||
|
||||
```text
|
||||
2
|
||||
```
|
||||
|
||||
说明:
|
||||
|
||||
- `{$CompileOption optimize=1}` 开启优化
|
||||
- 编译选项从出现位置开始生效,直到源文件结束或被其他选项覆盖
|
||||
- 常见选项包括 `optimize`、`buffermode`、`DebugInfo` 等
|
||||
- 编译选项细节以项目工具链和实际编译命令为准。
|
||||
`optimize`、`buffermode`、`DebugInfo` 等没有在本 skill 中形成可验证语义,不作为正式可生成选项。不要用“脚本仍能输出结果”来证明某个未知编译选项确实生效。
|
||||
|
||||
### 参数默认传递开关
|
||||
|
||||
@@ -263,6 +251,8 @@ end;
|
||||
<!-- section-id: syntax-15-010 -->
|
||||
|
||||
- 不要在 `{$explicit+}` 后继续直接使用未声明变量。
|
||||
- 不要同类嵌套 `{ ... }` 或 `(* ... *)` 块注释;需要嵌套时交错使用两种定界符。
|
||||
- 不要生成未在本页形成可验证规则的 `{$CompileOption optimize=...}`、`buffermode` 或 `DebugInfo`。
|
||||
- 不要把 `{$i ...}` / `{$include ...}` 包含文件写法当成可用能力。
|
||||
- 不要把 `反例 / 不可照写` 代码块复制进正向示例。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user