当前位置:  开发笔记 > 编程语言 > 正文

如何以编程方式将表达式括起来?

如何解决《如何以编程方式将表达式括起来?》经验,为你挑选了1个好方法。

我对一个简单的程序有一个想法,这将帮助我在C语言中使用运算符优先级.最困难的部分是括号表达式.例如,我想要这个:

*a.x++ = *b.x++

转换为:

((*(((a).(x))++)) = (*(((b).(x))++)))

我在这些步骤中手动完成的操作:

           *a.x++ = *b.x++
       *(a).(x)++ = *(b).(x)++
     *((a).(x))++ = *((b).(x))++
   *(((a).(x))++) = *(((b).(x))++)
 (*(((a).(x))++)) = (*(((b).(x))++))
((*(((a).(x))++)) = (*(((b).(x))++)))

以编程方式完成此操作的最佳方法是什么?我可以使用的解决方案吗?我更喜欢用PHP,C,C++,Python或Ruby来做这件事.

(这不是我的计划的全部想法,它只是第一步.)



1> Charlie Mart..:

您将需要某种能够理解运算符优先级的解析器.C的常用版本是Lexx/Yacc或flex/bison,最简单的方法是构造一个解析树.完成后,只需按照"预订"顺序浏览解析树,并在进入和离开节点时发出parens.

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有