Vadim Zaytsev aka @grammarware

GraSs: A Taxonomy of Grammar Smells


Organisation
global problems
Navigation
problems with navigating through the grammar
Structure
harmful relationships among grammar components

Spaghetti
scattering details over the grammar
Shortage
incompleteness
Mixture
spicing the grammar with alien fragments

AlmostAlphabet
seemingly incomplete collections
ConfusingEntry
no starting symbol
Dead
nonterminal defined, but not referenced
Bottom
nonterminal referenced, but not defined
Debt
incompletenesses covered up by todo/fixme comments

Dead Edit!

Related smells: Unused Packages, Lava Flow, Obsolete Classes, Unutilized Abstraction, Dead Local Store, Dead Fields

All top (unused) nonterminals that were identified as not being the starting symbol(s) of the grammar, represent unreachable fragments. The programming counterpart of this smell is dead code and its variants.


The GraSs taxonomy is a joint effort maintained by Dr. Vadim Zaytsev a.k.a. @grammarware. Page last updated in March 2021.
XHTML 1.1 CSS 3