慕哥9229398
语法Zend/zend_language_scanner.l<ST_IN_SCRIPTING>"eval" { return T_EVAL;
}
<ST_IN_SCRIPTING>"include" { return T_INCLUDE;
}
<ST_IN_SCRIPTING>"include_once" { return T_INCLUDE_ONCE;
}
<ST_IN_SCRIPTING>"require" { return T_REQUIRE;
}
<ST_IN_SCRIPTING>"require_once" { return T_REQUIRE_ONCE;
}Zend/zend_language_parser.yinternal_functions_in_yacc:
T_ISSET '(' isset_variables ')' { $$ = $3; }
| T_EMPTY '(' variable ')' { zend_do_isset_or_isempty(ZEND_ISEMPTY, &$$, &$3 TSRMLS_CC); }
| T_INCLUDE expr { zend_do_include_or_eval(ZEND_INCLUDE, &$$, &$2 TSRMLS_CC); }
| T_INCLUDE_ONCE expr { zend_do_include_or_eval(ZEND_INCLUDE_ONCE, &$$, &$2 TSRMLS_CC); }
| T_EVAL '(' expr ')' { zend_do_include_or_eval(ZEND_EVAL, &$$, &$3 TSRMLS_CC); }
| T_REQUIRE expr { zend_do_include_or_eval(ZEND_REQUIRE, &$$, &$2 TSRMLS_CC); }
| T_REQUIRE_ONCE expr { zend_do_include_or_eval(ZEND_REQUIRE_ONCE, &$$, &$2 TSRMLS_CC); }
;Zend/zend_compile.cvoid zend_do_include_or_eval(int type, znode *result, const znode *op1 TSRMLS_DC) {
zend_do_extended_fcall_begin(TSRMLS_C);
{
zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC);
opline->opcode = ZEND_INCLUDE_OR_EVAL;
opline->result_type = IS_VAR;
opline->result.var = get_temporary_variable(CG(active_op_array)); SET_NODE(opline->op1, op1); SET_UNUSED(opline->op2);
opline->extended_value = type; GET_NODE(result, opline->result);
}
zend_do_extended_fcall_end(TSRMLS_C);
}