2015-07-21 43 views
0

我是一個新手Java程序員。我想了解Xtend template的工作情況。我已經讀過這些模板可以用來從一個簡單的C程序生成一個java代碼。可能有人請給我一個想法如何簡單的C程序,如下圖所示,可以轉換成Java程序..如何在C Hello World中使用Xtend模板?

#include<stdio.h> 

    main() 
    { 
     printf("Hello World"); 
    } 

的模板的Xtend看起來是這樣的:

 def someHTML(String content) ''' 
    <html> 
    <body> 
     «content» 
    </body> 
    </html> 
''' 

Ç

+1

你的問題有點不清楚。你想生成C代碼,對吧?要生成hello world程序,只需將其內容放入模板中並將其寫入控制檯(使用''println'''')或將其寫入文件。 –

+0

@FranzBecker:非常感謝您的回覆:) Hello world是一個例子。我真正的意思是任何信息,我可以更多地閱讀Xtend。由於官方文件沒有很多例子。我想了解Java tamplytes的語法。你可能會提出一些建議嗎? – Goldengirl

回答

1

一個簡單的例子可能是這樣的:

package com.example 

class HelloWorld { 

    def static void main(String[] args) { 
     val instance = new HelloWorld 
     println(instance.generateC) 
    } 

    def String generateC() ''' 
     #include<stdio.h> 

     main() 
      intf("Hello World"); 
     } 
    ''' 

} 

這將打印g將代碼嵌入您的控制檯。 您還可以生成一個文件,例如:

def static void main(String[] args) { 
    val instance = new HelloWorld 
    val code = instance.generateC 
    val file = new File("helloworld.c") 
    Files.write(code, file, Charsets.UTF_8) 
    println("Generated code to " + file.absolutePath) 
} 

的官方文檔可以在這裏找到:https://eclipse.org/xtend/documentation/203_xtend_expressions.html#templates也有一些博客文章和StackOverflow上圍繞這一話題的問題也是如此。

您也可以在Xtext文檔中找到信息,因爲Xtend也用於代碼生成,例如, http://www.eclipse.org/Xtext/documentation/103_domainmodelnextsteps.html#tutorial-code-generation

+0

再次感謝您。我試着運行你的程序,但它給了我一個錯誤,說「選擇不包含主類型」。 :( – Goldengirl

+0

擴展程序與其中的模板.. – Goldengirl

+1

如果你有正確的Xtend安裝在你的Eclipse IDE中,你可以簡單地選擇「Run As - Java Application」。另一個帶有截圖的stackoverflow問題:http://stackoverflow.com/問題/ 16225177/error-selection-does-not-contain-a-main-type - 讓我知道是否可以解決您的問題 –