Skip to content
This repository was archived by the owner on Mar 8, 2020. It is now read-only.

Commit 4a015eb

Browse files
authored
Merge pull request #51 from abeaumont/driver-refactor
Driver refactor
2 parents 592215e + 6248d85 commit 4a015eb

File tree

183 files changed

+67
-262
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

183 files changed

+67
-262
lines changed

ANNOTATION.md

Lines changed: 0 additions & 183 deletions

Dockerfile.tpl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,5 @@ ENV RUNTIME_NATIVE_VERSION $RUNTIME_NATIVE_VERSION
55

66
RUN apk add --no-cache openjdk8-jre="$RUNTIME_NATIVE_VERSION"
77

8-
ADD build /opt/driver/bin
9-
CMD /opt/driver/bin/driver
8+
ADD build /opt/driver
9+
ENTRYPOINT ["/opt/driver/bin/driver"]

Makefile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ test-native-internal:
1212
build-native-internal:
1313
cd native; \
1414
$(MVN_CMD) package
15-
cp native/target/$(JAR) $(BUILD_PATH); \
16-
cp native/src/main/sh/native.sh $(BUILD_PATH)/native; \
17-
chmod +x $(BUILD_PATH)/native
15+
cp native/target/$(JAR) $(BUILD_PATH)/bin; \
16+
cp native/src/main/sh/native.sh $(BUILD_PATH)/bin/native; \
17+
chmod +x $(BUILD_PATH)/bin/native
1818

driver/main.go

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,19 @@
11
package main
22

33
import (
4-
"gopkg.in/bblfsh/sdk.v1/protocol/driver"
5-
64
"github.com/bblfsh/java-driver/driver/normalizer"
7-
)
85

9-
var version string
10-
var build string
6+
"gopkg.in/bblfsh/sdk.v1/sdk/driver"
7+
)
118

129
func main() {
13-
d := driver.Driver{
14-
Version: version,
15-
Build: build,
16-
ParserBuilder: normalizer.ParserBuilder,
17-
Annotate: normalizer.AnnotationRules,
10+
d, err := driver.NewDriver(normalizer.ToNode, normalizer.Transformers)
11+
if err != nil {
12+
panic(err)
13+
}
14+
15+
s := driver.NewServer(d)
16+
if err := s.Start(); err != nil {
17+
panic(err)
1818
}
19-
d.Exec()
2019
}

driver/normalizer/annotation.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,20 @@ import (
55

66
"gopkg.in/bblfsh/sdk.v1/uast"
77
. "gopkg.in/bblfsh/sdk.v1/uast/ann"
8+
"gopkg.in/bblfsh/sdk.v1/uast/transformer"
9+
"gopkg.in/bblfsh/sdk.v1/uast/transformer/annotatter"
810
)
911

12+
// Transformers is the of list `transformer.Transfomer` to apply to a UAST, to
13+
// learn more about the Transformers and the available ones take a look to:
14+
// https://godoc.org/gopkg.in/bblfsh/sdk.v1/uast/transformers
15+
var Transformers = []transformer.Tranformer{
16+
annotatter.NewAnnotatter(AnnotationRules),
17+
}
18+
19+
// AnnotationRules describes how a UAST should be annotated with `uast.Role`.
20+
//
21+
// https://godoc.org/gopkg.in/bblfsh/sdk.v1/uast/ann
1022
var AnnotationRules = On(jdt.CompilationUnit).Roles(uast.File).Descendants(
1123
// Names
1224
On(jdt.QualifiedName).Roles(uast.Expression, uast.Identifier, uast.Qualified),

driver/normalizer/annotation_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ import (
88
"path/filepath"
99
"testing"
1010

11-
"gopkg.in/bblfsh/sdk.v1/uast"
1211
"github.com/stretchr/testify/require"
12+
"gopkg.in/bblfsh/sdk.v1/uast"
1313
)
1414

1515
var (
@@ -22,7 +22,7 @@ func TestAnnotate(t *testing.T) {
2222
f, err := getFixture("java_example_1.json")
2323
require.NoError(err)
2424

25-
n, err := ToNoder.ToNode(f)
25+
n, err := ToNode.ToNode(f)
2626
require.NoError(err)
2727
require.NotNil(n)
2828

@@ -51,7 +51,7 @@ func TestAnnotatePrettyAnnotationsOnly(t *testing.T) {
5151
f, err := getFixture("java_example_1.json")
5252
require.NoError(err)
5353

54-
n, err := ToNoder.ToNode(f)
54+
n, err := ToNode.ToNode(f)
5555
require.NoError(err)
5656
require.NotNil(n)
5757

@@ -70,7 +70,7 @@ func TestNodeTokens(t *testing.T) {
7070
f, err := getFixture("java_example_1.json")
7171
require.NoError(err)
7272

73-
n, err := ToNoder.ToNode(f)
73+
n, err := ToNode.ToNode(f)
7474
require.NoError(err)
7575
require.NotNil(n)
7676

driver/normalizer/parser.go

Lines changed: 0 additions & 55 deletions
This file was deleted.

driver/normalizer/tonode.go

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package normalizer
2+
3+
import (
4+
"gopkg.in/bblfsh/sdk.v1/uast"
5+
)
6+
7+
// ToNode is an instance of `uast.ObjectToNode`, defining how to transform an
8+
// into a UAST (`uast.Node`).
9+
//
10+
// https://godoc.org/gopkg.in/bblfsh/sdk.v1/uast#ObjectToNode
11+
var ToNode = &uast.ObjectToNode{
12+
InternalTypeKey: "internalClass",
13+
LineKey: "startLine",
14+
ColumnKey: "startColumn",
15+
OffsetKey: "startPosition",
16+
EndLineKey: "endLine",
17+
EndColumnKey: "endColumn",
18+
EndOffsetKey: "endPosition",
19+
20+
//TODO: Should this be part of the UAST rules?
21+
TokenKeys: map[string]bool{
22+
"identifier": true, // SimpleName
23+
"escapedValue": true, // StringLiteral
24+
"keyword": true, // Modifier
25+
"primitiveTypeCode": true, // ?
26+
},
27+
SyntheticTokens: map[string]string{
28+
"PackageDeclaration": "package",
29+
"IfStatement": "if",
30+
"NullLiteral": "null",
31+
},
32+
//TODO: add names of children (e.g. elseStatement) as
33+
// children node properties.
34+
}
Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,18 @@
11
package normalizer
22

33
import (
4-
"fmt"
54
"testing"
65

76
"github.com/stretchr/testify/require"
87
)
98

10-
func TestNativeToNoder(t *testing.T) {
9+
func TestNativeToNode(t *testing.T) {
1110
require := require.New(t)
1211

1312
f, err := getFixture("java_example_1.json")
1413
require.NoError(err)
1514

16-
n, err := ToNoder.ToNode(f)
15+
n, err := ToNode.ToNode(f)
1716
require.NoError(err)
1817
require.NotNil(n)
19-
fmt.Println("NODE", n)
2018
}

0 commit comments

Comments
 (0)