问题标签 [cocor]

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 投票
3 回答
4456 浏览

c# - 从 C# 应用程序生成和解析 Python 代码

我需要生成更具体的 Python 代码IronPyton。我还需要能够解析代码并将其加载到AST中。我刚开始研究一些工具。我玩过“奥斯陆”,并决定它不适合我。我只是简单地看了看Coco/R,它看起来很有希望。

有人用 Coco/R 吗?如果您使用该工具有什么经验,您能推荐一些其他工具吗?

0 投票
4 回答
5431 浏览

c# - Coco/R 与 ANTLR

我正在评估在 C# 项目中使用Coco/RANTLR作为本质上是可编写脚本的邮件合并功能的一部分。要解析(简单)脚本,我需要一个parser

我专注于 Coco/R 和 ANTLR,因为它们看起来都相当成熟且维护良好,并且能够生成不错的 C# 解析器。

然而,两者似乎都不是微不足道的,而且我很欣赏简单性- 特别是其他人的可维护性

有人有什么建议吗?解析小语言的优点/缺点是什么 - 还是我完全在寻找错误的东西?这些集成到典型的持续集成设置中的效果如何?有哪些陷阱?

相关:嗯,很多问题,例如1 , 2 , 3 , 4 , 5

0 投票
2 回答
1955 浏览

java - 使用 EBNF 表达式解析代码块

我正在使用 CocoR 生成类似 java 的扫描仪/解析器:
我在创建 EBNF 表达式以匹配代码块时遇到了一些麻烦:

我假设一个代码块被两个众所周知的标记包围: <& 和 &> 示例:

如果我定义一个非终结符

如果两个符号内的代码包含“<”字符,则生成的编译器将不会处理它,从而产生语法错误。

有什么提示吗?

编辑:

为了简单起见,我省略了一些产品。
这是我对语法的实际实现。主要错误是,如果块中的代码包含符号“>”或“&”之一,它会失败。

0 投票
1 回答
271 浏览

compiler-construction - Coco/R 一直告诉我“预期的'编译器'”,即使我有声明

正如标题所说,我在使用 Coco/R 时遇到了问题。当我编译我的文件 Andromeda.atg 时,它给了我两个错误:“-- line 1 col 1: "COMPILER" expected" "-- line 1352 col 5: name does not match syntax name"

我不知道为什么会这样。我尝试将我的编译器仙女座线移到顶部,但弹出相同的错误。这是我的整个文件: http: //pastebin.com/PezqZb6y

谢谢,西奥

0 投票
2 回答
922 浏览

c# - 如何在 Coco/R 中标记缩进(Python,类似缩进的 Boo)

它有一种众所周知的方式,如何在 Coco/R 中实现标记缩进,就像在 Python/Boo 中一样?

Coco/R 忽略空格,但我需要根据下一行缩进以某种方式生成 beginBlock/endBlock 标记。

现在,我使用预处理器,它插入'{'、'}'和';' 在输入流中,通过比较行之间的缩进。在 Coco/R 语法中,我使用弯括号作为 beginBlock/endBlock 标记。如果输入流没有注释(也可以嵌套),它会很好地工作。一旦出现无序评论,意图比较逻辑就会失败。

实现一个跟踪评论的预处理器对我来说看起来像是过度设计。

所以问题是,通常是否可以使用 Coco/R 解析基于缩进的语法?还是我应该尝试别的?

0 投票
2 回答
512 浏览

parsing - CoCo 到 ANTLR 转换器中的表达式

我在一个实用程序中解析 CoCo/R 语法以自动化 CoCo -> ANTLR 翻译。核心的 ANTLR 语法是:

我的问题是这样的结构:

CS 会产生一个带有 OR_EXPR 节点的 AST,尽管没有“|” 人物实际出现。我确定这是由于表达式的定义,但我看不到任何其他方式来编写规则。

我确实对此进行了实验以解决歧义。

它有效,但黑客强化了我的信念,即一些根本性的问题是错误的。

非常感谢任何提示。

0 投票
1 回答
1487 浏览

c# - C#文件流读取字符串(Coco/R Taste)

我正在使用 C# 中的 Coco R 示例 Taste。

当给出操作时,我正在尝试扩展代码以编写字符串,例如

你好世界

我已经确定了一种可以存储和编写字符串的方法。我正在为我遇到的问题发布相关代码:

扩展的味道

CodeGen.cs中的扩展操作:Filestream就是这样使用的

并添加了使用文件流的大小写开关

问题是,我在互联网上的任何地方都找不到读取字符串的方法,显然ReadString(s)不能以同样的方式ReadInt(s)工作。我想知道是否可以帮助我找到一个从文件流中读取字符串的操作。

我以前没有做过任何文件流管理。

0 投票
2 回答
333 浏览

parsing - 如何让 Coco/R 解析器不贪婪

我的 ATG 文件将代码块定义为

当 Coco 生成的解析器遇到这样的块时:

令牌拿起

这正是我想要的。

但是,当遇到这样的代码时:

令牌,贪婪地捡起

我怎样才能让 Coco/R 知道不要这样做?

0 投票
2 回答
1254 浏览

llvm - Phoenix 编译器工具项目还存在吗?

我正在寻找一个现代工具链来帮助开发一种小型编程语言/DSL。我想从MS Research探索Phoenix,但它看起来像一个死项目。是这样吗,我应该去别处寻找吗?

我想以 Phoenix 为目标,但如果这是最好的工具链,我肯定会考虑 LLVM(或其他)。

0 投票
1 回答
753 浏览

delphi - Coco/R 可以将解析的文件转换为字节码吗?

我想在 Delphi 中编写一个用于教育目的的简单编译器。我已经阅读了 Coco/R 并找到了 Delphi 的这个实现:http ://code.google.com/p/dcocor/ 。根据我的阅读,这是 Delphi 2009 语法的解析器。

我需要做什么才能将解析后的文件转换为字节码?Coco/R 能做到这一点吗?

我知道诸如 FastScript 或 DWS 之类的脚本语言,但我想尝试为自己的目的编写自己的语言。

请给我一些建议或澄清一些事情。