免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 8648 | 回复: 4
打印 上一主题 下一主题

parse error? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-09-23 21:58 |只看该作者 |倒序浏览
请问哪位经验丰富的编程者parse error是什么东西?
/*  below are the data type */
#define STACK_INIT_SIZE 100
#define INCREMENT 10
typedef struct{
   char *base;
   char *top;
   int stacksize;
}stack_chr;

typedef int status;


status initstack(stack_chr &stack) /* 这一行说是parse error before & token*/
{
   stack.base=(char*)malloc(STACK_INIT_SIZE*sizeof(char));
   if(!stack.base)  { printf("malloc error",exit(0);}
   stack.top=stack.base;
   stack.stacksize=STACK_INIT_SIZE;
   return(0);
}
status  push(stack_chr &stack,char element)/* 这一行说是parse error before & token*/
{
   if(stack.top-stack.base==stack.stacksize)
   stack.base=(char*)realloc(stack.base,(INCREMENT+stack.stacksize)*sizeof(char));
   if(!stack.base)   {  printf("realloc error";  exit(0);}
   *(stack.top++)=element;
   stack.stacksize+=INCREMENT;
   return(0);
}
status  pop(stack_chr &stack,char  &element)/* 这一行说是parse error before & token*/
{
   if(stack.top==stack.base) {  printf("It's an empty stack"; return (1);}
   element=*(--stack.top);
   return(0);
}
int ischars(stack_chr &stack)
{
   stack_chr temp;
   char unit_1,unit_2;
   if(initstack(temp)==0) printf("init suceed";
   pop(stack,unit_1);
   while(unit_1!='&') {  push(temp,unit_1);  pop(stack,unit_1);}
   pop(stack,unit_1);
   pop(temp,unit_2);
   while(unit_1==unit_2)
    {
       if(pop(stack,unit_1)==1)
         break;
       if(pop(temp,unit_2)==1)
         break;
    }
  if(unit_1==unit_2)
    if((stack.base==stack.top)&&(temp.base==temp.top))
    return (1);
  else
    return (0);
}
main()
{  
  stack_chr  stack;
  char temp;
  printf("lease input a sting";
  while(temp!='@'){
     temp=getchar();
     push(stack,temp);
  }
  if(ischars(stack)==1)
     printf("This is you want";
  else
     printf("This isn't you want";
}
编译时出现parse error的问题.

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2004-09-23 22:34 |只看该作者

parse error?

我编译你的程序只有这句出问题,
>;>;getchar(temp);

man getchar
看看为什么。

论坛徽章:
0
3 [报告]
发表于 2004-09-23 22:50 |只看该作者

parse error?

3_17.c:12: parse error before '&' token
3_17.c: In function `initstack':
3_17.c:14: `stack' undeclared (first use in this function)
3_17.c:14: (Each undeclared identifier is reported only once
3_17.c:14: for each function it appears in.)
3_17.c: At top level:
3_17.c:20: parse error before '&' token
3_17.c: In function `push':
3_17.c:22: `stack' undeclared (first use in this function)
3_17.c:25: `element' undeclared (first use in this function)
3_17.c: At top level:
3_17.c:29: parse error before '&' token
3_17.c: In function `pop':
3_17.c:31: `stack' undeclared (first use in this function)
3_17.c:32: `element' undeclared (first use in this function)
3_17.c: At top level:
3_17.c:35: parse error before '&' token
3_17.c: In function `ischars':
3_17.c:40: `stack' undeclared (first use in this function)
请哪位大哥再看看,parse error你们以前见过吗?是什么意思?

论坛徽章:
0
4 [报告]
发表于 2004-09-23 23:19 |只看该作者

parse error?

楼主的程序中有引用,所以是C++程序,应该用 g++ 编译与连接。可能楼主是作为C程序来编译的吧。

论坛徽章:
0
5 [报告]
发表于 2004-09-23 23:31 |只看该作者

parse error?

谢谢大哥了,搞了一通,原来是这样....
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP