Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Range Notation

Ranges describe sets of starting hands. Open PQL uses a generic, variable-based notation (not the classic AKs/AKo shorthand).

Suit Variables

Suits are written as w, x, y, z. Same letter = same suit. Different letters = different suits.

  • AwKw — Ace and King, same suit (suited AK)
  • AxKy — Ace and King, different suits (offsuit AK)
  • AK — Any AK (suited or offsuit)

Concrete suits (s, h, d, c) lock to a specific card:

  • AsKh — Exactly the Ace of spades and King of hearts

Atoms

NotationMeaning
AsKhExact two cards
AwKwSuited AK
AxKyOffsuit AK
AKAny AK
TTAny pocket tens
*Any two cards

Spans

NotationMeaning
QQ+Pocket pairs QQ or better
88-55Pocket pairs from 88 down to 55
AwJw+Suited aces from AJ up
KwQw-KwTwSuited kings from KQ down to KT

Lists

[2,4,6,8,T]A expands to A2, A4, A6, A8, AT.

Combining

Combine atoms with commas in a single quoted string:

AA, KK, AwKw, 77-55

Conflicts with the Board

Combos that collide with known cards (other players’ holdings or the board) are excluded automatically during simulation. You don’t need to subtract blockers by hand.

The grammar lives in openpql-range-parser. Invalid ranges surface as parse errors at query evaluation time.