我似乎无法使这个lex正则表达式工作:
%{
#include"y.tab.h"
%}
%option yylineno
/* regular definitions */
angle_bracket_start "<"
%%
angle_bracket_start /*swallow it, do nothing!*/{}
%%
但是当我用
进行测试时lex lex.l
gcc lex.yy.c -lfl
我得到了:
$ ./a.out
<
< <--- If it prints out the "<", it means lex can't parse it, right?
^C
我问这个是因为我需要一个与verbatimly匹配的正则表达式
<script type="text/JavaScript">
但是我总是得到语法错误,因为lex决定它无法解析,从而抛出<
并解析script
作为id
答案 0 :(得分:1)
要引用定义,请在名称周围使用花括号({}
):
angle_bracket_start "<"
%%
{angle_bracket_start} /*swallow it, do nothing!*/
没有花括号,它在输入中寻找文字字符串angle_bracket_start
...