packages/sql-faker/src/Compiler/Bison/Ast/BisonPrecedenceDeclaration.php

1<?php
2
3declare(strict_types=1);
4
5namespace SqlFaker\Compiler\Bison\Ast;
6
7/**
8 * Represents a %left, %right, or %nonassoc declaration.
9 *
10 * Example: %left OR_SYM OR2_SYM
11 *
12 * @visibility root
13 */
14final class BisonPrecedenceDeclaration implements BisonDeclaration
15{
16    /**
17     * @param 'left'|'right'|'nonassoc'|'precedence' $associativity
18     * @param list<string> $symbols
19     */
20    public function __construct(
21        public readonly string $associativity,
22        public readonly ?string $typeTag,
23        public readonly array $symbols,
24    ) {
25    }
26}
27