Ctrl K
ComunidadGuías…

src/public/zc_analysis.h

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
// 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