自去年以来,我一直在为HTML编写翻译。我不认为HTML是一种非常好的语言,我想我可能会创建一个解释器,将我漂亮的代码翻译成HTML,以便在网上使用。
它工作得很好,并且在一个小小的Web应用程序上使用它,但是我在解析特定行时遇到问题,并且会对如何解析它有任何建议。
我的代码:
HmtlDocument {
Page.Title: "Test webpage using JTHtml";
Using[] {
"../Assets/Stylesheets/default.css",
"../Assets/Scripts/slidercordian",
"../Assets/Scripts/jquery.1.4.1.js"
};
HtmlBody {
HtmlElement Divider(container) {
HtmlElement Divider(Header) {
HtmlElement Image(Logo, "../Assets/Images/logo.png");
HtmlElement Menu(MainMenu, Horizontal, Ul, li) {
li.Text: "Home", "index.html";
li.Text: "About Us", "about.html";
li.Text: "Services", "services.html";
li.Text: "Contact Us", "contact.html";
li.Text: "My Account", "../myaccount/default.html";
}
}
HtmlElement Divider(MainContent) {
HtmlElement Heading(Heading, 1) {
Heading.Text: "Welcome!";
}
HtmlElement Text(Text) {
Text.Text: "Welcome to my new website written purely in jthtml";
}
}
}
}
请参阅,我遇到的问题是以下一行:
li.Text: "[value]", [resource]";
我用它的旧方法是这样写:
li.Text("[value]", "[resource]");
然而,这并不完全符合语法的其余部分,这就是我希望保持这样的原因:
li.Text: "[value]", "[resource]";
但我只是不确定如何解析那条线。我因为第一个收盘报价和以下逗号,空格和第二个开盘报价而陷入困境。我似乎无法弄清楚它的正确逻辑。
任何帮助都表示赞赏。
谢谢!
答案 0 :(得分:0)
行:li.Text:“[value]”,[resource]“;缺少一个开场白。
您是否缺少一个开头的引文,或者解析器是否在没有开头引用的情况下理解它?
答案 1 :(得分:0)
如果您已经拥有该行,则可以轻松使用
等正则表达式li\.Text:\s*"([^"]*)"\s*,\s*"([^"]*)"\s*;
但这似乎是你可以自己弄明白的东西。也许我误解了这个问题?