【问题标题】:Trying to regenerate zend_language_scanner.c尝试重新生成 zend_language_scanner.c
【发布时间】:2013-04-08 14:15:45
【问题描述】:

我正在尝试在 PHP 中添加一个新关键字(只是学习核心),所以我所做的是:向 zend_language_parser.y 添加一个新标记,在 unticket_statement 中使用它,编译 PHP,但它没有锻炼。看来我需要在 zend_language_scanner.l 中添加那个新关键字(我通过这个文件中的另一个定义假设它)并在 re2c 的帮助下重新生成 zend_language_scanner.c。

但这就是 re2c 给我的:

$ re2c -isgf Zend/zend_language_scanner.l
re2c: error: line 1004, column 6: can't find symbol

第 1004 行包含此定义:

LNUM    [0-9]+

即使在未更改的 zend_language_scanner.l 文件上也会出现此错误。

这里是re2c -v 输出:re2c 0.13.5

有人知道如何重新生成此扫描仪或我做错了什么吗?

【问题讨论】:

    标签: php-internals


    【解决方案1】:

    你应该这样尝试:

    re2c --no-generation-date --case-inverted -cbdF -o a.c  zend_language_scanner.l
    

    我有同样的问题,直到我从文件Makefile.frag找到源cmd:

    $(RE2C) $(RE2C_FLAGS) --case-inverted -cbdFt Zend/zend_language_scanner_defs.h -oZend/zend_language_scanner.c Zend/     zend_language_scanner.l)
    

    【讨论】:

      猜你喜欢
      • 2016-11-07
      • 1970-01-01
      • 2016-03-16
      • 2010-09-06
      • 1970-01-01
      • 1970-01-01
      • 2020-10-03
      • 1970-01-01
      • 2022-09-27
      相关资源
      最近更新 更多