zer*_*ing -1 parsing haskell functional-programming
我有以下内容,想转换成数据结构。
文本是:
pcp-action:MESSAGE\npcp-channel:apc\:///\npcp-body-type:text\nPUBLIC:THISPK\nTOPIC:SEND\n\nHello Foo
Run Code Online (Sandbox Code Playgroud)
我想知道,使用解析器是否有意义。老实说,我看不到Parser
在这种情况下使用的意义,因为结构不是BNF
像这样,JSON
也不是可递归枚举的。
什么时候将文本Parser
转换为数据结构有意义?
更新资料
我忘了提及上面的文字是基于以下描述,即在这里https://blogs.sap.com/2015/07/27/specification-of-the-push-channel-protocol-pcp/编写。
看起来,它是基于语法的。
像任何工具一样,您应该在适合工作时使用解析器。将字符串转换为数据结构正是解析器的目的。
这种特定的语言是由BNF定义的,因此也是递归可枚举的(实际上是无上下文的),因此是解析的理想选择,但是您可以将解析器用于各种事情。例如,日志文件可能没有定义的BNF语法,但在实践中通常结构得足够好以使解析有用。