Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
bison规则因冲突在解析器中无效_Bison_Rule - Fatal编程技术网

bison规则因冲突在解析器中无效

bison规则因冲突在解析器中无效,bison,rule,Bison,Rule,我编写了一个语法,但当我编译它时,我得到了一个冲突(由于冲突,规则在解析器中无用)。我不知道怎么解决它。我不理解“emtpy”的问题 九点 axdef : BBEGIN GKLAMMERLINKS AXDEF GKLAMMERRECHTS def END GKLAMMERLINKS AXDEF GKLAMMERRECHTS | ; def : BEZEICHNER Doppelpunkt typ def_next ; def_next : def

我编写了一个语法,但当我编译它时,我得到了一个冲突(由于冲突,规则在解析器中无用)。我不知道怎么解决它。我不理解“emtpy”的问题

九点

axdef : BBEGIN GKLAMMERLINKS AXDEF GKLAMMERRECHTS def END GKLAMMERLINKS AXDEF GKLAMMERRECHTS
      |
      ;

def : BEZEICHNER Doppelpunkt typ def_next
    ;

def_next : def
         |
         ;

typ : basistyp
    | typ_power
    | FINSET basistyp
    | typ_function
    ;

basistypen : NAT
           | INTEGER
           | REAL
           | BOOL
           | BEZEICHNER
           ;

typ_power : POWER basistyp
          ;

typ_function : BEZEICHNER FUN BEZEICHNER
             | BEZEICHNER FUN POWER BEZEICHNER
             | KLAMMERAUF BEZEICHNER TIMES BEZEICHNER KLAMMERZU fun POWER BEZEICHNER
             ;  

fun : PFUNCTION
    | PINJ
    | PSUR
    | TFUNCTION
    | TINJ
    | SURJ
    | FFUN
    | FINJ
    | BIJ
    ;

我觉得你的作品
def
def\u next
有问题。对重复项列表的递归定义进行正确编码可能很困难。我会这样做:

axdef : BBEGIN GKLAMMERLINKS AXDEF GKLAMMERRECHTS defs END GKLAMMERLINKS AXDEF GKLAMMERRECHTS
      |
      ;

defs : def defs
     | def
     ;

def : BEZEICHNER Doppelpunkt typ
    ;

basistypen是无用的,因为它在语法中的任何地方都没有引用。basistyp真的应该是basistypen吗?我看不出任何冲突。