diff --git a/pkg/parser/grammar_parser.go b/pkg/parser/grammar_parser.go
index 18cd5c7..3124b82 100644
--- a/pkg/parser/grammar_parser.go
+++ b/pkg/parser/grammar_parser.go
@@ -18,68 +18,68 @@
 
 // Grammar represents the root of our grammar
 type Grammar struct {
-	Token *TokenExpr `@@`
+	Token *TokenExpr `parser:"@@"`
 }
 
 // TokenExpr represents a token expression in square brackets
 type TokenExpr struct {
-	Expr *Expr `"[" @@ "]"`
+	Expr *Expr `parser:"'[' @@ ']'"`
 }
 
 // Expr represents a sequence of terms and operators
 type Expr struct {
-	First *Term `@@`
-	Rest  []*Op `@@*`
+	First *Term `parser:"@@"`
+	Rest  []*Op `parser:"@@*"`
 }
 
 type Op struct {
-	Operator string `@("&" | "|")`
-	Term     *Term  `@@`
+	Operator string `parser:"@('&' | '|')"`
+	Term     *Term  `parser:"@@"`
 }
 
 // Term represents either a simple term or a parenthesized expression
 type Term struct {
-	Simple *SimpleTerm `@@`
-	Paren  *ParenExpr  `| @@`
+	Simple *SimpleTerm `parser:"@@"`
+	Paren  *ParenExpr  `parser:"| @@"`
 }
 
 type ParenExpr struct {
-	Expr *Expr `"(" @@ ")"`
+	Expr *Expr `parser:"'(' @@ ')'"`
 }
 
 // SimpleTerm represents any valid term form
 type SimpleTerm struct {
-	WithFoundryLayer *FoundryLayerTerm `@@`
-	WithFoundryKey   *FoundryKeyTerm   `| @@`
-	WithLayer        *LayerTerm        `| @@`
-	SimpleKey        *KeyTerm          `| @@`
+	WithFoundryLayer *FoundryLayerTerm `parser:"@@"`
+	WithFoundryKey   *FoundryKeyTerm   `parser:"| @@"`
+	WithLayer        *LayerTerm        `parser:"| @@"`
+	SimpleKey        *KeyTerm          `parser:"| @@"`
 }
 
 // FoundryLayerTerm represents foundry/layer=key:value
 type FoundryLayerTerm struct {
-	Foundry string `@Ident "/"`
-	Layer   string `@Ident "="`
-	Key     string `@Ident`
-	Value   string `(":" @Ident)?`
+	Foundry string `parser:"@Ident '/'"`
+	Layer   string `parser:"@Ident '='"`
+	Key     string `parser:"@Ident"`
+	Value   string `parser:"(':' @Ident)?"`
 }
 
 // FoundryKeyTerm represents foundry/key
 type FoundryKeyTerm struct {
-	Foundry string `@Ident "/"`
-	Key     string `@Ident`
+	Foundry string `parser:"@Ident '/'"`
+	Key     string `parser:"@Ident"`
 }
 
 // LayerTerm represents layer=key:value
 type LayerTerm struct {
-	Layer string `@Ident "="`
-	Key   string `@Ident`
-	Value string `(":" @Ident)?`
+	Layer string `parser:"@Ident '='"`
+	Key   string `parser:"@Ident"`
+	Value string `parser:"(':' @Ident)?"`
 }
 
 // KeyTerm represents key:value
 type KeyTerm struct {
-	Key   string `@Ident`
-	Value string `(":" @Ident)?`
+	Key   string `parser:"@Ident"`
+	Value string `parser:"(':' @Ident)?"`
 }
 
 // NewGrammarParser creates a new grammar parser with optional default foundry and layer
@@ -256,15 +256,3 @@
 		Value:   value,
 	}, nil
 }
-
-// indexRune returns the index of the first instance of any of the runes in chars in s, or -1 if no rune is present.
-func indexRune(s string, chars ...rune) int {
-	for i, c := range s {
-		for _, ch := range chars {
-			if c == ch {
-				return i
-			}
-		}
-	}
-	return -1
-}
