【问题标题】:Tools to build a UI markup language parser构建 UI 标记语言解析器的工具
【发布时间】:2023-04-07 20:26:02
【问题描述】:

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

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

【问题讨论】:

    标签: parsing user-interface yacc markup lex


    【解决方案1】:

    如果您的输入如建议的那样是 XML,而您的输出是 HTML,那么这就是 XSLT 的基本用例。 XML 的全部意义在于您不必编写自己的解析器,因此如果这是作为一项工作而不是作为一个学校项目来完成,那将是第一个使用的技术.如果您不能将其表达为转换,那么您可能会寻找其他地方。

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

    PEG 使您不必分别进行 lex 和解析,因此标记可以是上下文敏感的,而不会使语法复杂化(因为许多标记都使用多种语言),并且某些实现意味着您不必担心左/右递归循环。

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

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

    【讨论】:

      猜你喜欢
      • 2021-09-01
      • 1970-01-01
      • 2011-05-17
      • 1970-01-01
      • 2011-03-06
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 2012-11-05
      相关资源
      最近更新 更多