当前位置: 代码迷 >> PHP >> php 语法分析格式的有关问题-关于bison action的有关问题
  详细解决方案

php 语法分析格式的有关问题-关于bison action的有关问题

热度:49   发布时间:2016-04-28 21:28:02.0
php 语法分析格式的问题--关于bison action的问题
查看php的语法文件文件(zend_language_parser.y),发现有如下的写法:

| T_FOR
'('
for_expr
';' { zend_do_free(&$3 TSRMLS_CC); $4.u.op.opline_num = get_next_op_number(CG(active_op_array)); }
for_expr
';' { zend_do_extended_info(TSRMLS_C); zend_do_for_cond(&$6, &$7 TSRMLS_CC); }
for_expr
')' { zend_do_free(&$9 TSRMLS_CC); zend_do_for_before_statement(&$4, &$7 TSRMLS_CC); }



为什么可以在分号后面单独加 action呢? 如:

';' { zend_do_free(&$3 TSRMLS_CC); $4.u.op.opline_num = get_next_op_number(CG(active_op_array)); }


bison的 action 不都是放在一个production后面么,为什么可以在production中间加 action?我自己写的一个语法分析文件采用这种方式就会报错,why...?
parser?bison?action

------解决方案--------------------
这是 YACC 的写法
  相关解决方案