CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoLISP 开发指南

关于检查括号的平衡(Visual LISP IDE)

2023-1-6 05:45| 发布者: admin| 查看: 369| 评论: 0|来自: AutoCAD

摘要: AutoLISP 比大多数其他计算机编程语言更频繁地使用括号。

AutoLISP 比大多数其他计算机编程语言更频繁地使用括号。

注意:Visual LISP IDE 仅在 Windows 上可用。

AutoLISP 中最常见的语法错误之一是左括号和右括号的数量不相等。在将程序加载到 AutoCAD 中之前,必须平衡所有括号,并且必须正确平衡它们以确保可以执行程序的功能。

Visual LISP 包含许多工具来帮助检测不平衡或不匹配的括号。在文本编辑器中设置代码格式时,Visual LISP 代码格式化程序会搜索不平衡的括号。如果允许,代码格式化程序将在它认为缺少的地方添加括号。在大多数情况下,代码格式化程序会在要格式化的代码的末尾添加缺少的括号。

注意:如果不允许格式化程序添加缺少的括号,它也不会格式化代码。

以下代码演示了缺少的括号以及使用“匹配转发”工具时发生的情况:

1  (defun yinyang (/ origin radius i-radius half-r origin-x origin-y)
2  (setq half-r (/ radius 2))
3  (setq origin-x (car origin))
4  (setq origin-y (cadr origin))
5  (command "._circle" 
6           origin 
7           radius
8           (command "._arc"
9                    "_c"
10                   (list origin-x (+ origin-y half-r)) 
11                   (list origin-x (+ origin-y radius)) 
12                   origin                             
13          )
14          (command "._arc"
15                   "_c"
16                  (list origin-x (- origin-y half-r)) 
17                  (list origin-x (- origin-y radius)) 
18                  origin                             
19          )
20 )

(行号不是文本的一部分;它们用于帮助解释示例。

如果在 Visual LISP 中加载前面的代码并继续使用“匹配转发”工具(从第 1 行开头的插入点开始),将发生以下情况。

  • 可视 LISP 找不到匹配的右括号,因此光标不会移动。
  • 将光标移动到第 2 行的开头。
  • 光标移动到第 2 行的末尾。
  • 光标移动到第 3 行的末尾。
  • 光标移动到第 4 行的末尾。
  • 光标跳转到程序第 20 行的最后一个右括号。

光标移动到最后一行的原因是,与第 5 行上的左括号匹配的右括号是程序中的最后一个括号。这是一个错误,因为 AutoLISP 程序中的最后一个右括号应与程序函数的左括号匹配。另请注意,第 5 行之后的所有语句的缩进方式与前面的程序代码不同。这两个线索表明程序的这一点有些不对劲。实际上,缺少从第 5 行开始的命令函数的右括号。缺少的括号应放在第 7 行和第 8 行之间。defun


路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-5-19 12:24

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部