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