LCK Lisp Checker Version 2.1b Manual AutoCAD and AutoLISP are registered trademarks of AutoDesk, Inc. Turbo Pascal is a registered trademark of Borland International PKZIP and PKUNZIP are registered trademarks of PKWARE [ LCK Lisp Checker ]--------------------------------------------- A program written for running checks on AutoLISP files to check the balance of parenthesis and double quotes (string literals). LCK was introduced as shareware software for use with AutoCAD. You may copy and distribute these files freely provided (a) no fee is charged and (b) all of the files are distributed together in their original, unmodified form. Please use the LCK21.ZIP file for uploading to bulletin boards and such. If you like LCK and find it useful, your $15 registration fee would be greatly appreciated. A registration form is provided in the file REGISTER.NOW. Registered owners will be notified of future releases. Updates of LCK 2.1 will be made available to all registered owners for the cost of materials, shipping and handling (i.e $5) or the difference in list price. Please remember that LCK is not "freeware". If you use LCK, you must register. The trial period is strictly limited to no more than two weeks. [ Disclaimer ]--------------------------------------------------- There is no warranty for LCK, expressed or implied. CAD/Engineering Services and Stan H. Bimson assumes no liability for damages, direct or consequential, which may result from use of LCK. Use at your own risk! [ Supplied Files ]----------------------------------------------- LCK .EXE Lisp checker LCK .DOC This doc file ERROR .LSP A Lisp program on how to handle error messages OSNAP .LSP A Lisp program with new OSnap commands JUNK .LSP A Lisp program with errors REGISTER.NOW Registration form [ Installation ]------------------------------------------------- Installation is simple, LCK does not require any configuration. To be able to use LCK from anywhere from within your system, place the LCK.EXE file in a sub-directory that is on your current PATH. Copyright 1987 CAD/ES Page 1 of 6 LCK Lisp Checker Version 2.1b Manual To use LCK from within AutoCAD add the following statement line to your ACAD.PGP file: lck,lck,65536,*LCK (enter filename): ,0 [ System Requirements ]------------------------------------------ LCK will only work on a system with a color monitor. Color is used as a debugging tool. Programs that allow some color programs to run on monochrome monitors will not work with LCK as text is written directly to memory address for the color text area bypassing DOS or BIOS calls. [ Program Operation ]-------------------------------------------- PARENTHESIS 15 colors in alternating groups of non-blinking and blinking are used to denote or display the level of parenthesis. The opening and closing parenthesis have the same color. When the end of a code segment is reached unbalanced parenthesis will be noted. If parenthesis are balanced the statement CODE OKAY is shown. COMMENTS When ever and where ever a semicolon is found, the semicolon and the rest of the line is considered a comment. Comments are displayed in the color dark cyan. STRING LITERALS When a quoted ("") string is found, the quote and all the characters that follow until another quote is encountered is considered to be a string literal. String literals have to end on the line that they start on. String literals are displayed in the color light gray. If the program reaches the end of the code line and it has not encountered another quote a string error occurs, an error message is displayed at the end of the line. When a string or quote error has occurred, it can, as it does within AutoCAD, unbalance the parenthesis. Correct the quote error and rerun LCK to complete the code checking. NOTE: Text editors that put a carriage return and line feed (ASCII 13 and 10) in the text file for the end of line, can fake the AutoLISP interpreter. A string CAN continue from one line to the next. The double character code is read in as "\n", a single carriage return would be read as "\r". This is all in compliance with AutoLISP as these control characters are interpreted as being within a string. I feel this is not good coding practice and LCK does not support strings that continue on two or more lines. Copyright 1987 CAD/ES Page 2 of 6 LCK Lisp Checker Version 2.1b Manual CODE Is displayed in the color dark green, all code exceptions have been noted. A line of code, with or without comments may be up to 255 characters. Long lines are rapped in the display without incrementing line numbers. STATUS LINE Line count is given on the left side of line 25. Parenthesis are counted and the difference of the left minus right is displayed on line 25. Quotes are noted as E for even or U for unbalanced. [ Syntax ]------------------------------------------------------- LCK [d:][path]filename[.ext] [/switches] The file name extension is ONLY required if the AutoLISP file does not have the extension of .LSP. LCK junk Or: LCK LCK will stop and ask for a file name. /switches Switches cause a change in LCK's operation. /S Scroll screen 23 lines (max) at a time. The screen scroll still stops at the end of code segment or the end of the file. Scroll count restarts after each end of code segment. /NC No comment display, this covers only the comments that start within a code line. /NA Remove all comments whether they start at the end of a code segment or the beginning of a line. Line numbers which are shown on the left side of screen are shown correctly. Removed comment lines do not change line numbers. Switches can be combined in the form: /SNC or /NCS Scroll set to 23 and delete line comments Copyright 1987 CAD/ES Page 3 of 6 LCK Lisp Checker Version 2.1b Manual /SNA or /NAS Scroll set to 23 and delete all comments /NANC or /NCNA ? Use one or the other, not both, only the first condition will be in affect [ Lisp code requirements ]--------------------------------------- There are several code or file structure requirements for LCK. We are not trying to tell or instruct you in how to format your Lisp code. LCK needs to know what is considered a complete code segment. The following are the code format requirements that LCK will follow. For LCK to know the end of a section of code that is to be checked: (A) Place a blank line between the code segments. ; Is it a string ? (DeFun TestForStr(st) (= (Type st) 'STR) ) ; Is it a List ? (DeFun TestForLst(Lst) (= (Type Lst) 'LIST) ) (B) Place a single semicolon between the code segments. ; Is it a string ? (DeFun TestForStr(st) (= (Type st) 'STR) ) ; ; Is it a List ? (DeFun TestForLst(Lst) (= (Type Lst) 'LIST) ) Tab Characters If your text editor inserts a tab character (ASCII 9) instead of expanding with space characters be forewarned that LCK will only expand the tab to a single space. This may cause the displayed code not to look like how you formatted it. Copyright 1987 CAD/ES Page 4 of 6 LCK Lisp Checker Version 2.1b Manual [ Parting Comments ]--------------------------------------------- I would be pleased to hear any comments on this program be they bad or good, I am not a professional programmer but a freelance structural steel draftsman that uses AutoCAD. I program heavily into AutoLISP and as you see by this program, in Turbo Pascal. I feel that this program is a very good aid for any level of AutoLISP programmer. As many people have found out, my business and home telephone is one in the same. I wish to thank these people for calling at a reasonable hour (at my end). People who have called on Saturday and Sunday have occasionally have found me "out". If you call and I am "out", please give who ever answers the telephone some idea of why you called. My wife and children can not answer questions about LCK, Pascal or AutoLISP, but they take good messages and generally know when I will be back. In all these years I have only received one (1) call about a "bug" in LCK, I do return calls covering "bug" reports. If you experience some problem with LCK please re-read this manual before calling, I have had many calls because people do not follow the two simple forms of code formatting. Some people have just called to "shoot the breeze" about a LISP program I have written, they have or are writing, AutoLISP in general, AutoCAD, Pascal or structural steel detailing. I don't really mind these calls, I need a break once and while and have even learned more than I have given, but I do have to work. Calling on the weekend doesn't help, I don't sit around the house or watch TV. It's Boy Scouts, yard work, my family, beta testing (someone else's program), programming (my own), or something. It's "catch as catch can" most of the time. I can be reached at two bulletin boards: The AutoDesk forum on CompuServe, user ID# 73507,3475, I call every Saturday morning (once a week) unless I have message replies to send. OR The EET BBS, Nashville, TN. Telephone (615) 353-3476, which I call everyday or every other day. National AutoCAD Echo or National CAD/M Echo: If your local BBS carries either of these National Echos, I check both as EET carries both. Mailing Addresses: Telephone: CAD/Engineering Services (615) 824-4938 1038 Forest Harbor Drive Hendersonville, TN 37075-9646 USA Copyright 1987 CAD/ES Page 5 of 6 LCK Lisp Checker Version 2.1b Manual [ Distribution Disk ]-------------------------------------------- Distribution disk and upgrade disk have the files noted in the section Supplied Files. These files are found in the root directory of the diskette. The Supplied Files do not take up much disk space. I really hate to send out a diskette with all that empty space so there is usually a sub-directory named EXTRAS. In this directory are files that I find of interest to me, either for DOS operations or my dealing with AutoCAD or AutoLISP. These programs are public domain, some have documentation and some don't. I don't support these programs in anyway, nor do I take any liability for them, all the risk is incurred by the user. These files change from time to time so no documentation list is given. [ Version Notation ]--------------------------------------------- 2.1b Copy distributed to AutoCAD BBS and CompuServe 2.1z Registered user copy End of Manual Copyright 1987 CAD/ES Page 6 of 6