前言
上个月买了本《两周自制脚本语言》,虽然我是不信这种鬼话的。买了后也不信,两周的时间是假的,但是知识还是有的。这一篇不会实现任何匹配,而是如何用数学点的方法定义自己要求的语言。
BNF范式是一种描述编程语言的数学方法,可读性接近自然语言。
BNF规则
- ::= 左边是非终结符或元变量,右边是终结符——一些事先规定好的符号,这些符号可能是简单的单词或者在其他BNF式子中作为非终结符。有些BNF式子中是用冒号代替 ::=
- 双引号中的内容表示符号本身的意思,之所以用双引号包上是因为部分符号在BNF中表达特定的意思。看BNF需要把双引号拿掉再看。有些BNF式子中是用的引号代替双引号
- 双引号外的内容表示语法部分
- 括号中的内容是必选项。有些BNF式子是用的尖括号
- 方括号中的内容是可选项
- 花括号中的内容可以是零次或者许多次
- 竖线表示左右任选一项
- 有的单词加引号表示原本的意思,有的不用引号也表示原本的意思(好不严谨的样子)
变量var
这里指变量的命名,即标识符!
变量开头不能是数字,可以是字母和下划线。变量其他字符可以是数字、字母、下划线