Как использовать шаблон Xtend с C hello World?

Я начинающий Java-программист. Я пытаюсь понять, как работает шаблон Xtend. Я читал, что эти шаблоны можно использовать для создания java-кода из простой программы на C. Может ли кто-нибудь дать мне представление о том, как эту простую программу на C, показанную ниже, можно преобразовать в программу на Java.

  #include<stdio.h>

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

Шаблон Xtend выглядит примерно так:

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

C


person Goldengirl    schedule 21.07.2015    source источник
comment
Ваш вопрос немного не ясен. Вы хотите сгенерировать код C, верно? Чтобы сгенерировать программу hello world, вы просто помещаете ее содержимое в шаблон и либо записываете его в консоль (используя println), либо записываете в файл.   -  person Franz Becker    schedule 22.07.2015
comment
@FranzBecker: Большое спасибо за ваш ответ :) Привет, мир был примером. На самом деле я имел в виду любую информацию, где я мог бы прочитать немного больше о Xtend. Так как в официальной документации не так много примеров. Я хочу понять синтаксис шаблонов Java. Может, вы что-нибудь подскажете?   -  person Goldengirl    schedule 22.07.2015


Ответы (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

person Franz Becker    schedule 22.07.2015
comment
Спасибо еще раз. Я попытался запустить вашу программу, но она выдает ошибку о том, что Selection не содержит основного типа. :( - person Goldengirl; 22.07.2015
comment
Если у вас правильно установлен Xtend в Eclipse IDE, вы можете просто выбрать Run As — Java Application. Еще один вопрос о стеке со скриншотами: stackoverflow.com/questions/16225177/ — дайте мне знать, если это решит вашу проблему. - person Franz Becker; 22.07.2015
comment
Файл не был частью файла src, и, следовательно, ошибка. Еще раз, спасибо :) - person Goldengirl; 22.07.2015