A lexer and parser for WebIDL in Rust.
```rust use webidl_parser::*;
let lexer = Lexer::new("/* Example taken from emscripten site */\n\
enum EnumClassEnumWithinClass {\n\
\"EnumClass::eval\"\n\
};");
asserteq!(lexer.collect::
```rust use webidlparser::*; use webidlparser::ast::*;
let result = Parser::parse_string("[Attribute] interface Node { };");
asserteq!(result, Ok(vec![Definition { definitiontype: DefinitionType::Interface(Interface { members: vec![], name: "Node".tostring(), type: InterfaceType::NonPartial(None), }), extendedattributes: vec![ Box::new(ExtendedAttribute::Other { other: Other::Identifier("Attribute".tostring()), rest: None, })], }])); ```