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

Misformat
misleading formatting
Misnomer
problems with naming policies
SayMyName
a misspelling or improper use of the natural language
ZigZag
mixing horizontal and vertical styles
Splat
nonterminal fragments scattered over the grammar

Misformat Edit!

Related smells: Improper Alignment

There are many formatting mistakes one can make when creating a grammar without proper tool support [LDTA-2012-Zaytsev] [SCAM-J-2009-LammelZ11]. Mostly they revolve around mistypings, misspellings, misalignments, etc, and result in actual incorrect constructs in extracted grammars. However, there can be other, more subtle smells within formatting of a grammar, that do not change the way the machine processes it, but do change the way a tired grammarware engineer may understand it. The most canonic example of misleading formatting would be (mind the colon, not a semicolon, following ghi):


        abc :
                def;
                ghi:
                jkl;
        mno :
                pqr;


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