问题标签 [ebnf]

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 回答
1087 浏览

c# - 将 EBNF 转换为 C# 以供编译器使用

我正在尝试学习将EBNF转换为C# 代码。

样本:int <ident> = <expr>

我理解它的说法“这种数据类型(int)的变量(ident)接受(=)一个整数(expr),但我不明白如何将其转换为:

来自 Ast 班

来自 Parser 类

来自 CodeGen 类

有人可以为我指出正确的方向如何正确理解如何转换吗?

0 投票
2 回答
242 浏览

antlr - 如何从分层键值语法创建带有 ANTLR 的 AST

我一直在研究用 ANTLR 解析键值数据格式。非常简单,但键代表层次结构。

我的输入语法的简化示例:

在我看来,这代表一棵结构如下的树:

我能得到的最接近的是使用以下语法:

产生:

我不确定我是否对像 ANTLR 这样的通用工具提出了太多要求,这是我可以通过这种方法得到的。也就是说,从这里我使用树的各个部分并手动创建我想要的数据结构。

那么 - 我可以直接从语法中生成我想要的树结构吗?如果是这样,怎么做?如果不是,为什么不呢 - 它是 ANTLR 的技术限制,还是与所涉及的语言类型有关?

0 投票
1 回答
268 浏览

debugging - ANTLRWorks 调试——不同颜色的含义?

我正在使用 ANTLRWorks 的调试模式来测试我的 c 语法。在 ANTLRWorks 中进行调试非常有助于更好地理解,但我在理解输出树的不同颜色时遇到了问题。我backtrack=true在我的语法中使用。我认为红色意味着调试器走错了路,而绿色告诉我它走对了。但是深红色和深绿色呢?

我添加了一张“小树”的图片,它只匹配以下输入:

在此处输入图像描述

如果有必要回答这个问题,这里是使用的 4 个最重要的规则。

0 投票
1 回答
45 浏览

java - 如何处理可能的非终端?

假设我有一个这样的 EBNF:

{} 括号意味着选择零个或多个,所以我怎么知道我什么时候有<Term>什么<Term> + <Term> + <Term>时候我正在逐个字符地读取行字符?

0 投票
0 回答
35 浏览

.net - datatable.select(filter_condition) 中使用的 EBNF

有谁知道 Datatable.Select(filter_condition) 中使用了什么 EBNF?我想要实现的是突出显示类似于 SQL-WHERE 部分的语句。

0 投票
2 回答
147 浏览

java - 是否有可能在eclipse中有一个java程序来编译java以外的其他语言?

我目前正在开发一个需要编译文件并对发现的错误(语法)进行诊断的项目。我已经能够让程序适用于 .java 文件。现在我必须对 .java 以外的文件(例如:.py 文件)做同样的事情,并将它与我当前的程序集成。我做了一些研究,发现 eclipse 可以支持 20 多种语言,并且可以下载插件。我不知道我是否可以调用“编译器”(python 的示例)并获得 .py 文件中发现的语法错误的诊断。我应该寻找语言的 bnf 吗?

0 投票
2 回答
19990 浏览

bnf - 如何将 BNF 转换为 EBNF

如何将此 BNF 转换为 EBNF?

0 投票
1 回答
6762 浏览

bnf - 将 EBNF 转换为 BNF 基础知识

我不太确定如何回答我的计算机语言课的问题。我要将以下语句从 EBNF 形式转换为 BNF 形式:

EBNF:expr --> [-] term {+ term}

我知道花括号中包含的表达式将重复零次或多次,而直角括号中包含的内容代表零个或一个选项。如果我的理解是正确的,这是否是正确的转换?

我的 BNF:

奖金阅读

0 投票
3 回答
2494 浏览

parsing - EBNF语法到ANTLR3?

我有 Jass 脚本语言的这个 EBNF 语法。
需要做什么才能将其转换为与 ANTLR 3.5 一起使用?
此外,是否有任何工具可以帮助我这样做?


在此先感谢您提供的任何建议!

0 投票
0 回答
191 浏览

bnf - 在计算机科学中(尤其是在使用 EBNF 的元语言中),符号 -> 和 <- 是否具有特定含义?

如果这不在 SO 的领域内,我深表歉意——它有点高级/理论。我正在研究自定义语言规范(如果您有兴趣,称为 ACELandic)。它基于扩展巴科斯-瑙尔形式(EBNF)。

我看到像这样的符号

这真的让我很困惑。这些是标准化的符号吗?我记得在 Haskell 中这样的东西,但我无法理解这一点。我感谢任何提示或建议。

在此处输入图像描述