Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #[test]
- fn parse_class() {
- let code = "\
- class Car {\n\
- string name;\n\
- Car new(string name);\n\
- void bar(int i);\n\
- }";
- let mut parser = Parser::new("", code);
- for lexeme in &parser.lexemes {
- println!("{}", lexeme)
- }
- let class = parser.parse_class(None).unwrap();
- assert_eq!(
- class,
- Class::new(
- LexemeLocation::from(1, 0),
- None,
- vec![],
- "Car",
- vec![],
- vec![
- ClassMember::Field(Field::new(
- LexemeLocation::from(2, 0),
- "name",
- ParsedType::type_name("string"),
- None
- )),
- ClassMember::StaticMethod(Method::new_declaration(
- LexemeLocation::from(3, 2),
- None,
- "new",
- vec![Parameter::new("name", ParsedType::type_name("string"))],
- ParsedType::type_name("Car"),
- )),
- ClassMember::Method(Method::new_declaration(
- LexemeLocation::from(4, 0),
- None,
- "bar",
- vec![Parameter::new("i", ParsedType::type_name("int"))],
- ParsedType::type_name("void"),
- )),
- ]
- )
- )
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement