lr/state.h

43 lines
772 B
C

#pragma once
#include<fcntl.h>
#include<signal.h>
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include"lex.h"
#include"pnode.h"
#include"reg.h"
#include"str.h"
#include"vec.h"
#include"mem.h"
#include"err.h"
#include"gen.h"
#include"ir.h"
#include"run.h"
#include"x86_64.h"
#include"i386.h"
// State for par source file
typedef struct State
{
Gen gen;
Lexer lexer;
Parser parser;
Str input_buffer;
FILE*infile;
FILE*outfile;
char*infilename;
} State;
extern State state;
State state_new(void);
void state_close_outfile(State*st);
void state_free(State*st);
void state_print_errors(State*st);
void state_set_outfile(State*st,char*infile,bool setoutfile,char*setoutfile_name,uint32_t buildarch);
void cleanquit(int exitval);
void sighandle(int sig);