开始写代码 STEP_2
来源:互联网 发布:成都市中考网络平台 编辑:程序博客网 时间:2024/04/24 01:57
#include "PrimaryExpression.h"
static const CPrimaryExpression_VMT vmt = ...{ CPrimaryExpression_Generate };
void CPrimaryExpression_Initialize(CPrimaryExpression* this)
...{
CExpression_Initialize((CExpression*)this);
((CExpression*)this)->vmt = (const CExpression_VMT*)&vmt;
}
void CPrimaryExpression_Generate(CPrimaryExpression* this, FILE* output)
...{
}
static const CPrimaryExpression_VMT vmt = ...{ CPrimaryExpression_Generate };
void CPrimaryExpression_Initialize(CPrimaryExpression* this)
...{
CExpression_Initialize((CExpression*)this);
((CExpression*)this)->vmt = (const CExpression_VMT*)&vmt;
}
void CPrimaryExpression_Generate(CPrimaryExpression* this, FILE* output)
...{
}
#ifndef _STREXPRESSION_H
#define _STREXPRESSION_H
#include "PrimaryExpression.h"
typedef struct StrExpression_t CStrExpression;
typedef struct StrExpression_VMT...{
void (*generate)(CStrExpression*, FILE*);
}CStrExpression_VMT;
struct StrExpression_t...{
CPrimaryExpression super;
char *image;
};
extern void CStrExpression_Initialize(CStrExpression*, char*);
extern void CStrExpression_Generate(CStrExpression*, FILE*);
#endif
#define _STREXPRESSION_H
#include "PrimaryExpression.h"
typedef struct StrExpression_t CStrExpression;
typedef struct StrExpression_VMT...{
void (*generate)(CStrExpression*, FILE*);
}CStrExpression_VMT;
struct StrExpression_t...{
CPrimaryExpression super;
char *image;
};
extern void CStrExpression_Initialize(CStrExpression*, char*);
extern void CStrExpression_Generate(CStrExpression*, FILE*);
#endif
#ifndef _PRIMARY_EXPRESSION_H
#define _PRIMARY_EXPRESSION_H
#include "Expression.h"
typedef struct PrimaryExpression_t CPrimaryExpression;
typedef struct...{
void (*generate)(CPrimaryExpression*, FILE*);
}CPrimaryExpression_VMT;
struct PrimaryExpression_t...{
CExpression super;
};
extern void CPrimaryExpression_Initialize(CPrimaryExpression*);
extern void CPrimaryExpression_Generate(CPrimaryExpression*, FILE*);
#endif
#include "Expression.h"
#include <stdlib.h>
#define SYMTAB_MAX 256
typedef struct Symtab_t Symtab;
struct Symtab_t...{
char* name[SYMTAB_MAX];
CExpression* value[SYMTAB_MAX];
int count;
};
extern Symtab *create_symtab(void);
extern CExpression* search(Symtab*, char*);
extern int regist(Symtab*, char*, CExpression*);
#include <stdlib.h>
#define SYMTAB_MAX 256
typedef struct Symtab_t Symtab;
struct Symtab_t...{
char* name[SYMTAB_MAX];
CExpression* value[SYMTAB_MAX];
int count;
};
extern Symtab *create_symtab(void);
extern CExpression* search(Symtab*, char*);
extern int regist(Symtab*, char*, CExpression*);
#include "symtab.h"
#include "memory.h"
Symtab* create_symtab()
...{
Symtab *obj = (Symtab*)get_memory(sizeof(Symtab));
obj->count = 0;
return obj;
}
CExpression* search(Symtab* this, char* name)
...{
int i;
for(i=0; i<this->count; i++)...{
if (!strcmp(this->name[i], name))...{
return this->value[i];
}
}
return 0;
}
int regist(Symtab* this, char* name, CExpression* value)
...{
if(search(this, name))...{
return 0;
}
else...{
if (this->count < SYMTAB_MAX)...{
this->name[this->count] = name;
this->value[this->count] = value;
this->count++;
return 1;
}
else...{
fprintf(stderr,"Symtab is Overflow!!! ");
exit(-1);
}
}
return 0;
}
#include "memory.h"
Symtab* create_symtab()
...{
Symtab *obj = (Symtab*)get_memory(sizeof(Symtab));
obj->count = 0;
return obj;
}
CExpression* search(Symtab* this, char* name)
...{
int i;
for(i=0; i<this->count; i++)...{
if (!strcmp(this->name[i], name))...{
return this->value[i];
}
}
return 0;
}
int regist(Symtab* this, char* name, CExpression* value)
...{
if(search(this, name))...{
return 0;
}
else...{
if (this->count < SYMTAB_MAX)...{
this->name[this->count] = name;
this->value[this->count] = value;
this->count++;
return 1;
}
else...{
fprintf(stderr,"Symtab is Overflow!!! ");
exit(-1);
}
}
return 0;
}
- 开始写代码 STEP_2
- 开始写代码了
- 开始写代码,STEP_1
- 开始写代码STEP_3
- 开始写代码STEP_4
- 开始写代码STEP_5
- 开始写代码STEP_6
- 开始潜心写代码
- 又开始写代码了
- 今天开始博客写代码~
- 从0开始写代码--笔记
- scala 1.0 开始写scala的代码
- 菜鸟开始写代码的心得
- 20140403 "再战" step_2
- 开始写
- 开始写
- 培训开始啦,军训+上课+狂写代码
- 对开发人员开始写代码前的建议
- WTL 消息流
- some error cases meet in developing of silverlight
- 具有历史意义的一脚就此踩下了!
- 客户端下载
- empty() 与 isset() 的一个简单比较
- 开始写代码 STEP_2
- J2ME中使用缓存将屏幕内容存储为Image
- 坐在家中玩收益!
- 从金融IT公司工作十年后转到银行工作一年内的体会(转载)
- 互联网10大最有效的盈利模式
- java还有很多路要走
- 在C语言中巧用正则表达式
- Socket 异步处理
- 在C#中读写XML文件