diff options
| author | JP Appel <jeanpierre.appel01@gmail.com> | 2025-06-02 13:37:43 -0400 |
|---|---|---|
| committer | JP Appel <jeanpierre.appel01@gmail.com> | 2025-06-09 14:59:26 -0400 |
| commit | d6cb444af696ea23d23b1252f2aa51235aff2d63 (patch) | |
| tree | a33828ff9193b7d7d30158e6ce2a7f95d25f993a /pkg/query/query.go | |
| parent | bff7aeafc3a61f933ab200afa789b74beab03e91 (diff) | |
Fix lookback error in lexer
Diffstat (limited to 'pkg/query/query.go')
| -rw-r--r-- | pkg/query/query.go | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/pkg/query/query.go b/pkg/query/query.go new file mode 100644 index 0000000..5ddc724 --- /dev/null +++ b/pkg/query/query.go @@ -0,0 +1,34 @@ +package query + +import "strings" + +func Generate(ir *QueryIR) (any, error) { + // TODO: implement + return nil, nil +} + +func Compile(query string) (any, error) { + // TODO: logging + clause, err := Parse(Lex(query)) + if err != nil { + return nil, err + } + + ir, err := NewIR(*clause) + if err != nil { + return nil, err + } + + ir, err = Optimize(ir) + if err != nil { + return nil, err + } + + return Generate(ir) +} + +func writeIndent(b *strings.Builder, level int) { + for range level { + b.WriteByte('\t') + } +} |
