ucvm_type.h

来自「利用flex和bison做的简易C语言编译器核心 支持C语言的大部分运算操作」· C头文件 代码 · 共 92 行

H
92
字号
#ifndef UCVM_TYPE_H#define UCVM_TYPE_H/*********************************************************/#include <math.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <stdarg.h>/*********************************************************/#define TYPE_EXPR_ID 1#define TYPE_EXPR_CS 2#define TYPE_EXPR_CC 3#define TYPE_EXPR_CI 4#define TYPE_EXPR_CR 5#define TYPE_EXPR_OP 6/*********************************************************/struct t_CONSTANT_I_node;struct t_CONSTANT_C_node;struct t_CONSTANT_S_node;struct t_CONSTANT_R_node;struct t_IDENTIFIER_node;struct t_OPERATIONS_node;struct t_Tree_Node;/*********************************************************/typedef double Real;typedef struct t_CONSTANT_C_node CONSTANT_C_node;typedef struct t_CONSTANT_I_node CONSTANT_I_node;typedef struct t_CONSTANT_R_node CONSTANT_R_node;typedef struct t_CONSTANT_S_node CONSTANT_S_node;typedef struct t_IDENTIFIER_node IDENTIFIER_node;typedef struct t_OPERATIONS_node OPERATIONS_node;typedef struct t_Tree_Node       Node;/*********************************************************/struct t_CONSTANT_C_node{    char  c_value;};/*********************************************************/struct t_CONSTANT_I_node{    long  i_value;};/*********************************************************/struct t_CONSTANT_R_node{    Real  r_value;};/*********************************************************/struct t_CONSTANT_S_node{    char *s_value;};/*********************************************************/struct t_IDENTIFIER_node{    char *s_label;};/*********************************************************/struct t_OPERATIONS_node{    short oper;    short op_n;    Node *op_s[4];};/*********************************************************/struct t_Tree_Node{    short   node_type;    union    {        CONSTANT_I_node ci;        CONSTANT_C_node cc;        CONSTANT_R_node cr;        CONSTANT_S_node cs;        IDENTIFIER_node id;        OPERATIONS_node op;    }       node_data;};/*********************************************************/extern FILE *yyin;extern FILE *yyout;extern FILE *asout;extern int  yylex  (void  );extern void yyerror(char *);extern void zzlabel(char *);/*********************************************************/#endif/*UCVM_TYPE_H*/

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?