rnix 0.10.2

A Nix parser written in Rust
Documentation
NODE_ROOT 0..62 {
  NODE_ATTR_SET 0..62 {
    TOKEN_CURLY_B_OPEN("{") 0..1
    TOKEN_WHITESPACE("\n  ") 1..4
    NODE_KEY_VALUE 4..28 {
      NODE_KEY 4..9 {
        NODE_IDENT 4..9 {
          TOKEN_IDENT("thing") 4..9
        }
      }
      TOKEN_WHITESPACE(" ") 9..10
      TOKEN_ASSIGN("=") 10..11
      TOKEN_WHITESPACE(" ") 11..12
      NODE_LIST 12..27 {
        TOKEN_SQUARE_B_OPEN("[") 12..13
        NODE_LITERAL 13..14 {
          TOKEN_INTEGER("1") 13..14
        }
        TOKEN_WHITESPACE(" ") 14..15
        NODE_LITERAL 15..16 {
          TOKEN_INTEGER("2") 15..16
        }
        TOKEN_WHITESPACE(" ") 16..17
        NODE_LITERAL 17..18 {
          TOKEN_INTEGER("3") 17..18
        }
        TOKEN_WHITESPACE(" ") 18..19
        NODE_PAREN 19..26 {
          TOKEN_PAREN_OPEN("(") 19..20
          NODE_BIN_OP 20..25 {
            NODE_LITERAL 20..21 {
              TOKEN_INTEGER("2") 20..21
            }
            TOKEN_WHITESPACE(" ") 21..22
            TOKEN_ADD("+") 22..23
            TOKEN_WHITESPACE(" ") 23..24
            NODE_LITERAL 24..25 {
              TOKEN_INTEGER("2") 24..25
            }
          }
          TOKEN_PAREN_CLOSE(")") 25..26
        }
        TOKEN_SQUARE_B_CLOSE("]") 26..27
      }
      TOKEN_SEMICOLON(";") 27..28
    }
    TOKEN_WHITESPACE("\n  ") 28..31
    NODE_KEY_VALUE 31..60 {
      NODE_KEY 31..37 {
        NODE_IDENT 31..37 {
          TOKEN_IDENT("concat") 31..37
        }
      }
      TOKEN_WHITESPACE(" ") 37..38
      TOKEN_ASSIGN("=") 38..39
      TOKEN_WHITESPACE(" ") 39..40
      NODE_BIN_OP 40..59 {
        NODE_BIN_OP 40..52 {
          NODE_LIST 40..43 {
            TOKEN_SQUARE_B_OPEN("[") 40..41
            NODE_LITERAL 41..42 {
              TOKEN_INTEGER("1") 41..42
            }
            TOKEN_SQUARE_B_CLOSE("]") 42..43
          }
          TOKEN_WHITESPACE(" ") 43..44
          TOKEN_CONCAT("++") 44..46
          TOKEN_WHITESPACE(" ") 46..47
          NODE_LIST 47..52 {
            TOKEN_SQUARE_B_OPEN("[") 47..48
            NODE_LITERAL 48..49 {
              TOKEN_INTEGER("2") 48..49
            }
            TOKEN_WHITESPACE(" ") 49..50
            NODE_LITERAL 50..51 {
              TOKEN_INTEGER("3") 50..51
            }
            TOKEN_SQUARE_B_CLOSE("]") 51..52
          }
        }
        TOKEN_WHITESPACE(" ") 52..53
        TOKEN_CONCAT("++") 53..55
        TOKEN_WHITESPACE(" ") 55..56
        NODE_LIST 56..59 {
          TOKEN_SQUARE_B_OPEN("[") 56..57
          NODE_LITERAL 57..58 {
            TOKEN_INTEGER("4") 57..58
          }
          TOKEN_SQUARE_B_CLOSE("]") 58..59
        }
      }
      TOKEN_SEMICOLON(";") 59..60
    }
    TOKEN_WHITESPACE("\n") 60..61
    TOKEN_CURLY_B_CLOSE("}") 61..62
  }
}