gpt4 book ai didi

java - Haskell 程序删除注释

转载 作者:行者123 更新时间:2023-12-01 17:34:26 24 4
gpt4 key购买 nike

我正在尝试编写一个 Haskell 程序,该程序接受 Java 程序 (.java) 并输出它并删除所有注释。输入的语法不必是正确的。我已将 IO 组件设置为如下所示:

main =
do
javaFile <- getFileName
text <- readFile javaFile
displayProgram ( AAAA )
return ()

AAAA 是获取文本并生成带有注释的新文本的表达式已删除。请注意,这些函数是必需的:

getFileName :: IO [Char]
displayProgram :: [String] -> IO ()

我知道算法非常简单:

  1. 搜索 // 并删除整行文本。
  2. 搜索 /* 并删除以下所有文本,直到到达 */ 并删除 */。这当然应该同时处理 block 注释和文档注释。
  3. 输出剩余文本。

但是,Haskell 并不是我最擅长的语言之一。任何帮助将不胜感激。

最佳答案

您的算法是错误的:您的搜索模式可能出现在字符串内部,您的代码需要考虑到这一点。最简单的例子是带有注释的 quine:

package quine;
public class Quine {
/**
* This is a quine.
*/
public static void main(String[] args) {
String s1 = "package quine;\npublic class Quine {\n /**\n * This is a quine.\n */\npublic static void main(String[] args) {\nString s1 = \"";
// further code elided.
}
}

关于java - Haskell 程序删除注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7904805/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com