wandong 发表于 2014-6-3 19:56:25

lisp语法判断

本帖最后由 wandong 于 2014-6-3 20:45 编辑

在对话框中输入lisp表达式,比如(* 2 pi),并求值,但是如果语法错误则会退出对话框,中断程序,这给应用带来不便。有没有办法不执行程序而直接判断字符串(去掉引号)符合语法?这样就不会有因为稍有不慎就需要重新启动程序的烦恼。望高手们帮忙提供思路,不胜感谢。

Gu_xl 发表于 2014-6-3 21:41:04

请参阅 VL-CATCH-ALL-APPLY、 VL-CATCH-ALL-ERROR-P函数的用法!
参阅
[【Gu_xl】] 【Gu_xl】Lisp程序设计错误处理的技巧

wandong 发表于 2014-6-4 19:28:25

版主意思是在错误处理函数中判断。我觉得,一般来说错误处理函数运行时程序即结束,应该只是一些变量的恢复,而不应该是程序继续运行。我有一点小思路,当然不能彻底解决问题,但可以粗略判断两点。
1、判断括号的匹配,这在字符串形式下易于实现;
2、以空格为分隔符将字符串转为字符串表,判断左括号跟随的是已知函数。
但函数的参数匹配等不易实现。

llsheng_73 发表于 2014-9-30 17:31:00

按道理说是可以让CAD试着运行语句,如果有错要求修改语句而不是结束
比如(getreal)时输入字母它不是直接让重新输入么?当然这是CAD内部自己处理的,但其思路应该可以借鉴
页: [1]
查看完整版本: lisp语法判断