version	U12.1.00
uid	soundex1.u1-1786032996-0
impl	error
global	3
	0,000005,soundex,1
	1,000005,encode,1
	2,000005,strip,1

proc soundex
	local	0,001000,name
	local	1,000020,coded_name
	local	2,000020,new_name
	local	3,000000,encode
	local	4,000000,strip
	local	5,000000,pos
	local	6,000000,repl
	con	0,002000,1,1
	con	1,002000,1,2
	con	2,010000,1,052
	con	3,002000,1,4
	con	4,010000,1,060
	declend
	filen	soundex1.icn
	line	48
	colm	11
	synt	any
	mark	L1
	pnull
	var	1
	var	3
	var	4
	var	0
	line	51
	colm	31
	synt	any
	invoke	1
	line	51
	colm	25
	synt	any
	invoke	1
	line	51
	colm	16
	synt	any
	asgn
	unmark
lab L1
	mark	L2
	pnull
	var	2
	pnull
	var	0
	int	0
	line	52
	colm	21
	synt	any
	subsc
	line	52
	colm	14
	synt	any
	asgn
	unmark
lab L2
	mark	L3
	line	53
	colm	5
	synt	every
	mark0
	pnull
	var	5
	pnull
	int	1
	pnull
	var	1
	line	53
	colm	23
	synt	any
	size
	push1
	line	53
	colm	20
	synt	any
	toby
	line	53
	colm	15
	synt	any
	asgn
	pop
	mark0
	mark	L6
	line	54
	colm	9
	synt	if
	mark0
	pnull
	pnull
	var	1
	var	5
	line	54
	colm	22
	synt	any
	subsc
	str	2
	line	54
	colm	28
	synt	any
	lexne
	unmark
	pnull
	var	2
	pnull
	var	2
	pnull
	var	1
	var	5
	line	55
	colm	47
	synt	any
	subsc
	line	55
	colm	34
	synt	any
	cat
	line	55
	colm	22
	synt	any
	asgn
	line	54
	colm	9
	synt	endif
	unmark
lab L6
	line	56
	colm	9
	synt	if
	mark0
	pnull
	pnull
	var	2
	line	56
	colm	12
	synt	any
	size
	int	3
	line	56
	colm	22
	synt	any
	numeq
	unmark
	unmark
	unmark
	pnull
	goto	L5
	line	56
	colm	9
	synt	endif
	unmark
lab L4
	efail
lab L5
	line	53
	colm	5
	synt	endevery
	unmark
lab L3
	mark	L7
	mark	L8
	pnull
	var	2
	var	6
	str	4
	pnull
	int	3
	pnull
	var	2
	line	59
	colm	39
	synt	any
	size
	line	59
	colm	37
	synt	any
	minus
	line	59
	colm	29
	synt	any
	invoke	2
	line	59
	colm	21
	synt	any
	cat
	line	59
	colm	5
	synt	any
	pret
lab L8
	synt	any
	pfail
	unmark
lab L7
	pnull
	line	60
	colm	1
	synt	any
	pfail
	end
proc encode
	local	0,001000,name
	local	1,000000,map
	local	2,000000,pos
	con	0,010000,26,141,145,150,151,157,165,167,171,142,146,160,166,143,147,152,153,161,163,170,172,144,164,154,155,156,162
	con	1,010000,26,052,052,052,052,052,052,052,052,061,061,061,061,062,062,062,062,062,062,062,062,063,063,064,065,065,066
	con	2,002000,1,2
	con	3,002000,1,1
	con	4,010000,1,052
	declend
	line	62
	colm	11
	synt	any
	mark	L1
	pnull
	var	0
	var	1
	var	0
	line	64
	colm	23
	synt	any
	keywd	ucase
	line	64
	colm	31
	synt	any
	keywd	lcase
	line	64
	colm	16
	synt	any
	invoke	3
	line	64
	colm	10
	synt	any
	asgn
	unmark
lab L1
	mark	L2
	pnull
	var	0
	var	1
	var	0
	str	0
	str	1
	line	65
	colm	16
	synt	any
	invoke	3
	line	65
	colm	10
	synt	any
	asgn
	unmark
lab L2
	mark	L3
	line	67
	colm	5
	synt	every
	mark0
	pnull
	var	2
	pnull
	pnull
	var	0
	line	67
	colm	18
	synt	any
	size
	int	2
	pnull
	int	3
	line	67
	colm	32
	synt	any
	neg
	line	67
	colm	24
	synt	any
	toby
	line	67
	colm	15
	synt	any
	asgn
	pop
	mark0
	line	68
	colm	9
	synt	if
	mark0
	pnull
	pnull
	var	0
	pnull
	var	2
	int	3
	line	68
	colm	21
	synt	any
	minus
	line	68
	colm	16
	synt	any
	subsc
	pnull
	var	0
	var	2
	line	68
	colm	33
	synt	any
	subsc
	line	68
	colm	26
	synt	any
	lexeq
	unmark
	pnull
	pnull
	var	0
	var	2
	line	69
	colm	17
	synt	any
	subsc
	str	4
	line	69
	colm	23
	synt	any
	asgn
	line	68
	colm	9
	synt	endif
	unmark
lab L4
	efail
lab L5
	line	67
	colm	5
	synt	endevery
	unmark
lab L3
	mark	L6
	mark	L7
	var	0
	line	70
	colm	5
	synt	any
	pret
lab L7
	synt	any
	pfail
	unmark
lab L6
	pnull
	line	71
	colm	1
	synt	any
	pfail
	end
proc strip
	local	0,001000,name
	local	1,000020,result
	local	2,000020,ch
	local	3,000040,alphabet
	local	4,000000,string
	local	5,000000,find
	con	0,010000,0
	declend
	line	73
	colm	11
	synt	any
lab L1
	init	L3
	mark	L2
	pnull
	var	3
	var	4
	line	78
	colm	28
	synt	any
	keywd	letters
	line	78
	colm	27
	synt	any
	invoke	1
	line	78
	colm	18
	synt	any
	asgn
	unmark
lab L2
	einit	L1
lab L3
	mark	L4
	pnull
	var	1
	str	0
	line	80
	colm	12
	synt	any
	asgn
	unmark
lab L4
	mark	L5
	line	81
	colm	5
	synt	every
	mark0
	pnull
	var	2
	pnull
	var	0
	line	81
	colm	17
	synt	any
	bang
	line	81
	colm	14
	synt	any
	asgn
	pop
	mark0
	line	82
	colm	9
	synt	if
	mark0
	var	5
	var	2
	var	3
	line	82
	colm	16
	synt	any
	invoke	2
	unmark
	pnull
	var	1
	dup
	var	2
	line	83
	colm	20
	synt	any
	cat
	asgn
	line	82
	colm	9
	synt	endif
	unmark
lab L6
	efail
lab L7
	line	81
	colm	5
	synt	endevery
	unmark
lab L5
	mark	L8
	mark	L9
	var	1
	line	84
	colm	5
	synt	any
	pret
lab L9
	synt	any
	pfail
	unmark
lab L8
	pnull
	line	85
	colm	1
	synt	any
	pfail
	end
