Parsing 这叫什么,怎么读?(方案解析)
目前,我正在学习如何用Java解析Scheme。下面是基本列表(我不知道它的正式名称是什么)编辑:语法Parsing 这叫什么,怎么读?(方案解析),parsing,scheme,Parsing,Scheme,目前,我正在学习如何用Java解析Scheme。下面是基本列表(我不知道它的正式名称是什么)编辑:语法 exp -> ( rest | #f | #t | ' exp | integer_constant | string_constant | identifier rest -> ) | exp+ [ . exp ] ) 我的问题是:这个列表叫什么,比如它的正式名称是什么?“解析列表”?编辑:根据评论,这叫做
exp -> ( rest
| #f
| #t
| ' exp
| integer_constant
| string_constant
| identifier
rest -> )
| exp+ [ . exp ] )
我的问题是:这个列表叫什么,比如它的正式名称是什么?“解析列表”?编辑:根据评论,这叫做语法
怎么读呢?我猜表达式位于左括号和右括号之间,例如:(exp)
另外,我猜行exp->(rest
和rest->)
,#f
,#t
,'exp
,整数常量
,字符串常量
,标识符
代替前面示例中的表达式。例如:(#t)
列表中的最后一项是|exp+[.exp])
,我想这是第一个右括号右侧的另一个表达式,比如前面的例子:((#t)exp)
最后,这个位[.exp]
,括号中只是说它是可选的
如果我错了,请纠正我。这叫做语法。写语法有很多不同的语法,但它们都非常相似 在这里,
->
可以被理解为“是”、|
可以被理解为“或”、+
可以被理解为一个或多个,[]
可以被理解为“可选”。这里使用的其他符号只是代表它们自己。所以这个语法可以这样读:
- 左括号后接“rest”(参见第2节)
- 或者一个紧跟字母f的哈希标记
- 或者一个紧跟字母t的散列标记
- 或者一个单引号后跟一个表达式
- 或整数常量(如
)123
- 或字符串常量(如
)“foo”
- 或标识符(如
)foo
- 右括号
- 或一个或多个表达式,可选后跟一个点和另一个表达式,后跟一个右括号
所以
foo
是一个表达式(因为标识符是表达式),()
是一个表达式(因为)
是一个“rest”和(rest
是一个表达式,(foo)
是一个表达式(因为foo
是一个表达式,exp)
是一个“rest”和(rest
是一个表达式)等等。它被称为“语法”。特别是,有一些程序(称为“语法分析器生成器”或“编译器编译器”),在给定语法的情况下,可以为您创建语法分析器。有趣的名称,谢谢!语法分析器生成器的观点很好,但我的语法推导正确吗?非常详细的帖子!我完全理解!