==================
Empty value
==================
{}
---

(format_string
  (text)
  
  (format)
  (text))

==================
Variable with name
==================
{hello}
---

(format_string
  (text)
  
  (format
    (argument
      (identifier)))
  (text))

==================
Two variables
==================
{hello} {world}
---

(format_string
  (text)
  
  (format
    (argument
      (identifier)))
  (text)
  
  (format
    (argument
      (identifier)))
  (text))

==================
Two variables with text
==================
hello {hello} world {world}
---

(format_string
  (text)
  
  (format
    (argument
      (identifier)))
  (text)
  
  (format
    (argument
      (identifier)))
  (text))

==================
Padding and alignment
==================
{:>5} {:<5} {:^5}
---

(format_string
  (text)
  
  (format
    (colon)
    (align)
    (width
      (number)))
  (text)
  
  (format
    (colon)
    (align)
    (width
      (number)))
  (text)
  
  (format
    (colon)
    (align)
    (width
      (number)))
  (text))

==================
Floating points
==================
{:10.2}
---

(format_string
  (text)
  
  (format
    (colon)
    (width
      (number))
    (number)
    (number
      (number)))
  (text))

==================
Hexadecimal and binary formatting
==================
{:b} {:x} {:X}
---

(format_string
  (text)
  
  (format
    (colon)
    (type))
  (text)
  
  (format
    (colon)
    (type))
  (text)
  
  (format
    (colon)
    (type))
  (text))

==================
Debug formatting
==================
hello {world:?} again
yet {world:#?} hello
{:?} hello {:#?} hello
---

(format_string
  (text)
  
  (format
    (argument
      (identifier))
    (colon)
    (type))
  (text)
  
  (format
    (argument
      (identifier))
    (colon)
    (type))
  (text)
  
  (format
    (colon)
    (type))
  (text)
  
  (format
    (colon)
    (type))
  (text))

==================
Padding, width and alignment
==================
{:0>5} padded with zeroes, right-aligned
{:0<5} padded with zeroes, left-aligned
{:0^5} padded with zeroes, centered
---

(format_string
  (text)
  
  (format
    (colon)
    (fill)
    (align)
    (width
      (number)))
  (text)
  
  (format
    (colon)
    (fill)
    (align)
    (width
      (number)))
  (text)
  
  (format
    (colon)
    (fill)
    (align)
    (width
      (number)))
  (text))

==================
Formatting with Sign Handling
==================
{:+}
{:-}
{: }
---

(format_string
  (text)
  
  (format
    (colon)
    (sign))
  (text)
  
  (format
    (colon)
    (sign))
  (text)
  
  (format
    (colon))
  (text))

==================
Scientific notation
==================
{:e}
{:E}
{:.*}
---

(format_string
  (text)
  
  (format
    (colon)
    (type))
  (text)
  
  (format
    (colon)
    (type))
  (text)
  
  (format
    (colon)
    (number)
    (number))
  (text))

==================
Multiple formatting options
==================
uhm {:<10} | pi: {:.2} | hex: {:x} | padded: {:0>8}
---

(format_string
  (text)
  
  (format
    (colon)
    (align)
    (width
      (number)))
  (text)
  
  (format
    (colon)
    (number)
    (number
      (number)))
  (text)
  
  (format
    (colon)
    (type))
  (text)
  
  (format
    (colon)
    (fill)
    (align)
    (width
      (number)))
  (text))


==================
Escaping
==================
hello {{ world }} {hello}
---

(format_string
  (text)
  (escaped)
  (text)
  (escaped)
  (text)
  
  (format
    (argument
      (identifier)))
  (text))

