missing ';' before identifier 'tokenEnum'小白痴求帮助T^T

程序媛雪利 2012-11-18 08:42:56
这个问题应该比较白痴。。。我一小白找了半天实在不知道哪错了。。。贴部分代码求帮助。。。
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <math.h>
enum Token_Type // 记号的类别,共22个
{ ORIGIN, SCALE, ROT, IS, // 保留字(一字一码)
TO, STEP, DRAW,FOR, FROM, // 保留字
T, // 参数
SEMICO, L_BRACKET, R_BRACKET, COMMA,// 分隔符
PLUS, MINUS, MUL, DIV, POWER, // 运算符
FUNC, // 函数(调用)
CONST_ID, // 常数
NONTOKEN, // 空记号(源程序结束)
ERRTOKEN // 出错记号(非法输入)
};

typedef struct Token // 记号的数据结构
{ Token_Type type; // 类别
char * lexeme; // 属性,原始输入的字符串
double value; // 属性,若记号是常数则是常数的值
double (* FuncPtr)(double); // 属性,若记号是函数则是函数指针
}Token;

static Token TokenTab[]=
{
{CONST_ID,"PI", 3.1415926, NULL},//0
{CONST_ID,"E", 2.71828, NULL},//1
{T, "T", 0.0, NULL},//2
{FUNC, "SIN", 0.0, sin},//3
{FUNC, "COS", 0.0, cos},//4
{FUNC, "TAN", 0.0, tan},//5
{FUNC, "LN", 0.0, log},//6
{FUNC, "EXP", 0.0, exp},//7
{FUNC, "SQRT", 0.0, sqrt},//8
{ORIGIN, "ORIGIN",0.0, NULL},//9
{SCALE, "SCALE", 0.0, NULL},//10
{ROT, "ROT", 0.0, NULL},//11
{IS, "IS", 0.0, NULL},//12
{FOR, "FOR", 0.0, NULL},//13
{FROM, "FROM", 0.0, NULL},//14
{TO, "TO", 0.0, NULL},//15
{STEP, "STEP", 0.0, NULL},//16
{DRAW, "DRAW", 0.0, NULL},//17

{SEMICO, ";", 0.0, NULL},//18
{L_BRACKET,"(", 0.0, NULL},//19
{R_BRACKET,")", 0.0, NULL},//20
{COMMA, ",", 0.0, NULL},//21
{PLUS, "+", 0.0, NULL},//22
{MINUS, "-", 0.0, NULL},//23
{MUL, "*", 0.0, NULL},//24
{DIV, "/", 0.0, NULL},//25
{POWER, "**", 0.0, NULL}//26
};

string tokenEnum[] =
{
"CONST_ID","CONST_ID",
"T",
"FUNC","FUNC","FUNC","FUNC","FUNC","FUNC",
"ORIGIN","SCALE","ROT","IS","FOR","FROM","TO","STEP","DRAW",
"SEMICO","L_BRACKET","R_BRACKET","COMMA","PLUS","MINUS","MUL","DIV","POWER"
};


H:\Programme\编译原理WK\LexicalAnalyzer\LA.CPP(56) : error C2146: syntax error : missing ';' before identifier 'tokenEnum'
H:\Programme\编译原理WK\LexicalAnalyzer\LA.CPP(56) : error C2501: 'string' : missing storage-class or type specifiers
H:\Programme\编译原理WK\LexicalAnalyzer\LA.CPP(56) : fatal error C1004: unexpected end of file found

错误标记都指在“string tokenEnum[] = ”这一行(56行)
...全文
177 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
漫步者、 2012-11-18
  • 打赏
  • 举报
回复
引用 9 楼 Lolith8023 的回复:
引用 8 楼 ganpengjin1 的回复:引用 7 楼 Lolith8023 的回复:引用 6 楼 ganpengjin1 的回复:我知道,你加上吧!因为你的string呢 改成char*就好了呐。。。什么情况。。。因为你使用string容器,所以要using namespace std; 如果用char,所以不用加!! 嗯,三Q~
问题都解决了,怎么还是来个无满意的结贴呢?费解
程序媛雪利 2012-11-18
  • 打赏
  • 举报
回复
引用 8 楼 ganpengjin1 的回复:
引用 7 楼 Lolith8023 的回复:引用 6 楼 ganpengjin1 的回复:我知道,你加上吧!因为你的string呢 改成char*就好了呐。。。什么情况。。。因为你使用string容器,所以要using namespace std; 如果用char,所以不用加!!
嗯,三Q~
漫步者、 2012-11-18
  • 打赏
  • 举报
回复
引用 7 楼 Lolith8023 的回复:
引用 6 楼 ganpengjin1 的回复:我知道,你加上吧!因为你的string呢 改成char*就好了呐。。。什么情况。。。
因为你使用string容器,所以要using namespace std; 如果用char,所以不用加!!
程序媛雪利 2012-11-18
  • 打赏
  • 举报
回复
引用 6 楼 ganpengjin1 的回复:
我知道,你加上吧!因为你的string呢
改成char*就好了呐。。。什么情况。。。
漫步者、 2012-11-18
  • 打赏
  • 举报
回复
我知道,你加上吧!因为你的string呢
程序媛雪利 2012-11-18
  • 打赏
  • 举报
回复
引用 3 楼 ganpengjin1 的回复:
加个using namespace std;就可以了
可是头文件不是iostream啊。。而且我有写#include <string.h>啊。。。
breakfisher 2012-11-18
  • 打赏
  • 举报
回复
恩,std::string tokenEnum[] =
漫步者、 2012-11-18
  • 打赏
  • 举报
回复
加个using namespace std;就可以了
漫步者、 2012-11-18
  • 打赏
  • 举报
回复
是在6.0下吗、
漫步者、 2012-11-18
  • 打赏
  • 举报
回复
没有错误啊!

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧