为了好奇,我正在写一种玩具语言。我编写了一个函数词法分析器来使用许多正则表达式创建标记。
从性能的角度来看,逐个字符地循环源代码并找出令牌或者我应该坚持使用正则表达式更快/更有效吗?只是好奇如何实施“适当的”词法分子。
答案 0 :(得分:0)
鉴于我们使用的计算机的体系结构,正则表达式最终用循环实现。
如果代码是结构化的,那么它将是switch
语句中while
语句的组合,switch
中的案例代表{{1}的状态3}}识别与正则表达式相同的语言。
如果允许 转到 ,那么实现可以比通用正则表达式库更有效。
除非你有特定的效率需求,坚持使用正则表达式库应该足够高效,并且它将为你节省大量的编程(调试)时间。