c++ - 我的初始化图有什么问题lexname = {{“程序”,程序}}?
问题描述
我的初始化有什么问题似乎有问题
std::map<std::string,LexType> lexname_s = {{"PROGRAM",PROGRAM},
{ "TYPE" , TYPE},
{ "VAR" , VAR},
{"PROCEDURE", PROCEDURE},
{"BEGIN", BEGIN},
{"END", END},
{"ARRAY", ARRAY},
{"OF", OF},
{"RECORD", RECORD},
{"IF", IF },
{"THEN", THEN },
{"ELSE", ELSE },
{"FI", FI },
{"WHILE", WHILE },
{"DO", DO },
{"ENDWH", ENDWH },
{"READ", READ },
{"WRITE", WRITE },
{"RETURN", RETURN },
{"ID", ID },
{"INTC_VAL", INTC_VAL },
{"ASSIGN", ASSIGN },
{"EQ", EQ },
{"LT", LT },
{"PLUS", PLUS },
{"MINUS", MINUS },
{"TIMES", TIMES },
{"DIVIDE", DIVIDE },
{"LPAREN", LPAREN },
{"RPAREN", RPAREN },
{"DOT", DOT },
{"COLON", COLON },
{"SEMI", SEMI },
{"COMMA", COMMA },
{"LMIDPAREN", LMIDPAREN },
{"RMIDPAREN", RMIDPAREN },
{"UNDERRANGE", UNDERRANGE },
{"ENDFILE", EOF },
{"ERROR", ERROR},
};
错误代码
error: could not convert ‘{{"PROGRAM", PROGRAM}, {"TYPE", TYPE}, {"VAR", VAR}, {"PROCEDURE", PROCEDURE}, {"BEGIN", BEGIN}, {"END", END}, {"ARRAY", ARRAY}, {"OF", OF}, {"RECORD", RECORD}, {"IF", IF}, {"THEN", THEN}, {"ELSE", ELSE}, {"FI", FI}, {"WHILE", WHILE}, {"DO", DO}, {"ENDWH", ENDWH}, {"READ", READ}, {"WRITE", WRITE}, {"RETURN", RETURN}, {"ID", ID}, {"INTC_VAL", INTC_VAL}, {"ASSIGN", ASSIGN}, {"EQ", EQ}, {"LT", LT}, {"PLUS", PLUS}, {"MINUS", MINUS}, {"TIMES", TIMES}, {"DIVIDE", DIVIDE}, {"LPAREN", LPAREN}, {"RPAREN", RPAREN}, {"DOT", DOT}, {"COLON", COLON}, {"SEMI", SEMI}, {"COMMA", COMMA}, {"LMIDPAREN", LMIDPAREN}, {"RMIDPAREN", RMIDPAREN}, {"UNDERRANGE", UNDERRANGE}, {"ENDFILE", -1}, {"ERROR", ERROR}}’
from ‘<brace-enclosed initializer list>’ to ‘std::map<std::basic_string<char>, LexType>’
};
解决方案
EOF
是在 stdio.h 中定义的保留宏,因此更改此名称
EOF 扩展为整数常量表达式,类型为 int 和负值,由多个函数返回以指示文件结束,即不再有来自流的输入。[ISO 标准]
现在,如果您注意错误,您会注意到这个 {"ENDFILE", -1}
而不是{"ENDFILE", EOF}
.
-1
是 EOF
宏的值。
推荐阅读
- android - Gitlab cicd在Android应用程序中运行测试阶段有问题
- javascript - Javascript:更新对象数组中的字段
- php - 如何使用 PhpSpreadSheet 将 Xlsx 文件下载到客户端
- go - go get 无法从 github 上的私有仓库获取模块
- matlab - MATLAB:“double”类型的输入参数的未定义函数“rotm2tform”
- react-native - 如何使 React-Native 的文本内容处于同一水平?
- c++ - 检查和构建时柯南包管理器出现问题
- asp.net - 动态创建的代码块未触发
- javascript - 条纹结帐提交在一个页面上不起作用,但在另一个页面上
- python - 从 json 字符串中解析键/值