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

Commit 807cb1f

Browse files
authored
Merge pull request #81 from juanjux/feature/generic_to_sdk
Use the SDK's skeleton ParserBuilder and set ToNoder.PositionFill
2 parents d43125e + e18897b commit 807cb1f

File tree

1 file changed

+17
-17
lines changed

1 file changed

+17
-17
lines changed

driver/normalizer/parser.go

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ var ToNoder = &native.ObjectToNoder{
1111
EndLineKey: "end_lineno",
1212
ColumnKey: "col_offset",
1313
EndColumnKey: "end_col_offset",
14+
PositionFill: native.OffsetFromLineCol,
1415

1516
TokenKeys: map[string]bool{
1617
"name": true,
@@ -78,26 +79,25 @@ var ToNoder = &native.ObjectToNoder{
7879
// FIXME: test[ast_type=Compare].comparators is a list?? (should be "right")
7980
}
8081

81-
func transformationParser(opts driver.ParserOptions) (tr driver.Parser, err error) {
82-
parser, err := native.ExecParser(ToNoder, opts.NativeBin)
82+
// ParserBuilder creates a parser that transform source code files into *uast.Node.
83+
func ParserBuilder(opts driver.ParserOptions) (parser driver.Parser, err error) {
84+
parser, err = native.ExecParser(ToNoder, opts.NativeBin)
8385
if err != nil {
84-
return tr, err
85-
}
86-
87-
tr = &driver.TransformationParser{
88-
Parser: parser,
89-
Transformation: driver.FillOffsetFromLineCol,
86+
return
9087
}
9188

92-
return tr, nil
93-
}
94-
95-
// ParserBuilder creates a parser that transform source code files into *uast.Node.
96-
func ParserBuilder(opts driver.ParserOptions) (driver.Parser, error) {
97-
parser, err := transformationParser(opts)
98-
if err != nil {
99-
return nil, err
89+
switch ToNoder.PositionFill {
90+
case native.OffsetFromLineCol:
91+
parser = &driver.TransformationParser{
92+
Parser: parser,
93+
Transformation: driver.FillOffsetFromLineCol,
94+
}
95+
case native.LineColFromOffset:
96+
parser = &driver.TransformationParser{
97+
Parser: parser,
98+
Transformation: driver.FillLineColFromOffset,
99+
}
100100
}
101101

102-
return parser, nil
102+
return
103103
}

0 commit comments

Comments
 (0)