rnix 0.10.2

A Nix parser written in Rust
Documentation
NODE_ROOT 0..43 {
  TOKEN_WHITESPACE(" ") 0..1
  NODE_STRING 1..42 {
    TOKEN_STRING_START("\"") 1..2
    TOKEN_STRING_CONTENT("Hello, ") 2..9
    NODE_STRING_INTERPOL 9..40 {
      TOKEN_INTERPOL_START("${") 9..11
      TOKEN_WHITESPACE(" ") 11..12
      NODE_SELECT 12..38 {
        NODE_ATTR_SET 12..32 {
          TOKEN_CURLY_B_OPEN("{") 12..13
          TOKEN_WHITESPACE(" ") 13..14
          NODE_KEY_VALUE 14..30 {
            NODE_KEY 14..19 {
              NODE_IDENT 14..19 {
                TOKEN_IDENT("world") 14..19
              }
            }
            TOKEN_WHITESPACE(" ") 19..20
            TOKEN_ASSIGN("=") 20..21
            TOKEN_WHITESPACE(" ") 21..22
            NODE_STRING 22..29 {
              TOKEN_STRING_START("\"") 22..23
              TOKEN_STRING_CONTENT("World") 23..28
              TOKEN_STRING_END("\"") 28..29
            }
            TOKEN_SEMICOLON(";") 29..30
          }
          TOKEN_WHITESPACE(" ") 30..31
          TOKEN_CURLY_B_CLOSE("}") 31..32
        }
        TOKEN_DOT(".") 32..33
        NODE_IDENT 33..38 {
          TOKEN_IDENT("world") 33..38
        }
      }
      TOKEN_WHITESPACE(" ") 38..39
      TOKEN_INTERPOL_END("}") 39..40
    }
    TOKEN_STRING_CONTENT("!") 40..41
    TOKEN_STRING_END("\"") 41..42
  }
  TOKEN_WHITESPACE(" ") 42..43
}