自己的语法荧光笔

reb*_*iri 2 php syntax-highlighting

我是在PHP中编写自己的简单语法高亮显示器.我已经完成了基于正则表达式和字符串替换的基本算法,但我真正不知道的是如何禁用替换被注释的关键字.

例如:

/**
 * Some class
 *
 * @property-read $foo
 */
 class Test
 {
     private $foo;

     public function __construct()
     {
     }
 }
Run Code Online (Sandbox Code Playgroud)

现在,我的解决方案只是突出显示已定义的关键字(如类或变量),以及已注释的关键字.

解决这个问题的任何方法?

Vic*_*ing 5

为什么不使用PHP的tokenizer来为你完成这项工作?这样,您的语法高亮显示器将以与Zend引擎完全相同的方式解析PHP代码,这可能会比正则表达式提供更好的结果.