📄 example.c
字号:
// exam.c : Defines the entry point for the console application.
#include <stdlib.h>
#include <stdio.h>
int linesCount=0;
int yaccVerbose=0;
int lexVerbose=0,j,k,l,typelenght,m;
extern int yyparse();
struct CShengming
{
char m_name[30];
char m_token[30]; //Array or Value
char m_type[30]; //int, float, char
int m_weishu;
int m_xiangqing;
};
extern struct CShengming JiLu[100];
struct CArrayInfo
{
char m_name[30];
int m_lenth;
};
extern struct CArrayInfo Array[100];
extern int nTotalJiLu;
extern int nTotalArray;
void PrintAll();
int main(int argc, char* argv[])
{
extern FILE *yyin;
printf("Compiling...!\n");
if((yyin=fopen("exprTest.txt","rt"))==NULL){
perror("can not open file exprTest.txt\n") ;
exit(1);
}
if (yyparse()){
fprintf(stderr,"parser error\n");
exit(1);
}
printf("yyparse() completed successfully!\n");
PrintAll();
return 0;
}
void PrintAll()
{
int i;
printf("\t编号\t变量名\t类别\t类型\t维数\t详情\n");
for(i=0,j=1,m=1; i<nTotalJiLu; ++i)
{
//printf("\t%d\t%s\t%s\t%s\t%d\t%d\n", i, JiLu[i].m_name, JiLu[i].m_token,
// JiLu[i].m_type, JiLu[i].m_weishu, JiLu[i].m_xiangqing);
if(strcmp(JiLu[i].m_token,"Array")==0)
{
printf("\t%d\t%s\t%s\t%s\t%d\t数组指针%d\n", i, JiLu[i].m_name, JiLu[i].m_token,
JiLu[i].m_type, JiLu[i].m_weishu, j);
//printf("\t数组指针%d\n",j);
j++;
}
else
{
printf("\t%d\t%s\t%s\t%s\t%d\t变量%d\n", i, JiLu[i].m_name, JiLu[i].m_token,
JiLu[i].m_type, JiLu[i].m_weishu, m);
m++;
}
}
printf("\n\t详情\n");
printf("\t数组指针\t首地址\t总长度\tsizeof\n");
for(i=0,j=1,l=0; i<nTotalJiLu; ++i)
{
if(strcmp(JiLu[i].m_token,"Array")==0)
{
for(k=1;k<JiLu[i].m_weishu;k++)
Array[l].m_lenth=Array[l].m_lenth+Array[l+k].m_lenth;
if(strcmp(JiLu[i].m_type,"char")==0)
typelenght=sizeof(char);
else
if(strcmp(JiLu[i].m_type,"int")==0)
typelenght=sizeof(int);
else
if(strcmp(JiLu[i].m_type,"float")==0)
typelenght=sizeof(float);
else
typelenght=0;
printf("\t%d\t\t%s\t%d\t%d\n", j, Array[l].m_name, Array[l].m_lenth,typelenght);
j++;
l=l+k;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -