Reorganize code and clean up Makefile
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
#ifndef WL_AMALGAMATION
|
||||
#define WL_AMALGAMATION
|
||||
|
||||
// This file was generated automatically. Do not modify directly!
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////
|
||||
// src/compile.h
|
||||
////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef WL_PUBLIC_INCLUDED
|
||||
#define WL_PUBLIC_INCLUDED
|
||||
|
||||
#ifndef WL_AMALGAMATION
|
||||
#include "includes.h"
|
||||
#endif
|
||||
|
||||
typedef struct WL_State WL_State;
|
||||
|
||||
typedef struct {
|
||||
char *ptr;
|
||||
int len;
|
||||
} WL_String;
|
||||
|
||||
typedef struct {
|
||||
char *ptr;
|
||||
int len;
|
||||
} WL_Program;
|
||||
|
||||
typedef enum {
|
||||
WL_DONE,
|
||||
WL_ERROR,
|
||||
WL_VAR,
|
||||
WL_CALL,
|
||||
WL_OUTPUT,
|
||||
} WL_ResultType;
|
||||
|
||||
typedef struct {
|
||||
WL_ResultType type;
|
||||
WL_String str;
|
||||
} WL_Result;
|
||||
|
||||
typedef struct {
|
||||
char *ptr;
|
||||
int len;
|
||||
int cur;
|
||||
} WL_Arena;
|
||||
|
||||
typedef struct WL_Compiler WL_Compiler;
|
||||
|
||||
typedef enum {
|
||||
WL_COMPILE_RESULT_DONE,
|
||||
WL_COMPILE_RESULT_FILE,
|
||||
WL_COMPILE_RESULT_ERROR,
|
||||
} WL_CompileResultType;
|
||||
|
||||
typedef struct {
|
||||
WL_CompileResultType type;
|
||||
WL_Program program;
|
||||
WL_String path;
|
||||
} WL_CompileResult;
|
||||
|
||||
WL_Compiler* WL_Compiler_init (WL_Arena *arena);
|
||||
void WL_Compiler_free (WL_Compiler *compiler);
|
||||
WL_CompileResult WL_compile (WL_Compiler *compiler, WL_String file, WL_String content);
|
||||
WL_State* WL_State_init (WL_Arena *a, WL_Program p, char *err, int errmax);
|
||||
void WL_State_free (WL_State *state);
|
||||
void WL_State_trace (WL_State *state, int trace);
|
||||
WL_Result WL_eval (WL_State *state);
|
||||
|
||||
void WL_dump_program(WL_Program program);
|
||||
|
||||
int WL_streq (WL_String a, char *b, int blen);
|
||||
int WL_peeknone (WL_State *state, int off);
|
||||
int WL_peekint (WL_State *state, int off, long long *x);
|
||||
int WL_peekfloat (WL_State *state, int off, float *x);
|
||||
int WL_peekstr (WL_State *state, int off, WL_String *str);
|
||||
int WL_popnone (WL_State *state);
|
||||
int WL_popint (WL_State *state, long long *x);
|
||||
int WL_popfloat (WL_State *state, float *x);
|
||||
int WL_popstr (WL_State *state, WL_String *str);
|
||||
int WL_popany (WL_State *state);
|
||||
void WL_select (WL_State *state);
|
||||
void WL_pushnone (WL_State *state);
|
||||
void WL_pushint (WL_State *state, long long x);
|
||||
void WL_pushfloat (WL_State *state, float x);
|
||||
void WL_pushstr (WL_State *state, WL_String str);
|
||||
void WL_pusharray (WL_State *state, int cap);
|
||||
void WL_pushmap (WL_State *state, int cap);
|
||||
void WL_insert (WL_State *state);
|
||||
void WL_append (WL_State *state);
|
||||
|
||||
#endif // WL_PUBLIC_INCLUDED
|
||||
#endif // WL_AMALGAMATION
|
||||
Reference in New Issue
Block a user