(写自己语言的练手级应用)JSON(JavaScript Object Notation) 产生式(BNF)

 写自己的开发语言时,很多人都会拿JSON当第一个练习对象

开源net json FJSON 解析工具https://dbrwe.blog.csdn.net/article/details/107611540?spm=1001.2014.3001.5502

 

 ::=  | 
 ::= "{" [  ] "}"
 ::=  { ","  }
 ::=  ":" 
 ::= "[" [  ] "]"
 ::=  { ","  }
 ::=  |  |  |  | true | false | null
 ::= '"' characters '"'
 ::= integer | integer "." fraction | integer exponent
 ::= ""
              |  
 ::= 
 ::=  {  }
 ::= "." 
 ::= ("e" | "E") ["+" | "-"] 
 ::=  {  }
 ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" 
  

以上是JSON的简化产生式表示形式。其中,是最顶层的规则,可以是一个对象或一个数组。表示一个对象,由一对大括号包围,内部包含零个或多个成员(键值对)。表示成员列表,每个成员之间用逗号分隔。表示一个键值对,由键(字符串)和值组成。表示一个数组,由一对方括号包围,内部包含零个或多个元素。表示元素列表,每个元素之间用逗号分隔。表示一个值,可以是字符串、数值、对象、数组,或者是预定义的字面量值(true、false、null)。表示一个字符串,由双引号包围。表示一个数值,可以是整数、带小数部分的数或指数形式的数。表示字符串中的字符序列,表示任意Unicode字符(排除双引号、反斜杠和控制字符),表示一个整数,表示小数部分,表示指数部分,表示数字序列,表示0到9之间的数字。

在产生式(BNF)中,花括号{}表示其中的内容是可选的。具体来说,{}用于表示一个重复出现零次或多次的语法元素。在和其他规则中使用花括号,表示可以有零个或多个对应的成员、元素或其他语法元素。

例如,在JSON的产生式中,的定义为 { "," },其中"," 部分被放在花括号中。这意味着在一个对象中,可以包含零个或多个键值对,并通过逗号进行分隔。当存在多个键值对时,逗号后面必须跟着下一个键值对,但末尾的逗号是可选的。如果没有键值对,则花括号内部的内容为空,即零次重复。

CBScript 自定义脚本语言(源代码官网)https://blog.csdn.net/zanfeng/article/details/116431758?spm=1001.2014.3001.5501 CBScript 为自己的软件增加脚本编写功能并自定义APIhttps://blog.csdn.net/zanfeng/article/details/120029090?spm=1001.2014.3001.5501

你可能感兴趣的:(json,javascript,数学建模)