playbook/codex/skills/tsl-guide/SKILL.md

231 lines
5.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
name: tsl-guide
description: "TSL/TSF 语法与工程实践指南(基础语法/高级特性/函数库/最佳实践。Triggers: TSL 语法, 写 TSL, 写 TSF, TSL 函数, TSL class, TSL unit, 矩阵操作, TS-SQL, TSL 函数库, tsl basics, tsl advanced, how to write tsl, tsf code, tsl api, 学习 TSL"
---
# TSL 完整指南
> **定位**TSL 语言的一站式参考,从入门到进阶。本 skill 以语法为主,风格规范单独引用。
## 🚀 快速语法速查(仅语法)
> 代码风格与命名不是语法的一部分,见下方「代码风格与命名」。
### 变量与常量
```tsl
a := 1;
name := "test";
items := array(1, 2, 3);
table_data := array("Code": "0001", "Price": 12.3);
const kMaxRetries = 3;
```
### 函数
```tsl
function Add(a, b);
begin
return a + b;
end;
```
```tsl
function Parse(const s, var out_value);
begin
out_value := StrToInt(s);
return out_value;
end;
```
### 控制流
```tsl
if x > 0 then
y := 1;
else if x = 0 then
y := 0;
else
y := -1;
for i := 0 to 9 do
sum := sum + i;
for idx, v in items do
total := total + v;
```
### 异常处理
```tsl
try
v := StrToInt(s);
except
v := 0;
WriteLn(ExceptObject.ErrInfo);
end;
```
### 数组与索引
```tsl
arr := array(10, 20, 30);
value := arr[0];
matrix := array((1, 2), (3, 4));
col_0 := matrix[:, 0];
```
---
## 📌 代码风格与命名(非语法)
- 代码风格:`docs/tsl/code_style.md`
- 命名规范:`docs/tsl/naming.md`
- 本仓库硬约束:`.agents/tsl/index.md`
---
## 📚 详细文档索引(按需加载)
### 📖 基础语法primer
**文件**`references/primer.md`
**内容**
- 变量/常量、类型与字面量
- 数组与表数组表达
- 运算符与表达式
- 函数定义、参数修饰、默认值、命名参数、变参
- 控制流if/case/for/while/repeat
- 异常处理try/except/finally/raise
- 编译选项(`{$Explicit+}`/`{$VarByRef-}`
**适用场景**:第一次写 TSL、查基础语法细节。
---
### 🚀 高级特性advanced
**文件**`references/advanced.md`
**内容**
- Unit/Namespace/函数文件与调用优先级
- Class/Object 模型(继承/override/Create/Destroy
- 扩展语法:矩阵、集合运算、结果集过滤
- TS-SQLselect/insert/update/delete/sselect/vselect/mselect
- 运行时与性能语法要点(#网格计算等)
- 新一代语法概览(复数/WeakRef/算符重载)
**适用场景**:面向对象、模块化、矩阵与 TS-SQL、高级特性。
---
### 🔍 函数库速查index
**文件**`references/functions_index.md`
**内容**
- 函数库分类索引与检索策略
- 对应权威目录:`docs/tsl/syntax_book/function/tsl/index.md`
**重要说明**
- 函数库已拆分为 `docs/tsl/syntax_book/function/` 多文件,**禁止整目录加载**
- 优先在 `docs/tsl/syntax_book/function/tsl/` 下分文件检索
---
### 💡 常见模式与最佳实践
**文件**`references/common_patterns.md`
**内容**参数校验、错误处理、I/O 分层、性能小贴士。
---
## ✅ 语法覆盖清单(对照 `docs/tsl/syntax_book/`
- `01_language_basics.md``references/primer.md`
- `02_control_flow.md``references/primer.md`
- `03_functions.md``references/primer.md`
- `04_modules_and_namespace.md``references/advanced.md`
- `05_object_model.md``references/advanced.md`
- `06_extended_syntax.md``references/advanced.md`
- `07_debug_and_profiler.md``references/advanced.md`(语法要点)
- `08_new_generation.md``references/advanced.md`(概览)
---
## 🤖 Agent 使用指南
1. **分析需求**:判断需要基础语法还是高级特性
2. **按需加载**:只读取一个子文档(避免贪婪加载)
3. **必要时检索函数库**:先索引,再定位片段
### 典型场景与 Token 消耗
**场景 1编写简单的 TSL 函数**
```text
1. 自动读取 .agents/tsl/index.md44 行)
2. 触发 $tsl-guide加载 SKILL.md
3. 生成代码
Token 消耗:~6,000 tokens
```
**场景 2编写 TSL 类**
```text
1. 自动读取 .agents/tsl/index.md44 行)
2. 触发 $tsl-guide加载 SKILL.md + references/advanced.md
3. 生成代码
Token 消耗:~10,000 tokens
```
**场景 3查询 TSL 函数库条目**
```text
1. 自动读取 .agents/tsl/index.md44 行)
2. 触发 $tsl-guide加载 references/functions_index.md
3. 使用 rg 定位函数片段
4. 返回答案
Token 消耗:~8,000 tokens
```
---
## ⚠️ 函数库使用规则
- **禁止整目录加载**`docs/tsl/syntax_book/function/` 体量巨大
- **推荐流程**
1. 先看 `docs/tsl/syntax_book/function/tsl/index.md`
2. 再在 `docs/tsl/syntax_book/function/tsl/*.md` 中搜索
3. 只读取相关函数片段≤100 行)
**检索示例**
```bash
rg -n "\\bTrim\\b" docs/tsl/syntax_book/function/tsl/base.md
rg -n "^######\s+FileExists" docs/tsl/syntax_book/function/tsl/resource.md
```
---
## 🔗 权威文档路径
- 语法手册总览:`docs/tsl/syntax_book/index.md`
- 语言基础:`docs/tsl/syntax_book/01_language_basics.md`
- 控制流与异常:`docs/tsl/syntax_book/02_control_flow.md`
- 函数:`docs/tsl/syntax_book/03_functions.md`
- 模块与命名空间:`docs/tsl/syntax_book/04_modules_and_namespace.md`
- 对象模型:`docs/tsl/syntax_book/05_object_model.md`
- 扩展语法:`docs/tsl/syntax_book/06_extended_syntax.md`
- 运行时与性能工具:`docs/tsl/syntax_book/07_debug_and_profiler.md`
- 新一代语法:`docs/tsl/syntax_book/08_new_generation.md`
- 函数库:`docs/tsl/syntax_book/function/tsl/index.md`
- 代码风格:`docs/tsl/code_style.md`
- 命名规范:`docs/tsl/naming.md`