使用表达式解析器最基础的方式,是指定起始位置与初始状态,让其解析至指定终点。
该函数在当前缓冲区从 start 开始解析符号表达式,不越过 limit。它会在 limit 位置或满足下述特定条件时停止,并将光标移至停止位置。 函数返回一个解析状态 描述停止位置的解析状态。
若第三个参数 target-depth 非 nil,当括号深度等于 target-depth 时解析停止。深度初始为 0,或由 state 指定。
若第四个参数 stop-before 非 nil,遇到任意符号表达式起始字符时解析停止。若 stop-comment 非 nil,在非嵌套注释开始后停止。
若 stop-comment 为符号 syntax-table,则在非嵌套注释或字符串开始后、或非嵌套注释或字符串结束后停止,以先发生者为准。
若 state 为 nil,则假定 start 位于括号结构顶层,例如函数定义开头。若需要在结构中间继续解析,则必须传入描述解析初始状态的 state 参数。
此前调用 parse-partial-sexp 返回的结果即可直接使用。