您好我正在寻找一种伪Markdown语言和解析器来解析它为xhtml。
我从未编写过编译器......我已经对ANTLR进行了简要介绍,并且想知道ANTLR是否可以使用有意义的空白来处理解析事物?
所以说我有这样的事情:
some text
some other text
# bullet point
# nested bullet point
根据上下文和前缀空格的数量,这些行意味着不同的东西。
用于为此编写解析器的好工具是什么?
谢谢, 亚历
答案 0 :(得分:2)
ANTLR肯定可以用于此。但是,如果您是ANTLR或解析器生成器的新手,我认为我不能简单解释如何准确地执行此操作。我建议您使用ANTLR尝试一些简单的事情并浏览The Definitive ANTLR Reference。它甚至有一个关于这类问题的段落,类似于解析Python代码。有关详细信息,请参阅 4.3规则章节每个Lexer规则发出多个令牌。
答案 1 :(得分:1)
我的方法是让你的词法分析器生成缩进/突出标记。存储当前缩进级别并匹配\n *
之类的模式。计算空格数,如果它与当前缩进级别不同,则发出缩进/突出标记。
同样,在行首开始计算制表符。插入在\n[ \t]*
模式上引发错误的规则应该会阻止人们混合制表符和空格。