写自己的开发语言时,很多人都会拿JSON当第一个练习对象
开源net json FJSON 解析工具https://dbrwe.blog.csdn.net/article/details/107611540?spm=1001.2014.3001.5502
<json> ::= <object> | <array>
<object> ::= "{" [ <members> ] "}"
<members> ::= <pair> { "," <pair> }
<pair> ::= <string> ":" <value>
<array> ::= "[" [ <elements> ] "]"
<elements> ::= <value> { "," <value> }
<value> ::= <string> | <number> | <object> | <array> | true | false | null
<string> ::= '"' characters '"'
<number> ::= integer | integer "." fraction | integer exponent
<characters> ::= ""
| <character> <characters>
<character> ::= <any-Unicode-character-except-"-or-\-or-control-character>
<integer> ::= <digit> { <digit> }
<fraction> ::= "." <digits>
<exponent> ::= ("e" | "E") ["+" | "-"] <digits>
<digits> ::= <digit> { <digit> }
<digit> ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
以上是JSON的简化产生式表示形式。其中,<json>
是最顶层的规则,可以是一个对象或一个数组。<object>
表示一个对象,由一对大括号包围,内部包含零个或多个成员(键值对)。<members>
表示成员列表,每个成员之间用逗号分隔。<pair>
表示一个键值对,由键(字符串)和值组成。<array>
表示一个数组,由一对方括号包围,内部包含零个或多个元素。<elements>
表示元素列表,每个元素之间用逗号分隔。<value>
表示一个值,可以是字符串、数值、对象、数组,或者是预定义的字面量值(true、false、null)。<string>
表示一个字符串,由双引号包围。<number>
表示一个数值,可以是整数、带小数部分的数或指数形式的数。<characters>
表示字符串中的字符序列,<character>
表示任意Unicode字符(排除双引号、反斜杠和控制字符),<integer>
表示一个整数,<fraction>
表示小数部分,<exponent>
表示指数部分,<digits>
表示数字序列,<digit>
表示0到9之间的数字。
在产生式(BNF)中,花括号{}
表示其中的内容是可选的。具体来说,{}
用于表示一个重复出现零次或多次的语法元素。在<members>
、<elements>
和其他规则中使用花括号,表示可以有零个或多个对应的成员、元素或其他语法元素。
例如,在JSON的产生式中,<members>
的定义为<pair> { "," <pair> }
,其中"," <pair>
部分被放在花括号中。这意味着在一个对象中,可以包含零个或多个键值对,并通过逗号进行分隔。当存在多个键值对时,逗号后面必须跟着下一个键值对,但末尾的逗号是可选的。如果没有键值对,则花括号内部的内容为空,即零次重复。文章来源:https://www.toymoban.com/news/detail-496184.html
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文章来源地址https://www.toymoban.com/news/detail-496184.html
到了这里,关于(自己动手开发自己的语言练手级应用)JSON(JavaScript Object Notation) 产生式(BNF)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!