【问题标题】:Compiling/parsing meaningful whitespace编译/解析有意义的空白
【发布时间】:2010-09-10 02:35:14
【问题描述】:

您好,我正在寻找一种伪 Markdown 语言和一个解析器来将其解析为 xhtml。

我从未编写过编译器...我简要了解了 ANTLR,并想知道 ANTLR 是否可以处理有意义的空格解析?

所以说我有这样的事情:

some text

  some other text

  # bullet point

    # nested bullet point

根据上下文和前缀空格的数量,这些行将意味着不同的东西。

为此编写解析器的好工具是什么?

谢谢, 亚历克斯

【问题讨论】:

    标签: parsing compiler-construction antlr


    【解决方案1】:

    ANTLR 肯定可以用于此。但是,如果您通常是 ANTLR 或解析器生成器的新手,我认为我无法简短地解释如何准确地做到这一点。我建议您使用 ANTLR 尝试一些简单的事情并浏览 The Definitive ANTLR Reference。它甚至有一段关于这类问题的段落,类似于解析 Python 代码。有关详细信息,请参阅第 4.3 规则章节,每个 Lexer 规则发出多个令牌

    【讨论】:

      【解决方案2】:

      我的方法是让您的词法分析器生成缩进/缩进标记。存储当前缩进级别并匹配\n * 之类的模式。计算空格数,如果与当前缩进级别不同,则发出缩进/缩进标记。

      同样,在行首计算标签。插入在\n[ \t]* 模式上引发错误的规则应该可以阻止人们混淆制表符和空格。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-14
        • 1970-01-01
        相关资源
        最近更新 更多