grammar chords;
parse
- : rootNote majMinSusPowerExpr* addNotesExpr* extensionExpr* overBassNoteExpr*
+ : rootNote majMinSusPowerExpr* addNotesExpr* overBassNoteExpr*
+ | rootNote majMinSusPowerExpr* addNotesExpr extensionExpr* overBassNoteExpr
;
rootNote
powerChordExpr: '5';
addNotesExpr
- : SIX
- | SEVEN
+ : ADD* SIX
+ | ADD* SEVEN
| MAJ_SEVEN
- | ADD_NINE
+ | MIN_SEVEN
+ | ADD* NINE
+ | ADD* ELEVEN
;
extensionExpr
SUS: ('sus'|'suspended');
-DIMINISHED: ('dim'|'diminished');
+DIMINISHED: ('dim'|'diminished'|'-');
-AUGMENTED: ('aug'|'augmented');
+AUGMENTED: ('aug'|'augmented'|'+');
SLASH: ('/'|'\\');
+ADD: ('add'|'Add'|'dom');
+
SIX: '6';
SEVEN: '7';
+NINE: '9';
+
+ELEVEN: '11';
+
MAJ_SEVEN: MAJOR '7';
-ADD_NINE: ('add'|'Add')* '9';
+MIN_SEVEN: MINOR '7';
INTERVAL: (MAJOR|MINOR)* ('b'|'#')* DIGITS ;