non_terminal_1 : "[" [non_terminal_2 ["," non_terminal_2]*] "]" % 规定结果里要有最少一个non_terminal_2
non_terminal_2 : "{" non_terminal_3 "," non_terminal_4 "}" % 规定non_terminal_2是由 non_terminal_3和non_terminal_4组成
non_terminal_3 : terminal_1 ":" terminal_2 % 规定 non_terminal_3是 terminal_1 和 terminal_2组成的键值对
non_terminal_4 : terminal_3 ":" terminal_4 % 规定 non_terminal_4 是 terminal_3和 terminal_4组成的键值对
terminal_1 : /"key1"/ % 规定terminal_1是这样一个正则表达式 re.compile('"key1"')
terminal_2 : /"val1"/ % 规定terminal_2是这样一个正则表达式 re.compile('"val1"')
terminal_3 : /"key2"/ % 规定terminal_3是这样一个正则表达式 re.compile('"key2"')
terminal_4 : /"val2"/ % 规定terminal_4是这样一个正则表达式 re.compile('"val2"')