Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ require (
require (
github.com/cqroot/prompt v0.9.4
github.com/fatih/color v1.18.0
github.com/prequel-dev/prequel-compiler v0.0.11
github.com/prequel-dev/prequel-compiler v0.0.14
github.com/spf13/cobra v1.8.1
github.com/spf13/viper v1.20.1
gopkg.in/yaml.v2 v2.4.0
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -214,8 +214,8 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRI
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/posener/complete v1.2.3 h1:NP0eAhjcjImqslEwo/1hq7gpajME0fTLTezBKDqfXqo=
github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s=
github.com/prequel-dev/prequel-compiler v0.0.11 h1:SC9XYv41TiPqQvIXbgKPBmlH5XSSQVqlKgkqwjBF9Vw=
github.com/prequel-dev/prequel-compiler v0.0.11/go.mod h1:PBk0LDu2xSMVC+Qq0/1C5XXls3KyO5rIYGI4wcoLScE=
github.com/prequel-dev/prequel-compiler v0.0.14 h1:ZeynQysKhfQspY4KPPEiYVvbsCHCfWUEXk5pvEnAZ9Y=
github.com/prequel-dev/prequel-compiler v0.0.14/go.mod h1:PBk0LDu2xSMVC+Qq0/1C5XXls3KyO5rIYGI4wcoLScE=
github.com/prequel-dev/prequel-logmatch v0.0.13 h1:cPKs1FbhfDyPevGkEOVEud+HZT7r385a+ZumWvBlmQw=
github.com/prequel-dev/prequel-logmatch v0.0.13/go.mod h1:Dpfd/79s8vMCmIdmNQ5kC8WAvw/XjOd2z6wEIe3Lkck=
github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
Expand Down
33 changes: 13 additions & 20 deletions internal/pkg/engine/engine.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ import (
"github.com/prequel-dev/prequel-compiler/pkg/compiler"
"github.com/prequel-dev/prequel-compiler/pkg/datasrc"
"github.com/prequel-dev/prequel-compiler/pkg/parser"
"github.com/prequel-dev/prequel-compiler/pkg/pqerr"
"github.com/prequel-dev/prequel-compiler/pkg/schema"
"github.com/prequel-dev/prequel-logmatch/pkg/entry"
lm "github.com/prequel-dev/prequel-logmatch/pkg/match"
Expand Down Expand Up @@ -93,8 +92,6 @@ func compileRuleTree(cf compiler.RuntimeI, tree *parser.TreeT) (compiler.ObjsT,
func compileRulePath(cf compiler.RuntimeI, rp utils.RulePathT) (compiler.ObjsT, *parser.RulesT, error) {
var (
rs *parser.RulesT
tree *parser.TreeT
nodeObjs compiler.ObjsT
rdrOpts = make([]utils.ReaderOptT, 0)
parseOpts = make([]parser.ParseOptT, 0)
err error
Expand All @@ -116,28 +113,12 @@ func compileRulePath(cf compiler.RuntimeI, rp utils.RulePathT) (compiler.ObjsT,
return nil, nil, err
}

if tree, err = parser.ParseRules(rs, parseOpts); err != nil {
return nil, nil, err
}

log.Info().Int("cres", len(rs.Rules)).Msg("Parsed rules")
for _, rule := range rs.Rules {
log.Info().Str("id", rule.Metadata.Id).Str("cre", rule.Cre.Id).Msg("Rule")
}

nodeObjs, err = compileRuleTree(cf, tree)
if err != nil {
return nil, nil, pqerr.WithFile(err, rp.Path)
}

return nodeObjs, rs, nil
return doCompileRule(cf, rs, parseOpts)
}

func compileRule(cf compiler.RuntimeI, data []byte) (compiler.ObjsT, *parser.RulesT, error) {
var (
rules *parser.RulesT
tree *parser.TreeT
nodeObjs compiler.ObjsT
rdrOpts = make([]utils.ReaderOptT, 0)
parseOpts = make([]parser.ParseOptT, 0)
err error
Expand All @@ -152,6 +133,17 @@ func compileRule(cf compiler.RuntimeI, data []byte) (compiler.ObjsT, *parser.Rul
return nil, nil, err
}

return doCompileRule(cf, rules, parseOpts)
}

func doCompileRule(cf compiler.RuntimeI, rules *parser.RulesT, parseOpts []parser.ParseOptT) (compiler.ObjsT, *parser.RulesT, error) {

var (
tree *parser.TreeT
nodeObjs compiler.ObjsT
err error
)

if tree, err = parser.ParseRules(rules, parseOpts); err != nil {
log.Error().Err(err).Msg("Failed to parse rules")
return nil, nil, err
Expand All @@ -162,6 +154,7 @@ func compileRule(cf compiler.RuntimeI, data []byte) (compiler.ObjsT, *parser.Rul
log.Info().Str("id", rule.Metadata.Id).Str("cre", rule.Cre.Id).Msg("Rule")
}

// Add missing IDs
for i := range rules.Rules {
var r = &rules.Rules[i]
if r.Metadata.Id == "" {
Expand Down