================================================================================
doc attribute multiline sq string
================================================================================

-doc "
This is a test
".

--------------------------------------------------------------------------------

(source_file
  (wild_attribute
    (attr_name
      (atom))
    (string)))

================================================================================
moduledoc attribute bool
================================================================================

-moduledoc false.

--------------------------------------------------------------------------------

(source_file
  (wild_attribute
    (attr_name
      (atom))
    (atom)))

================================================================================
moduledoc triple quoted string
================================================================================

-moduledoc """
  Moduledoc test module
  """.

--------------------------------------------------------------------------------

(source_file
  (wild_attribute
    (attr_name
      (atom))
    (string)))

================================================================================
doc sigil string S
================================================================================
-doc ~S"Doc test module".

--------------------------------------------------------------------------------

(source_file
  (wild_attribute
    (attr_name
      (atom))
    (string)))

================================================================================
doc sigil string B
================================================================================
-doc ~B"Doc test module".

--------------------------------------------------------------------------------

(source_file
  (wild_attribute
    (attr_name
      (atom))
    (string)))

================================================================================
doc binary string
================================================================================

-doc <<"Doc","test","modul",$e>>.

--------------------------------------------------------------------------------

(source_file
  (wild_attribute
    (attr_name
      (atom))
    (binary
      (bin_element
        (string))
      (bin_element
        (string))
      (bin_element
        (string))
      (bin_element
        (char)))))

================================================================================
doc binary utf8 string
================================================================================

-doc <<"Doc test mödule"/utf8>>.

--------------------------------------------------------------------------------

(source_file
  (wild_attribute
    (attr_name
      (atom))
    (binary
      (bin_element
        (string)
        (bit_type_list
          (atom))))))

================================================================================
doc binary string with macro
================================================================================

-doc <<?MODULE_STRING, "-Doc module">>.

--------------------------------------------------------------------------------

(source_file
  (wild_attribute
    (attr_name
      (atom))
    (binary
      (bin_element
        (macro_call_expr
          (var)))
      (bin_element
        (string)))))

================================================================================
doc macro and string concatenation
================================================================================

-doc ?MODULE_STRING "-" ?MODULE_STRING.

--------------------------------------------------------------------------------

(source_file
  (wild_attribute
    (attr_name
      (atom))
    (concatables
      (macro_call_expr
        (var))
      (string)
      (macro_call_expr
        (var)))))

================================================================================
doc macro and string concatenation
================================================================================

-doc """
     Sigil examples
     """.
-spec f() -> ok.
f() -> ok.

--------------------------------------------------------------------------------

(source_file
  (wild_attribute
    (attr_name
      (atom))
    (string))
  (spec
    (atom)
    (type_sig
      (expr_args)
      (atom)))
  (fun_decl
    (function_clause
      (atom)
      (expr_args)
      (clause_body
        (atom)))))

================================================================================
doc include file
================================================================================

-doc {file,"../../doc/src/info.md"}.
f() -> ok.

--------------------------------------------------------------------------------

(source_file
  (wild_attribute
    (attr_name
      (atom))
    (tuple
      (atom)
      (string)))
  (fun_decl
    (function_clause
      (atom)
      (expr_args)
      (clause_body
        (atom)))))
