expression = product (+|-) product product = term (*|/) term term = number | variable | '(' expression ')'
要使用递归下降解析器解析该语法,我们基本上创建一个函数来表示每个元素:
expression(input) { product(input); assert(operator(input) == '-' || '+'); product(input); } product(input) { term(input); assert(operator(input) == '/' || '*'); term(input); } term(input) { if (next(input) == '(') expression(input); // ... }
我显然在这里简化了许多,但希望总体思路出现:表达式由 – 或 – 组合的产品组成.产品由/或*组合的术语组成.术语是括号中的数字或变量或表达式.我们调用一个函数来识别每个函数,所以当我们将括号中的表达式识别为术语时,我们使用间接递归 – 表达式() – > product() – > term() – >表达().
以上是大佬教程为你收集整理的c – 间接递归的实际应用全部内容,希望文章能够帮你解决c – 间接递归的实际应用所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。