@@ -19,6 +19,7 @@ import (
1919 "fmt"
2020 "log"
2121 "regexp/syntax"
22+ "strings"
2223
2324 "github.com/grafana/regexp"
2425 "github.com/sourcegraph/zoekt/internal/languages"
@@ -239,6 +240,18 @@ func parseExpr(in []byte) (Q, int, error) {
239240 }
240241 // Later we will lift this into a root, like we do for caseQ
241242 expr = & Type {Type : t , Child : nil }
243+ case tokRepoSet :
244+ // Split the text by commas to get individual repo names
245+ repos := strings .Split (text , "," )
246+ set := make (map [string ]bool )
247+ for _ , repo := range repos {
248+ repo = strings .TrimSpace (repo )
249+ if repo != "" {
250+ set [repo ] = true
251+ }
252+ }
253+
254+ expr = & RepoSet {Set : set }
242255 }
243256
244257 return expr , len (in ) - len (b ), nil
@@ -392,6 +405,7 @@ const (
392405 tokArchived = 15
393406 tokPublic = 16
394407 tokFork = 17
408+ tokRepoSet = 18
395409)
396410
397411var tokNames = map [int ]string {
@@ -412,6 +426,7 @@ var tokNames = map[int]string{
412426 tokLang : "Language" ,
413427 tokSym : "Symbol" ,
414428 tokType : "Type" ,
429+ tokRepoSet : "RepoSet" ,
415430}
416431
417432var prefixes = map [string ]int {
@@ -432,6 +447,7 @@ var prefixes = map[string]int{
432447 "sym:" : tokSym ,
433448 "t:" : tokType ,
434449 "type:" : tokType ,
450+ "reposet:" : tokRepoSet ,
435451}
436452
437453var reservedWords = map [string ]int {
0 commit comments