【发布时间】:2010-09-21 04:18:27
【问题描述】:
好的,所以我正在编写一个函数作为词法分析器的一部分,用于“查找”或搜索与关键字匹配的内容。我的词法分析器捕获了所有明显的标记,例如单字符和多字符运算符 (+ - * / > < = == etc)(cmets 和空格也已经被取出),所以我在收集了一个只有字母数字字符(包括下划线)的流之后调用了一个函数string,则此字符串需要作为已知关键字或标识符进行匹配。
所以我想知道如何识别它?我知道我基本上需要将它与某个列表或数组或所有内置关键字中的某些内容进行比较,如果它匹配一个返回匹配它的相应枚举值;否则,如果不匹配,则它必须是函数或变量标识符。那么我应该如何寻找匹配项呢?我在某处读到所谓的二叉搜索树是一种有效的方法,或者使用哈希表,问题是我从来没有使用过,所以我不确定它是否是正确的方法。我可以使用 MySQL 数据库吗?
【问题讨论】:
-
使用 MySQL 在 C++ 中进行关键字查找,就像调用 Web Service 来执行两个整数相加一样。
标签: c++ search performance lexer