这个语法可以解析JSON对象吗?

问题描述 投票:0回答:1

这个语法可以解析JSON对象吗?

d= { kvp }   
kvp= key : value  | key : value , kvp  
value= num | str | true | false  | array | d   | null
array= [] | [ element ]   
element= value | value , element
key= num | str
json yacc lex context-free-grammar
1个回答
1
投票

它看起来不错,但正如Chris在评论中所说,所有JSON配置文件通常都包含null, trur, false ...,这里缺少。

看看这个语法(摘自json.org):

json:价值;

obj:'{'pair(','pair)*'}'| '{''}';

对:STRING':'价值;

数组:'['value(','value)*']'| '['']';

值:STRING | NUMBER | obj |数组| '真'| '假'| '空值' ;

STRING:'''(ESC | SAFECODEPOINT)*'“';

片段ESC:'\'([“\ / bfnrt] | UNICODE);

片段UNICODE:'你'HEX HEX HEX HEX;

片段HEX:[0-9a-fA-F];

片段SAFECODEPOINT:〜[“\\ u0000- \ u001F];

NUMBER:' - '? INT('。'[0-9] +)? EXP? ;

片段INT:'0'| [1-9] [0-9] *;

//没有前导零

片段EXP:[Ee] [+ - ]? INT;

// - 因为 - 表示[...]内的“范围”

WS:[\ t \ n \ r] + - >跳过;

© www.soinside.com 2019 - 2024. All rights reserved.