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

Debt Edit!

Related smells: Incomplete Tasks

Similarly to Chant that covers up imperfect fragments with comments in natural language, there could be pieces missing entirely from the grammar and replaced with comments. If the comments admit clearly what is missing, use searchable tags like “TODO” or “FIXME” and are intended to use as a backlog, the current practice is to refer to them as “self-admitted technical debt” [ICSME-2014-PotdarS].


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