存档

文章标签 ‘PHP内核’

像注释HTML一样注释PHP代码

2013年7月10日 没有评论

我们的目标, 是要实现如下的语法(以php-5.4.17为基础)

<?php
echo "1.这里正常执行\n";
<!--
echo "像注释HTML一样注释PHP代码\n";
echo "这行相当于在'/* */'体内\n";
echo "不会被输出\n";
-->                                                                                                                                              
echo "2.这里正常执行\n";

编辑Zend/zend_language_scanner.l

// 这是PHP的多行注释源码
<ST_IN_SCRIPTING>"/*"|"/**"{WHITESPACE} {
    int doc_com;
 
    if (yyleng > 2) {
        doc_com = 1;
        RESET_DOC_COMMENT();
    } else {
        doc_com = 0;
    }
 
    while (YYCURSOR < YYLIMIT) {
        if (*YYCURSOR++ == '*' && *YYCURSOR == '/') {
            break;
        }
    }
 
    if (YYCURSOR < YYLIMIT) {
        YYCURSOR++;
    } else {
        zend_error(E_COMPILE_WARNING, "Unterminated comment starting line %d", CG(zend_lineno));
    }
 
    yyleng = YYCURSOR - SCNG(yy_text);
    HANDLE_NEWLINES(yytext, yyleng);
 
    if (doc_com) {
        CG(doc_comment) = estrndup(yytext, yyleng);
        CG(doc_comment_len) = yyleng;
        return T_DOC_COMMENT;
    }
 
    return T_COMMENT;
}

在这基础上做[......]

Read more

分类: PHP源码 标签: ,