Grammar Data Gen - Known Bugs
Grammar Data Gen is intentionally buggy as a testing exercise. Grammar Data Gen - Basic is the simple buggy version; Grammar Data Gen - Complex is the phrase-definition version with named phrase lists and output history.
Basic Version Known Bugs
| Area | Bug | What To Look For |
|---|---|---|
| Grammar line selection | The random line index is incremented after being selected. | With multiple grammar lines, the first grammar line is never selected and generation can sometimes fail when the index moves beyond the final line. |
| Grammar editor form | The editor form is not protected against browser default form submission. | Pressing Enter in the grammar name field can submit the form and reload the page with query parameters. |
| Page clicks | A document-level click handler generates new text. | Clicking unrelated parts of the page can change the generated output. |
| Nested grammar groups | Embedded bracket groups inside an option are not supported. | A grammar such as [bob, and [gain, lose] something] is parsed incorrectly instead of generating bob, and gain something, or and lose something. |
| Empty options | Blank choices are dropped or rendered literally instead of being treated as a deliberate empty value. | A grammar such as ["", sometimes] test should sometimes generate test, but the blank choice is not handled as a real option. |
| Output cleanup | Generated text is not cleaned after phrase expansion. | Grammars with optional blanks or punctuation can leave double spaces, leading spaces, or spaces before commas, periods, exclamation marks, and question marks. |
| Plain text grammar | Grammar lines without bracketed phrase groups are not handled safely. | A plain line such as hello world can trigger a JavaScript error instead of generating hello world. |
| Empty input | Empty grammar definitions are not handled safely. | Clearing the text area and generating grammar can trigger a JavaScript error. |
Complex Version Known Bugs
| Area | Bug | What To Look For |
|---|---|---|
| Grammar line selection | The random template index is incremented after being selected. | With multiple template lines, the first template is never selected and generation can sometimes fail when the index moves beyond the final template. |
| Quoted options | Quoted commas are not handled correctly. | A phrase definition such as "optional quotes, because i added a comma" is split into multiple options. |
| Explicit empty options | Quoted blank choices are dropped instead of being retained as a valid generated value. | A phrase definition such as optional_laughter: ["", Bwahaha!] should sometimes generate nothing, but the empty option is removed. |
| Output cleanup | Generated text is not cleaned after phrase expansion. | Phrase definitions with optional blanks or punctuation can leave double spaces, leading spaces, or spaces before commas, periods, exclamation marks, and question marks. |
| Nested grammar groups | Embedded bracket groups inside an option are not supported reliably. | A grammar such as [bob, and [gain, lose] something] can be parsed incorrectly. |
| Missing phrase references | Missing #phrase_name references are not validated up front. |
The error appears only when generation chooses a path that references the missing phrase. |
| Recursive phrase references | Recursive #phrase_name references are not detected as cycles. |
Recursive data eventually fails with a generic phrase expansion error rather than a useful cycle report. |
| Generated history | Generated values are added to history only after successful generation. | Errors do not create history entries, which can make failed generation paths harder to review from the page alone. |
For a fixed data-generation utility, use Grammar Based Test Data.