json文法

 

JSON文法:

 

json -> num|str|true|false|array|obj

obj -> {optmembers}

optmembers -> members|ε

members -> members,member|member

member -> key:value

value -> json|null

array -> [optelements]

optelements -> elements|ε

elements -> elements,element|element

element -> json|null

 

*斜体字为非终结符;粗体为终结符

 

消除左递归:

members -> memberA

A -> ,member|ε

 

elements -> elementB

B -> ,element|ε

 

最终文法:

json -> num|str|true|false|array|obj

obj -> {optmembers}

optmembers -> members|ε

members -> memberA

A -> ,member|ε

member -> key:value

value -> json|null

array -> [optelements]

optelements -> elements|ε

elements -> elementB

B -> ,element|ε

element -> json|null

 

终结符:

num str true false { } , key : null [ ] ε

 

非终结符:

json array obj optmembers members member A value optelements elements B element

posted @ 2020-04-27 16:11  StrongerBrother  阅读(252)  评论(0编辑  收藏  举报