如何将自定义语言翻译为html

时间:2013-10-07 00:09:24

标签: python parsing

我正在尝试将自定义语言转换为html 以下示例应该直观 - 易于理解而不解释:
这个输入文件......

css:
    define(style):
        if default:
            background-color=black
        if hovered:
            background-color=blue
    apply(style, tag=h1, tag=h2)

html:
    body(id="hello"):
        paragraph(id=demo):
            "This is a paragraph.
        input(type="button", onclick="displayDate()"):
            "Display Date

js:
    def displayDate():
        document.getElementById("demo").innerHTML=Date()

......应该翻译成......

h1 {
    background-color: black
}
h1 :hover {
    background-color: blue
}
id {
    background-color=black
}
id :hover {
    background-color=blue
}

<html>
    <body id="hello">
        <p id="demo">This is a paragraph.</p>
        <input type="button", onclick="displayDate()">Display Date</button>
    </body>

    <script>
        function displayDate() {
            document.getElementById("demo").innerHTML=Date()
        }
    </script>
</html>

输入文件具有以下规则:

  • 它具有与Python相同的基于缩进的语法,所以应该有 缩进检查。

  • 以引号开头的行被解释为内容。

  • 某些语句只应存在于某些上下文中,例如,define语句 应该只存在于css块中。

我一直在使用Regex编写我的解析器,但是半途而废的是Regex很慢,并且可能不够用,因为HTML的生成应该很快,这不是Regex的优势之一。

谷歌搜索/冲浪将pyparsingPLYANTLR带到我的眼前,但我不知道/了解他们做了什么以及我是否应该使用它们。

我应该遵循哪条路径?

0 个答案:

没有答案