解析状态(parser state)是一个(当前为)包含十一个元素的列表,用于描述语法解析器通过 parse-partial-sexp(see 底层解析)解析缓冲区中指定起点到终点文本后的解析器状态。
syntax-ppss 等解析函数
(see 获取位置的解析状态)
同样会返回解析状态作为结果。parse-partial-sexp 可接收解析状态作为参数,以继续解析。
nil。
nil。
nil。更精确地说,该值为结束该字符串的字符;若应由通用字符串定界符结束则为 t。
t(任意注释风格;see 语法标记);处于可嵌套注释内时为注释嵌套层级。
t。
nil;‘b’ 型注释为 1;‘c’ 型注释为 2;应由通用注释定界符结束的注释为 syntax-table。
nil。
nil。
传入 parse-partial-sexp 用于继续解析的状态中,元素 1、2、6 会被忽略。元素 9 和 10 主要供解析器代码内部使用。
以下函数可从解析状态中提取更多有用信息:
该函数从解析状态 state 中提取本次解析扫描到的、处于语法结构顶层的最后位置。“顶层(At top level)”指不在任何括号、注释或字符串内部。
若 state 对应的解析已到达顶层位置,则返回值为 nil。
若状态 state 对应的扫描终点位于字符串内则返回 string,位于注释内则返回 comment,否则返回 nil。