java - 如何将 Xtend 模板与 C hello World 一起使用?

标签 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

最佳答案

一个简单的例子如下所示:

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

关于java - 如何将 Xtend 模板与 C hello World 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31535815/

相关文章:

c - 结构的字段是否算作变量?数组的元素算作变量吗?

c - 使用结构数组在 C 中进行选择排序,错误 : "lvalue required..."

c - 头文件中需要包含哪些文件?结构? <stdbool.h>?

xtext - 如何访问更高规则的方法?

java - 多线程聊天服务器中迭代器出现 ConcurrentModificationException 异常

java - 有什么方法可以强制使用某些特定的注释以及 Java 中的某些特定方法

java - 我需要使用 Xtend/Acceleo 吗?

for-loop - XTend For-Loop 支持和添加范围支持

java - 在我更改机器中的时区后,MYSQL 查询不工作

java - Spring JPA、MySQL-无法写入内容: Infinite recursion StackOverflowError through reference chain