📄 grammer.h
字号:
#define STACKSIZE 100
struct grammer
{
char vn[27];
char vt[129];
char **generator;
int genNum;
};
struct stack
{
char *s;
char *top;
int stacksize;
};
int init(grammer * g)
{
if(!(g->generator=(char**)malloc(50*sizeof(char*)))) return 0;
g->genNum=0;
g->vn[0]=0;
g->vt[0]=0;
return 1;
}
int initStack(stack *stk)
{
(stk->s)=(char *)malloc(STACKSIZE*sizeof(char));
if( !stk->s )
{
printf("memory alocating error!\n");
exit(0);
}
stk->top=stk->s;
stk->stacksize=STACKSIZE;
return 1;
}
int stackEmpty(stack *stk)
{
if(stk->top==stk->s) return 1;
else return 0;
}
void push(stack *stk,char ch)
{
*(stk->top++)=ch;
}
char pop(stack *stk)
{
char ch;
if(!stackEmpty(stk))
{
ch=*(stk->top-1);
stk->top--;
return ch;
}
else exit(0);
}
char gettop(stack *s)
{
if(!stackEmpty(s))
return *(s->top-1);
else
{
printf("regular expression stack error!\n");
exit(0);
}
}
int insert2set(char c,char *set)
{
for(int i=1;i<=set[0];i++)
{
if(c==set[i]) return 0;
}
set[0]++;
set[set[0]]=c;
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -