home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Columbia Kermit
/
kermit.zip
/
ckscripts
/
lispops
< prev
next >
Wrap
Text File
|
2020-01-01
|
2KB
|
96 lines
; From: Dat Thuc Nguyen
; Newsgroups: comp.protocols.kermit.misc
; Subject: LISP-Like Operations in Kermit
; Date: Wed, 24 May 2000 23:18:01 EDT
; URL: http://www.smalltickle.com
;
; SIMPLE MATH
;
; The following macros mimic LISP syntax for some basic math operations
; in C-Kermit. They save typing and make code readable a`la LISP.
;
; Usage Examples:
;
; C-Kermit> = VAR1 0 ; define VAR1 and assign it the value 0
; C-Kermit> += VAR1 3 ; equivalent VAR1 += 3 in C
; C-Kermit> = VAR2 4 ; define VAR2 and assign it the value 4
; C-Kermit> -= VAR2 2 ; equivalent VAR2 -= 2 in C
; C-Kermit> *= VAR1 VAR2 ; equivalent VAR1 *= VAR2 in C
; C-Kermit> /= VAR1 2 ; equivalent VAR1 /= 2 in C
; C-Kermit> * VAR1 9 ; equivalent VAR1 * 9 in C
; C-Kermit> / VAR1 VAR2 ; equivalent VAR1 / VAR2 in C
def - {
local \%t
if numeric \%2 assign \%t \%2
else assign \%t \m(\%2)
eval \%t \m(\%1) - \%t
echo \%t
}
def + {
local \%t
if numeric \%2 assign \%t \%2
else assign \%t \m(\%2)
eval \%t \m(\%1) + \%t
echo \%t
}
def = {
local \%t
if numeric \%2 assign \%t \%2
else assign \%t \m(\%2)
_assign \%1 \%t
echo \m(\%1)
}
def += {
local \%t
if numeric \%2 assign \%t \%2
else assign \%t \m(\%2)
_eval \%1 \m(\%1) + \%t
echo \m(\%1)
}
def -= {
local \%t
if numeric \%2 assign \%t \%2
else assign \%t \m(\%2)
_eval \%1 \m(\%1) - \%t
echo \m(\%1)
}
def *= {
local \%t
if numeric \%2 assign \%t \%2
else assign \%t \m(\%2)
_eval \%1 \m(\%1) * \%t
echo \m(\%1)
}
def /= {
local \%t
if numeric \%2 assign \%t \%2
else assign \%t \m(\%2)
_eval \%1 \m(\%1) / \%t
echo \m(\%1)
}
def * {
local \%t
if numeric \%2 assign \%t \%2
else assign \%t \m(\%2)
eval \%t \m(\%1) * \%t
echo \%t
}
def / {
local \%t
if numeric \%2 assign \%t \%2
else assign \%t \m(\%2)
_eval \%1 \m(\%1) / \%t
echo \%t
}
; End