Skip to content

Commit f29d417

Browse files
Merge pull request #3 from klothoplatform/sync
Sync
2 parents f7b52b0 + e1eee61 commit f29d417

File tree

6 files changed

+612896
-0
lines changed

6 files changed

+612896
-0
lines changed

kotlin/binding.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package kotlin
2+
3+
//#include "parser.h"
4+
//TSLanguage *tree_sitter_kotlin();
5+
import "C"
6+
import (
7+
"unsafe"
8+
9+
sitter "github.com/smacker/go-tree-sitter"
10+
)
11+
12+
func GetLanguage() *sitter.Language {
13+
ptr := unsafe.Pointer(C.tree_sitter_kotlin())
14+
return sitter.NewLanguage(ptr)
15+
}

kotlin/binding_test.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package kotlin_test
2+
3+
import (
4+
"context"
5+
"testing"
6+
7+
sitter "github.com/smacker/go-tree-sitter"
8+
"github.com/smacker/go-tree-sitter/kotlin"
9+
"github.com/stretchr/testify/assert"
10+
)
11+
12+
var ktCode = `
13+
import java.time.LocalDateTime
14+
15+
fun main(args: Array<String>) {
16+
17+
val current = LocalDateTime.now()
18+
19+
println("Current Date and Time is: $current")
20+
}
21+
`
22+
23+
var output = `(source_file (import_list (import_header (identifier (simple_identifier) (simple_identifier) (simple_identifier)))) (function_declaration (simple_identifier) (parameter (simple_identifier) (user_type (type_identifier) (type_arguments (type_projection (user_type (type_identifier)))))) (function_body (statements (property_declaration (variable_declaration (simple_identifier)) (call_expression (navigation_expression (simple_identifier) (navigation_suffix (simple_identifier))) (call_suffix (value_arguments)))) (call_expression (simple_identifier) (call_suffix (value_arguments (value_argument (line_string_literal (interpolated_identifier))))))))))`
24+
25+
func TestGrammar(t *testing.T) {
26+
n, err := sitter.ParseCtx(context.Background(), []byte(ktCode), kotlin.GetLanguage())
27+
assert.Nil(t, err)
28+
assert.Equal(t, n.String(), output)
29+
}

0 commit comments

Comments
 (0)