==================
Comment
==================

# This is a comment

---

(source_file
  (comment))

==================
Directive with colon value
==================

{title: Amazing Grace}

---

(source_file
  (directive
    name: (directive_name)
    value: (directive_value)))

==================
Directive with space value
==================

{capo 3}

---

(source_file
  (directive
    name: (directive_name)
    value: (directive_value)))

==================
Directive without value
==================

{new_song}

---

(source_file
  (directive
    name: (directive_name)))

==================
Delegate block
==================

{start_of_abc}
X:1
K:C
{end_of_abc}

---

(source_file
  (delegate_block
    (block_start_directive
      name: (directive_name))
    (block_content)
    (block_end_directive
      name: (directive_name))))

==================
Labeled delegate block
==================

{start_of_verse: Verse 1}
[G]Amazing grace
{end_of_verse}

---

(source_file
  (delegate_block
    (block_start_directive
      name: (directive_name)
      value: (directive_value))
    (block_content)
    (block_end_directive
      name: (directive_name))))

==================
Chord line
==================

[G]Amazing [C]grace

---

(source_file
  (content_line
    (chord
      (chord_name))
    (lyrics)
    (chord
      (chord_name))
    (lyrics)))

==================
Chord with slash bass
==================

[G/B]Walking [Am7]down

---

(source_file
  (content_line
    (chord
      (chord_name))
    (lyrics)
    (chord
      (chord_name))
    (lyrics)))

==================
Chord-only line
==================

[Am] [G] [C]

---

(source_file
  (content_line
    (chord
      (chord_name))
    (lyrics)
    (chord
      (chord_name))
    (lyrics)
    (chord
      (chord_name))))

==================
Directive with selector suffix
==================

{textfont-piano: Courier}

---

(source_file
  (directive
    name: (directive_name)
    value: (directive_value)))

==================
Complex chord names
==================

[Bbm7b5]Darkness [F#/C#]light [N.C.]rest

---

(source_file
  (content_line
    (chord
      (chord_name))
    (lyrics)
    (chord
      (chord_name))
    (lyrics)
    (chord
      (chord_name))
    (lyrics)))

==================
Short directive alias
==================

{t: My Title}

---

(source_file
  (directive
    name: (directive_name)
    value: (directive_value)))

==================
Empty comment
==================

#

---

(source_file
  (comment))

==================
Multiple directives
==================

{title: Song}
{artist: Artist}
{key: G}

---

(source_file
  (directive
    name: (directive_name)
    value: (directive_value))
  (directive
    name: (directive_name)
    value: (directive_value))
  (directive
    name: (directive_name)
    value: (directive_value)))

==================
Lyrics without chords
==================

How sweet the sound

---

(source_file
  (content_line
    (lyrics)))

==================
Hash mid-line is lyrics not comment
==================

Play the C# note

---

(source_file
  (content_line
    (lyrics)))

==================
Chord with sharp in lyrics context
==================

[G]She said C# is her key

---

(source_file
  (content_line
    (chord
      (chord_name))
    (lyrics)))

==================
Sharp chord in brackets unaffected
==================

[C#]text [F#/C#]more

---

(source_file
  (content_line
    (chord
      (chord_name))
    (lyrics)
    (chord
      (chord_name))
    (lyrics)))

==================
Indented hash is lyrics not comment
==================

  # indented

---

(source_file
  (content_line
    (lyrics)))

==================
Mixed content
==================

# A song
{title: Test}
[Am]Hello [G]world

---

(source_file
  (comment)
  (directive
    name: (directive_name)
    value: (directive_value))
  (content_line
    (chord
      (chord_name))
    (lyrics)
    (chord
      (chord_name))
    (lyrics)))
