如何在C hello World中使用Xtend模板?

时间:2015-07-21 09:54:54

标签: java c xtend

我是一名新手Java程序员。我想了解Xtend template的工作原理。我已经读过这些模板可以用来从简单的C程序生成java代码。有人可以让我知道如下所示的这个简单的C程序如何转换成Java程序..

  #include<stdio.h>

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

Xtend模板如下所示:

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

C

1 个答案:

答案 0 :(得分: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");
        }
    '''

}

这会将生成代码打印到您的控制台。 您还可以生成文件,例如:

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