我计划创建一个字符串命令,如下所示
string syntax = "Download(TagMatch(Download(\"http://www.aaa.com\"), \"<div title='aa'>\", \"</div>\"))";
MyParser.Execute(syntax);
然后MyParser将解析内部语法,并首先使用带有deepest命令的参数调用正确的方法,直到outest命令。所以它基本上会
所以基本上我有这些方法
private string Download(string download)
{
//return single string
}
private string[] Download(string[] download)
{
//return string array
}
private string[] TagMatch(string webpage, string startTag, string endTag)
{
//return multiple Tag matches the array
}
如何创建这样的解析器并首先调用最深的方法?有人可以帮帮我吗?我是解析新手。我打算只提供一种语法来创建一个处理网页报废的库。
答案 0 :(得分:1)
为了创建一个像样的解析器,你需要做一些事情:
创建解析器的好工具,包括在C#中,是http://goldparser.org的黄金解析器生成器。
但请务必先在EBNF中正确定义您的语言。不要只是使用正则表达式来破解“解析器”,它们对于正确的语言解析来说太有限了。