8.13.0.4
5.9
“”(syntax object)是Racket编程语言构建其语言的基石。
5.9.1 ,卩?,?
“”其实就是通俗意义上的“代码”,而“代码”究其本质而言是封装了“词法信息”和“位置信息”的“数据”。“卩”(identifier)可以看作是“”的极简单特例。
卩为古活字
为新造字
卩:节的古字,本意是“瑞信,古代出使等用作凭证之物”,引申为“语法,包含了上下文信息的数据”;
厂:工厂,容器,内容。
5.9.2 位置信息:,、,,
为新造字
为新造字
为新造字
为新造字
为新造字
止:本意是“足”,在此为“地址”的意思;
:第几列,仿经字得造;
:第几行,仿纬字得造;
:第几位;
5.9.3 转化:,,、
“数据”我们用单字“文”来表示,此如?、?、?、句?、勺?等数据结构所构造出的数据都是“文”。 “文”添加上“词法信息”和“位置信息”就组成了“”,而“”剥离掉“词法信息”和“位置信息”就余下“文”了。
为新造字
为新造字
为新造字
为新造字
:+解各取偏旁得造;
:+各取偏旁得造;
:+文各取偏旁得造;
:文+各取偏旁得造;
Examples:
5.9.4 基础例程
(require ming/racket/base) | package: ming |
汉字化
汉字化
汉字化
卩? : = identifier?
汉字化
: elem + 地址,比如是文件路径 = syntax-source
汉字化
: elem + 所在文件的具体哪一行(纬是横向的,参见“纬线”一词) = syntax-line
汉字化
: elem + 所在文件的具体哪一列(经是竖向的,参见“经线”一词) = syntax-column
汉字化
: elem + 所在文件的第几位 = syntax-position
汉字化
: elem + 所占用的长度(从0算起) = syntax-span
汉字化
汉字化
汉字化
汉字化
: elem + 化 = syntax->list
汉字化
: elem + 化文(将转化成文(原料数据)) = syntax->datum
汉字化
: elem + 文化 = datum->syntax
汉字化
汉字化
汉字化
汉字化
汉字化
汉字化
汉字化
汉字化
= identifier-prune-lexical-context
汉字化
= identifier-prune-to-source-module
汉字化
汉字化