Html解释器问题

时间:2011-03-31 19:01:52

标签: c# language-agnostic logic

自去年以来,我一直在为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]";

但我只是不确定如何解析那条线。我因为第一个收盘报价和以下逗号,空格和第二个开盘报价而陷入困境。我似乎无法弄清楚它的正确逻辑。

任何帮助都表示赞赏。

谢谢!

2 个答案:

答案 0 :(得分:0)

行:li.Text:“[value]”,[resource]“;缺少一个开场白。

您是否缺少一个开头的引文,或者解析器是否在没有开头引用的情况下理解它?

答案 1 :(得分:0)

如果您已经拥有该行,则可以轻松使用

等正则表达式
li\.Text:\s*"([^"]*)"\s*,\s*"([^"]*)"\s*;

但这似乎是你可以自己弄明白的东西。也许我误解了这个问题?