Documentation
SOURCE_FILE@0..50
  ERROR@0..6
    UNSAFE_KW@0..6 "unsafe"
  WHITESPACE@6..7 " "
  FN@7..24
    ASYNC_KW@7..12 "async"
    WHITESPACE@12..13 " "
    FN_KW@13..15 "fn"
    WHITESPACE@15..16 " "
    NAME@16..19
      IDENT@16..19 "foo"
    PARAM_LIST@19..21
      L_PAREN@19..20 "("
      R_PAREN@20..21 ")"
    WHITESPACE@21..22 " "
    BLOCK_EXPR@22..24
      STMT_LIST@22..24
        L_CURLY@22..23 "{"
        R_CURLY@23..24 "}"
  WHITESPACE@24..25 "\n"
  CONST@25..40
    UNSAFE_KW@25..31 "unsafe"
    WHITESPACE@31..32 " "
    CONST_KW@32..37 "const"
    WHITESPACE@37..38 " "
    ERROR@38..40
      FN_KW@38..40 "fn"
  WHITESPACE@40..41 " "
  MACRO_CALL@41..46
    PATH@41..44
      PATH_SEGMENT@41..44
        NAME_REF@41..44
          IDENT@41..44 "bar"
    TOKEN_TREE@44..46
      L_PAREN@44..45 "("
      R_PAREN@45..46 ")"
  WHITESPACE@46..47 " "
  ERROR@47..49
    L_CURLY@47..48 "{"
    R_CURLY@48..49 "}"
  WHITESPACE@49..50 "\n"
error 6..6: expected existential, fn, trait or impl
error 38..38: expected a name
error 40..40: missing type for `const` or `static`
error 40..40: expected SEMICOLON
error 44..44: expected BANG
error 46..46: expected SEMICOLON
error 47..47: expected an item