Files
playbook/skills/tsl-syntax-reference/references/01_quickstart.md
T
csh 736d1a8ad7 feat(tsl-syntax-reference): harden retrieval contracts
Add stable section IDs, structural and routing regressions, quickstart consistency checks, and CI enforcement.

BREAKING CHANGE: replace heading-derived Section IDs with explicit syntax-NN-NNN identifiers.
2026-07-31 10:05:15 +08:00

4.8 KiB
Raw Blame History

TSL 快速落代码规则

本篇提供一份由专题页逐条派生的语言核心事实速查,以及没有任何复用或模块需求时的默认起手骨架。

本篇职责

在落代码前一次性汇总跨专题的语言硬规则(赋值、文件形态、声明位置、命名参数、下标起点、类与 unit 外形),并提供术语对照和默认脚本骨架。本页是强制读取的派生摘要,不独立拥有完整事实;每条规则的完整上下文仍由对应专题页拥有。

语言核心事实速查

这一节是专题事实的强制派生速查,不是第二份事实源。写代码时先核对这里,再按当前任务的语法要素取回对应专题 Section;--check 会逐条比较下面的摘要与专题页 canonical 规则。

  • 普通变量赋值使用 :== 在普通表达式里用于比较,不用于赋值。
  • 未给后缀时,入口流程、脚本任务或一次性执行逻辑对应 .tsl;可复用交付物(函数、过程、类、模块或扩展文件)对应 .tsf;只是脚本内部封装函数或类时,仍按 .tsl 处理;仍不明确时向用户确认,不要把脚本入口和可复用模块合并成一个猜测文件。
  • .tsl 脚本按两段理解:语句区在前并按顺序执行;声明区在后,可放 function / proceduretype Name = class。写 .tsl 时先写语句区,需要函数、过程或类时把声明区放在语句区之后。
  • .tsf 时只写顶层函数 / 过程 / 类声明,或 unit;不要写成会直接顺序执行的脚本入口。
  • .tsf 文件名(不含扩展名)必须与第一个顶层声明同名;第一个声明可以是同名 functiontype Name = classunit
  • 用户提示词里的“函数”默认对应 function,不要自动改写成 procedure
  • procedure Name(...); begin ... end; 只在用户明确要求 procedure / 过程时生成;不要因为没有返回值就自动改用 procedure
  • 类定义统一按 type Name = class ... end; 写。
  • 普通本地类实例化默认生成 new ClassName()createObject("ClassName")createObject(ClassType) 只在字符串类名、类类型变量或跨 unit 路径场景生成。
  • unit 是完整的顶层主体;常见完整形态是 unit Name; interface ... implementation ... end.
  • 如果没有特殊需求,默认优先用完整形态;简写形态只在不需要显式区分 interface / implementation 时再用。
  • 调用时支持命名参数,写法是 name: value
  • 一旦某次调用里开始使用命名参数,后面的参数就不能再退回位置参数。
  • array(...) 既可以写顺序数组,也可以写字符串键表;顺序数组和 binary(...) 二进制缓冲区下标从 0 开始,字符串下标从 1 开始。

术语对照

  • “脚本语句区”:.tsl 文件开头会按顺序执行的语句。
  • “声明区”:.tsl 语句区之后的 function / proceduretype Name = class 声明。
  • “顶层 function / procedure”:在 .tsf 中指模块暴露的顶层函数 / 过程,在 .tsl 中指脚本声明区里的函数 / 过程。
  • “顶层函数骨架”“顶层函数定义体”:只指 function 骨架;不要因为任务没有返回值就自动改成 procedure
  • class function / “类方法”:同一件事;前者是代码关键字写法,后者是中文描述。

默认起手骨架

如果用户只要求写一段代码、脚本或示例,且没有明确 .tsfunit、模块复用或对象建模需求,直接从 .tsl 脚本版本开始:

代码块身份:可直接照写示例

echo "hello";

代码块身份:输出片段

hello

代码块说明:这是默认可执行脚本骨架;没有复用或模块需求时,不要主动改成 .tsf。需要在语句区之后接函数或类声明区时,骨架见 02_core_model.md