问题标签 [lexer]
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.
antlr - ANTLR3 词法分析器优先级
我想从'..'
ANTLR3 词法分析器中创建一个标记,它将用于将表达式串在一起,例如
所以,我补充说,
问题是我已经有一个规则:
并且在上面的示例 [3]1..2
中被匹配为 a FLOAT
(我不知道为什么因为跟随第一个.
是另一个.
不是 INT,但它是)。
我想知道是否有一种方法可以更改词法分析器规则的优先级,以便DOTDOTSEP
先匹配,然后再匹配FLOAT
。
看这里似乎我输了,"The rule having the greatest count is the winner.",
但想知道是否有办法解决它。
PS INT 定义如下...
编辑。
进一步的测试让我觉得它并不像直接匹配FLOAT
规则那么简单。(我本来打算改变这个问题,但既然我现在有了答案,我就不会了。)问题(我相信)仍然在于词法分析器规则的优先级,所以问题仍然是一样的。
parsing - 在对输入序列进行词法分析时指定文字的字符的名称是什么?
我想知道在词法分析过程中指定文字开头的字符的“术语名称”是什么。
例如:
- 字符串以"字符开头和结尾。
- 正则表达式文字 - 带有/字符。
ruby - MRI Ruby 1.9.2 中的词法分析
我目前正在学习一些编译器理论和实践。Ruby 是我每天选择的语言,所以我去看了它的词法分析器和语法分析。ruby 有单独的词法分析器吗?如果是这样,它在哪个文件中描述?
parsing - ANTLR Lua 长字符串语法规则
我正在尝试为 Lua 创建 ANTLR 解析器。所以我采用了 Nicolai Mainero 制作的语法(可在 ANTLR 的网站上获得,Lua 5.1 语法)并开始工作。
语法很好。一件事不起作用:长字符串。
Lua 规范规则:字面量
字符串也可以使用长括号括起来的长格式来定义。我们将第 n 级的左长括号定义为一个左方括号,后跟 n 个等号,然后是另一个左方括号。因此,级别 0 的左长括号写为 [[,级别 1 的左长括号写为 [=[,依此类推。闭合长括号的定义类似;例如,第 4 级的右长括号写为]====]。长字符串以任何级别的左长括号开始,并在同一级别的第一个右长括号结束。这种括号形式的文字可以运行多行,不解释任何转义序列,并忽略任何其他级别的长括号。它们可以包含除了适当级别的右括号之外的任何内容。适当的级别。
我的问题与此接近,但工具不同。
LONGSTRING 的一些小例子:
这里我的 LONGSTRING 规则没有'='符号:
有人可以帮助我吗?谢谢!
c++ - QScintilla:如何创建新的词法分析器或修改现有的词法分析器?
我发现 C++ 突出显示的默认词法分析器不够具体。
我希望至少能够为以下内容指定不同的颜色:
类型关键字(void、int、float 等)指令关键字(if while do return for 等)类相关关键字(模板类虚拟朋友)类型修饰符关键字(静态 const extern unsigned 等)
我在 LexerCPP 源代码中找到了这个:
ETC
我试过这个 - 将 qscilexercpp.cpp 复制/粘贴到新文件名 qscilexercxx.cpp - 用适当的开关替换上面的代码:
创建适当的枚举后:
在现有的末尾。
现在我的大部分文本都是黑色的,我很确定我错过了关于枚举和返回的 char 关键字数组之间的链接的一些东西......
有人可以指导我做某事或帮助我吗?
c# - C# Lua 解析器/分析器
首先要做的事;
我正在用 C# 编写一点 LUA-Ide。代码执行由一个名为 LuaInterface 的程序集完成。代码编辑由 Scintilla-Port 完成,RAD / UI 界面通过可扩展的 IDesignSurfaceExt Visual Studio(单向代码生成)完成。文件处理由用作项目包文件的小 sql-lite-db 提供。
所以总而言之,我已经拥有了我需要的一切......
唯一未解决的问题是 lua 的解析器/词法分析器。我不想加载和执行代码!我只想解析包含 Lua 代码的字符串并获取有关它的一些信息,例如函数和全局变量。我真的不想自己完整地编写解析器......(我讨厌正则表达式 - 我一直都错了^^)
有人有一个.net lua 解析器的链接吗?
澄清一下——我现在只想分析代码——我不想运行它!
提前致谢!
科莱戈特
c# - 用于自定义词法分析器的 Scintilla 折叠
我正在为 Scintilla 控件使用 ScintillaNET 包装器,并希望为 ASM 实现折叠,因此我查找了http://sphere.sourceforge.net/flik/docs/scintilla-folding.html以获取有关如何操作的参考。由于我以前从未使用过 C++,因此在试图理解它时遇到了很多问题。当它说注册边距点击事件时,我在哪里以及如何注册它?另外,当它说为词法分析器设置一些属性时,我究竟在哪里以及如何设置它们?
我尝试向 scintilla 兴趣小组询问,但没有从那里得到任何帮助。如果有人在 scintilla 中为他们自己的词法分析器设置了折叠,将不胜感激如何实现它。谢谢。
c - 如何为 (f)lex 编写自己的解析器?
我用 flex 生成了一个词法分析器。
现在我想用 C 编写自己的解析器,但我不知道如何从词法分析器中获取标记。我必须在调用 yylex() 中包含“lexer.c”吗?然后我必须返回枚举类型而不是调用 printf()。不使用 bison/yacc 的最佳方法是什么?
c# - 具有手动词法分析器的 ANTLR 解析器
我正在将基于 C# 的编程语言编译器从手动词法分析器/解析器迁移到 Antlr。
Antlr 一直让我头疼不已,因为它通常大部分都有效,但也有一些小部分无法解决,而且解决起来非常痛苦。
我发现我的大部分头痛是由 Antlr 的词法分析器部分引起的,而不是解析器。然后我注意到parser grammar X;
并意识到也许我可以拥有我的手动编写的词法分析器,然后是 Antlr 生成的解析器。
因此,我正在寻找有关此主题的更多文档。我想自定义 ITokenStream 可以工作,但似乎几乎没有关于这个主题的在线文档......
regex - 正则表达式到 DFA 算法
我正在编写一个基于正则表达式的词法分析器生成器,该生成器基于 Dragon Book 中描述的正则表达式到 DFA 直接翻译算法。
它计算连接、交替和 kleene-star 节点的nullable
、firstpos
、lastpos
和函数。followpos
我想为+
(一次或多次)和?
(零次或一次)添加量词。
nullable
, firstpos
, 并且lastpos
很容易计算,但我不确定followpos
. 最好不要在解析阶段实现这些量词,而是在词法分析阶段重写它(我认为这只是 kleene-star 和交替的“句法糖”)?