用于构建UI标记语言解析器的工具

时间:2010-05-11 07:24:17

标签: parsing user-interface yacc markup lex

对于学校项目,我需要为用户界面实现(可能是基于XML的)标记语言的解析器。根据输入,它生成一个HTML文档,其中包含各种UI组件(textareas,输入,面板,对话框等)。

您对我可能使用的工具/库有什么建议吗? (在学校我们使用Flex和Bison,但我们允许使用现代工具 - 也许是一种具有lex和yacc功能的工具)

1 个答案:

答案 0 :(得分:2)

如果你的输入是建议的,XML和你的输出是HTML,那么这就是XSLT的基本用例。 XML的整点是你不必编写自己的解析器,所以如果这是作为工作的工作而不是作为学校项目,这将是第一个使用的技术。如果您无法将其表达为转型,那么您可能会在其他地方寻找。

如果您不想使用XML,那么纯文本语言的现代工具包括parser expression grammars和DSL综合工具,例如Microsoft M

PEG使您无需单独执行lex和parse,因此令牌可以是上下文敏感的而不会使语法复杂化(因为许多令牌都是多种语言),而某些实现意味着您不必担心左/右递归循环。

DSL综合工具将基于IDE的语法与运行时语义相结合。 Martin Fowler有一个book on DSLs on his site

但是对于作为转换输入的UI定义语言,XML或其他一些标准的结构映射(JSON,YAML)可以作为通过SAX接口输入XSLT处理器的第一件事我会尝试。