字符串搜索
本文关键字:搜索 字符串 | 更新日期: 2023-09-27 18:10:53
好的,我正在用c#编写一个语言编译器,它将我的语言转换为MSIL,然后调用MSIL编译器。但这不是重点。我创建了一些代码来展示我将要处理的内容:
module myApplication
[EntryPoint]
function void start
write("Hello World!'n")
wait(5) // wait 5 seconds
ret()
endfunction
endModule
好吧,我正试图扫描该代码并找到"[EntryPoint]"的位置,然后找到它之后的所有"函数void start"。所以我可以找到函数类型("void")和名称("start")。[EntryPoint]标签将始终位于将被定义为应用程序入口点的函数上方。我还得把空白的部分修剪一下。这也是通过使用''n'扫描,所以函数必须在标签下。
我还有另一个问题,我如何使它从"函数void start"answers"endfunction"中分离函数内部的代码?
比起简单的字符串操作,还有很多要编写编译器—例如,如果您的源代码看起来像这样呢:
module myApplication
string myString = "[EntryPoint]
function void start
write("Hello World!'n")
wait(5) // wait 5 seconds
ret()
endfunction"
endModule
。您的源代码定义了一个包含程序源代码的字符串—您不能只是查找看起来像入口点的东西,您需要实际解析您的源代码。
参见学习编写编译器获得入门的良好资源。