【问题标题】:Is it possible to write a language parser with AWK?是否可以使用 AWK 编写语言解析器?
【发布时间】:2018-03-05 20:36:07
【问题描述】:

我最近刚刚开始阅读 AWK 编程语言,目的是创建一个编程语言解析器,因为它通常用作文本处理器和/或模式匹配。我有一个想法,“如果这种语言用于模式匹配和处理文本,它不能用于处理特定语句的源文件,例如 for / if / while 关键字和短语,然后执行给定的操作,然后将其传递给词法分析器或类似的东西?”我在网上做了一些研究,但我找不到关于这个主题的任何信息。

【问题讨论】:

  • Awk 已经完成,因此它可以用于任何编程问题(在合理范围内)。但是,它不太可能是这种用法的最佳工具。

标签: linux parsing unix awk


【解决方案1】:

当您将 AWK 与其他 Linux/Unix 工具(例如 sed 和 shell (BASH/KSH) 编程)结合使用时,它可用于创建语言语法。通常,尽管其他工具更适合,例如 python、Groovy、Perl 或 GO。这些语言中的每一种都比 AWK 更适合语言处理。

【讨论】:

    【解决方案2】:

    在某些方面,awk 本质上是一个词法分析器。

    如果您想使用 awk 解析 C 类字符流,您可以更改 awk 中的字段分隔符和记录分隔符值以满足您的需要。比较合理的是,字段分隔符变量为FS,记录分隔符变量为RS。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-06
      • 1970-01-01
      • 2023-03-22
      • 2012-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多