Expand description
IR validation utilities
This module provides validation for OpenMP directives and clauses, ensuring semantic correctness beyond just syntax.
§Learning Objectives
- Context-sensitive validation: Rules depend on directive type
- Semantic checking: Beyond syntax, check meaning and compatibility
- Error reporting: Clear, actionable error messages
- Builder pattern: Fluent API for constructing valid IR
§Validation Levels
- Syntax validation: Already handled by parser
- Structural validation: Clause exists, has required parts
- Semantic validation: Clause allowed for this directive
- Consistency validation: Clauses don’t conflict with each other
§Example
use roup::ir::{DirectiveKind, ClauseData, Identifier, ValidationContext};
let context = ValidationContext::new(DirectiveKind::For);
assert!(context.is_clause_allowed(&ClauseData::Bare(Identifier::new("nowait"))).is_ok());
Structs§
- Validation
Context - Validation context for checking clause compatibility
Enums§
- Validation
Error - Validation error types