yacc

    1热度

    1回答

    MKS Yacc支持其网站称为“selection preference syntax”的标记。它没有说明,但它由方括号中的标记组成,可选地带有脱字符号,并且它表示需要遵循特定标记或遵循其余规则: non_terminal: TOKEN1 non_terminal2 TOKEN2 [TOKEN3] non_terminal: TOKEN1 non_terminal2 TOKEN2 [^TOKE

    8热度

    5回答

    有没有一个很好的yacc/bison类型的LALR解析器生成器的.NET?

    4热度

    4回答

    Yacc不允许传递对象。因为%union只能包含POD类型,所以复杂对象必须被新建并且通过指针传递。如果发生语法错误,则yacc解析器停止运行,并且对所有这些创建的对象的引用都会丢失。 唯一的解决方案,我想出来的是所有new'd对象继承某个特定的基类,在分配时被添加到一个容器中,如果在该容器中的错误都可以被删除。 有谁知道什么更好的招数YACC来解决这个问题呢? 请不要告诉我选择不同的解析器。

    0热度

    2回答

    可用数据我要做出一些变量我在可利用B生成C: a : b c { ...some code...} 一个简单的例子: b : X { int result = 0; } | Y { int result = 1; } 这样我就可以,后来就在C说: c : D { printf(result + 1); } | E { printf(result + 2); } 有没

    0热度

    2回答

    有没有在每个终端之后执行代码的方法? 所以这样的事情是可能的: a : B { code } C { some code } 任何帮助将真正理解!

    3热度

    3回答

    我正在使用PLY编写C语法分析器,并且最近遇到了问题。 此代码: typedef int my_type; my_type x; 是正确的C代码,因为my_type被用作例如先前定义为类型 。我通过填充 解析器中的类型符号表来处理它,该解析器被词法分析器用于区分类型和 简单标识符。 然而,当类型声明规则以SEMI(';'标记)结尾时,PLY将标记my_type从第二行移开,然后再决定第一行完

    1热度

    3回答

    我想写一个使用yacc和lex的shell,我遇到了一些I/O转向器的问题。目前,我可以使用<和>运营商罚款和任何顺序,但我的问题是我可以重定向两次没有错误,如“ls> log> log2” 我的规则代码在下面,任何人都可以给我有关如何解决这个问题的一些提示?谢谢! io_mod: iomodifier_opt io_mod | ; iomodifier_opt:

    10热度

    2回答

    我想解析一个在ocamlyacc中的语法(几乎与常规的yacc相同),它支持没有运算符的函数应用程序(如Ocaml或Haskell)以及正常的分类二元和一元运算符。我得到了与' - '运算符的减少/减少冲突,可用于减法和否定。下面是语法的样品我使用: %token <int> INT %token <string> ID %token MINUS %start expr %type <e

    8热度

    1回答

    如何在一个程序中使用yyparse()来编译,链接和调用不同的YACC语法?