Files
Cescal/include/cescal/state.h
T
2026-05-23 06:04:40 -04:00

47 lines
888 B
C

/*
* Copyright (c) 2026, Chloe M.
* Provided under the BSD-3 clause
*/
#ifndef CESCAL_STATE_H
#define CESCAL_STATE_H 1
#include <stdint.h>
#include "cescal/readbuf.h"
#include "cescal/tokbuf.h"
#include "cescal/ptrbox.h"
/*
* Compiler state machine
*
* @in_fd: Input file descriptor
* @rb: Read buffer
* @tokbuf: Token buffer
* @ptrbox: Global pointer box
*/
struct cescal_state {
int in_fd;
struct readbuf rb;
struct tokbuf tokbuf;
struct ptrbox ptrbox;
};
/*
* Initialize the compiler state machine
*
* @state: Compiler state machine
* @pathname: Path of input source file
*
* Returns zero on success
*/
int state_init(struct cescal_state *state, const char *pathname);
/*
* Close the compiler state machine
*
* @state: Compiler state machine to close
*/
void state_close(struct cescal_state *state);
#endif /* !CESCAL_STATE_H */