标签: antlr

C#ANTLR语法?

我正在寻找C#的交钥匙ANTLR语法,它生成一个可用的抽象语法树(AST),并且是后端语言不可知或目标C#,C,C++或D.

它不需要支持错误报告.

PS我不愿意做任何修复,因为替代方案并不是很难.

c# antlr

10
推荐指数
2
解决办法
4158
查看次数

是否有适用于ANTLR的C++语法文件?

是否有任何现有的ANTLR C++语法文件?

我正在寻找lex,而不是解析一些C++源代码文件.

我查看了ANTLR语法页面,看起来有一个由Sun Microsystems 在这里创建的列表.

但是,它似乎是一个生成的Parser.

任何人都可以指向我的C++ ANTLR词法分析器或语法文件?

c++ antlr lexer

10
推荐指数
1
解决办法
6310
查看次数

可视化使用ANTLR创建的AST(在.Net环境中)

对于一个宠物项目,我开始摆弄ANTLR.在完成一些教程后,我现在正在尝试为我自己的语言创建语法并生成AST.

现在我主要在ANTLRWorks中乱搞,但现在我已经验证了解析树看起来很好我想(迭代地,因为我还在学习并且仍然需要对最终结构做出一些决定)树)创建AST.似乎antlrworks不会将其可视化(或者至少不使用"Interpreter"功能,Debug不能在我的任何机器上运行).

底线:是以手动方式可视化AST的唯一方法,遍历/显示它还是以字符串表示形式将树打印到控制台?

我正在寻找的是从输入,语法 - >视觉AST表示到ANTLRWorks的"解释器"功能的简单方法.有任何想法吗?

c# antlr antlrworks

10
推荐指数
1
解决办法
4880
查看次数

是否有工具可以在ANTLR和其他形式的BNF之间进行转换?

是否有任何工具可以将ANTLR语法语法转换为其他BNF语法?Backus-Naur形式(BNF,EBNF,ABNF,W3C-BNF,XBNF ......)有几种形式,有规格,例如见此列表.ANTLR语法语法似乎只是通过示例描述.我知道ANTLR语法文件包含的不仅仅是无上下文语法的规范,但你应该能够至少转换公共子集 - 有人自动完成吗?

antlr bnf context-free-grammar

10
推荐指数
3
解决办法
3214
查看次数

是否存在R的现有ANTLR或IRONY语法?

有谁知道R是否存在现有的ANTLR或IRONY语法?

非常感谢.

grammar antlr r irony antlr4

10
推荐指数
1
解决办法
2008
查看次数

我可以在运行时添加Antlr令牌吗?

我的情况是,我的语言包含一些在构建时未知但在运行时已知的单词,导致需要不断重建/重新部署程序以考虑新单词.如果在Antlr中有可能从配置文件中生成一些令牌,我就会徘徊?

例如,如果我有一个规则,在一个简化的例子中

rule : WORDS+;

WORDS : 'abc';
Run Code Online (Sandbox Code Playgroud)

我的语言在runntime遇到'bcd',我希望能够修改配置文件以将bcd定义为单词,而不是必须重建然后重新部署.

antlr antlr3

10
推荐指数
1
解决办法
2855
查看次数

将简单的Antlr语法转换为Xtext

我想将一个非常简单的Antlr语法转换为Xtext,因此没有语法谓词,没有Xtext提供的Antlr的花哨功能.考虑这个语法

grammar simple; // Antlr3

foo: number+;
number: NUMBER;
NUMBER: '0'..'9'+;
Run Code Online (Sandbox Code Playgroud)

和它的Xtext对应物

grammar Simple; // Xtext
import "http://www.eclipse.org/emf/2002/Ecore" as ecore
generate Simple "http://www.example.org/Simple"

Foo: dummy=Number+;
Number: NUMBER_TOKEN;
terminal NUMBER_TOKEN: '0'..'9'+;
Run Code Online (Sandbox Code Playgroud)

Xtext在幕后使用Antlr,但这两种格式并不完全相同.我必须修改一些烦人的(并且部分可理解的)事情,包括:

  • 使用terminal关键字前缀终端
  • 包括import "http://www.eclipse.org/emf/2002/Ecore" as ecore使终端工作
  • 向顶级规则添加功能,例如 foo: dummy=number+
  • 请记住,规则和终端名称必须是唯一的,即使不区分大小写.
  • (可选)将规则名称的第一个字母大写以遵循Java约定.

是否有工具可以自动进行此转换,至少对于简单的情况?如果没有,是否有更完整的此类必要修改清单?

antlr xtext

10
推荐指数
1
解决办法
3731
查看次数

LL(*)与PEG解析器:有什么区别?

我想知道将内部解析算法呈现为"LL(*)"的ANTLR v3是否完全代表PEG(解析表达式语法)解析器.

有区别吗?

parsing antlr

10
推荐指数
1
解决办法
3304
查看次数

Antlr4中语义谓词的语法

什么是ANTLR3中的"语义谓词"?Bart Kiers非常清楚地概述了Antlr3中的不同语义谓词.

太糟糕了,Antlr4中的语法/语义似乎有所改变,所以这不会编译:

end_of_statement
    :   ';'
    |   EOF
    |   {input.LT(1).getType() == RBRACE}? =>
    ;

RBRACE
    : '}'
    ;
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我如何处理end_of_statement的第三种情况:如果下一个标记是'}'但不消耗它,则接受.

antlr antlr4

10
推荐指数
1
解决办法
5313
查看次数

C#动态方法 - IL与表达式树

我正在使用ANTLR构建一个简单的.NET for .NET,将字符串中的脚本转换为Dynamic Method.我的第一个想法是转换为IL操作码,但现在我正在阅读有关DM创建的表达式树.似乎我可以使用表达式树生成任何方法,就像IL代码一样?

谢谢!

代码:https://github.com/ricardoborges/NPortugol2

c# dsl il antlr expression-trees

10
推荐指数
1
解决办法
1289
查看次数

标签 统计

antlr ×10

c# ×3

antlr4 ×2

antlr3 ×1

antlrworks ×1

bnf ×1

c++ ×1

context-free-grammar ×1

dsl ×1

expression-trees ×1

grammar ×1

il ×1

irony ×1

lexer ×1

parsing ×1

r ×1

xtext ×1