2017-04-17 9 views
2

自分のフォーマットをjavaファイルに解析するJavaプログラムを作成しようとしています。例えば、私は[my_own_extension]。自分の言語をJavaファイルに構文解析する方法

show("Hello World"); 

とハローとしてこのファイルを保存すると、ファイルを書いて、私のプログラムと輸出からそのような何かを読んで、

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

私はウェブ上で多くの記事を読みます。しかし、彼らはjavacc、コンパイル手法、レキシカル分析などについて書いています。しかし、私がやりたいだけのものは
1.ファイルが私のルールで
3.書き込み(出力)の.javaファイルと.classファイルのファイル
私はどのように行うことができます一致するかどうかを
2.テストファイルを読むていますこの?
私は2
(ファイルを読み書きするには)次のように、
1.使用java.ioやjava.nioのパッケージに私のルールのための私自身のロジックを記述することを行うことができます(単純なJavaコードであってもよい)
私は新しいプログラミング言語を作成しています。私はJavaの専門家ではありません。ただ知りたいだけです。

+0

あなたはテキストファイルを読むのと同じようにファイルを読むでしょう。ファイルextを.me2とし、ファイルを読むときに "theNameOfYourFile.me2"を使用するとします。 – Sedrick

+2

ある種のパーサ/コンパイラをビルドしたいと思うようです。これは広すぎる質問かもしれません。 –

+0

@TimBiegeleisen javccのようなツールを使わずにパーサを作成する独自のプログラムを書くことはできますか? –

答えて

1

javccなどのツールを使用せずに独自のプログラムを作成してパーサーを作成することはできますか?

あります。です。確かに私の名誉の授業(約40年前)では、講師がPascal用の再帰的降下パーサーをゼロから実装する課題を設定しました。 IIRCそれは多くの仕事でした。

しかし、あなたが真剣であれば、パーサージェネレーターは、より少ない労力でより良いパーサーを提供します。

私が上で述べた練習は、コンパイラ構築の〜10週間の「名誉」レベルコースの一部でした。だから、あなたが読んだり、javaccを使うことを学ぶよりも、最初からパーサーを実装するために読んだり、覚えたりしなければならないと想像してはいけません。


1 - コンピュータは、人間...または人間の十分な大きさのチームを行うことができます任意のタスクが...同様に行うことができます。それは非現実的に長い時間がかかり、非現実的な金額の費用がかかりますが、可能です。 このの場合、現実的な作業です。これは、first parser generatorsが発明される前にすべてのパーサーが作成された方法です。事実、それ以降も、PGsが追いつくのに時間がかかりました。

+0

javaccやパーサジェネレータを学習する方が最初から作成するよりも適切ですか? –

+0

それはあなたの目標が何であるかによって異なります... –

関連する問題