github.com/yankunsam/loki/v2@v2.6.3-0.20220817130409-389df5235c27/pkg/logql/log/pattern/expr.y (about) 1 %{ 2 3 package pattern 4 5 %} 6 7 %union{ 8 Expr []node 9 Node node 10 11 literal rune 12 Literals []rune 13 str string 14 token int 15 } 16 17 %start root 18 19 %type <Expr> expr 20 %type <Node> node 21 %type <Literals> literals 22 23 %token <str> IDENTIFIER 24 %token <literal> LITERAL 25 %token <token> LESS_THAN MORE_THAN UNDERSCORE 26 27 %% 28 29 root: 30 expr { exprlex.(*lexer).expr = $1 }; 31 32 expr: 33 node { $$ = []node{$1} } 34 | expr node { $$ = append($1, $2) } 35 ; 36 37 node: 38 IDENTIFIER { $$ = capture($1) } 39 | literals { $$ = runesToLiterals($1) } 40 ; 41 42 literals: 43 LITERAL { $$ = []rune{$1} } 44 | literals LITERAL { $$ = append($1, $2) } 45 %%