src/public/zc_analysis.h
Rama main · réplica de lectura del repositorio original.
// SPDX-License-Identifier: MIT
#ifndef ZC_ANALYSIS_H
#define ZC_ANALYSIS_H
/**
* @file zc_analysis.h
* @brief Public API for libzc-analysis: type checking, move semantics.
*/
struct ParserContext;
struct ASTNode;
struct Token;
/**
* @brief Full type-checking pass (MISRA, type errors, etc.).
*
* @param ctx Parser context with a fully parsed AST.
* @param root Root AST node.
* @return 0 on success, non-zero if errors found.
*/
int check_program(struct ParserContext *ctx, struct ASTNode *root);
/**
* @brief Move-semantics-only checking pass.
*
* @param ctx Parser context with a fully parsed AST.
* @param root Root AST node.
* @return 0 on success, non-zero if move errors found.
*/
int check_moves_only(struct ParserContext *ctx, struct ASTNode *root);
/**
* @brief Resolve a typedef alias to its base type.
*/
struct Type *resolve_alias(struct Type *t);
#endif // ZC_ANALYSIS_H