首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >快速读取关键字列表的方法

快速读取关键字列表的方法
EN

Stack Overflow用户
提问于 2018-06-06 05:56:36
回答 2查看 39关注 0票数 0

我正在为一种通用编程语言编写一个简单的lexer,其中一个令牌类型是'keyword‘,它有一些预定义的控制流令牌,比如'if','else','while','return’。

我想知道使用x86标准C检查某个关键字是否在我的列表中的最快方法。

我的想法是使用跳转表,但C字符串比较有问题,因为C字符串是char类型的数组。

EN

回答 2

Stack Overflow用户

发布于 2018-06-06 06:03:30

最快的方法是手动构建一个trie,或者相当于一个状态机。Flex (或任何其他lex变体)可以为您做到这一点。

票数 1
EN

Stack Overflow用户

发布于 2018-06-06 06:05:08

理论上,哈希表提供O(1)的查找。但是,我会实现一个静态查找表。假设您要搜索的令牌数量很少。表的线性搜索应该不会代价太高。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50709507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档