我正在考虑使用 Ragel 在嵌入式系统中为 NMEA GPS 数据生成词法分析器。我将有一个任意大小的缓冲区,我将从 UART 读取数据块,并且对于每次读取,我都会将该数据传递给词法分析器。
我希望能够提取特定字段,但问题是我不能保证整个字段都存在于数据块中。任何字段都可能被拆分为两次读取,因此将指针设置为字段的开始和结束可能会将开始指针留在前一个(现在被覆盖)缓冲区的末尾,而结束指针在它之前。
想到的一种解决方案是在每个字段上使用“$”操作,将字符一个接一个地推入另一位内存(可能是结构字段)。这是最好的方法吗?