加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
compiler.h 1.47 KB
一键复制 编辑 原始数据 按行查看 历史
thor 提交于 2013-12-26 21:34 . report
#ifndef COMPILER_H
#define COMPILER_H
#include "syntaxtree.h"
#include "stmt.h"
#include "program.h"
typedef struct {
char *tokens[MAX_TOK_LEN];
int idx;
int len;
} toks_t;
int is_constant(const char *s);
int is_num(const char* s);
int is_variable(const char *s);
int is_predicate(const char *s);
int predicate(toks_t *toks, syn_node_t *tree);
int constant(toks_t *toks, syn_node_t *tree);
int program(toks_t *toks, syn_node_t *tree);
int clause(toks_t *toks, syn_node_t *tree);
int head(toks_t *toks, syn_node_t *tree);
int body(toks_t *toks, syn_node_t *tree);
int list(toks_t *toks, syn_node_t *tree);
int condition(toks_t *toks, syn_node_t *tree);
int expression(toks_t *toks, syn_node_t *tree);
int comparator(toks_t *toks, syn_node_t *tree);
int structure(toks_t *toks, syn_node_t *tree);
int variable(toks_t *toks, syn_node_t *tree);
int element(toks_t *toks, syn_node_t *tree);
int query(toks_t *toks, syn_node_t *tree);
toks_t *toks_init(const char *string);
int token(toks_t *toks, const char *token);
int is_token(toks_t *toks, const char *token);
int toks_add_token(toks_t *toks, const char *token, int len);
void toks_info(toks_t *toks);
int toks_destroy(toks_t *toks);
int push_stat(toks_t *toks, syn_node_t *tree);
int pop_stat(toks_t *toks, syn_node_t *tree, int old_idx);
extern char var_prefix;
prog_t *syn_node_to_prog(syn_node_t *tree);
void compiler_begin();
void compiler_end();
prog_t *compile_program(char *filename);
prog_t *compile_query(char *query);
#endif
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化