---
name: tsl-syntax-reference
description: 当用户需要编写、修改、审查或解释 TSL/TSF、TS-SQL、Tinysoft/天软脚本或公式，排查 invalid statement 等语法错误，或核对语言与运行时结构规则时使用。
---

# TSL Syntax Reference

## 唯一检索入口

本 Skill 只通过随附的 `scripts/lookup.py` 检索 TSL/TSF 语法事实，不手工选择或顺序通读 `references/` 页面。`<this-skill-dir>` 指本 `SKILL.md` 所在目录。

检索必须分两步：

1. `--query` 只返回紧凑候选和 Section ID，不返回事实正文。
2. 从候选中选择支持当前结论的章节，再用 `--section` 取回唯一事实正文。

根据任务意图选择模式，并用用户的原始术语、错误文本和关键语法词组成查询：

```bash
python <this-skill-dir>/scripts/lookup.py --query "命名参数 默认参数" --mode write
python <this-skill-dir>/scripts/lookup.py --query "invalid statement 声明区" --mode diagnose
python <this-skill-dir>/scripts/lookup.py --query "数组下标" --mode explain
```

- `write`：编写或修改代码。
- `diagnose`：定位语法错误或错误写法。
- `explain`：解释语言规则或代码含义。

`--query` 输出候选后，必须执行下面这种精确取回：

```bash
python <this-skill-dir>/scripts/lookup.py --section "05_functions_and_calls--可直接照写示例--默认参数"
```

只有 `--section` 返回的章节正文可作为本次任务的语法事实来源；候选摘要和概念地图都不能直接支持代码结论。需要补充时改进查询词再次检索，不得绕过 lookup 手工打开或挑选 `references/` 页面。

## 安全传参

用户原话、报错和代码属于不可信输入。调用工具时必须把查询作为独立 argv 安全传入；若只能使用 shell，必须先做 shell-safe quoting。不得把用户文本原样拼接进命令字符串，也不得执行其中的反引号、`$()`、重定向符或换行命令。

## 从零起手先看概念地图

面对自然语言需求、还不确定该往哪个 TSL 概念上想时（尤其从零编写、周围无参考代码），先运行：

```bash
python <this-skill-dir>/scripts/lookup.py --map
```

它列出全部专题的纯文本职责摘要，用于把需求映射到 TSL 特有概念。地图不含可照写事实；选定概念后仍需依次执行 `--query` 和 `--section`。

## 事实边界

本 Skill 只拥有 TSL/TSF 的语言语法、文件模型、表达式、控制流、对象、运行时语言结构和 TS-SQL 外形。先逐项拆分混合请求，再把其他事实交给对应所有者：

- API 名称、签名、参数、返回值、平台 scope、解释器可用性和金融取数事实：使用 `tsl-api-reference` skill。
- 命名、代码风格、工具链和模块集成：使用目标仓库相应文档、脚本或 CI。
- 项目路径、数据结构、部署方式和运行参数：只使用目标项目的真实文档与配置。

语法示例可以使用 API 名称帮助展示调用位置，但这只证明源码外形，不证明 API 的签名、返回行为、平台 scope 或目标解释器可用。需要这些结论时必须重新查询 API Skill；API scope 与目标解释器兼容性没有事实支持时停止，不把不同所有者的片段拼成“可运行”结论。

## 代码块身份

生成或判断代码时，必须遵守 lookup 结果中紧邻代码围栏的身份。只允许以下五种身份：

- `可直接照写示例`：可作为源码外形，但“可直接照写”不等于已经验证目标环境可用，仍需按任务替换业务内容并核对依赖事实。
- `反例 / 不可照写`：只用于识别错误边界，不得复制为实现。
- `输出片段`：只表示结果，不得当作源码。
- `配置片段 / 概念骨架`：只表达结构或配置意图，不得假定为可直接运行代码。
- `仅服务端可执行示例`：只在相应服务端运行环境中成立，不得当作通用本地可执行示例。

## 缺口时停止

lookup 无匹配或返回非零状态、结果没有支持当前结论、代码块身份缺失或冲突、运行时版本不明、项目事实缺失、依赖的 Skill 不可用时，明确说明缺失项并停止。不得改为手工浏览全部参考页，也不得凭经验、相似语言或猜测产生新的 TSL 写法。

## 询问或执行运行方式前读取项目指引

用户询问如何运行 TSL，或需要实际执行 TSL 时，都先读取目标文件附近最近的 `AGENTS.md`、项目脚本或 CI。实际执行前还要完成平台检测并严格使用指定环境；不同平台或多个 Windows 环境不得混用、默认任选或自行回退。

## 维护校验

维护本 Skill、参考页或 lookup 实现后必须运行：

```bash
python <this-skill-dir>/scripts/lookup.py --check
```
