~/llamay $ cat testdata/grammars/list.gbnf root ::= item+ # Excludes various line break characters item ::= "- " [^\r\n\x0b\x0c\x85\u2028\u2029]+ "\n" ~/llamay $ llamay run -m qwen2.5:0.5b -chat -grammar-file testdata/grammars/list.gbnf -n 80 -p "List four things that break when a laptop goes offline." - No internet connection - No apps running - No apps open - No data saved - No data accessible - No device locked - No device removed - No device suspended - No device in sleep mode - No device in recovery mode - No device in repair mode - No device in repair mode - No device in maintenance mode - No device in maintenance prompt 19 tokens in 151ms (125.7 tok/s) · generated 80 in 4.816s (16.6 tok/s) · stop: length grammar mask: 80 steps, 0.65 ms each, 1.1% of decode · 74 cached (92.5% hit rate) states 2484/4096 (peak 2484) · masks 6/256 · 6 states wanted a mask · 0 table clears ~/llamay $ # and an arithmetic grammar, which the model cannot leave ~/llamay $ cat testdata/grammars/arithmetic.gbnf root ::= (expr "=" ws term "\n")+ expr ::= term ([-+*/] term)* term ::= ident | num | "(" ws expr ")" ws ident ::= [a-z] [a-z0-9_]* ws num ::= [0-9]+ ws ws ::= [ \t\n]* ~/llamay $ llamay run -m qwen2.5:0.5b -grammar-file testdata/grammars/arithmetic.gbnf -n 40 -p "2 + 2" 8 +30 +29+13 = 120 prompt 4 tokens in 47ms (85.1 tok/s) · generated 40 in 1.689s (23.7 tok/s) · stop: length grammar mask: 40 steps, 0.91 ms each, 2.2% of decode · 32 cached (80.0% hit rate) states 35/4096 (peak 35) · masks 8/256 · 8 states wanted a mask · 0 table clears