Skip to content

Commit 03ba38e

Browse files
authored
Using new lexer by alecthomas! (#1270)
1 parent f393cf3 commit 03ba38e

10 files changed

+1239
-701
lines changed

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@ module github.com/mikefarah/yq/v4
22

33
require (
44
github.com/a8m/envsubst v1.3.0
5+
github.com/alecthomas/participle/v2 v2.0.0-beta.4
6+
github.com/alecthomas/repr v0.1.0
57
github.com/elliotchance/orderedmap v1.4.0
68
github.com/fatih/color v1.13.0
79
github.com/goccy/go-yaml v1.9.5
810
github.com/jinzhu/copier v0.3.5
911
github.com/magiconair/properties v1.8.6
1012
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e
1113
github.com/spf13/cobra v1.5.0
12-
github.com/timtadh/lexmachine v0.2.2
1314
golang.org/x/net v0.0.0-20220708220712-1185a9018129
1415
gopkg.in/op/go-logging.v1 v1.0.0-20160211212156-b2cb9fa56473
1516
gopkg.in/yaml.v3 v3.0.1
@@ -20,7 +21,6 @@ require (
2021
github.com/mattn/go-colorable v0.1.12 // indirect
2122
github.com/mattn/go-isatty v0.0.14 // indirect
2223
github.com/spf13/pflag v1.0.5 // indirect
23-
github.com/timtadh/data-structures v0.5.3 // indirect
2424
golang.org/x/sys v0.0.0-20220712014510-0a85c31ab51e // indirect
2525
golang.org/x/text v0.3.7 // indirect
2626
golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f // indirect

go.sum

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
github.com/a8m/envsubst v1.3.0 h1:GmXKmVssap0YtlU3E230W98RWtWCyIZzjtf1apWWyAg=
22
github.com/a8m/envsubst v1.3.0/go.mod h1:MVUTQNGQ3tsjOOtKCNd+fl8RzhsXcDvvAEzkhGtlsbY=
3+
github.com/alecthomas/assert/v2 v2.0.3 h1:WKqJODfOiQG0nEJKFKzDIG3E29CN2/4zR9XGJzKIkbg=
4+
github.com/alecthomas/participle/v2 v2.0.0-beta.4 h1:ublfGBm+x+p2j7KotHhrUMbKtejT7M0Gv1Mt1u3absw=
5+
github.com/alecthomas/participle/v2 v2.0.0-beta.4/go.mod h1:RC764t6n4L8D8ITAJv0qdokritYSNR3wV5cVwmIEaMM=
6+
github.com/alecthomas/repr v0.1.0 h1:ENn2e1+J3k09gyj2shc0dHr/yjaWSHRlrJ4DPMevDqE=
7+
github.com/alecthomas/repr v0.1.0/go.mod h1:2kn6fqh/zIyPLmm3ugklbEi5hg5wS435eygvNfaDQL8=
38
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
49
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
510
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -14,6 +19,7 @@ github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+
1419
github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4=
1520
github.com/goccy/go-yaml v1.9.5 h1:Eh/+3uk9kLxG4koCX6lRMAPS1OaMSAi+FJcya0INdB0=
1621
github.com/goccy/go-yaml v1.9.5/go.mod h1:U/jl18uSupI5rdI2jmuCswEA2htH9eXfferR3KfscvA=
22+
github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM=
1723
github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
1824
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
1925
github.com/jinzhu/copier v0.3.5 h1:GlvfUwHk62RokgqVNvYsku0TATCF7bAHVwEXoBh3iJg=
@@ -41,10 +47,6 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
4147
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
4248
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
4349
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
44-
github.com/timtadh/data-structures v0.5.3 h1:F2tEjoG9qWIyUjbvXVgJqEOGJPMIiYn7U5W5mE+i/vQ=
45-
github.com/timtadh/data-structures v0.5.3/go.mod h1:9R4XODhJ8JdWFEI8P/HJKqxuJctfBQw6fDibMQny2oU=
46-
github.com/timtadh/lexmachine v0.2.2 h1:g55RnjdYazm5wnKv59pwFcBJHOyvTPfDEoz21s4PHmY=
47-
github.com/timtadh/lexmachine v0.2.2/go.mod h1:GBJvD5OAfRn/gnp92zb9KTgHLB7akKyxmVivoYCcjQI=
4850
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
4951
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
5052
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=

pkg/yqlib/expression_parser.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ type expressionParserImpl struct {
2121
}
2222

2323
func newExpressionParser() ExpressionParserInterface {
24-
return &expressionParserImpl{newExpressionTokeniser(), newExpressionPostFixer()}
24+
return &expressionParserImpl{newParticipleLexer(), newExpressionPostFixer()}
2525
}
2626

2727
func (p *expressionParserImpl) ParseExpression(expression string) (*ExpressionNode, error) {

pkg/yqlib/expression_postfix.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ func (p *expressionPostFixerImpl) ConvertToPostfix(infixTokens []*token) ([]*Ope
7676
// on the close op - move it to the traverse array op
7777
// allows for .["cat"]?
7878
prefs := traversePreferences{}
79-
closeTokenMatch := string(currentToken.Match.Bytes)
79+
closeTokenMatch := currentToken.Match
8080
if closeTokenMatch[len(closeTokenMatch)-1:] == "?" {
8181
prefs.OptionalTraverse = true
8282
}

pkg/yqlib/expression_processing_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,7 @@ var pathTests = []struct {
312312
},
313313
}
314314

315-
var tokeniser = newExpressionTokeniser()
315+
var tokeniser = newParticipleLexer()
316316
var postFixer = newExpressionPostFixer()
317317

318318
func TestPathParsing(t *testing.T) {

0 commit comments

Comments
 (0)