From cf0f274a15ec93ae2e60d8cbc66948bc7f664cfa Mon Sep 17 00:00:00 2001 From: Anton Sattarov <dirty.mew@gmail.com> Date: Wed, 11 Oct 2023 20:50:42 +0200 Subject: [PATCH] fix --- pkg/expr/mongo.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/pkg/expr/mongo.go b/pkg/expr/mongo.go index 77e26b12..a330e65a 100644 --- a/pkg/expr/mongo.go +++ b/pkg/expr/mongo.go @@ -107,6 +107,8 @@ func (c *compiler) compile(node ast.Node) interface{} { return c.UnaryNode(n) case *ast.BinaryNode: return c.BinaryNode(n) + case *ast.ChainNode: + return c.ChainNode(n) case *ast.SliceNode: return c.SliceNode(n) case *ast.CallNode: @@ -119,6 +121,8 @@ func (c *compiler) compile(node ast.Node) interface{} { return c.PointerNode(n) case *ast.ConditionalNode: return c.ConditionalNode(n) + case *ast.VariableDeclaratorNode: + return c.VariableDeclaratorNode(n) case *ast.ArrayNode: return c.ArrayNode(n) case *ast.MapNode: @@ -316,6 +320,10 @@ func (c *compiler) BinaryNode(node *ast.BinaryNode) interface{} { } } +func (c *compiler) ChainNode(node *ast.ChainNode) string { + panic(fmt.Sprintf("unsupported chain node")) +} + func (c *compiler) MemberNode(node *ast.MemberNode) string { v := c.compile(node.Node) if val, ok := v.(string); ok { @@ -600,6 +608,10 @@ func (c *compiler) ConditionalNode(node *ast.ConditionalNode) interface{} { //c.patchJump(end) } +func (c *compiler) VariableDeclaratorNode(node *ast.VariableDeclaratorNode) int { + panic("unsupported variable declarator node ") +} + func (c *compiler) ArrayNode(node *ast.ArrayNode) interface{} { panic("unsupported array node") //for _, node := range node.Nodes { -- GitLab