kotlinx / ast

Generic AST parsing library for kotlin multiplatform
Apache License 2.0
318 stars 22 forks source link

I am really confused, which dependency should be used? #63

Open matkoniecz opened 2 years ago

matkoniecz commented 2 years ago

https://github.com/kotlinx/ast#using-with-gradle tells me

            dependencies {
                // please look at https://jitpack.io/#drieks/antlr-kotlin to find the latest version
                api("com.github.kotlinx.ast:grammar-kotlin-parser-antlr-kotlin:0123456789")

or

// please look at https://jitpack.io/#drieks/antlr-kotlin to find the latest version
implementation("com.github.kotlinx.ast:grammar-kotlin-parser-antlr-kotlin:0123456789")

https://jitpack.io/#drieks/antlr-kotlin tells me to use implementation 'com.github.drieks:antlr-kotlin:Tag'

https://jitpack.io/#drieks/antlr-kotlin/d4384e4d90 tells me to use implementation 'com.github.drieks.antlr-kotlin:antlr-kotlin-gradle-plugin:d4384e4d90'

Neither api("com.github.kotlinx.ast:grammar-kotlin-parser-antlr-kotlin:d4384e4d90") nor drieked version with api("com.github.drieks.ast:grammar-kotlin-parser-antlr-kotlin:d4384e4d90") works

And Android Studio requires me to use implementation("com.github.drieks.antlr-kotlin:antlr-kotlin-gradle-plugin:d4384e4d90") (a bit different syntax)

matkoniecz commented 2 years ago

And after doing either https://github.com/kotlinx/ast/blob/master/grammar-kotlin-parser-antlr-kotlin/src/jvmTest/kotlin/kotlinx/ast/example/ExampleMain.kt still fails with Unresolved reference: ast in import kotlinx.ast.common.AstSource

Is there somewhere full example project?

I really tried following readme, but it seems that I screwed something up.

drieks commented 2 years ago

Oh, thank you for reporting this. https://github.com/kotlinx/ast is the "main" repository. https://github.com/drieks/antlr-kotlin/ is a fork of https://github.com/Strumenta/antlr-kotlin/ I'm using in kotlinx.ast to support kotlin.js and kotlin native. Currently, all my changes are merged into upstream, so drieks/antlr-kotlin is currently not required.

To make it complicated, https://github.com/drieks/ast is my "private" fork of kotlinx.ast.

I renamed some libraries some time ago, maybe I missed updating the documentation. Is it possible for you to create a repository containing the project where you are getting this? The Gradle files and maybe a copy of the ´Example-main.kt` should be enough.

drieks commented 2 years ago

I tried to move the build from jitpack to github actions, but did not find time to finish it right now. I want to add normal version numbers and a github actions based build and to remove everything jitpack related because it seems to confuse users of kotlinx.ast.

But the readme should contain working examples, there must be a missing change that is required to get it working again.

matkoniecz commented 2 years ago

I tried again ( https://github.com/matkoniecz/astmine ) :


But the readme should contain working examples, there must be a missing change that is required to get it working again.

Note that "Add the dependency to kotlinx.ast into your project:" is confusing for confused people like me. Looking at other code I have not found where exactly this snippet should be added.

If there would be chance for standalone working example - it would be highly appreciated.

Note: that is my first time when I tried making from scratch a gradle-powered project. It is likely that my failure is entirely caused by doing something the wrong way with gradle.

On retrying, if it will happen, I should use Groovy instead of Kotlin. Maybe instructions in repo are actually for Groovy? (though it mentions build.gradle.kts...)


api("com.github.kotlinx.ast:grammar-kotlin-parser-antlr-kotlin:14e92f2fa0") from readme got me

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:compileKotlin'.
> Error while evaluating property 'filteredArgumentsMap' of task ':app:compileKotlin'
   > Could not resolve all files for configuration ':app:compileClasspath'.
      > Could not find com.github.kotlinx.ast:grammar-kotlin-parser-antlr-kotlin:14e92f2fa0.
        Searched in the following locations:
          - https://repo.maven.apache.org/maven2/com/github/kotlinx/ast/grammar-kotlin-parser-antlr-kotlin/14e92f2fa0/grammar-kotlin-parser-antlr-kotlin-14e92f2fa0.pom
          - https://jitpack.io/com/github/kotlinx/ast/grammar-kotlin-parser-antlr-kotlin/14e92f2fa0/grammar-kotlin-parser-antlr-kotlin-14e92f2fa0.pom
        Required by:
            project :app

https://jitpack.io/#drieks/antlr-kotlin suggested implementation("com.github.drieks:antlr-kotlin:Tag") (I tried with Kotlin-based build script), it resulted in

> Task :app:compileKotlin FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:compileKotlin'.
> Error while evaluating property 'filteredArgumentsMap' of task ':app:compileKotlin'
   > Could not resolve all files for configuration ':app:compileClasspath'.
      > Could not find com.github.drieks:antlr-kotlin:Tag.
        Searched in the following locations:
          - https://repo.maven.apache.org/maven2/com/github/drieks/antlr-kotlin/Tag/antlr-kotlin-Tag.pom
          - https://jitpack.io/com/github/drieks/antlr-kotlin/Tag/antlr-kotlin-Tag.pom
        Required by:
            project :app
matkoniecz commented 2 years ago

https://github.com/2bad2furious/kotlinx-ast-demo worked with minor tweaks (making gradlew executable, adding gradle folder)