明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1241|回复: 3

[提问] lisp语法判断

[复制链接]
发表于 2014-6-3 19:56 | 显示全部楼层 |阅读模式
本帖最后由 wandong 于 2014-6-3 20:45 编辑

在对话框中输入lisp表达式,比如(* 2 pi),并求值,但是如果语法错误则会退出对话框,中断程序,这给应用带来不便。有没有办法不执行程序而直接判断字符串(去掉引号)符合语法?这样就不会有因为稍有不慎就需要重新启动程序的烦恼。望高手们帮忙提供思路,不胜感谢。
发表于 2014-6-3 21:41 | 显示全部楼层
请参阅 VL-CATCH-ALL-APPLY、 VL-CATCH-ALL-ERROR-P函数的用法!
参阅
[【Gu_xl】] 【Gu_xl】Lisp程序设计错误处理的技巧
 楼主| 发表于 2014-6-4 19:28 | 显示全部楼层
版主意思是在错误处理函数中判断。我觉得,一般来说错误处理函数运行时程序即结束,应该只是一些变量的恢复,而不应该是程序继续运行。我有一点小思路,当然不能彻底解决问题,但可以粗略判断两点。
1、判断括号的匹配,这在字符串形式下易于实现;
2、以空格为分隔符将字符串转为字符串表,判断左括号跟随的是已知函数。
但函数的参数匹配等不易实现。
发表于 2014-9-30 17:31 | 显示全部楼层
按道理说是可以让CAD试着运行语句,如果有错要求修改语句而不是结束
比如(getreal)时输入字母它不是直接让重新输入么?当然这是CAD内部自己处理的,但其思路应该可以借鉴
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-3-28 20:02 , Processed in 0.304101 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表