编写代码美化工具

9
我想写一个代码美化程序,考虑使用Ruby来完成。有人能告诉我如何入手吗?我看过很多在线的代码美化程序,但从未见过任何关于如何编写此类程序的教程。对于从未进行过编写编译器、解析器等项目的人来说,这是一个非常具有挑战性的任务吗?(是否有其他更适合此类任务的语言,不包括C/C++?)

在这个网站上:Ruby的代码美化器。rubyBeautifier - germanlinux
2个回答

2
Python具有一个有趣的功能——它向脚本公开了自己的解析器。有一些示例使用抽象语法树(AST)进行漂亮打印。
我不知道Ruby是否以这种方式向其脚本公开了自己的解析器,但是在Ruby中编写了用于Ruby的解析器,在这里

2

嗯...我认为最初的步骤是你为任何项目所做的。

编写需求清单。 描述您喜欢的程序用户界面,不会阻止您满足这些要求。 现在,您可以编写更多“代码”设计,并选择最容易实现该设计的语言。

以下是我脑海中的一些要求:

  • 支持这些语言的代码美化:Ruby、Python、Perl
  • 输出代码与输入完全相同
  • 输出具有一致的制表符/空格使用
  • 输出具有一致的函数命名约定
  • 输出具有一致的变量命名约定
  • 输出具有匹配的大括号和缩进

您可以制作尽可能多的列表,这是您的程序。 ;p 我开玩笑说 Perl,但我认为每种您支持的语言都会增加更多的工作。


+1. 这完全取决于找到您的需求,然后看哪个工具最符合这些需求,就像解决任何问题一样。例如,“我想学习Ruby”这样的需求可能与其他需求同样重要,并朝着那个方向倾斜。 :) - Roger Pate
请问我需要使用哪些工具?我是否需要使用像lex和yacc这样的工具,还是它们打算用于其他用途?我确实在某个地方读到过,需要将代码解析成标记或类似的东西,然后才能处理它,但这就是我所知道的全部。谢谢。 - Mridang Agarwalla
分词一定是您程序的一部分。看看Germanlinux链接到的rubyBeautifier,它不是一个很长的程序。它使用正则表达式,这对于这个非常完美。它们很难学,但非常有用。 我不懂Ruby,但看起来您可以在字符串上使用.split(delimiter)函数将其切成标记。不过,正则表达式可能是最好的选择。 - axus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接