概要 - 括弧の抜けを検出する(Visual LISP IDE)

AutoLISP は、他の多くのコンピュータ プログラミング言語よりも非常に頻繁に括弧を使用します。

注: Visual LISP IDE は Windows でのみ使用可能です。

AutoLISP で最も頻繁に起こる構文エラーの 1 つは、左括弧と右括弧の数が一致していないことです。プログラムを 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 行目の先頭にカーソルを置いてから[式の最後へ移動]ツールを使用するとどうなるかを示します。

カーソルが最後の行に移動したのは、5 行目の左括弧に対応する右括弧がプログラムの最後の括弧だからです。AutoLISP プログラムの最後の右括弧はプログラムの defun 関数の左括弧に対応していなければならないので、これはエラーです。5 行目以降のすべての文がその前のプログラム コードとは違う形でインデントされていることにも注目してください。この 2 つの手がかりは、プログラム内のこの位置で何かが間違っていることを示しています。実際、5 行目から始まる関数の右括弧が抜けています。抜けている括弧を、7 行目と 8 行目の間に挿入する必要があります。