问题标签 [context-sensitive-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 投票
2 回答
4105 浏览

parsing - 如何解析上下文相关的语法?

CSG 与 CFG 类似,但 reduce 符号是多个。

那么,我可以只使用 CFG 解析器来解析 CSG 并将生产减少到多个终端或非终端吗?

喜欢

当我们相遇时W X,我们能不能只是还原W XW B

当我们相遇时W B,我们能不能只是还原W Bc B

所以如果CSG解析器是基于CFG解析器的,写起来也不难,是吗?

但是当我查看 wiki 时,它说要解析 CSG,我们应该使用linear bounded automaton.

是什么linear bounded automaton

0 投票
2 回答
450 浏览

c# - 使用 C# 中的正则表达式示例匹配 wwR ("acddca")

我是正则表达式的完整菜鸟。我一直在阅读它们,但我仍然不太了解它们,就像我什至不知道“-”符号是什么意思一样。我们可以做一个例子,并可能引导我完成它吗?我们将如何做到这一点?

一只忙碌的猫

基本上,这种语法是反向附加的字符串。

这应该匹配:

这不应该匹配:

非常感谢您的帮助!

0 投票
1 回答
392 浏览

grammar - 生成语言a^i^2的语法是什么?

任何人都可以显示构建语言语法所需的生产规则吗

a^i^2 其中 ^ 表示的幂

可以用语法来描述吗?

编辑:

这是相似但有点“弱”的语法,因为你不是在做幂,而是 2 的倍数。

在此处输入图像描述

它是上下文相关的语法,我没有写下所有规则,但想法的形式是:

在此处输入图像描述

您将 X 与 Y 相乘,然后删除左侧的 Y。我认为也许通过权力你可以生成 Y 向右,然后生成最终 X 向右返回,但我认为这并没有真正起作用。

你有什么想法?

0 投票
0 回答
337 浏览

java - 编程语言的上下文相关特性的示例生成规则(Java 中)

首先,我没有学习计算机科学,我只是对这个主题感兴趣。

我已经读过,例如必须在使用变量之前声明一个变量是编程语言的上下文相关方面。

我的问题是:您能否提供一个相当于“在使用之前声明一个变量”的生产规则以及实际代码?

我还没有看到上下文敏感的生产规则,我很清楚以后在代码中的实际外观如何,反之亦然,查看代码,然后推导出生产规则。

或者可能是其他一些上下文相关的特性或 Java(泛型也不是上下文相关的吗?)。

编辑:

举个例子:

https://en.wikipedia.org/wiki/Context-sensitive_grammar#Examples

你能提供一段代码来显示这个语法的使用吗?这个语法在实际程序中会怎样?只是那些aabababccbab类型的例子有点抽象。

0 投票
1 回答
145 浏览

syntax - 实用的上下文相关编程结构示例

所以,我正在实现一个上下文敏感的句法分析器。这是一种实验性的东西,我需要的东西之一是可用且实用的句法结构来测试它。

例如,无法使用标准 CFG(上下文无关语法)解析以下示例。基本上它允许声明多个不相关数据类型的变量并同时初始化它们。

如果我省略一些细节,可以这样正式描述:

L = {anbncn | n >= 1}

因此,我希望您能想到尽可能多的类似示例,但是,它们确实应该是实用的。真正的程序员会欣赏的东西。

0 投票
1 回答
186 浏览

context-sensitive-grammar - 上下文敏感的 Lindenmayer 系统

我正在实现“植物的算法美”中的 ContextSensitive L 系统,但我没有得到与书中相同的结果。

如果我正确理解了当我有这样的公理时:

只有1个变化

进入

那么我该如何解读这些[]迹象呢?我是省略还是什么?

0 投票
1 回答
655 浏览

grammar - 乔姆斯基语言:如何识别它们?

我对语言的识别有问题。例如,给定某种语言,如何根据乔姆斯基快速确定属于哪种类型?ancb2n, n > 0

我的想法是确定生成它的语法,然后确定语言,但这是一个漫长的过程。我认为还有另一种方法可以通过肉眼识别它,而无需编写语法或自动机。有人能帮我吗?

0 投票
1 回答
36 浏览

ambiguity - 语义导向的解析器组合器

我试过这个

带输出

如您所见,第二次解析失败。似乎第一次生产的失败不再尝试第二种选择。我实际上希望根据第一个标识符的值来选择这个或那个解析器继续。

0 投票
2 回答
1039 浏览

swift - ANTLR 中 WS 背后的魔力是什么?

我正在尝试在 Swift 中从头开始制作像 ANTLR 这样的工具(只是为了好玩)。但我不明白语法如何知道不应该有空格(标识符示例:“_myIdentifier123”):

并且应该有空格(例如“is String”):

我在 ANTLR 的源代码中搜索了 WS,但一无所获。java代码中没有“WS”字符串:https ://github.com/antlr/antlr4

谁能解释这背后的算法?它如何决定令牌是否用空格分隔?

0 投票
1 回答
305 浏览

theory - Chomsky 层次结构 - Type-1 上下文相关语言

我试图理解不同层次的乔姆斯基层次结构。

我检查了一些例子,这是一个我不太明白的例子。也许有人知道为什么这不是一种上下文相关的语言: