Lex 从字面上匹配尖括号
Lex match an angle bracket literally
我似乎无法使这个 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
我问这个是因为我需要一个逐字匹配的正则表达式
<script type="text/JavaScript">
但我总是遇到语法错误,因为 lex 决定它无法解析,因此抛出 <
并将 script
解析为 id
要引用定义,请在名称周围使用大括号 ({}
):
angle_bracket_start "<"
%%
{angle_bracket_start} /*swallow it, do nothing!*/
没有花括号,它正在寻找输入中的文字字符串 angle_bracket_start
...
我似乎无法使这个 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
我问这个是因为我需要一个逐字匹配的正则表达式
<script type="text/JavaScript">
但我总是遇到语法错误,因为 lex 决定它无法解析,因此抛出 <
并将 script
解析为 id
要引用定义,请在名称周围使用大括号 ({}
):
angle_bracket_start "<"
%%
{angle_bracket_start} /*swallow it, do nothing!*/
没有花括号,它正在寻找输入中的文字字符串 angle_bracket_start
...