闪烁词法分析器帮助。试图保存特定的线路信息以备后用
Posted
技术标签:
【中文标题】闪烁词法分析器帮助。试图保存特定的线路信息以备后用【英文标题】:Scintilla lexer help. Trying to save specific line information for later use 【发布时间】:2012-12-15 22:23:23 【问题描述】:我正在使用 scintilla 的词法分析功能,我想做一些开箱即用的事情。
请注意,尽管我有一些其他语言的经验,但我是 C++ 初学者。
我正在寻找有关如何保存有关行的特定信息以供以后使用的指针。 想到的第一个想法是创建一个数组并为我们的行号填充相应的数组字段,例如:
int lineOpt[];
...
lineOpt[20] = 20;
lineOpt[21] = 20;
lineOpt[372]= 75;
...
但这里似乎有些不对劲。我不确定这是否是正确的方法,不仅因为我刚刚创建的“无限”大小的数组,还因为将出现的“间隙”。
只有少数特定行会设置这些选项(取决于其中存在的一些文本),我再次觉得这可以通过另一种方式完成。
任何帮助或对某些文章的指点将不胜感激。
【问题讨论】:
【参考方案1】:听起来您需要一个关联容器结构,而不是数组。数组在编译时总是固定长度;您不能在运行时更改它们的大小。您的声明int lineOpt[]
不合法。
考虑std::map<unsigned int, unsigned int>
或std::unordered_map<unsigned int, unsigned int>
。
【讨论】:
以上是关于闪烁词法分析器帮助。试图保存特定的线路信息以备后用的主要内容,如果未能解决你的问题,请参考以下文章