Module validate

Source
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

  1. Syntax validation: Already handled by parser
  2. Structural validation: Clause exists, has required parts
  3. Semantic validation: Clause allowed for this directive
  4. 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§

ValidationContext
Validation context for checking clause compatibility

Enums§

ValidationError
Validation error types