解析iCal文件的提示

时间:2016-02-16 20:40:24

标签: c parsing icalendar rfc5545

我正在尝试根据RFC 5545解析iCal输入文件。 特别: - 属性名称 - 可选参数,每个参数以分号“;”开头并且可能有多个以逗号分隔的值(参数值可能是双引号,在这种情况下,它们可能包含冒号,分号和逗号) -Colon“:” - 财产价值

示例行:

> ORGANIZER;CN=Obi-WanKenobi;SENTBY="mailto:obiwan@padawan.com":mailto:laowaion@padawan.com

在这种情况下,该行将被读入缓冲区并进行解析(目前使用strtok),如下所示: 组织者是财产名称; CN = Obi-WanKenobi和SENTBY =“mailto:obiwan@padawan.com”是参数; mailto:lauwaion@padawan.com是财产价值。

我不知道从哪里开始。不同的输入案例几乎是无限的,我无法找出一个有效的算法来涵盖所有上述案例。 strtok要走的路吗?或者是否有另一个具有更智能解析器的C库?需要有人让我走上正轨。

2 个答案:

答案 0 :(得分:1)

我建议你先看看现有的C实现:

以上答案正在解决您当前的问题,但是当您通过RFC5545标准并查看其他人所做的事情可能会有所帮助时,您可能会遇到其他问题

答案 1 :(得分:0)

您可以使用flex(lex的GNU克隆)编写适合您任务的词法分析器。 Ragel是解决此问题的另一个好工具。