2017-04-17 24 views
2

我想做一个java程序,我自己的格式解析到java文件。例如,当我写与如何解析自己的语言到java文件

show("Hello World"); 

一个文件,这个文件保存为hello。[my_own_extension]从我的程序和出口类似的东西阅读,

class Hello { 
public static void main(String[] args) { 
    System.out.println("Hello World"); 
    } 
} 

我看了网上很多文章。但他们正在写关于javacc,编译技术,词法分析等等。但唯一的事情,我想要做的就是
1.阅读文件
2.测试文件是否匹配我的规则
3.写(输出)java文件和.class文件
我该怎么办这个?
我可以做到这一点通过以下方式,
1.使用java.io和java.nio的包(读取或写入文件)
2.写我自己的逻辑,我的规则(可以是简单的Java代码)
我不是说,我正在创建一种新的编程语言,而我不是一个java大师。我只是想知道。

+0

您会像阅读文本文件一样阅读文件。假设您将文件转换为.me2,那么在读取文件时您将使用“theNameOfYourFile.me2”。 – Sedrick

+2

这听起来像你想建立某种解析器/编译器。这可能是一个太宽泛的问题。 –

+0

@TimBiegeleisen我可以编写我自己的程序来创建解析器而不使用任何工具,如javcc? –

回答

1

我可以编写自己的程序来创建解析器而不使用任何工具(如javcc)吗?

是的,你可以。事实上,在我的荣誉课程(近40年前)中,讲师为我们设定了一项任务,从头开始为Pascal实现递归下降解析器。 IIRC这是很多工作。

但是,如果您认真对待它,解析器生成器会为您提供更好的解析器,从而减少很多工作量。

我上面提到的练习是关于编译器构建的大约10周“荣誉”级课程的一部分。所以,不要设想你必须阅读/学习从头开始实施解析器,而不需要阅读/学习使用javacc。


1 - 一台电脑可以做,一个人...或人类的足够大的团队的任何任务......可以做的一样好。这可能需要花费不切实际的时间,并花费不切实际的金钱,但这是可能的。在这个的情况下,这是一个现实的任务。这就是在发明first parser generators之前所有解析器的创建过程。事实上,即使在此之后,PGs也需要很长时间才能赶上。

+0

学习javacc或解析器生成器比从头创建更合适吗? –

+0

这取决于你的目标是... –