2016-06-30 20 views
1

HereのsrcMlのチュートリアルでは、コマンドラインでコマンドを使用してファイルをxmlファイルに変換しています。EclipseでsrcMLを使用するにはどうすればよいですか?

私は何の関数を使用する必要があります

をCファイルを取り、XMLファイルに変換するJavaプログラムを作りたいですか?

前のチュートリアルでは、$ srcml rotate.cpp(これはrotate.cppをXMLに変換する)のようなスクリプトコマンドを実行しています。

私は同じプログラムをJavaプログラムで使用できるように、同じジョブを実行する同様のJava関数が必要です。

私はそれの例を見つけることができません。どんな助け?

私の質問を理解していただければ幸いです。

ありがとうございます。

+0

なぜあなただ​​けSRCMLを実行するためのサブプロセスをforkするためのJavaコードを記述して、生成されたXMLを読んでいませんか? –

+0

お返事ありがとうございました サンプルコードを私に提供できますか? サブプロセスをフォークしてSRCMLを実行するコード – user3824825

+0

* how *を無視し、* why *を考慮に入れることができます。これで何をしたいですか?まず、SRCMLはプリプロセッサディレクティブを含むCコードを解析しないと思われます。最初にCコードを前処理しなければならないかもしれませんが、最終的な問題をより困難にするかもしれません。第二に、あなたは本当にパースツリーを使って多くを行うことはできません。私のエッセイ、「解析後の人生」を参照してください。http://www.semdesigns.com/Products/DMS/LifeAfterParsing.html –

答えて

2

私は、任意のユーザと適用できるように、それを修正し、それをテストしてきた私は、同じ問題に直面し、私はSrcMLの開発チームにEメールを送信し、彼らは私にデモ


を送信MS Windowsの8.1と、ここでのサンプルコード

public static void main(String args[]) 
{ 

    try 
    { //this is the file which we want to get its xml representation 
     String javaFileName = "C:\\Users\\Anosa\\Desktop\\tests\\BookController.java"; 
     //use ProcessBuilder class and give it the arguements 
     ProcessBuilder processBuilder = new ProcessBuilder("srcml", javaFileName); 
     //spicify the directory of [srcml.exe] 
     processBuilder.directory(new File("C:\\Program Files (x86)\\srcML 0.9.5\\bin")); 
     //create the process 
     Process process = processBuilder.start(); 
     //let's read the output of this process[ie: the xml data] 
     InputStream inputStream = process.getInputStream(); 
     int i; 
     StringBuilder xmlData = new StringBuilder(); 
     while ((i = inputStream.read()) != -1) 
     { 
      xmlData.append((char) i); 
     } 
     System.out.println(xmlData.toString()); 
    } catch (IOException e) 
    { 
     System.out.println("ERROR: " + e.getMessage()); 
    } 

} 

だ私はこれがあなたを楽しんで作品を願ってい

関連する問題