jjzjj

javascript - 是否有用于 javascript 的 flex - bison 解析器?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭5个月前。Improvethisquestion是否有公开可用的解析器?否则,我打算使用http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf中的语法规则编写一个谢谢。

windows - 如何在 Windows 上编译 lex 文件?

我已经在C:\中正确下载并安装了flex、bison和DevC++。然后我尝试在命令提示符下编译myfile.l,但它给出了错误:flex:can'topenmyfile.l.问题是什么? 最佳答案 从你的问题中我可以看出你是一个需要一些指导的初学者,所以接下来的内容是教程风格的。我希望你不介意语气。我的许多学生在刚开始时遇到了与您相同的问题。包含flex、bison或编译器gcc(或g++)代码的文件只是文本文件,而不是一些特殊编码形式的文件。它们仅被命名为something.l、something.y和something.c(或

windows - 为什么 Bison 在 Windows 中不能正常工作(不生成输出文件)?

Windows上的Bison不生成输出文件。这是我收到的错误消息。m4_define([b4_percent_define(lr.keep_unreachable_states)],[[false]])m4_define([b4_rhs_min],[[-1]])m4_define([b4_pact_min],[[-5]])m4_define([b4_conflicting_rules],[[0]])我自己解决了这个问题,这是给别人的。 最佳答案 Bison似乎没有正确处理包含空格的路径。将Bison(GnuWin32)文件夹移动到路

c# - 尝试为 bison/wisent 构建 C# 语法

我以前从未做过Bison或Wisent。我该如何开始?我的真正目标是为C#生成一个可用的Wisent/Semantic语法,允许在emacs中使用代码完成编辑C#,以及所有其他CEDET好东西。(对于那些不知道的人,Wisent是GNUBison的emacs-lisp端口,包含在CEDET中。TheWisent显然是欧洲Bison。我认为Bison是一种文字游戏派生自YACC。而CEDET是Emacs开发工具的集合。都catch了吗?我不打算尝试定义emacs。)Microsoft在languagereferencedocument中为C#提供了BNF语法,包括所有LINQ扩展。.我能

java - Bison Java示例

有谁知道网上是否有一些关于将GNUBison与Java结合使用的教程和/或示例。我已经通过网络搜索了。但我没有设法找到任何东西。我试图实现一个示例,但我无法编译它(因为我还需要一个词法分析器)。这是我的例子:%{staticvoidmain(String[]args){yyparse();}%}%union{intnumber;charoperator;}%language"Java"%tokenNUMBER%tokenOPERATOR%typeexp%leftOPERATOR%%input:/*Emptystring*/|exp{System.out.print("Result>>"

c++ - 将 yyin 更改为 argv[1] Flex & Bison

我正在从事Flex&Bison项目。我的flex&bison运行良好,但我正在尝试将argv作为输入(yyin)。所以我改变了yyin以便它接受argv[1]但它实际上不起作用。似乎它采用了argv[1],但后来我得到了一个语法错误,即使我认为我的字符串可以完美地工作。这是我的弹性:%{#include"parser.hpp"externintyyparse();%}%optionnoyywraptexte[a-zA-z]+entier[0-9]+(\.[0-9])?%%{entier}{yylval.num=atoi(yytext);return(NUMBER);}"pi"retur

c++ - automake 1.12 更改了 bison/yacc 输出名称,向后不兼容的更改?

我已经在https://github.com/Habbie/autoyacc-problem发布了一个存储库来证明我的问题。在automake1.11及以下版本中,在configure.ac中使用AC_PROG_YACC并在Makefile.am中使用AM_YFLAGS=-d,parser.yy会变成parser.cc和parser。H。使用automake1.12,我得到了parser.cc和parser.hh。因为mybin.cc有include"parser.h",这意味着1.12破坏了我的构建。我觉得这是一个向后不兼容的更改,但我觉得应该有一个理智的方法来处理这个问题。演示:g

c++ - 如何从 C 风格转向 C++ 风格的 flex 解析器

我有典型的可重入C风格解析器,其中解析的数据包含在一个union中,如下所示:%union{intnumber;constchar*string;Item*item_ptr;}我想使用共享指针而不是普通指针。我不能使用std::shared_ptr因为我不能用C++11编译源代码,我也被禁止使用boost::shared_ptr。因此,我有自己的类SharedPtr,实现了所需的行为。不幸的是,我无法将SharedPtr类插入到union中,如下所示:%union{intnumber;constchar*string;SharedPtritem_ptr;}因为我收到以下错误:bison

c++ - 在 Bison 中为 && 和 || 启动短路规则操作

我正在使用C/C++在Bison&Flex中编写一个简单的计算器(逻辑在Bison中完成,C/C++部分负责数据结构,例如STL等)。我有以下问题:在我的计算器中,美元符号$表示i++和++i(前缀和后缀),例如:inty=3;->$y=4->y$=4当用户点击:int_expression1&&int_expression2时,如果int_expression1被评估为0(即false),那么我不想'tbison评估int_expression2!例如:inta=0;intx=2;然后用户点击:intz=a&&x$...因此,变量a被评估为0,因此,我不想评估x,但它仍然增长1...

c++ - yyparse() 未在 Bison/Flex C++ 项目中仅针对某些版本的 gcc/bison/flex 声明

首先,我对Bison和Flex还很陌生。我知道这些工具是为在C中使用而设计的,我感觉我所有的问题都来自于在C++中使用它们。我不确定我是否以正确的方式完成了它。该代码在我的计算机上编译正常,但在我的大学服务器上编译不正常。我已将问题隔离到此处发布。在我的大学:$(g++--version;bison--version;flex--version)|grep'[0-9]\.'g++(Debian4.4.5-8)4.4.5bison(GNUBison)2.4.1flex2.5.35Athome:HOME$(g++--version;bison--version;flex--version)