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

Convention
violations of visual policies
Notation
metalanguage-related
Parsing
parsing techniques related smells
Duplication
the same fragment is repeated

Echo
same rule occurs twice or more
Clone
same right hand side occurs twice or more
Foldable
nonterminal's right hand side is not unique
Common
common subexpressions
Permuted
permutations in commutative combinators
Lookalike
near-clones

Echo Edit!

A nonterminal definition is echoed if it is included in the grammar several times, each of which is identical to any other. Echoes were found in the Java Language Specification as a result of manual (not tool supported) creation of both the grammar and language documentation. They were merged in the grammar extractor – that is, during the phase of converting the original HTML document to the first version of the grammar [SCAM-J-2009-LammelZ11, p.348]. A similar error was observed earlier in the C\# standard [Too-Sharp2005] and later in other languages [Zoo2015].


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