如何在flex示例中使用myname2.lex?

时间:2019-02-08 21:52:03

标签: flex-lexer

我在flex示例中看到以下示例。我能够编译它。但是我不确定我应该给它什么。有人能让我知道吗?谢谢。

/*
 * myname2.lex : A sample Flex program
 *               that does token replacement.                      
 */

%{
#include <stdio.h>
%}

%x STRING
%%
\"                ECHO; BEGIN(STRING); 
<STRING>[^\"\n]*  ECHO;
<STRING>\"        ECHO; BEGIN(INITIAL);

%NAME     { printf("%s",getenv("LOGNAME")); }
%HOST     { printf("%s",getenv("HOST"));    }
%HOSTTYPE { printf("%s",getenv("HOSTTYPE"));}
%HOME     { printf("%s",getenv("HOME"));    }

1 个答案:

答案 0 :(得分:0)

规则%NAME%HOST%HOSTTYPE%HOME分别与这些确切的字符串匹配。因此,您可以输入这些内容并查看其相应的操作执行。

您还可以输入其中两个用引号引起来的引号(例如"%HOST"),并注意由于将整个内容视为字符串文字,因此不会执行其操作。