rnix 0.10.2

A Nix parser written in Rust
Documentation
NODE_ROOT 0..96 {
  NODE_LET_IN 0..96 {
    TOKEN_LET("let") 0..3
    TOKEN_WHITESPACE("\n  ") 3..6
    NODE_KEY_VALUE 6..12 {
      NODE_KEY 6..7 {
        NODE_IDENT 6..7 {
          TOKEN_IDENT("y") 6..7
        }
      }
      TOKEN_WHITESPACE(" ") 7..8
      TOKEN_ASSIGN("=") 8..9
      TOKEN_WHITESPACE(" ") 9..10
      NODE_LITERAL 10..11 {
        TOKEN_INTEGER("2") 10..11
      }
      TOKEN_SEMICOLON(";") 11..12
    }
    TOKEN_WHITESPACE("\n  ") 12..15
    NODE_KEY_VALUE 15..46 {
      NODE_KEY 15..18 {
        NODE_IDENT 15..18 {
          TOKEN_IDENT("set") 15..18
        }
      }
      TOKEN_WHITESPACE(" ") 18..19
      TOKEN_ASSIGN("=") 19..20
      TOKEN_WHITESPACE(" ") 20..21
      NODE_ATTR_SET 21..45 {
        TOKEN_CURLY_B_OPEN("{") 21..22
        TOKEN_WHITESPACE(" ") 22..23
        NODE_KEY_VALUE 23..29 {
          NODE_KEY 23..24 {
            NODE_IDENT 23..24 {
              TOKEN_IDENT("z") 23..24
            }
          }
          TOKEN_WHITESPACE(" ") 24..25
          TOKEN_ASSIGN("=") 25..26
          TOKEN_WHITESPACE(" ") 26..27
          NODE_LITERAL 27..28 {
            TOKEN_INTEGER("3") 27..28
          }
          TOKEN_SEMICOLON(";") 28..29
        }
        TOKEN_WHITESPACE(" ") 29..30
        NODE_KEY_VALUE 30..36 {
          NODE_KEY 30..31 {
            NODE_IDENT 30..31 {
              TOKEN_IDENT("a") 30..31
            }
          }
          TOKEN_WHITESPACE(" ") 31..32
          TOKEN_ASSIGN("=") 32..33
          TOKEN_WHITESPACE(" ") 33..34
          NODE_LITERAL 34..35 {
            TOKEN_INTEGER("4") 34..35
          }
          TOKEN_SEMICOLON(";") 35..36
        }
        TOKEN_WHITESPACE(" ") 36..37
        NODE_KEY_VALUE 37..43 {
          NODE_KEY 37..38 {
            NODE_IDENT 37..38 {
              TOKEN_IDENT("b") 37..38
            }
          }
          TOKEN_WHITESPACE(" ") 38..39
          TOKEN_ASSIGN("=") 39..40
          TOKEN_WHITESPACE(" ") 40..41
          NODE_LITERAL 41..42 {
            TOKEN_INTEGER("5") 41..42
          }
          TOKEN_SEMICOLON(";") 42..43
        }
        TOKEN_WHITESPACE(" ") 43..44
        TOKEN_CURLY_B_CLOSE("}") 44..45
      }
      TOKEN_SEMICOLON(";") 45..46
    }
    TOKEN_WHITESPACE("\n") 46..47
    TOKEN_IN("in") 47..49
    TOKEN_WHITESPACE(" ") 49..50
    NODE_ATTR_SET 50..96 {
      TOKEN_CURLY_B_OPEN("{") 50..51
      TOKEN_WHITESPACE("\n  ") 51..54
      NODE_KEY_VALUE 54..60 {
        NODE_KEY 54..55 {
          NODE_IDENT 54..55 {
            TOKEN_IDENT("x") 54..55
          }
        }
        TOKEN_WHITESPACE(" ") 55..56
        TOKEN_ASSIGN("=") 56..57
        TOKEN_WHITESPACE(" ") 57..58
        NODE_LITERAL 58..59 {
          TOKEN_INTEGER("1") 58..59
        }
        TOKEN_SEMICOLON(";") 59..60
      }
      TOKEN_WHITESPACE("\n  ") 60..63
      NODE_INHERIT 63..73 {
        TOKEN_INHERIT("inherit") 63..70
        TOKEN_WHITESPACE(" ") 70..71
        NODE_IDENT 71..72 {
          TOKEN_IDENT("y") 71..72
        }
        TOKEN_SEMICOLON(";") 72..73
      }
      TOKEN_WHITESPACE("\n  ") 73..76
      NODE_INHERIT 76..94 {
        TOKEN_INHERIT("inherit") 76..83
        TOKEN_WHITESPACE(" ") 83..84
        NODE_INHERIT_FROM 84..89 {
          TOKEN_PAREN_OPEN("(") 84..85
          NODE_IDENT 85..88 {
            TOKEN_IDENT("set") 85..88
          }
          TOKEN_PAREN_CLOSE(")") 88..89
        }
        TOKEN_WHITESPACE(" ") 89..90
        NODE_IDENT 90..91 {
          TOKEN_IDENT("z") 90..91
        }
        TOKEN_WHITESPACE(" ") 91..92
        NODE_IDENT 92..93 {
          TOKEN_IDENT("a") 92..93
        }
        TOKEN_SEMICOLON(";") 93..94
      }
      TOKEN_WHITESPACE("\n") 94..95
      TOKEN_CURLY_B_CLOSE("}") 95..96
    }
  }
}