繁体   English   中英

为什么lex无法识别我的正则表达式定义

[英]Why can't lex recognize my regular expression definitions

我这样做是:

    /* regular definitions */

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

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

识别它,但我发现他们没有被识别.....如果我这样做,则:

    "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

在程序中,类应被识别为保留字,但不能被识别。

DECLARATION             declarations

单数

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

复数

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM