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

Commit 1bea28e

Browse files
author
Juanjo Alvarez
committed
Use the SDK's skeleton ParserBuilder and set ToNoder.PositionFill
1 parent d43125e commit 1bea28e

File tree

1 file changed

+18
-16
lines changed

1 file changed

+18
-16
lines changed

driver/normalizer/parser.go

Lines changed: 18 additions & 16 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,25 +79,26 @@ 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+
psr, 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 psr, err
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.None:
91+
parser = psr
92+
case native.OffsetFromLineCol:
93+
parser = &driver.TransformationParser{
94+
Parser: psr,
95+
Transformation: driver.FillOffsetFromLineCol,
96+
}
97+
case native.LineColFromOffset:
98+
parser = &driver.TransformationParser{
99+
Parser: psr,
100+
Transformation: driver.FillLineColFromOffset,
101+
}
100102
}
101103

102104
return parser, nil

0 commit comments

Comments
 (0)