Questions tagged «antlr»

5
lexers vs解析器
词法分析器和解析器在理论上真的有很大不同吗? 讨厌正则表达式似乎很时髦:编码恐怖,另一篇博客文章。 但是,流行的基于词法分析的工具:pygments,geshi或prettify都使用正则表达式。他们似乎什么都没法... 什么时候足够词汇,何时需要EBNF? 有没有人将这些词法分析器生成的令牌与bison或antlr解析器生成器一起使用?
308 parsing  antlr  lexer  pygments 

5
ANTLR:有一个简单的例子吗?
我想开始使用ANTLR,但是花了几个小时在antlr.org网站上回顾了这些示例之后,我仍然无法清楚地理解Java语法的语法。 是否有一些简单的示例,例如使用ANTLR实现的四运算计算器,经过解析器定义,一直到Java源代码?
230 java  antlr  antlr4  antlr3 

7
如何将字符串转换为其等效的LINQ表达式树?
这是原始问题的简化版本。 我有一个叫Person的课: public class Person { public string Name { get; set; } public int Age { get; set; } public int Weight { get; set; } public DateTime FavouriteDay { get; set; } } ...然后说一个实例: var bob = new Person { Name = "Bob", Age = 30, Weight = …
173 c#  lambda  antlr  dsl  predicate 

5
Antlr的优点(相对于lex / yacc / bison)[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 改善这个问题 过去,我曾在各种项目中使用过lex和yacc(通常是野牛),通常是翻译器(例如流到EDA应用程序中的EDIF的子集)。此外,我还必须支持基于几十年前的lex / yacc语法的代码。因此,尽管我不是专家,但我知道如何使用这些工具。 过去,我已经在各个论坛上看到过有关Antlr的正面评论,并且我对自己可能会缺少的东西感到好奇。因此,如果您同时使用了两者,请告诉我Antlr有哪些更好或更高级的功能。我目前的限制是我在C ++商店工作,我们提供的任何产品都不包括Java,因此生成的解析器必须遵循该规则。
143 c++  antlr  yacc  bison 



4
使用ANTLR 3.3吗?
我正在尝试使用ANTLR和C#,但是由于缺乏文档/教程,我发现它异常困难。我已经找到了一些旧版本的三心二意的教程,但此后似乎对API进行了一些重大更改。 谁能给我一个简单的示例,说明如何创建语法并在短程序中使用它? 我终于设法将语法文件编译成词法分析器和解析器,并且可以在Visual Studio中编译并运行这些文件(必须重新编译ANTLR源代码,因为C#二进制文件似乎也已经过时了!-更不用说没有一些修复,源代码也无法编译),但是我仍然不知道如何处理我的解析器/词法分析器类。假设在输入一些信息的情况下它可以产生AST ...然后我应该能够对此进行一些幻想。
72 c#  parsing  antlr 

3
如何使用ANTLR4创建AST?
我一直在搜索很多有关此信息,但找不到任何能真正帮助我构建AST的有用信息。我已经知道ANTLR4不会像以前的ANTLR3那样构建AST。每个人都说:“嘿,请使用访客!”,但是我找不到任何示例或有关如何执行此操作的详细说明... 我的语法必须像C,但是每个命令都用葡萄牙语(葡萄牙语编程语言)编写。我可以使用ANTLR4轻松生成解析树。我的问题是:创建AST现在需要做什么? 顺便说一句,我正在使用Java和IntelliJ ... EDIT1:我能得到的最接近的答案是该主题:是否有一个简单的示例使用antlr4从Java源代码创建AST并提取方法,变量和注释? 但是它只打印访问方法的名称。 由于第一次尝试对我不起作用,所以我尝试使用ANTLR3的本教程,但我不知道如何使用StringTamplate而不是ST ... 阅读《权威ANTLR 4参考》一书,我也找不到与AST相关的任何内容。 EDIT2:现在我有一个类来创建DOT文件,我只需要弄清楚如何正确使用访问者
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.