C# 字符串搜索

C# 字符串搜索,c#,string,cil,C#,String,Cil,好的,我正在用C语言编写一个语言编译器,它将我的语言转换成MSIL,然后调用MSIL编译器。但这不是重点。我创建了一些代码,向您展示我将要处理的问题: module myApplication [EntryPoint] function void start write("Hello World!\n") wait(5) // wait 5 seconds ret() endfunction endModule 好的,我正在尝试扫描代码,找到“[En

好的,我正在用C语言编写一个语言编译器,它将我的语言转换成MSIL,然后调用MSIL编译器。但这不是重点。我创建了一些代码,向您展示我将要处理的问题:

module myApplication

  [EntryPoint]
  function void start
    write("Hello World!\n")
    wait(5) // wait 5 seconds
    ret()
  endfunction
endModule   
好的,我正在尝试扫描代码,找到“[EntryPoint]”的位置,然后找到它后面的所有“function void start”。所以我可以找到函数类型(“void”)和名称(“start”)。[EntryPoint]标记将始终位于将定义为应用程序入口点的函数上方。我必须让它修剪空白和其他东西。这也是使用“\n”进行扫描,因此函数必须位于标记下


我还有另一个问题,我该如何将函数内部的代码与“函数void start”和“endfunction”分开呢?

编写编译器比简单的字符串操作要多得多,例如,如果源代码看起来像这样会怎么样:

module myApplication
  string myString = "[EntryPoint]
  function void start
    write("Hello World!\n")
    wait(5) // wait 5 seconds
    ret()
  endfunction"
endModule
也就是说,你的源代码定义了一个包含程序源代码的字符串——你不能只寻找看起来像入口点的东西,你需要实际解析你的源代码


有关入门的详细信息,请参阅。

此处不应使用字符串搜索,但语言parserIt听起来确实需要了解解析器的一般结构。关于解析器有很多需要了解的地方,它们实际上不适用于解决堆栈溢出问题。好吧。我会调查的。谢谢