问题标签 [code-transformation]

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

haskell - Haskell do 块中如何允许表达式

在下面的代码中,第 4 行,我有一个表达式夹在 do 块中的两个 IO 操作之间:

我将 do 表示法理解为使用 >>= 或 >> 将单子操作链接在一起。但是当你在两者之间有一个表达式时,它是如何工作的?您不能只使用 >> 将 3-5 行粘合在一起。

0 投票
0 回答
240 浏览

java - 如何使用 JavaParser 在同一行添加新语句

我知道JavaParser在 AST 上运行,但我很好奇是否可以在与另一行相同的行上添加新语句。让我举例说明我想要实现的目标。

示例输入X.java(不要介意“逻辑”):

我想要实现的是System.out.println("End of loop reached");在每个循环体的末尾添加语句 - 但是,如果可能的话,我想在循环体中的最后一个语句旁边添加这个新语句。因此,结果应如下所示:

目前我使用以下访问者(用 Kotlin 编写),只是为了了解 JavaParser。然而,这会导致为打印语句添加新行。关于如何指示 JavaParser 在同一行添加新节点的任何想法?

0 投票
0 回答
51 浏览

java - 跟踪 JavaParser 中的行号更改

我目前尝试使用JavaParser稍微修改现有的源代码。我现在希望能够跟踪这些修改引入的行号更改。

例如,假设我们有一个ModifierVisitor在每个 while 循环的主体中添加一行的代码(处理的代码可能包含多个循环)。处理以下代码

会把它变成

问题: JavaParser 中是否有一种简单的方法/内置功能可以在这两个版本之间创建线映射?

我想有一个从新行号到旧行号的映射(反之亦然)。对于上面的示例,地图应如下所示:

0 投票
0 回答
94 浏览

haskell - Haskell 中的 Do 表达式扩展

我有一段来自Get Programming with Haskell 一书的代码片段,如下所示:

为了更好地理解ST s这里上下文中转换的完整过程,我决定将这些代码行扩展为使用>>, >>=and的表达式return。所以我的尝试导致了这段代码:

它是正确的扩展吗?用或类似的动作扩展do-notations的一般方法是什么,forM_因为它们进行了一些计算但在上下文中丢弃了结果?

0 投票
1 回答
46 浏览

python - 有什么办法可以将此python代码转换为php

我需要完成的是找到一种方法,我可以将任何 python 代码的基础知识转换为 php 函数和条件等等