问题标签 [grammar]

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

java - 问题陈述所需的语法定义

嗨,我现在有这个语法,但是当我有服务后,一个便条。Antlr 不想承认它不是服务,但请注意。并且服务和笔记有不同的结构。这个怎么写?

我正在尝试解析这个。但请注意bla bla;正在服役

0 投票
1 回答
1530 浏览

textmate - TextMate 语言解析器在哪里?

有谁知道 TextMate 用于语法突出显示的代码埋在哪里?如果没有,您知道他们如何解析他们的语言语法,或者您将如何解析他们的语言语法吗?

调查一下真是太棒了。

谢谢!槊

0 投票
4 回答
2696 浏览

c# - 在哪里可以找到 C# 3.0 语法?

我打算用 C# 编写一个 C# 3.0 编译器。我在哪里可以获得解析器生成的语法?

最好是无需修改即可与 ANTLR v3 一起使用的版本。

0 投票
3 回答
9794 浏览

parsing - 使用 OCaml 解析语法

我的任务是使用 OCaml 为(玩具)语法编写(玩具)解析器,但不知道如何开始(并继续)这个问题。

这是一个示例 awk 语法:

这里有一些要解析的片段:

我正在寻找的是一个规则列表,它是解析片段的结果,例如 frag1 ["4"; "+"; “3”]:

限制是不要使用除 List... 之外的任何 OCaml 库:/

0 投票
1 回答
3251 浏览

parsing - 消除 E := EE+|EE-|id 的左递归

如何消除以下语法的左递归?

使用通用程序:

翻译为:

将其应用于原始语法,我们得到:

所以:

但是这个语法似乎不正确,因为

将是有效的,但这是一个不正确的后缀表达式。

0 投票
3 回答
572 浏览

regex - Ruby 是否有类似于 Perl 6 语法的插件?

Perl 多年来一直是我的首选编程语言工具之一。Perl 6 语法看起来是一个很棒的语言特性。我想知道是否有人为 Ruby 开始了这样的事情。

0 投票
2 回答
1336 浏览

parsing - 如何确定该语法中的第一组 E?

我想知道如何FIRST用语法确定 E 的集合:

谁能给我一些指导?

0 投票
3 回答
360 浏览

c++ - 提振精神和转发申报问题

有人可以给我一些关于如何处理需要查看进一步声明以便能够在当前时刻做出正确语义动作的情况的建议/想法吗?例如,当有人编写某种不支持“前向声明”的编程语言的解释器/编译器时,这是一个众所周知的事件。让我们举个例子:

很明显,我们必须至少有两次通过。首先,我们解析所有函数声明并获取所有需要的信息,例如:函数接受的参数数量,它们的类型,然后我们能够处理函数调用并解决上述困难。如果我们这样做,我们将必须使用一些AST遍历机制/访问者来完成所有这些传递。在这种情况下,我们必须处理 AST 遍历/应用访问者,我们必须对直接集成在解析器中的所有美丽的凤凰结构说“再见”。

你会如何处理这个问题?

0 投票
4 回答
1846 浏览

antlr - 这个语法是怎么回事?

问题是define规则匹配标记define, ID, as,但不匹配TYPE。我产生了 MissingTokenException。

如果我按如下方式内联 TYPE,它将按我的意图工作:


更新:fragment添加关键字是为了解决另一个冲突:The following token definitions can never be matched because prior tokens match the same input: TYPE.

0 投票
6 回答
2325 浏览

regex - 正则表达式排除 101 和 110

什么是通过语言 {0,1} 接受所有内容但没有子字符串 110 或 101 的正则表达式?

接受:

  • 111111
  • 000011111
  • 100001000001001
  • 010
  • 1

拒绝:

  • 100110
  • 010100
  • 123

编辑:根据下面对答案的评论,这个问题要求一个正式的正则表达式。