35 lines
826 B
PostScript
35 lines
826 B
PostScript
|
|
/add-type { % => Object Class
|
||
|
|
1 index get-types % => Object Class Types
|
||
|
|
array-append % => Object Types'
|
||
|
|
/Types exch put
|
||
|
|
} def
|
||
|
|
|
||
|
|
/call-method { % => ...Params... Box Method
|
||
|
|
1 index get-box-dict % => ...Params... Box Method Dict
|
||
|
|
/Methods get % => ...Params... Box Method MethodList
|
||
|
|
|
||
|
|
% Check if method have been defined
|
||
|
|
dup 2 index known not {
|
||
|
|
(Method is not known:) print
|
||
|
|
1 index ==
|
||
|
|
quit
|
||
|
|
} if
|
||
|
|
|
||
|
|
exch get exec % =>
|
||
|
|
} def
|
||
|
|
|
||
|
|
/get-types {
|
||
|
|
dup /Types known {
|
||
|
|
dup /Types get
|
||
|
|
} {
|
||
|
|
[]
|
||
|
|
} ifelse
|
||
|
|
|
||
|
|
exch pop
|
||
|
|
} def
|
||
|
|
|
||
|
|
/is-a { % => Object Class
|
||
|
|
1 index get-types % => Object Class Types
|
||
|
|
exch array-find -1 ne
|
||
|
|
exch pop
|
||
|
|
} def
|