作为一个小挑战,我正在用Python构建一个编译器,该编译器将使用我编写的具有某种语法的语言来接收文件并运行该文件,并执行println(somestr)
之类的内置函数。 (我知道我的做法是不明智和丑陋的。)
这个内置函数特别给我一些问题。我想允许用户在他们的文件中加入这样的一行:
println("John said " + "\"Foo.\"")
应该输出类似John said "Foo."
的内容,不幸的是,我读取文件的方式给了我类似的信息(去除了println
):
"\"John said \" + \"\"Foo.\"\""
这使得很难将用户定义的转义与自动生成的转义区分开。这意味着我不能分离不同的字符串,像这样:
["John said ", "\"Foo\""]
所以我可以将其连接起来。 (它可能还包含我可以处理的变量。)
不幸的是,我还没走得那么远。我尝试通过re
模块使用正则表达式,但是我经验不足,无法工作。
有更好的解决方法吗?