首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何获得导致解析错误的字符串?

如何获得导致解析错误的字符串?
EN

Stack Overflow用户
提问于 2012-10-19 13:04:35
回答 2查看 206关注 0票数 3

假设我有以下代码:

代码语言:javascript
复制
(handler-case (read ...)
  (parse-error (condition)
     (format t "What text was I reading last to get this error? ~s~&"
       (how-to-get-this-text? condition))))

我只能看到parse-namestring访问器,但是它给出了错误的消息,而不是它正在解析的文本。

编辑

在我的例子中,这个问题不那么通用,所以一个不涉及失败解析的整个字符串的替代解决方案也是很好的。

想象一下我试图解析的这个示例代码:

代码语言:javascript
复制
prefix(perhaps (nested (symbolic)) expressions))suffix

在某些情况下,我需要停止对“后缀”,而在另一些情况下,我需要继续,后缀本身没有其他意义,只是一个指示的行动,分析器应该采取下一步。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-19 14:22:38

没有标准的功能去做它。你也许可以用read-from-string来强制一些东西,但是无论你做什么,它都需要额外的工作。

票数 3
EN

Stack Overflow用户

发布于 2012-10-19 14:44:21

从流中读取解析,而不是字符串。S-表达式可以任意长。read应该保留已经读过的内容的字符串吗?

您可能需要的是一个特殊的流。在标准的Common中,没有用户定义流的机制。但是在现实生活中,每个实现都有这样的可扩展流。例如,参见“灰色流”。

http://www.sbcl.org/1.0/manual/Gray-Streams.html

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12974898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档