ZGLanguage可以通过配置,对各种编程语言进行解析。
和别的语法解析器不同的是,ZGLanguage解析的结果不是语法树,而是扁平化的二维表结果,目的是让用户更加方便地使用解析结果。
另外,ZGLanguage可以对每个解析节点进行自定义标注,使得解析结果更容易分析使用。
举例说明ZGLanguage的“扁平化”和“可标注”特性:
# 解析内容:
{
name : '张三',
age : 23
}
# 解析配置 :
__DEF_STR__ __NAME__
<1,100>
[1,1]ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_??
[0,100]ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_??
__DEF_STR__ __INT__
<1,100>
[1,100]0123456789
__DEF_SUB_PATH__ __STRING__
1 : 左引号 | '
: 内容 | __ANY__
: 右引号 | '
__DEF_PATH__ __DICT__
1 : 左括号 | {
N : key | __NAME__
: 冒号 | :
: int_val | __INT__
: str_val + __STRING__
e : 逗号 | ,
1 : 右括号 | }
# 解析结果 :