某些C运算符、分隔符and/or宏的含义
The meaning of certain C operators, delimiters and/or macros
我最近被授权访问一个使用 C 语言的项目。在文件 lexer.l
中,我遇到了一些我不熟悉的运算符和定界符,希望得到解释。以下是所述结构的列表。
分隔符%{...%}
,...
是一堆#include
语句和函数定义
%option
后跟一个字符串作为变量名
%x
,后跟一堆符合变量名条件的标识符,用空格隔开:
wait
paraml
paraval
- ...
%% ... %%
,其中...
被换行分隔的一堆块代替,比如
"~" { 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
是一个符号
这些结构的一般含义是什么?
你提到的那些不是默认的 C 运算符也不是宏。
这是 Lex/Flex 语法。
例如:
The delimiters %{...%}
用于直接包含C代码
%option
用于指定一些Flex选项
%x
为 lexer 定义 "start conditions"
看看:
我最近被授权访问一个使用 C 语言的项目。在文件 lexer.l
中,我遇到了一些我不熟悉的运算符和定界符,希望得到解释。以下是所述结构的列表。
分隔符
%{...%}
,...
是一堆#include
语句和函数定义%option
后跟一个字符串作为变量名%x
,后跟一堆符合变量名条件的标识符,用空格隔开:wait
paraml
paraval
- ...
%% ... %%
,其中...
被换行分隔的一堆块代替,比如
"~" { 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
是一个符号
这些结构的一般含义是什么?
你提到的那些不是默认的 C 运算符也不是宏。
这是 Lex/Flex 语法。
例如:
The delimiters %{...%}
用于直接包含C代码%option
用于指定一些Flex选项%x
为 lexer 定义 "start conditions"
看看: