首页 文章
  • 10 votes
     answers
     views

    Lex / Flex - 扫描EOF角色

    其他人有我遇到的以下问题,但我找不到任何报告解决方案的人..让Flex发现EOF(文件结束) . 我需要Flex来查找EOF并返回一个令牌,表明它已找到它,这样它就可以告诉Yacc / Bison它已经到达输入源文件的末尾并且可以报告成功的解析 . 请注意this question与此不同,因为这与Lex / Flex有关 . 任何帮助都是极好的 . 谢谢 .
  • 0 votes
     answers
     views

    文件lex过早结束

    当我尝试使用make关键字编译它时,它给出了一个错误: 第17行中lex.l文件中的文件过早结束 . %option noyywrap %{ #include "grammer.tab.h" %} name ([0-9]) whitespace [ \r\t\v\f] linefeed \n %% {name} {...
  • 0 votes
     answers
     views

    如何从函数调用中删除逗号和括号

    在使用快乐解析器编写的函数式语言编译器中,与yacc / bison非常相似,我使用以下规则实现了列表并列出了一些核心函数 map , concat 和 filter : Exp: ... | concat '(' Exp ',' Exp ')' { Concat $3 $5 } | map '(' Exp ',' Exp ')' { Map $3 $5 } ...
  • 124 votes
     answers
     views

    Antlr的优点(相比之下,lex / yacc / bison)[关闭]

    我过去曾经使用过lex和yacc(更常见的是bison)用于各种项目,通常是翻译(例如EDIF的子集流入EDA应用程序) . 另外,我必须支持基于几十年前的lex / yacc语法的代码 . 所以我知道我的工具,虽然我不是专家 . 我在过去的各种论坛上看过关于Antlr的积极评论,我很好奇我可能会缺少什么 . 因此,如果您同时使用了两者,请告诉我Antlr中哪些更好或更先进 . 我目前的限制是我在...
  • 0 votes
     answers
     views

    ANTLR相当于野牛REJECT行动?

    我正在尝试解析 Name=Value 对的列表,其中值可以包含除空格之外的任何内容(即值可以包含等号) .该名称仅限于通常的标识符字符 . 问题是,'Value'标记匹配所有内容 . 例如,输入: dude=sweet 解析器将 whole 输入与'Value'令牌匹配(并抛出 MismatchedTokenException ) . 在野牛中,有可能将状态分配给令牌(或者这只是针对非终结符号?...
  • 7 votes
     answers
     views

    Flex和Bison的Emacs模式,或删除这些模式的自动缩进?

    Emacs在Flex和Bison中对自动缩进的处理很差 . 事实上,它似乎不支持flex模式 . 那么,emacs用户如何应对这些?我喜欢VIm,但我不想切换,因为我在Emacs中更快更舒服 . 几个月前,我为Bison设立了第三方elisp模块,但当它的缩进破坏时,它永远不会被修复 . 简而言之,这是一个糟糕的黑客 . 或者有没有办法可以关闭.l和.y文件的自动缩进(所以按下会做一个缩进)?我如...
  • 1 votes
     answers
     views

    野牛/ yacc语法消歧

    我遵循野牛语法(作为更复杂的语法的一部分): `` expression: IDENTIFIER | CONST | LAMBDA match_block ; match_block: pattern '=' expression | match_block '|' pattern '=' expression ; pattern: IDENTIFI...
  • 3 votes
     answers
     views

    如何解决转移/减少冲突迫使转变或减少?

    当Yacc / Bison发生转移/减少冲突时,是否可以强制解决冲突?换句话说:是否有可能明确强制它优先考虑转变或减少? 对于我所读到的内容,如果您对默认分辨率感到满意,可以告诉发生器not complain about it . 我真的不喜欢这个,因为它混淆了你理性的选择 . 另一种选择是重写语法来解决问题 . 我不知道这是否总是可行的,而且往往这使得理解起来更加困难 . 最后,我已经阅读了优先...
  • 2 votes
     answers
     views

    野牛转移 - 减少冲突

    带有冲突的精简版语法: body: variable_list function_list; variable_list: variable_list variable | /* empty */ ; variable: TYPE identifiers ';' ; identifiers: identifiers ',' IDENTIFIER | IDENTIFIER ; funct...
  • 0 votes
     answers
     views

    Bison / Yacc减少了特定语法示例的冲突

    我的编译器类有一个解析器项目 . 我无法解决其中一条规则的减少/减少冲突 . 此链接中提供了此语法规则的图形表示(抱歉,由于stackoverflow策略,我无法在此处发布图像): Graphical representation of the "type" grammar rule 所有椭圆形都是终端符号 . 由于这条规则看起来有点复杂,我试图把它分解成更小的部分 . 这是我...
  • 0 votes
     answers
     views

    减少/减少与无类型变量和函数调用的冲突

    我想为动态类型语言创建一个解析器 . 在我的野牛文件中,我有 runtimetyped 的规则,这是一个变量名或函数调用 . runtimetyped : T_ID { $$ = create_identifier($1); } | call { $$ = $1; } ; 我还想在编译时进行一些基本的类型检查 . F.E.我不想允许这样的事情...
  • 1 votes
     answers
     views

    是否可以使用Bison gLR选项和扫描仪黑客解析C 11?

    我对编程语言的发展以及将来可能采用的方向感兴趣 . C作为一种广泛使用的语言特别感兴趣,它给编译器编写者带来沉重的负担,以便为用户提供具有较少“讨厌”语法的丰富特色语言 . 我的印象是,最广泛使用的C 11解析器使用一些递归下降的变化 . 我很好奇是否有人使用Bison gLR选项和扫描程序黑客 Build 了一个C 11解析器 . 我自己已经采取了一些措施,但发现很难为减少/减少和转移/减少冲...
  • 0 votes
     answers
     views

    使用空格分隔表达式列表解决bison语法中的冲突if / then / else

    我有以下yacc / bison / happy语法: %token if TokenIf then TokenThen else TokenElse true TokenTrue false TokenFalse %left APP %right IF %% ...

热门问题