字符串搜索

本文关键字:搜索 字符串 | 更新日期: 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

。您的源代码定义了一个包含程序源代码的字符串—您不能只是查找看起来像入口点的东西,您需要实际解析您的源代码。

参见学习编写编译器获得入门的良好资源。