@@ -19,6 +19,7 @@ import (
19
19
"fmt"
20
20
"log"
21
21
"regexp/syntax"
22
+ "strings"
22
23
23
24
"github.com/grafana/regexp"
24
25
"github.com/sourcegraph/zoekt/internal/languages"
@@ -239,6 +240,18 @@ func parseExpr(in []byte) (Q, int, error) {
239
240
}
240
241
// Later we will lift this into a root, like we do for caseQ
241
242
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 }
242
255
}
243
256
244
257
return expr , len (in ) - len (b ), nil
@@ -392,6 +405,7 @@ const (
392
405
tokArchived = 15
393
406
tokPublic = 16
394
407
tokFork = 17
408
+ tokRepoSet = 18
395
409
)
396
410
397
411
var tokNames = map [int ]string {
@@ -412,6 +426,7 @@ var tokNames = map[int]string{
412
426
tokLang : "Language" ,
413
427
tokSym : "Symbol" ,
414
428
tokType : "Type" ,
429
+ tokRepoSet : "RepoSet" ,
415
430
}
416
431
417
432
var prefixes = map [string ]int {
@@ -432,6 +447,7 @@ var prefixes = map[string]int{
432
447
"sym:" : tokSym ,
433
448
"t:" : tokType ,
434
449
"type:" : tokType ,
450
+ "reposet:" : tokRepoSet ,
435
451
}
436
452
437
453
var reservedWords = map [string ]int {
0 commit comments