//! Quick parser test to debug parsing issues #[cfg(test)] mod tests { use crate::lsp::document::Document; #[test] fn test_simple_character() { let input = "character Alice { age: 7 }"; let doc = Document::new(input.to_string()); println!("Parse errors: {:?}", doc.parse_errors); if doc.ast.is_some() { println!("SUCCESS: Parsed AST"); } else { println!("FAILED: No AST produced"); } assert!(doc.ast.is_some(), "Should parse simple character"); assert!(doc.parse_errors.is_empty(), "Should have no parse errors"); } #[test] fn test_species_first() { let input = r#" species Human { intelligence: high } character Alice: Human { age: 7 } "#; let doc = Document::new(input.to_string()); if !doc.parse_errors.is_empty() { for err in &doc.parse_errors { eprintln!("Parse error: {}", err.message); } } assert!(doc.ast.is_some(), "Should parse species and character"); assert!(doc.parse_errors.is_empty(), "Should have no parse errors"); } #[test] fn test_with_prose() { let input = r#" character Alice { age: 7 ---backstory A curious girl --- } "#; let doc = Document::new(input.to_string()); if !doc.parse_errors.is_empty() { for err in &doc.parse_errors { eprintln!("Parse error: {}", err.message); } } assert!(doc.ast.is_some(), "Should parse character with prose"); } }