deb822-lossless 0.1.2

A parser for Debian control files
Documentation
#[cfg(test)]
mod tests {
    use crate::SyntaxKind::*;
    #[test]
    fn test_empty() {
        assert_eq!(super::lex(""), vec![]);
    }

    #[test]
    fn test_simple() {
        assert_eq!(
            super::lex(
                r#"Source: syncthing-gtk
Maintainer: Jelmer Vernooij <jelmer@jelmer.uk>
Section:    net   

# This is the first binary package:

Package: syncthing-gtk
Architecture: all  # It's python so it's architecture independent
Depends: 
  foo,
  bar,
  blah (= 1.0)
Description: a package
 with a loooong
 .
 long
 .
 description
"#
            ),
            vec![
                (KEY, "Source".into()),
                (COLON, ":".into()),
                (WHITESPACE, " ".into()),
                (VALUE, "syncthing-gtk".into()),
                (NEWLINE, "\n".into()),
                (KEY, "Maintainer".into()),
                (COLON, ":".into()),
                (WHITESPACE, " ".into()),
                (VALUE, "Jelmer Vernooij <jelmer@jelmer.uk>".into()),
                (NEWLINE, "\n".into()),
                (KEY, "Section".into()),
                (COLON, ":".into()),
                (WHITESPACE, "    ".into()),
                (VALUE, "net".into()),
                (WHITESPACE, "   ".into()),
                (NEWLINE, "\n".into()),
                (NEWLINE, "\n".into()),
                (COMMENT, "# This is the first binary package:".into()),
                (NEWLINE, "\n".into()),
                (NEWLINE, "\n".into()),
                (KEY, "Package".into()),
                (COLON, ":".into()),
                (WHITESPACE, " ".into()),
                (VALUE, "syncthing-gtk".into()),
                (NEWLINE, "\n".into()),
                (KEY, "Architecture".into()),
                (COLON, ":".into()),
                (WHITESPACE, " ".into()),
                (VALUE, "all".into()),
                (WHITESPACE, "  ".into()),
                (
                    COMMENT,
                    "# It's python so it's architecture independent".into()
                ),
                (NEWLINE, "\n".into()),
                (KEY, "Depends".into()),
                (COLON, ":".into()),
                (WHITESPACE, " ".into()),
                (VALUE, "".into()),
                (NEWLINE, "\n".into()),
                (WHITESPACE, "  ".into()),
                (VALUE, "foo,".into()),
                (NEWLINE, "\n".into()),
                (WHITESPACE, "  ".into()),
                (VALUE, "bar,".into()),
                (NEWLINE, "\n".into()),
                (WHITESPACE, "  ".into()),
                (VALUE, "blah (= 1.0)".into()),
                (NEWLINE, "\n".into()),
                (KEY, "Description".into()),
                (COLON, ":".into()),
                (WHITESPACE, " ".into()),
                (VALUE, "a package".into()),
                (NEWLINE, "\n".into()),
                (WHITESPACE, " ".into()),
                (VALUE, "with a loooong".into()),
                (NEWLINE, "\n".into()),
                (WHITESPACE, " ".into()),
                (VALUE, ".".into()),
                (NEWLINE, "\n".into()),
                (WHITESPACE, " ".into()),
                (VALUE, "long".into()),
                (NEWLINE, "\n".into()),
                (WHITESPACE, " ".into()),
                (VALUE, ".".into()),
                (NEWLINE, "\n".into()),
                (WHITESPACE, " ".into()),
                (VALUE, "description".into()),
                (NEWLINE, "\n".into()),
            ]
        );
    }
}