TOML File
  TomlKeyValue
    TomlKey
      TomlKeySegment
        PsiElement(BARE_KEY)('key')
    PsiWhiteSpace(' ')
    PsiElement(=)('=')
    PsiWhiteSpace(' ')
    TomlLiteral
      PsiElement(BASIC_STRING)('"value"')
  PsiWhiteSpace('\n')
  TomlKeyValue
    TomlKey
      TomlKeySegment
        PsiElement(BARE_KEY)('bare_key')
    PsiWhiteSpace(' ')
    PsiElement(=)('=')
    PsiWhiteSpace(' ')
    TomlLiteral
      PsiElement(BASIC_STRING)('"value"')
  PsiWhiteSpace('\n')
  TomlKeyValue
    TomlKey
      TomlKeySegment
        PsiElement(BARE_KEY)('bare-key')
    PsiWhiteSpace(' ')
    PsiElement(=)('=')
    PsiWhiteSpace(' ')
    TomlLiteral
      PsiElement(BASIC_STRING)('"value"')
  PsiWhiteSpace('\n')
  TomlKeyValue
    TomlKey
      TomlKeySegment
        PsiElement(BARE_KEY)('1234')
    PsiWhiteSpace(' ')
    PsiElement(=)('=')
    PsiWhiteSpace(' ')
    TomlLiteral
      PsiElement(BASIC_STRING)('"value"')
  PsiWhiteSpace('\n\n')
  TomlKeyValue
    TomlKey
      TomlKeySegment
        PsiElement(BARE_KEY)('2018-04-01')
    PsiWhiteSpace(' ')
    PsiElement(=)('=')
    PsiWhiteSpace(' ')
    TomlLiteral
      PsiElement(DATE_TIME)('2018-04-01')
  PsiWhiteSpace('\n')
  TomlKeyValue
    TomlKey
      TomlKeySegment
        PsiElement(BARE_KEY)('2018-04-01Z')
    PsiWhiteSpace(' ')
    PsiElement(=)('=')
    PsiWhiteSpace(' ')
    TomlLiteral
      PsiElement(DATE_TIME)('2018-04-01Z')
  PsiWhiteSpace('\n\n')
  TomlKeyValue
    TomlKey
      TomlKeySegment
        PsiElement(BASIC_STRING)('"127.0.0.1"')
    PsiWhiteSpace(' ')
    PsiElement(=)('=')
    PsiWhiteSpace(' ')
    TomlLiteral
      PsiElement(BASIC_STRING)('"value"')
  PsiWhiteSpace('\n')
  TomlKeyValue
    TomlKey
      TomlKeySegment
        PsiElement(BASIC_STRING)('"character encoding"')
    PsiWhiteSpace(' ')
    PsiElement(=)('=')
    PsiWhiteSpace(' ')
    TomlLiteral
      PsiElement(BASIC_STRING)('"value"')
  PsiWhiteSpace('\n')
  TomlKeyValue
    TomlKey
      TomlKeySegment
        PsiElement(BASIC_STRING)('"ʎǝʞ"')
    PsiWhiteSpace(' ')
    PsiElement(=)('=')
    PsiWhiteSpace(' ')
    TomlLiteral
      PsiElement(BASIC_STRING)('"value"')
  PsiWhiteSpace('\n')
  TomlKeyValue
    TomlKey
      TomlKeySegment
        PsiElement(LITERAL_STRING)(''key2'')
    PsiWhiteSpace(' ')
    PsiElement(=)('=')
    PsiWhiteSpace(' ')
    TomlLiteral
      PsiElement(BASIC_STRING)('"value"')
  PsiWhiteSpace('\n')
  TomlKeyValue
    TomlKey
      TomlKeySegment
        PsiElement(LITERAL_STRING)(''quoted "value"'')
    PsiWhiteSpace(' ')
    PsiElement(=)('=')
    PsiWhiteSpace(' ')
    TomlLiteral
      PsiElement(BASIC_STRING)('"value"')
  PsiWhiteSpace('\n\n')
  TomlKeyValue
    TomlKey
      TomlKeySegment
        PsiElement(BASIC_STRING)('""')
    PsiWhiteSpace(' ')
    PsiElement(=)('=')
    PsiWhiteSpace(' ')
    TomlLiteral
      PsiElement(BASIC_STRING)('"value"')
  PsiWhiteSpace('\n')
  TomlKeyValue
    TomlKey
      TomlKeySegment
        PsiElement(LITERAL_STRING)('''')
    PsiWhiteSpace(' ')
    PsiElement(=)('=')
    PsiWhiteSpace(' ')
    TomlLiteral
      PsiElement(BASIC_STRING)('"value"')
  PsiWhiteSpace('\n\n')
  TomlKeyValue
    TomlKey
      TomlKeySegment
        PsiElement(BARE_KEY)('name')
    PsiWhiteSpace(' ')
    PsiElement(=)('=')
    PsiWhiteSpace(' ')
    TomlLiteral
      PsiElement(BASIC_STRING)('"Orange"')
  PsiWhiteSpace('\n')
  TomlKeyValue
    TomlKey
      TomlKeySegment
        PsiElement(BARE_KEY)('physical')
      PsiElement(.)('.')
      TomlKeySegment
        PsiElement(BARE_KEY)('color')
    PsiWhiteSpace(' ')
    PsiElement(=)('=')
    PsiWhiteSpace(' ')
    TomlLiteral
      PsiElement(BASIC_STRING)('"orange"')
  PsiWhiteSpace('\n')
  TomlKeyValue
    TomlKey
      TomlKeySegment
        PsiElement(BARE_KEY)('physical')
      PsiElement(.)('.')
      TomlKeySegment
        PsiElement(BARE_KEY)('shape')
    PsiWhiteSpace(' ')
    PsiElement(=)('=')
    PsiWhiteSpace(' ')
    TomlLiteral
      PsiElement(BASIC_STRING)('"round"')
  PsiWhiteSpace('\n')
  TomlKeyValue
    TomlKey
      TomlKeySegment
        PsiElement(BARE_KEY)('site')
      PsiElement(.)('.')
      TomlKeySegment
        PsiElement(BASIC_STRING)('"google.com"')
    PsiWhiteSpace(' ')
    PsiElement(=)('=')
    PsiWhiteSpace(' ')
    TomlLiteral
      PsiElement(BOOLEAN)('true')
  PsiWhiteSpace('\n\n')
  TomlKeyValue
    TomlKey
      TomlKeySegment
        PsiElement(BARE_KEY)('a')
      PsiElement(.)('.')
      TomlKeySegment
        PsiElement(BARE_KEY)('b')
      PsiElement(.)('.')
      TomlKeySegment
        PsiElement(BARE_KEY)('c')
    PsiWhiteSpace(' ')
    PsiElement(=)('=')
    PsiWhiteSpace(' ')
    TomlLiteral
      PsiElement(NUMBER)('1')
  PsiWhiteSpace('\n')
  TomlKeyValue
    TomlKey
      TomlKeySegment
        PsiElement(BARE_KEY)('a')
      PsiElement(.)('.')
      TomlKeySegment
        PsiElement(BARE_KEY)('d')
    PsiWhiteSpace(' ')
    PsiElement(=)('=')
    PsiWhiteSpace(' ')
    TomlLiteral
      PsiElement(NUMBER)('2')
  PsiWhiteSpace('\n\n')
  PsiComment(COMMENT)('# INVALID')
  PsiWhiteSpace('\n')
  TomlKeyValue
    TomlKey
      TomlKeySegment
        PsiElement(BARE_KEY)('a')
    PsiElement(.)('.')
    PsiWhiteSpace(' ')
    PsiErrorElement:<key segment> expected, got '='
      PsiElement(=)('=')
    PsiWhiteSpace(' ')
    PsiElement(BASIC_STRING)('""')
  PsiWhiteSpace('\n')
  PsiErrorElement:'.' unexpected
    PsiElement(.)('.')
  PsiElement(BARE_KEY)('a')
  PsiWhiteSpace(' ')
  PsiElement(=)('=')
  PsiWhiteSpace(' ')
  PsiElement(BASIC_STRING)('""')
  PsiWhiteSpace('\n\n')
  PsiComment(COMMENT)('# INVALID don't parse next key as a value if the value is not provided')
  PsiWhiteSpace('\n')
  TomlKeyValue
    TomlKey
      TomlKeySegment
        PsiElement(BARE_KEY)('key1')
    PsiWhiteSpace(' ')
    PsiElement(=)('=')
    PsiErrorElement:VALUE expected, got '"key2"'
      <empty list>
  PsiWhiteSpace('\n')
  TomlKeyValue
    TomlKey
      TomlKeySegment
        PsiElement(BASIC_STRING)('"key2"')
    PsiWhiteSpace(' ')
    PsiElement(=)('=')
    PsiWhiteSpace(' ')
    TomlLiteral
      PsiElement(BASIC_STRING)('""')
  PsiWhiteSpace('\n')
  TomlKeyValue
    TomlKey
      TomlKeySegment
        PsiElement(BARE_KEY)('key3')
    PsiWhiteSpace(' ')
    PsiElement(=)('=')
    PsiErrorElement:VALUE expected, got 'key4'
      <empty list>
  PsiWhiteSpace('\n')
  TomlKeyValue
    TomlKey
      TomlKeySegment
        PsiElement(BARE_KEY)('key4')
    PsiWhiteSpace(' ')
    PsiElement(=)('=')
    PsiWhiteSpace(' ')
    TomlLiteral
      PsiElement(BASIC_STRING)('""')
  PsiWhiteSpace('\n\n')
  PsiComment(COMMENT)('# INVALID don't parse invalid (identifier) value as next key')
  PsiWhiteSpace('\n')
  TomlKeyValue
    TomlKey
      TomlKeySegment
        PsiElement(BARE_KEY)('key1')
    PsiWhiteSpace(' ')
    PsiElement(=)('=')
    PsiErrorElement:<literal>, '[' or '{' expected, got 'IntellijIdeaRulezzz'
      <empty list>
    PsiElement(BARE_KEY)('IntellijIdeaRulezzz')
  PsiWhiteSpace('\n')
  TomlKeyValue
    TomlKey
      TomlKeySegment
        PsiElement(BARE_KEY)('key2')
    PsiWhiteSpace(' ')
    PsiElement(=)('=')
    PsiErrorElement:<literal>, '[' or '{' expected, got 'IntellijIdeaRulezzz'
      <empty list>
    PsiWhiteSpace(' ')
    PsiElement(BARE_KEY)('IntellijIdeaRulezzz')
