uvm_spell_chkr,基类,用于uvm相关字符串拼写检查。该类中主要实现了两个方法:check和levenshtein_distance。
check。若待检查的字符串s已存在于字符串表strtab中,直接返回1,否则逐个对比strtab中的字符串与字符串s。strtab中的字符串key与待检查字符串s比对过程如下:
- 求取key和s的levenshtein距离distance
- 若举例小于0,表明key、s中有字符串未空,退出比较,否则继续
- 若distance小于前一最小距离min(默认1),清空字符串队列min_key并压入字符串key,退出比较,否则继续
- 若distance等于前一最小距离min(默认1),字符串key压入字符串队列min_key
- 把min_key中的所有字符串压入新的字符串队列q,两字符串之间以“|”隔开,打印q(给出最相似的字符串)
- 返回0
levenshtein_distance,标准的求莱文斯坦距离的算法,不多介绍了。levenshtein distance表征了两个字符串的相似程度,距离越小越相似。
用武之地:uvm_config_db支持通配符,记得不,就用了这个uvm_spell_chkr。
示例用法:
测试结果 ↓: