Двоичный файл ANTLR - PullRequest
       47

Двоичный файл ANTLR

0 голосов
/ 11 октября 2018

Когда я создаю сервер Xtext Language, я могу собрать его и получить файл .jar.Что касается Antlr, как мне сгенерировать двоичный файл со всеми зависимостями?

Я создал проект Antlr в Eclipse, а this - это структура файла, которая генерируется.Однажды я создал DSL с использованием Xtext и Gradle, и когда я собрал shadowJar, я получил файл .jar, созданный в каталоге *.ide/build/libs.

Мой вопрос заключается в том, как мне создать подобный файл .jar или что-то подобное.файл, который будет содержать все зависимости от моего нового проекта Antlr?Это ANTLR проект, а не Xtext.

Могу ли я просто скомпилировать и вставить gradle.build в каталог проекта antlr?Я использовал приведенный ниже код build.gradle, извлеченный из руководства: -

buildscript {
    repositories {
        maven {
            name 'JFrog OSS snapshot repo'
            url  'https://oss.jfrog.org/oss-snapshot-local/'
        }
        jcenter()
    }
    dependencies {
        classpath 'me.champeau.gradle:antlr4-gradle-plugin:0.1.1-SNAPSHOT'
    }
}
repositories {
    mavenCentral()
    jcenter()
}
apply plugin: 'java'
apply plugin: 'me.champeau.gradle.antlr4'
antlr4 {
    source = file('src/main/antlr')
    output = file('build/generated-src/me/tomassetti/pythonast/parser')
    extraArgs = ['-package', 'me.tomassetti.pythonast.parser']
}
compileJava.dependsOn antlr4
sourceSets.main.java.srcDirs += antlr4.output
configurations {
    compile.extendsFrom antlr4
}
task fatJar(type: Jar) {
    manifest {
        attributes 'Implementation-Title': 'Python-Parser',
                   'Implementation-Version': '0.0.1'
    }
    baseName = project.name + '-all'
    from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
    with jar
}

, и создал файл .jar.Но когда я пытался использовать в eclipse che в качестве языкового сервера, я получаю сообщение об ошибке тайм-аута.Вот репозиторий Git моего полного каталога: https://github.com/SharkJ/AntlrProject

1 Ответ

0 голосов
/ 11 октября 2018

Используйте мастер создания нового Xtext.у него есть опции

  • создать ls с помощью maven или gradle
  • в толстом банке или приложение со стилем стартового скрипта

и если вы хотите что-то использоватьв качестве языкового сервера вы фактически должны реализовать языковой сервер.Вы можете сделать это либо с помощью xtext, либо самостоятельно реализовать свою версию, используя https://github.com/eclipse/lsp4j

...