例如,我的词法分析器识别函数调用模式:
//i.e. hello(...), foo(...), bar(...)
FUNCALL [a-zA-Z0-9]*[-_]*[a-zA-Z0-9]+[-_*][a-zA-Z0-9]*\(.\)
现在 flex 识别了模式,但是它传递了模式中的最后一个字符(即存储foo(...)
在里面之后yytext
,词法分析器将指向之后的下一个字符foo(...)
)
如何将词法分析器指针重置回函数模式的开头?即在识别之后foo(..)
,我想让词法分析器指向的开始foo(..)
,所以我可以开始标记它。
我需要这样做,因为对于每个正则表达式模式,每个模式只能返回一个标记。即匹配后foo(...)
,我只能返回foo
或返回语句,但不能全部返回(
。)