-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathREADME_ZH.ds
More file actions
75 lines (59 loc) · 3.3 KB
/
README_ZH.ds
File metadata and controls
75 lines (59 loc) · 3.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
[write-file "./readme_zh.md"
[article "DocScript" {
你是否有这样的需求?使用一种统一的格式来创建任意类型的文档。
那么你很幸运, DocScript 正好能够满足你的需求。
DocScript 是一门图灵完备的编程语言,它拥有专门的语法以方便处理长文本。
通过强大的 S 表达式和列表数据结构,每一个人都能创建自己的处理库,
以方便创建 Markdown, TeX 或者电子出版物,或者其他别的东西。
[b [string-append "注意:"
"当前版本的 DocScript 不稳定,"
"语法及标准库设施将有可能发生变动。"]]
[h2 "DocScript and DocSir" {
DocScript 是一门编程语言,它由语法规则和标准库组成。
尽管它已经有了足够高的可读性,但为了生成对应格式的文档,
我们仍然需要一个程序将其“翻译”为目标格式。
这个程序被叫做解释器。
DocSir 是一个 DocScript 解释器的实现。
通过文档,任何一个人都可以用任何一门语言创建他们自己的解释器实现。
DocScript 拥有自己的版本号。
不同的版本存在语法以及标准库上面的差异。
但高版本始终兼容低版本。
任何一个解释器实现都支持某一个版本的 DocScript 以及其历史版本。
DocSir 始终支持最新版本的 DocScript。
[b "注意:在 1.0.0 发布之前,低版本兼容并不保证"]
}]
[h2 "快速导览" {
DocScript 是一门 Lisp 方言(应该算是)。
其核心语法是 S 表达式,但 DocScript 使用方括号代替圆括号。
[h3 "核心语法" {
\[operator oprands\], 这是 DocScript 最核心的语法,例子:
\[+ 3 4\] (in python: 3 + 4), \[message "hello world"\] (in python: print("hello world"))
\'symbol, 符号是 Lisp 中非常重要的一种类型,
为了方便创建它,我们有一种专门的语法。
(elem elems), 列表是 Lisp 中唯一的复杂数据结构。
我们使用圆括号来创建一个列表。
\{Text List\}, 这是 DocScript 中的特殊语法,所有在花括号中的内容
(除了 S 表达式) 都会被解析为字符串,而空白行会被解析为 'LineEnd 的符号,
处理这个列表,我们可以很轻易的得到一份目标格式。
}]
[h3 "数据类型" {
DocScript 只有六种数据类型。
[ulist (
"符号\t字面值: 'identifier, 'symbol "
"数字\t字面值: 3.0, 4, -2"
"字符串\t字面值: \"A line of string\""
"布尔值\t字面值: #t, #f"
"列表\t字面值: (3.0 #t 'symbol \"text\")"
"过程\t字面值: [lambda x x]"
)]
}]
[h3 "标准库与特殊形式" {
关于标准库与特殊形式,请参阅 document/interpreter.txt
}]
}]
[h2 "贡献代码" {
在我冻结第一个稳定版本 1.0.0 之前,本项目暂且不接受任何贡献。
欢迎试用 DocScript,并留下你的意见和提出遭遇的问题。
}]
}]
]