【发布时间】:2020-01-15 11:54:51
【问题描述】:
我最近被授予访问使用 C 语言的项目的权限。在文件lexer.l 中,我遇到了一些我不熟悉的运算符和分隔符,并希望对此进行解释。以下是上述结构的列表。
分隔符
%{...%}、...是一堆#include语句和函数定义%option后跟一个作为变量名的字符串-
%x,后跟一堆限定为变量名的标识符,用空格分隔:waitparamlparaval- ...
%% ... %%,将...替换成一堆用换行符分隔的块,如
"~" { macro_noarg("\\nbspc"); }
"\\%" { chk_indent(); emitc('%'); }
[ \t\r]*"%" { BEGIN(comment); }
[ \t\r]*"$$" { emit_el();
indent(); emit(".. math::\n");
ilevel +=2;
if(user_lbl) {
...
}
...
<wait>[...]、<wait>"..."或<wait>s,其中s是一个符号<paraml>[...]、<paraml>"..."或<paraml>s,其中s是一个符号<paraval>[...]、<paraval>"..."或<paraval>s,其中s是一个符号
这些结构的一般含义是什么?
【问题讨论】:
-
好像flex 输入。
-
@lurker 我在
.l文件中添加了有关这些构造的信息。
标签: c macros operators delimiter lexer