rnix 0.10.2

A Nix parser written in Rust
Documentation
NODE_ROOT 0..137 {
  NODE_ATTR_SET 0..137 {
    TOKEN_CURLY_B_OPEN("{") 0..1
    TOKEN_WHITESPACE("\n  ") 1..4
    NODE_KEY_VALUE 4..21 {
      NODE_KEY 4..10 {
        NODE_IDENT 4..10 {
          TOKEN_IDENT("simple") 4..10
        }
      }
      TOKEN_WHITESPACE(" ") 10..11
      TOKEN_ASSIGN("=") 11..12
      TOKEN_WHITESPACE(" ") 12..13
      NODE_STRING 13..20 {
        TOKEN_STRING_START("\"") 13..14
        TOKEN_STRING_CONTENT("hello") 14..19
        TOKEN_STRING_END("\"") 19..20
      }
      TOKEN_SEMICOLON(";") 20..21
    }
    TOKEN_WHITESPACE("\n  ") 21..24
    NODE_KEY_VALUE 24..63 {
      NODE_KEY 24..32 {
        NODE_IDENT 24..32 {
          TOKEN_IDENT("indented") 24..32
        }
      }
      TOKEN_WHITESPACE(" ") 32..33
      TOKEN_ASSIGN("=") 33..34
      TOKEN_WHITESPACE(" ") 34..35
      NODE_STRING 35..62 {
        TOKEN_STRING_START("\'\'") 35..37
        TOKEN_STRING_CONTENT("\n    hello\n    world\n  ") 37..60
        TOKEN_STRING_END("\'\'") 60..62
      }
      TOKEN_SEMICOLON(";") 62..63
    }
    TOKEN_WHITESPACE("\n  ") 63..66
    NODE_KEY_VALUE 66..135 {
      NODE_KEY 66..101 {
        NODE_IDENT 66..101 {
          TOKEN_IDENT("uri_is_also_a_string_how_convenient") 66..101
        }
      }
      TOKEN_WHITESPACE(" ") 101..102
      TOKEN_ASSIGN("=") 102..103
      TOKEN_WHITESPACE(" ") 103..104
      NODE_LITERAL 104..134 {
        TOKEN_URI("http://example.org/foo.tar.bz2") 104..134
      }
      TOKEN_SEMICOLON(";") 134..135
    }
    TOKEN_WHITESPACE("\n") 135..136
    TOKEN_CURLY_B_CLOSE("}") 136..137
  }
}