Programa ::= Acorde
Acorde ::= (Triade | Tetrade) [NTH]
NTH: "2" | "4" | "6" | "9" | "11" | "13"
Triade ::= Maior | Menor | Diminuta | Aumentada
Tetrade ::= Triade (SetimaMaior | SetimaMenor | SetimaDiminuta)
SetimaMaior ::= "^" | "^7" | "7M"
SetimaMenor ::= "7" | "-"
SetimaDiminuta ::= "o"
Maior ::= Nota
Menor ::= Nota ("m" | "-")
Diminuta ::= Nota ("m(b5)" | "-(b5)" | "-(-5)")
Aumentada ::= Nota ("(#5)" | "+")
Nota ::= Do | Re | Mi | Fa | Sol | La | Si [Acidente]
Acidente ::= Sustenido | Bemol
Sustenido ::= "#"
Bemol ::= "b"
Do ::= "C"
Re ::= "D"
Mi ::= "E"
Fa ::= "F"
Sol ::= "G"
La ::= "A"
Si ::= "B"
Github do projeto: https://github.com/edvanjsj/chords