# TSL 语法入口

```json
{
  "AGENT_QUICK_INDEX": {
    "READ_THIS_FIRST": "00_agent_index.json",
    "hello_world": "01_quickstart.md#L182",
    "function": "05_functions_and_calls.md#L103",
    "class": "08_objects_and_classes.md#L98",
    "naming": "../naming.md#L42",
    "tsf_filename": "02_core_model.md#L38",
    "loop": "07_control_flow.md#L89",
    "if": "07_control_flow.md#L54",
    "fix_a=1_error": "11_pitfalls.md#L45",
    "fix_class_error": "11_pitfalls.md#L34",
    "token_saving": "80-90% reduction vs reading full docs"
  }
}
```

遇到不确定时：先按"按任务跳转"做语法层分流；写最短骨架看 [01_quickstart.md](01_quickstart.md)，判断文件模型看 [02_core_model.md](02_core_model.md)，判断表达式看 [06_expressions_and_operators.md](06_expressions_and_operators.md)，判断类/对象看 [08_objects_and_classes.md](08_objects_and_classes.md)，核对反例和负向边界看 [11_pitfalls.md](11_pitfalls.md)；如果问题已经超出语法层，回到 TSL 总入口 [../index.md](../index.md)。

本页只决定语法层第一跳。不要顺序读完整套语法文档，不要把本页当代码事实页。

## 按任务跳转

| 任务信号                                                                  | 入口                                                                                       | 阻断条件                       |
| ------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ | ------------------------------ |
| 写最短骨架、核对语言核心事实                                              | [01_quickstart.md](01_quickstart.md)                                                       | 文件模型不明                   |
| 判断 `.tsl` / `.tsf`、顶层语句区、声明区、文件模型                        | [02_core_model.md](02_core_model.md)                                                       | 用户交付目标不足以判断后缀     |
| 给变量、函数、类型、unit 或 `.tsf` 文件取名                                | [../naming.md](../naming.md)                                                               | 文件模型或顶层声明规则不明     |
| 写值、数组、字符串、字符串编码边界                                        | [03_values_and_literals.md](03_values_and_literals.md)                                     | 需要未记录的字面量或编码写法   |
| 写变量、常量、显式声明                                                    | [04_variables_and_constants.md](04_variables_and_constants.md)                             | 变量生命周期或作用域不明       |
| 写 `function` / `procedure`、参数、默认参数、命名参数、变参               | [05_functions_and_calls.md](05_functions_and_calls.md)                                     | 需要未记录的调用外形           |
| 写赋值、比较、条件表达式、较新表达式、运算符边界                          | [06_expressions_and_operators.md](06_expressions_and_operators.md)                         | 需要靠相似语言推断运算符       |
| 写条件、循环、异常控制                                                    | [07_control_flow.md](07_control_flow.md)                                                   | 块结构或跳转语义不明           |
| 写类、继承、property、静态字段、构造函数                                  | [08_objects_and_classes.md](08_objects_and_classes.md)                                     | 需要未记录的对象模型写法       |
| 写单元 (unit) / uses                                                      | [09_units_and_scope.md](09_units_and_scope.md)                                             | 查找路径、模块边界或文件名不明 |
| 写运行时环境参数、`sysParams[...]`、`with array(...)`、网格调用或全局缓存 | [10_runtime_context_and_with.md](10_runtime_context_and_with.md)                           | 需要项目运行时事实             |
| 核对高频误写 / 反例 / 负向边界                                            | [11_pitfalls.md](11_pitfalls.md)                                                           | 反例没有指向正确专题           |
| 写数组创建、键表、集合运算（+/-/\*）                                      | [12_matrix_and_collections.md](12_matrix_and_collections.md)                               | 需要未记录的数据结构操作       |
| 写结果集过滤专题                                                          | [13_resultset_and_filters.md](13_resultset_and_filters.md)                                 | 结果集来源或字段结构不明       |
| 写 TS-SQL 专题                                                            | [14_ts_sql.md](14_ts_sql.md)                                                               | 需要未记录的 SQL 外形          |
| 看调试与性能分析器专题                                                    | [15_debug_and_profiler.md](15_debug_and_profiler.md)                                       | 需要项目执行环境               |
| 看注释、条件编译、编译选项或词法边界                                      | [16_lexical_structure_and_compile_options.md](16_lexical_structure_and_compile_options.md) | 解释器版本或编译选项不明       |
| 看显式类型、转换规则、复数                                                | [17_types_and_conversions.md](17_types_and_conversions.md)                                 | 类型转换结果无文档事实         |
| 看 `external`、DLL 与多线程                                               | [18_external_calls_and_threads.md](18_external_calls_and_threads.md)                       | 外部库、线程边界或平台不明     |
| 看 `namespace`、`Libpath`、unit 运行时、查找路径                          | [19_namespace_libpath_and_unit_runtime.md](19_namespace_libpath_and_unit_runtime.md)       | 部署路径或命名空间事实缺失     |
| 看对象运行时、自省、反射、弱引用                                          | [20_object_runtime_and_introspection.md](20_object_runtime_and_introspection.md)           | 需要未记录的反射能力           |
| 看运行时内置对象                                                          | [21_builtin_runtime_objects.md](21_builtin_runtime_objects.md)                             | 内置对象构造或成员无文档事实   |
| 看矩阵进阶专题                                                            | [22_matrix_deep_dive.md](22_matrix_deep_dive.md)                                           | 矩阵语义或维度规则不明         |
| 看 `FMArray`                                                              | [23_fmarray.md](23_fmarray.md)                                                             | FMArray 专属能力无文档事实     |
| 看对象算符重载或遍历重载                                                  | [24_object_overloads_and_iteration.md](24_object_overloads_and_iteration.md)               | 重载入口或调用语义不明         |

## 常见歧义边界判断

### 数组 vs 矩阵

- **用 12（数组基础）** 如果：创建数组 `array()`、键表操作、集合运算（`+`/`-`/`*`）、基础索引
- **用 22（矩阵进阶）** 如果：矩阵维度操作、转置、线性代数、矩阵专属语义

### 类基础 vs 重载

- **用 08（类基础）** 如果：类定义、继承、property、静态字段、构造函数
- **用 24（对象重载）** 如果：运算符重载（`+`/`-`/`*`/`[]`）、for 迭代器重载

## 证据规则

- 页头 `是否可直接用于生成代码` 只做页面级粗判断；落代码时以块级 `代码块身份` 为准。
- `代码块身份` 固定只用四种值：`可直接照写示例`、`输出片段`、`反例 / 不可照写`、`配置片段 / 概念骨架`。
- 普通语法专题页的 `遇到不确定时` 先按候选页继续判断，仍不命中再回本语法入口页；本页例外，必须先按"按任务跳转"分流。

## 停止条件

- 文件模型会影响正确性且用户交付目标不足以判断 `.tsl` / `.tsf`。
- 命中项需要未记录语法、运行时事实或项目执行事实。
- 只有反例、输出片段或概念骨架可用，没有 `代码块身份：可直接照写示例`。
- 任务信号属于数据仓库函数、模块集成、函数库查询或项目执行边界。

## 入口禁止项

- 不要跳过"按任务跳转"直接顺序读完整套。
- 不要把本入口页当成可直接生成代码的语法事实页。
- 不要从多个专题页拼接未写入文档的新骨架；生成前优先使用单页里的可直接照写示例。
- 不要把数据仓库函数查询、模块集成或项目执行问题留在语法层处理。

## 切换到别的层

- 数据仓库金融函数：使用 `tsl-api-reference` skill
- 模块 / 集成 / 互操作：见 [../modules/index.md](../modules/index.md)
- 函数库 / API 查找：使用 `tsl-api-reference` skill（已知名走 `--name`，未知名走 `--kw`）
