问题标签 [lexical-analysis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1021 浏览

flex-lexer - 编译 flex(词法分析器)时出错

我正在尝试在我的 Windows 计算机上安装 flex(词法分析器,而不是 Adob​​e 程序)。我已经安装了 MSYS。我解压 flex, ./configure 它,但是当我尝试制作它时,我得到了这个错误:

直到最近,我只使用 .exe 安装过东西,所以我对此感到很困惑。安装 bison 和 m4 都很顺利,我想知道为什么不是这样。有任何想法吗?

0 投票
2 回答
1741 浏览

c - Lex(词法分析器)中正则表达式的大问题

我有一些这样的内容:

而且我需要抓住title的双引号之间的所有内容。我的第一次尝试是这样的:

^(" "|\t)+"title"" "*=" "*"\"".+"\","

它抓住了第一个例子,但没有抓住其他两个。另一个有多行,这就是问题所在。我想在\n某处更改为允许多行的东西,如下所示:

^(" "|\t)+"title"" "*=" "*"\""(.|\n)+"\","

但这无济于事,相反,它捕获了一切

比我虽然,“我想要的是在双引号之间,如果我抓住所有东西,直到我找到另一个"后跟的东西,怎么办?这样我就可以知道我是否在标题的末尾,无论行数如何,比如这:

^(" "|\t)+"title"" "*=" "*"\""[^"\""]+","

但这还有另一个问题......上面的例子没有它,但是双引号(")可以在标题声明之间。例如:

是的,它总是以反斜杠 ( \) 开头。

有什么建议可以解决这个正则表达式吗?

0 投票
2 回答
627 浏览

c# - 是否可以在不编译的情况下调用 C# 词法/句法分析器?

考虑到 SO 的这个问题,其中调用了整个 C# 内存编译器。当只需要词法和句法分析时:将文本解析为词位流,检查它们并退出。

在当前版本的System.CodeDom.Compiler中是否有可能,如果没有 - 会吗?

0 投票
1 回答
7860 浏览

thread-safety - 使用 Flex 编写可重入词法分析器

我是弯曲的新手。我正在尝试使用 flex 编写一个简单的可重入词法分析器/扫描器。词法分析器定义如下。我遇到编译错误,如下所示(yyg 问题):

可重入的.l:

编译错误:

0 投票
1 回答
28198 浏览

c++ - 我如何在 Flex/bison 中实现 If 语句

我没有收到错误,请您帮帮我,这是 .l 和 .y 文件。谢谢。

yacc 文件


我还有一个问题,是否有可能像在汇编程序中那样使用 flex/bison 实现 JMP 指令以转到像我的示例这样的标签,谢谢您的帮助。

0 投票
4 回答
5237 浏览

c++ - 你如何实现语法高亮?

我正在进行一些学习,我想为 C++ 中的文件编写自己的语法突出显示。

谁能给我一些关于如何去做的想法?

在我看来,当打开文件时:

  1. 它需要被解析并决定它是什么类型的源文件。信任扩展可能不是万无一失的

  2. 一种了解哪些关键字/命令适用于哪种语言的方法

  3. 一种决定每个关键字/命令获得什么颜色的方法

我想在 OS X 上使用 C++ 或 Objective-C 执行此操作。

任何人都可以提供有关我如何开始使用此功能的指示吗?

0 投票
2 回答
7986 浏览

c++ - Flex/bison,错误:未声明

你好,我有一个问题,后面的程序返回一个错误,错误::未声明(第一次在函数中使用),为什么会出现这个错误所有标记都被声明了,但是这个错误来了,任何人都可以帮助我,这里是 lex 和yac 文件。谢谢

法:

雅加达:

0 投票
1 回答
50 浏览

lexical-analysis - PCCTS 轨道输入列号

如何让 PCCTS 跟踪令牌列的数量?

0 投票
1 回答
408 浏览

c++ - Flex/bison 中的 JMP 指令

大家好,有人可以帮助我摆脱困境,我正在寻找一个像汇编程序一样实现JMP(跳转)教练的教练。我发现它可能是 Flex/Bison 的 goto 功能,但我真的不知道该怎么做。有任何想法。我非常感谢你的帮助。谢谢。

这是一个示例。与 JMP 讲师一起,他去了标签 L1。

0 投票
2 回答
618 浏览

antlr - 我如何使用这个输入法?

我目前有一种使用 ANTLR 用 Ja​​va 实现的简单有效的语言。我想要做的是以与 PHP 类似的方式将其嵌入纯文本中。

例如:

我预计生成的令牌流将类似于:

我怎样才能做到这一点,或者有更好的方法吗?

<%对块外的内容没有限制。根据 Michael Mrozek 的回答,我假设类似的东西<% print('%>'); %>是可能的,但在这种情况之外,<%总是表示代码块的开始。


示例实现

我根据 Michael Mrozek 的回答中给出的想法开发了一个解决方案,使用 ANTLR 的门控语义谓词模拟 Flex 的开始条件: