Releases: theodevelop/bison-flex-lang
v1.5.0
What's Changed
- chore: new version 1.4.0 by @theodevelop in #20
- fix/issues-21-22-23 by @theodevelop in #24
- chore: github files by @theodevelop in #25
- fix: resolve issues #21 #22 #23 — mid-rule actions, %token alias, flex SC blocks by @theodevelop in #26
Full Changelog: v1.4.0...v1.5.0
What's Changed
- chore: new version 1.4.0 by @theodevelop in #20
- fix/issues-21-22-23 by @theodevelop in #24
- chore: github files by @theodevelop in #25
- fix: resolve issues #21 #22 #23 — mid-rule actions, %token alias, flex SC blocks by @theodevelop in #26
Full Changelog: v1.4.0...v1.5.0
v1.4.1
Bug fixes
#21 — Mid-rule action blocks counted as $N symbols (Bison)
Action blocks { } embedded in the middle of a production are now counted as grammar symbols in Bison's $N numbering. Previously they were silently stripped, causing false-positive bison/out-of-bounds errors and missed real out-of-bounds accesses.
#22 — %token NAME NUMBER "alias" parsing (Bison)
%token declarations with both a numeric value and a string alias are now parsed in the correct order. Previously, words inside the alias string were misidentified as token names, generating spurious bison/undeclared-token and bison/unused-token diagnostics.
#23 — <SC>{ } block syntax (Flex)
Rules grouped inside a <SC1,SC2>{ ... } block now correctly inherit their start conditions. Previously the block header was misidentified as a rule pattern, generating false flex/unreachable-rule and flex/unused-sc diagnostics.
Assets
bison-flex-language-support-1.4.1.vsix— install manually viaExtensions: Install from VSIX…- Available on VS Code Marketplace and Open VSX
What's Changed
- chore: new version 1.4.0 by @theodevelop in #20
- fix/issues-21-22-23 by @theodevelop in #24
- chore: github files by @theodevelop in #25
- fix: resolve issues #21 #22 #23 — mid-rule actions, %token alias, flex SC blocks by @theodevelop in #26
Full Changelog: v1.4.0...v1.4.1
v1.4.0
What's new in 1.4.0
✨ Fix-it hints (22 quick fixes)
Lightbulb / Ctrl+. on any diagnostic now offers an automatic correction for the majority of Bison and Flex errors and warnings:
- Bison: insert
%%, declare%token, insert%empty, remove unused token/rule/directive, add rule stub, add%type <todo>, remove invalid%start, add%start, close%{block, and 4 yacc-compat replacements (%error-verbose,%name-prefix,%pure-parser,%binary) - Flex: insert
%%, define abbreviation stub, remove unused abbreviation/start condition/directive, declare%x SC_NAME, remove unused%option, remove duplicate<<EOF>>, add%option noyywrap, close%{block, remove inaccessible rule
✨ Version-gated diagnostics
Three new settings to match your target toolchain:
bisonFlex.minVersionBison— e.g."2.3"suppresses checks requiring Bison 3.xbisonFlex.minVersionFlex— same for FlexbisonFlex.disabledChecks— e.g.["bison/shift-reduce", "flex/missing-yywrap"]
✨ Diagnostic codes & links
Every diagnostic now shows a clickable code (e.g. bison/unused-token) that opens the relevant GNU documentation page directly in your browser.
✨ Greyed-out unused symbols
Unused tokens, rules, start conditions, and abbreviations are now visually faded in the editor (DiagnosticTag.Unnecessary).
🐛 Fixed
- Unused token grey underline started mid-token instead of at the first character (column offset bug in
parseTokenNames)
⚙️ CI
- Pipeline now runs on
devbranch as well asmain - VSIX artifact uploaded on every CI run (30-day retention)
Full changelog: CHANGELOG.md
v1.1.3
What's changed
Fixed
- Bison — comments in rules: Tokens inside
/* */block comments (including multi-line) and//line comments are no longer falsely reported as undeclared - Bison — token names: Token names containing lowercase letters or digits (e.g.
STANDARD_202x) are now correctly parsed — previously the regex stopped at the first non-uppercase character, producing false positives - Bison — identifiers in action blocks: Identifiers inside
{ }action blocks are no longer scanned for undeclared tokens
Full changelog: v1.1.2...v1.1.3
What's Changed
- fix: support lowercase and digits in token names by @theodevelop in #12
- fix: ignore comments and action blocks when parsing rule symbols by @theodevelop in #13
- fix: token parsing robustness — lowercase names and comment stripping by @theodevelop in #14
Full Changelog: v1.1.2...v1.1.3
v1.1.2
What's Changed
- fix: count literals when checking $n bounds (closes #4) by @theodevelop in #11
Full Changelog: v1.1.1...v1.1.2
v1.1.1
v1.1.0
[1.1.0] - 2026-03-18
Added
- Document Symbols — Outline view (
Ctrl+Shift+O) with collapsible sections for declarations, rules, and epilogue (Bison) or definitions, rules, and user code (Flex) - Workspace Symbols — Fuzzy symbol search (
Ctrl+T) across all open Bison and Flex files (up to 200 results) - Code Lens — "N reference(s)" above each Bison rule and Flex start condition; "⬪ entry point" badge above the start symbol
- Inlay Hints — Inline type annotations for
$$,$1,$2, etc. derived from%type/%tokendeclarations - CMake Integration
- Diagnostic warning when a
.y/.lfile is not referenced in a nearbyBISON_TARGET/FLEX_TARGET - New command Bison/Flex: Add CMake Target — appends the correct
BISON_TARGETorFLEX_TARGETsnippet toCMakeLists.txt
- Diagnostic warning when a
- Compile Commands
- Bison: Compile — runs
bison -don the current file and surfaces errors as VS Code diagnostics - Flex: Compile — runs
flexon the current file and surfaces errors as VS Code diagnostics
- Bison: Compile — runs
- Grammar Tools
- Bison: Show Parse Table — renders the
.outputparse table in a side panel - Bison: Show Grammar Graph — interactive D3.js force-directed graph; click a node to navigate to the rule; detects left/right recursion
- Bison: Explain Conflict — detailed shift/reduce conflict analysis with fix suggestions and precedence recommendations
- Bison: Generate AST Skeleton — generates a complete C++ AST with visitor pattern, forward declarations, and node classes
- Flex: Test Rule — interactive regex tester for the pattern on the current line
- Bison: Show Parse Table — renders the
- Initialize tasks.json — auto-generates
.vscode/tasks.jsonwith Bison/Flex problem matchers; auto-detects CMake and Makefile projects - Yacc Legacy Hints — inlay hints for legacy
%pure_parser,%union, andYYSTYPEpatterns pointing to modern Bison equivalents - Smart Indent —
onEnterRulesfor Bison and Flex that indent correctly after rule openers and%{/%}
Changed
- README updated with all new features, configuration settings, and screenshots
- Status bar shows a "Grammar Graph" shortcut button when a Bison file is active
Configuration
Three new settings:
| Setting | Default | Description |
|---|---|---|
bisonFlex.showInlayHints |
true |
Show inlay hints for $$/$1/@$ semantic values |
bisonFlex.enableCodeLens |
true |
Show Code Lens reference counts and entry-point badges |
bisonFlex.enableCmakeDiagnostics |
true |
Warn when a .y/.l file is missing from CMakeLists.txt |
What's Changed
- Add grammar tools, CMake integration & UI enhancements by @theodevelop in #2
Full Changelog: v1.0.0...v1.1.0
v1.0.0
What's Changed
- Version 1.0.0 by @theodevelop in #1
New Contributors
- @theodevelop made their first contribution in #1
Full Changelog: https://github.com/theodevelop/bison-flex-lang/commits/v1.0.0