Snobol4【1】 语言实战:Markdown【3】 列表嵌套解析实战
Markdown 是一种轻量级标记语言,常用于格式化文本。它广泛应用于博客、论坛和文档中。Markdown 支持多种列表格式,包括无序列表【4】和有序列表【5】。在复杂的文档中,列表可能会嵌套使用,形成多层嵌套的列表结构。本文将使用 Snobol4 语言,一种古老的编程语言,来解析 Markdown 列表,并处理嵌套列表【6】的情况。
Snobol4 简介
Snobol4 是一种高级编程语言,由 Calvin Mooers【7】 在 1962 年发明。它以其强大的字符串处理【8】能力而闻名,特别适合于文本处理【9】任务。Snobol4 的语法简洁,易于理解,但它的执行效率相对较低。
Markdown 列表格式
Markdown 列表的基本格式如下:
- 无序列表:使用 `-`、`` 或 `+` 开头,例如:
- 项目 1
- 项目 2
- 项目 3
- 有序列表:使用数字和句点开头,例如:
1. 项目 1
2. 项目 2
3. 项目 3
- 嵌套列表:使用缩进来表示列表的层级,例如:
1. 项目 1
- 子项目 1.1
- 子项目 1.2
2. 项目 2
- 子项目 2.1
snobol【2】4 解析 Markdown 列表
以下是一个使用 Snobol4 语言编写的示例程序,用于解析 Markdown 列表:
```snobol
:parse-list【10】
' (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
)
)
)
)
)
)
)
)
)
)
)
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
)
)
)
)
)
)
)
)
)
)
)
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
)
)
)
)
)
)
)
)
)
)
)
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
)
)
)
)
)
)
)
)
)
)
)
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
)
)
)
)
)
)
)
)
)
)
)
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
)
)
)
)
)
)
)
)
)
)
)
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
)
)
)
)
)
)
)
)
)
)
)
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
)
)
)
)
)
)
)
)
)
)
)
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
)
)
)
)
)
)
)
)
)
)
)
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
)
)
)
)
)
)
)
)
)
)
)
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
)
)
)
)
)
)
)
)
)
)
)
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
)
)
)
)
)
)
)
)
)
)
)
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
)
)
)
)
)
)
)
)
)
)
)
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
)
)
)
)
)
)
)
)
)
)
)
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
)
)
)
)
)
)
)
)
)
)
)
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
)
)
)
)
)
)
)
)
)
)
)
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
)
)
)
)
)
)
)
)
)
)
)
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
)
)
)
)
)
)
)
)
)
)
)
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
)
)
)
)
)
)
)
)
)
)
)
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
)
)
)
)
)
)
)
)
)
)
)
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
)
)
)
)
)
)
)
)
)
)
)
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
)
)
)
)
)
)
)
)
)
)
)
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
)
)
)
)
)
)
)
)
)
)
)
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
)
)
)
)
)
)
)
)
)
)
)
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
)
)
)
)
)
)
)
)
)
)
)
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
)
)
)
)
)
)
)
)
)
)
)
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
)
)
)
)
)
)
)
)
)
)
)
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
| (
Comments NOTHING