Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 为什么可以';lex无法识别我的正则表达式定义_C_Lex - Fatal编程技术网

C 为什么可以';lex无法识别我的正则表达式定义

C 为什么可以';lex无法识别我的正则表达式定义,c,lex,C,Lex,我是这样做的: /* regular definitions */ DECLARATIONS declarations ENDDECLARATIONS (enddeclarations) INT (int) METHOD (method) PROGRAM (program) 及 但我发现他们没有

我是这样做的:

    /* regular definitions */

    DECLARATIONS                declarations
    ENDDECLARATIONS         (enddeclarations)
    INT                     (int)
    METHOD                  (method)
    PROGRAM                 (program)

但我发现他们没有被认出。。。。。如果我这样做:

    "declarations"          {yycolumn+=yyleng;return (DECLARATIONSnum);}
成功了。我真的不明白为什么

示例输入如下所示:

   program p2;
   class Test {
    method void main()
     declarations
        int x;
    program p2
    5       1         SEMInum
    class Test 
    6       1         LBRACEnum
    method void main
    7       1         LPARENnum
现在是这样的:

   program p2;
   class Test {
    method void main()
     declarations
        int x;
    program p2
    5       1         SEMInum
    class Test 
    6       1         LBRACEnum
    method void main
    7       1         LPARENnum
程序、类应被识别为保留字,但它们不被识别

DECLARATION             declarations
奇异的

{DECLARATIONS}          {yycolumn+=yyleng;return (DECLARATIONSnum);}
复数

奇异的

{DECLARATIONS}          {yycolumn+=yyleng;return (DECLARATIONSnum);}

复数

谢谢,但实际上这似乎不是关键问题,实际上它无法识别这些定义中的任何一个。。。对于“声明”标签,在我做了复数后,它仍然不起作用。你是说,帕伦夫妇是模式的一部分吗?如果是这样的话,它们应该在引号中,如果不是的话,它们似乎没有理由。请向我们展示一个你正在使用的输入的示例,你希望它如何被解析,以及它是如何被解析的。我重新编辑了这个问题,当前的问题是它无法识别以这种方式编写的{声明}谢谢,但实际上,这似乎不是关键问题,实际上它无法识别这些定义中的任何一个。。。对于“声明”标签,在我做了复数后,它仍然不起作用。你是说,帕伦夫妇是模式的一部分吗?如果是这样的话,它们应该在引号中,如果不是的话,它们似乎没有理由。请向我们展示一个示例,说明您正在使用什么输入,您希望它如何被解析,以及它是如何被解析的。我重新编辑了这个问题,当前的问题是它无法识别以这种方式编写的{声明}您使用的是什么版本的lex?提供一个完整的.l文件来演示这个问题——当我从您的片段构建一个时,它工作得很好,可以识别关键字,而不管它们以何种形式出现。@chrisdd它是lex版本2.5.4。整个文件有点太长了…这个错误是否可能来自版本?您使用的是什么版本的lex?提供一个完整的.l文件来演示这个问题——当我从您的片段构建一个时,它工作得很好,可以识别关键字,而不管它们以何种形式出现。@chrisdd它是lex版本2.5.4。整个文件有点太长…是否有可能此错误来自版本?