mod gpu_program;
#[cfg(any(test, feature = "cpu-parity"))]
mod reference;
mod semantic;
#[cfg(any(test, feature = "cpu-parity"))]
mod witness;
pub use gpu_program::{
c_lower_ast_to_pg_nodes, c_lower_ast_to_pg_semantic_graph,
c_lower_ast_to_pg_semantic_graph_with_pg,
c_lower_ast_to_pg_semantic_graph_with_pg_no_control_resolution, PgReferenceDecodeError,
SemanticPgReference,
};
#[allow(deprecated)]
#[cfg(any(test, feature = "cpu-parity"))]
pub use reference::{
reference_ast_to_pg_nodes, reference_ast_to_pg_semantic_graph, try_reference_ast_to_pg_nodes,
try_reference_ast_to_pg_semantic_graph,
};
#[cfg(any(test, feature = "cpu-parity"))]
use crate::harness::OpEntry;
#[cfg(any(test, feature = "cpu-parity"))]
use vyre::ir::Expr;
#[cfg(any(test, feature = "cpu-parity"))]
use vyre_primitives::predicate::node_kind;
const VAST_NODE_STRIDE_U32: u32 = 10;
const PG_NODE_STRIDE_U32: u32 = 6;
pub const C_AST_PG_SEMANTIC_NODE_STRIDE_U32: u32 = 10;
pub const C_AST_PG_EDGE_STRIDE_U32: u32 = 6;
pub const C_AST_PG_EDGE_ROWS_PER_NODE: u32 = 5;
pub const C_AST_PG_CATEGORY_NONE: u32 = 0;
pub const C_AST_PG_CATEGORY_CONTROL: u32 = 1;
pub const C_AST_PG_CATEGORY_EXPRESSION: u32 = 2;
pub const C_AST_PG_CATEGORY_GNU: u32 = 3;
pub const C_AST_PG_CATEGORY_DECLARATION: u32 = 4;
pub const C_AST_PG_ROLE_NONE: u32 = 0;
pub const C_AST_PG_ROLE_LABEL: u32 = 1;
pub const C_AST_PG_ROLE_CASE: u32 = 2;
pub const C_AST_PG_ROLE_DEFAULT: u32 = 3;
pub const C_AST_PG_ROLE_STATEMENT_EXPR: u32 = 4;
pub const C_AST_PG_ROLE_INLINE_ASM: u32 = 5;
pub const C_AST_PG_ROLE_ASM_TEMPLATE: u32 = 6;
pub const C_AST_PG_ROLE_ASM_OUTPUT: u32 = 7;
pub const C_AST_PG_ROLE_ASM_INPUT: u32 = 8;
pub const C_AST_PG_ROLE_ASM_CLOBBER: u32 = 9;
pub const C_AST_PG_ROLE_ASM_GOTO_LABEL: u32 = 10;
pub const C_AST_PG_ROLE_ASM_QUALIFIER: u32 = 11;
pub const C_AST_PG_ROLE_GNU_ATTRIBUTE: u32 = 12;
pub const C_AST_PG_ROLE_GNU_ATTRIBUTE_DETAIL: u32 = 13;
pub const C_AST_PG_ROLE_INITIALIZER_LIST: u32 = 14;
pub const C_AST_PG_ROLE_FIELD_DESIGNATOR_OR_MEMBER_ACCESS: u32 = 15;
pub const C_AST_PG_ROLE_ARRAY_DESIGNATOR_OR_SUBSCRIPT: u32 = 16;
pub const C_AST_PG_ROLE_RANGE_DESIGNATOR: u32 = 17;
pub const C_AST_PG_ROLE_ASSIGNMENT: u32 = 18;
pub const C_AST_PG_ROLE_FUNCTION_DEFINITION: u32 = 19;
pub const C_AST_PG_ROLE_FUNCTION_DECLARATOR: u32 = 20;
pub const C_AST_PG_ROLE_AGGREGATE_DECL: u32 = 21;
pub const C_AST_PG_ROLE_FIELD_DECL: u32 = 22;
pub const C_AST_PG_ROLE_TYPEDEF_DECL: u32 = 23;
pub const C_AST_PG_ROLE_ENUMERATOR_DECL: u32 = 24;
pub const C_AST_PG_ROLE_POINTER_DECL: u32 = 25;
pub const C_AST_PG_ROLE_ARRAY_DECL: u32 = 26;
pub const C_AST_PG_ROLE_BIT_FIELD_DECL: u32 = 27;
pub const C_AST_PG_ROLE_STATIC_ASSERT_DECL: u32 = 28;
pub const C_AST_PG_ROLE_EXPRESSION: u32 = 29;
pub const C_AST_PG_ROLE_DECLARATION: u32 = 30;
pub const C_AST_PG_ROLE_GOTO: u32 = 31;
pub const C_AST_PG_ROLE_SWITCH: u32 = 32;
pub const C_AST_PG_ROLE_SELECTION: u32 = 33;
pub const C_AST_PG_ROLE_LOOP: u32 = 34;
pub const C_AST_PG_ROLE_RETURN: u32 = 35;
pub const C_AST_PG_ROLE_BREAK: u32 = 36;
pub const C_AST_PG_ROLE_CONTINUE: u32 = 37;
pub const C_AST_PG_ROLE_UNREACHABLE: u32 = 38;
pub const C_AST_PG_ROLE_ALIGNOF: u32 = 39;
pub const C_AST_PG_ROLE_FUNCTION_POINTER_DECL: u32 = 40;
pub const C_AST_PG_EDGE_NONE: u32 = 0;
pub const C_AST_PG_EDGE_PARENT: u32 = 1;
pub const C_AST_PG_EDGE_FIRST_CHILD: u32 = 2;
pub const C_AST_PG_EDGE_NEXT_SIBLING: u32 = 3;
pub const C_AST_PG_EDGE_GOTO_TARGET: u32 = 4;
pub const C_AST_PG_EDGE_SWITCH_SELECTOR: u32 = 5;
pub const C_AST_PG_EDGE_SWITCH_CASE: u32 = 6;
pub const C_AST_PG_EDGE_SWITCH_DEFAULT: u32 = 7;
pub const C_AST_PG_EDGE_CASE_VALUE: u32 = 8;
const IDX_KIND: usize = 0;
const IDX_PARENT: usize = 1;
const IDX_FIRST_CHILD: usize = 2;
const IDX_NEXT_SIBLING: usize = 3;
const IDX_SRC_BYTE_OFF: usize = 5;
const IDX_SRC_BYTE_LEN: usize = 6;
const IDX_ATTR_OFF: usize = 7;
const IDX_ATTR_LEN: usize = 8;
const IDX_RESERVED: usize = 9;
const OP_ID: &str = "vyre-libs::parsing::c::lower::ast_to_pg_nodes";
const SEMANTIC_OP_ID: &str = "vyre-libs::parsing::c::lower::ast_to_pg_semantic_graph";