📄 templerr.clp
字号:
;;;************************************************************;;; DEFTEMPLATE ERROR CHECKING;;;;;; This file tests a number of common errors which can be;;; made with deftemplates. Among the errors tested are;;; (1) type/range attribute conflicts;;; (2) range/allowed-... attribute conflicts;;; (3) type/allowed-... attribute conflicts;;; (4) type/default attribute conflicts;;; (5) range/default attribute conflicts;;; (6) allowed-.../default attribute conflicts;;; (7) redefinition of a field;;; (8) more than one multifield slot;;; (9) redefinition of an attribute;;; (10) illegal attribute values;;;;;; When the file is loaded, only those deftemplates with;;; the aok prefix should be displayed with a list-deftemplates;;; command is executed. Any deftemplates shown with the prefix;;; bad indicate that an error was not detected. The number of;;; deftemplates listed should also be checked to make sure all;;; of the aok deftemplates loaded properly.;;;************************************************************;;;********************************************;;; These deftemplate check type/range conflict;;;********************************************(deftemplate bad-foo01 (field x (type SYMBOL) (range 1 3)))(deftemplate bad-foo02 (field x (range 1 3) (type SYMBOL)))(deftemplate bad-foo03 (field x (type INTEGER) (range 1.0 3)))(deftemplate bad-foo04 (field x (range 1 3.0) (type FLOAT)))(deftemplate aok-foo01 (field x (range 1.0 3.0) (type FLOAT)))(deftemplate aok-foo02 (field x (range 1 3.0) (type NUMBER)))(deftemplate aok-foo03 (field x (range 1 3)))(deftemplate aok-foo04 (field x (range 1 3) (type INTEGER)));;;*****************************************************;;; These deftemplates check range/allowed-... conflicts;;;*****************************************************(deftemplate bad-foo05 (field x (range 1 3.0) (allowed-integers 4 5 6)))(deftemplate bad-foo06 (field x (range 1 3) (allowed-floats 4.1 5.2)))(deftemplate bad-foo07 (field x (allowed-integers 4 5 6) (range 1 3.0)))(deftemplate bad-foo08 (field x (allowed-numbers 4.1 5) (range 1 3)))(deftemplate aok-foo05 (field x (range 1 3.0) (allowed-symbols a b)));;;****************************************************;;; These deftemplates check type/allowed-... conflicts;;;****************************************************(deftemplate bad-foo09 (field x (type INTEGER) (allowed-floats 1.0 2.0)))(deftemplate bad-foo10 (field x (type FLOAT) (allowed-integers 1 2)))(deftemplate bad-foo11 (field x (allowed-floats 1.0 2.0) (type INTEGER)))(deftemplate bad-foo12 (field x (allowed-integers 1 2) (type FLOAT)))(deftemplate bad-foo13 (field x (allowed-strings "a" "b") (type SYMBOL)))(deftemplate bad-foo13 (field x (allowed-symbols a b) (type STRING)))(deftemplate bad-foo12 (field x (allowed-integers 1 2) (type SYMBOL)))(deftemplate aok-foo06 (field x (type INTEGER FLOAT) (allowed-integers 1 2) (allowed-floats 4.0 5.0)))(deftemplate aok-foo07 (field x (type NUMBER) (allowed-integers 1 2) (allowed-floats 4.0 5.0)))(deftemplate aok-foo08 (field x (allowed-integers 1 2) (allowed-floats 4.0 5.0) (type INTEGER FLOAT)))(deftemplate aok-foo09 (field x (allowed-integers 1 2) (allowed-floats 4.0 5.0) (type NUMBER)));;;*****************************************************************;;; These deftemplates check default conflicts with other attributes;;;*****************************************************************(deftemplate bad-foo13 (field x (type INTEGER) (default 1.0)))(deftemplate bad-foo14 (field x (type FLOAT) (default 1)))(deftemplate bad-foo15 (field x (type NUMBER) (default a)))(deftemplate bad-foo16 (field x (range 1 3) (default 5)))(deftemplate bad-foo17 (field x (allowed-integers 2 3 4) (default 1)))(deftemplate bad-foo18 (field x (default 1.0)(type INTEGER)))(deftemplate bad-foo19 (field x (default 5) (type SYMBOL)))(deftemplate bad-foo20 (field x (default 5.0) (range 10.0 30)))(deftemplate bad-foo21 (field x (allowed-strings "a" "b") (default "c")))(deftemplate bad-foo22 (multifield x (default 3 4 a) (type INTEGER)))(deftemplate bad-foo23 (multifield x (default 10.0 5.0) (range 10.0 30.0)))(deftemplate bad-foo24 (multifield x (allowed-strings "a" "b") (default "a" "b" "c")))(deftemplate aok-foo10 (field x (type INTEGER) (default 1)))(deftemplate aok-foo11 (field x (type FLOAT) (default 1.6)))(deftemplate aok-foo12 (field x (type SYMBOL) (default a)))(deftemplate aok-foo13 (field x (range 1 3) (default 1)))(deftemplate aok-foo14 (field x (allowed-integers 2 3 4) (default 4)))(deftemplate aok-foo15 (field x (default 1.0) (type FLOAT)))(deftemplate aok-foo16 (field x (default 5) (type INTEGER)))(deftemplate aok-foo17 (field x (default 29) (range 10.0 30)))(deftemplate aok-foo18 (field x (allowed-strings "a" "b") (default "b")))(deftemplate aok-foo19 (multifield x (default 3 4 5) (type INTEGER)))(deftemplate aok-foo20 (multifield x (default 10.0 30.0) (range 10.0 30.0)))(deftemplate aok-foo21 (multifield x (allowed-strings "a" "b") (default "a" "b")));;;************************************************;;; These deftemplates check redefinition of fields;;; (some of these are more than one multifield);;;************************************************(deftemplate bad-foo25 (field x (type INTEGER)) (field x (type SYMBOL)))(deftemplate bad-foo26 (multifield x (type INTEGER)) (field x (type SYMBOL)))(deftemplate bad-foo27 (field x (type INTEGER)) (multifield x (type SYMBOL)))(deftemplate bad-foo28 (multifield x (type INTEGER)) (multifield x (type SYMBOL)))(deftemplate bad-foo29 (field x) (field y) (field x))(deftemplate bad-foo30 (field x) (field y) (field x) (field y))(deftemplate bad-foo31 (multifield x) (field y) (field x))(deftemplate bad-foo32 (field x) (multifield y) (field x) (multifield y));;;********************************************************;;; These deftemplates check more than one multifield slot;;;********************************************************(deftemplate aok-foo21a (field x) (field y) (multifield z) (multifield q))(deftemplate aok-foo21b (multifield x) (field y) (field z) (multifield q))(deftemplate aok-foo21c (field x) (multifield y) (multifield z) (field q))(deftemplate aok-foo21d (multifield x) (multifield y) (field z) (field q));;;******************************************************;;; These deftemplates check redefinition of an attribute;;;******************************************************(deftemplate bad-foo37 (field x (type INTEGER) (range 1 2) (type SYMBOL)))(deftemplate bad-foo38 (multifield x (range 0 3) (range 2 4) (type INTEGER)))(deftemplate bad-foo39 (field x (range 1 10) (default 3) (type INTEGER) (default 5)))(deftemplate bad-foo40 (multifield x (type SYMBOL) (default a b) (allowed-values a b c x y z) (default x y z)))(deftemplate bad-foo41 (field x (allowed-numbers 1 3.5 10 20.7) (type NUMBER) (allowed-floats 3.5 20.7) (default ?NONE) (allowed-integers 1 10)))(deftemplate bad-foo42 (multifield x (allowed-integers 1 10) (allowed-numbers 1 3.5 10 20.7) (type NUMBER) (allowed-floats 3.5 20.7) (default ?NONE)))(deftemplate bad-foo43 (multifield x (allowed-floats 3.5 20.7) (default ?NONE) (allowed-integers 1 10) (allowed-numbers 1 3.5 10 20.7) (type NUMBER)))(deftemplate bad-foo44 (field x (allowed-symbols a b c) (type SYMBOL) (allowed-symbols d e f)))(deftemplate bad-foo45 (field x (type INTEGER) (allowed-integers 1 2 3) (allowed-integers 4 5 6)))(deftemplate bad-foo46 (field x (allowed-floats 1.0 2.0 3.0) (allowed-floats 4.0 5.0 6.0) (type FLOAT)))(deftemplate bad-foo47 (field x (allowed-integers 4 5 6) (allowed-values 1 2 3)))(deftemplate bad-foo48 (multifield x (allowed-values 1.0 2.0 3.0) (allowed-floats 4.0 5.0 6.0)))(deftemplate bad-foo49 (field x (allowed-symbols d e f) (allowed-values a b c)))(deftemplate bad-foo50 (multifield x (allowed-values "a" "b") (allowed-strings "d" "e")));;;**************************************************;;; These deftemplates check illegal attribute values;;;**************************************************(deftemplate bad-foo51 (field x (allowed-symbols d 1.0 f)))(deftemplate bad-foo52 (multifield x (allowed-integers 1 2.0 3)))(deftemplate bad-foo53 (field x (allowed-floats 1.0 2.0 3)))(deftemplate bad-foo54 (multifield x (allowed-strings "a" "b" c)))(deftemplate bad-foo55 (multifield x (allowed-numbers 1 2.0 3 x)))(deftemplate bad-foo56 (field x (allowed-symbols d e f ?VARIABLE)))(deftemplate bad-foo57 (multifield x (allowed-integers ?VARIABLE 1 2 3)))(deftemplate bad-foo58 (field x (allowed-floats 1.0 ?VARIABLE 2.0 3.0)))(deftemplate bad-foo59 (multifield x (allowed-strings ?VARIABLE "a" "b" "c")))(deftemplate bad-foo60 (multifield x (allowed-numbers 1 2.0 3 ?VARIABLE)))(deftemplate bad-foo61 (multifield x (allowed-integers ?NONE 1 2 3)))(deftemplate bad-foo62 (field x (allowed-symbols d e f ?NONE)))(deftemplate bad-foo63 (field x (type ?VARIABLE FLOAT)))(deftemplate bad-foo64 (multifield x (type FLOAT ?VARIABLE)))(deftemplate bad-foo65 (field x (type FLOAT NUMBER)))(deftemplate bad-foo66 (multifield x (type NUMBER INTEGER)))(deftemplate bad-foo67 (field x (type ?NONE FLOAT)))(deftemplate bad-foo68 (multifield x (type FLOAT ?NONE)))(deftemplate bad-foo69 (field x (default ?NONE x)))(deftemplate bad-foo70 (multifield x (default x ?NONE)))(deftemplate bad-foo71 (field x (default ?VARIABLE x)))(deftemplate bad-foo72 (multifield x (default x ?VARIABLE)))(deftemplate bad-foo73 (field x (range 1 a)))(deftemplate bad-foo74 (multifield x (range a 1)))(deftemplate bad-foo75 (field x (range 1)))(deftemplate bad-foo76 (field x (range a b)))(deftemplate bad-foo77 (multifield x (range 1 ?NONE)))(deftemplate bad-foo78 (field x (range ?NONE 1)))(deftemplate bad-foo79 (field x (range ?NONE ?NONE)))(deftemplate bad-foo80 (multifield x (range 8 1)))(deftemplate bad-foo81 (field x (range 8.0 1)))(deftemplate bad-foo82 (multifield x (range 8.0 1.0)))(deftemplate bad-foo83 (field x (range 8 1.0)))(deftemplate bad-foo84 (multifield x (range ?VARIABLE)))(deftemplate bad-foo85 (field x (type STRING SYMBOL STRING)))(deftemplate bad-foo86 (multifield x (type SYMBOL SYMBOL STRING STRING)))(deftemplate bad-foo87 (field x (default)))(deftemplate bad-foo88 (field x (range)))(deftemplate bad-foo89 (field x (type)))(deftemplate bad-foo90 (field x (allowed-symbols)))(deftemplate bad-foo91 (field x (allowed-integers)))(deftemplate bad-foo92 (field x (allowed-numbers)))(deftemplate aok-foo22 (field x (type INTEGER FLOAT SYMBOL STRING INSTANCE)))(deftemplate aok-foo23 (field x (type NUMBER SYMBOL STRING INSTANCE)))(deftemplate aok-foo24 (field x (type ?VARIABLE)))(deftemplate aok-foo25 (field x (allowed-symbols d f)))(deftemplate aok-foo26 (multifield x (allowed-integers 1 3)))(deftemplate aok-foo27 (field x (allowed-floats 1.0 2.0)))(deftemplate aok-foo28 (multifield x (allowed-strings "a" "b" "c")))(deftemplate aok-foo29 (multifield x (allowed-numbers 1 2.0 3)))(deftemplate aok-foo30 (field x (allowed-symbols ?VARIABLE)))(deftemplate aok-foo31 (multifield x (allowed-integers ?VARIABLE)))(deftemplate aok-foo32 (field x (allowed-floats ?VARIABLE)))(deftemplate aok-foo33 (multifield x (allowed-strings ?VARIABLE)))(deftemplate aok-foo34 (multifield x (allowed-numbers ?VARIABLE)))(deftemplate aok-foo35 (multifield x (default ?NONE)))(deftemplate aok-foo36 (multifield x (default)))(deftemplate aok-foo37 (field x (default ?NONE)))(deftemplate aok-foo38 (field x (range ?VARIABLE ?VARIABLE)))(deftemplate aok-foo39 (multifield x (range 1 ?VARIABLE)))(deftemplate aok-foo40 (field x (range ?VARIABLE 8)))(deftemplate aok-foo41 (multifield x (range 1.0 ?VARIABLE)))(deftemplate aok-foo42 (field x (range ?VARIABLE 8.0)))(deftemplate aok-foo43 (field x (range 1 8)))(deftemplate aok-foo44 (multifield x (range 1.0 8)))(deftemplate aok-foo45 (multifield x (range 1.0 8.0)))(deftemplate aok-foo46 (multifield x (range 1 8.0)));;;**************************************************;;; Additional Tests;;;**************************************************(deftemplate bad-foo93 (field x (type LEXEME SYMBOL)))(deftemplate bad-foo94 (field x (type STRING LEXEME)))(deftemplate aok-foo47 (field x (type LEXEME EXTERNAL-ADDRESS)))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -