[ver]
	4
[sty]
	
[files]
[charset]
	82
	ANSI (Windows, IBM CP 1252)
[revisions]
	0
[master]
	
	
	0
	0
	0
[prn]
	Apple LaserWriter II NTX
[port]
	LPT1:
[lang]
	1
[fldnames]
	Field1
	Field2
	Field3
	Field4
	Field5
	Field6
	Field7
	Field8
[desc]
	File chap1.rtf was converted from Rich Text Format on 4/4/94
	
	
	
	
	802475556
	121
	765474307
	1093
	32
	0
	0
	0
	0
	
	
	
	
	
	
	1
[fopts]
	0
	1
	0
	0
	
	
[lnopts]
	2
	Body Text
	1
[docopts]
	5
	2
[GramStyle]
	
[ParaNum]
	1
[tag]
	Body Text
	2
	[fnt]
		Palatino
		200
		0
		49152
	[algn]
		1
		3
		720
		0
		0
	[spc]
		24
		200
		4
		120
		120
		4
		100
	[brk]
		36
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		0
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		280
		1
		2
		.
		,
		$
	1Body Text
	3
	1
	600
	1
	1200
	1
	3720
	0
[tag]
	Ahead
	3
	[fnt]
		Helvetica
		280
		0
		16385
	[algn]
		1
		1
		0
		0
		0
	[spc]
		40
		300
		4
		360
		120
		4
		100
	[brk]
		80
	[line]
		9
		0
		4
		0
		1
		1
		1
		110
		10
		1
	[spec]
		0
		2
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	Body Text
	0
	0
[tag]
	Bhead
	4
	[fnt]
		Helvetica
		240
		0
		16385
	[algn]
		1
		3
		0
		0
		0
	[spc]
		40
		280
		4
		100
		90
		4
		100
	[brk]
		80
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		2
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	Body Text
	0
	0
[tag]
	Chead
	5
	[fnt]
		Helvetica
		200
		0
		16385
	[algn]
		1
		3
		720
		0
		0
	[spc]
		40
		240
		4
		80
		0
		4
		100
	[brk]
		80
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		2
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	Body Text
	0
	0
[tag]
	Numbered List
	6
	[fnt]
		Palatino
		200
		0
		49152
	[algn]
		1
		3
		744
		336
		336
	[spc]
		40
		240
		4
		0
		80
		4
		100
	[brk]
		0
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		3
		<*:>.
		0
		3
		1
		1
		2
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	Numbered List
	0
	0
[tag]
	bullet
	7
	[fnt]
		Palatino
		200
		0
		49152
	[algn]
		1
		3
		720
		300
		300
	[spc]
		40
		240
		4
		80
		80
		4
		100
	[brk]
		0
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		<*1>
		0
		3
		1
		1
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	bulleted list
	0
	0
[tag]
	1st lev para
	8
	[fnt]
		Palatino
		200
		0
		49152
	[algn]
		1
		3
		1080
		0
		0
	[spc]
		40
		240
		4
		0
		80
		4
		100
	[brk]
		4
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		
		0
		1
		1
		1
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	1st lev para
	0
	0
[tag]
	mono
	9
	[fnt]
		Courier
		180
		0
		32769
	[algn]
		1
		3
		720
		0
		0
	[spc]
		24
		220
		4
		120
		120
		4
		100
	[brk]
		36
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		280
		1
		2
		.
		,
		$
	mono
	22
	1
	864
	1
	1209
	1
	1555
	1
	1900
	1
	2246
	1
	2592
	1
	2937
	1
	3283
	1
	3628
	1
	3974
	1
	4320
	1
	4665
	1
	5011
	1
	5356
	1
	5702
	1
	6048
	1
	6393
	1
	6739
	1
	7084
	1
	7430
	1
	7776
	1
	8121
	0
[tag]
	indent bullet
	11
	[fnt]
		Palatino
		200
		0
		49152
	[algn]
		1
		3
		1104
		216
		216
	[spc]
		40
		240
		4
		0
		80
		4
		100
	[brk]
		0
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		<*1>
		0
		3
		1
		1
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	indent bullet
	0
	0
[tag]
	Note
	12
	[fnt]
		Helvetica
		200
		0
		16384
	[algn]
		1
		3
		720
		600
		0
	[spc]
		40
		240
		4
		0
		80
		4
		100
	[brk]
		0
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		Note
		0
		3
		1
		1
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	Note
	0
	0
[tag]
	2nd lev para
	0
	[fnt]
		Palatino
		200
		0
		49152
	[algn]
		1
		3
		1320
		0
		0
	[spc]
		40
		240
		4
		0
		80
		4
		100
	[brk]
		4
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		
		0
		1
		1
		1
		2
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	2nd lev para
	0
	0
[tag]
	Table Text
	0
	[fnt]
		Palatino
		180
		0
		49152
	[algn]
		1
		1
		0
		0
		0
	[spc]
		40
		200
		4
		79
		0
		3
		100
	[brk]
		4
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		0
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	Table Text
	0
	0
[tag]
	Body Text1
	0
	[fnt]
		Palatino
		200
		0
		49152
	[algn]
		1
		3
		720
		0
		0
	[spc]
		40
		240
		4
		20
		40
		4
		100
	[brk]
		36
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		1
		
		18944
		1
		1
		0
		2
		0
		0
	[nfmt]
		280
		1
		2
		.
		,
		$
	Body Text1
	4
	1
	2390
	1
	2869
	1
	3347
	1
	3826
	0
[tag]
	indent Note
	0
	[fnt]
		Helvetica
		200
		0
		16384
	[algn]
		1
		3
		1080
		600
		0
	[spc]
		40
		240
		4
		0
		80
		4
		100
	[brk]
		0
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		Note
		0
		3
		1
		1
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	indent Note
	0
	0
[tag]
	tip
	0
	[fnt]
		Helvetica
		200
		0
		16384
	[algn]
		1
		3
		720
		480
		0
	[spc]
		40
		240
		4
		0
		80
		4
		100
	[brk]
		4
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		Tip
		0
		3
		1
		1
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	tip
	0
	0
[tag]
	Caution
	0
	[fnt]
		Helvetica
		200
		0
		16384
	[algn]
		1
		3
		720
		900
		0
	[spc]
		40
		240
		4
		0
		80
		4
		100
	[brk]
		4
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		Caution
		0
		3
		1
		1
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	Caution
	0
	0
[tag]
	indentCaution
	0
	[fnt]
		Helvetica
		200
		0
		16384
	[algn]
		1
		3
		1080
		900
		0
	[spc]
		40
		240
		4
		0
		80
		4
		100
	[brk]
		4
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		Caution
		0
		3
		1
		1
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	indentCaution
	0
	0
[tag]
	Term
	0
	[fnt]
		Palatino
		200
		0
		49153
	[algn]
		1
		3
		720
		0
		0
	[spc]
		24
		240
		4
		0
		0
		4
		100
	[brk]
		80
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		2
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		280
		1
		2
		.
		,
		$
	Body Text
	0
	0
[tag]
	indent Term
	0
	[fnt]
		Palatino
		200
		0
		49153
	[algn]
		1
		3
		1080
		0
		0
	[spc]
		24
		240
		4
		0
		0
		4
		100
	[brk]
		16
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		2
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		280
		1
		2
		.
		,
		$
	indent Term
	0
	0
[tag]
	find
	0
	[fnt]
		Helvetica
		200
		0
		16384
	[algn]
		1
		3
		720
		1800
		0
	[spc]
		40
		240
		4
		0
		80
		4
		100
	[brk]
		4
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		Finding Out More
		0
		3
		1
		1
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	find
	0
	0
[tag]
	procdure Bhd
	0
	[fnt]
		Helvetica
		220
		0
		16385
	[algn]
		1
		3
		0
		0
		0
	[spc]
		40
		260
		4
		100
		90
		4
		100
	[brk]
		80
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		2
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	Numbered List
	0
	0
[tag]
	procdure Chd
	0
	[fnt]
		Helvetica
		200
		0
		16385
	[algn]
		1
		3
		720
		0
		0
	[spc]
		40
		240
		4
		80
		80
		4
		100
	[brk]
		80
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		2
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	Numbered List
	0
	0
[tag]
	formula
	0
	[fnt]
		Helvetica
		180
		0
		16384
	[algn]
		1
		3
		1080
		0
		0
	[spc]
		40
		220
		4
		0
		80
		4
		100
	[brk]
		4
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		
		0
		1
		1
		1
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	formula
	0
	0
[tag]
	Table Title
	0
	[fnt]
		Helvetica
		180
		0
		16385
	[algn]
		1
		3
		720
		0
		0
	[spc]
		40
		220
		4
		40
		80
		4
		100
	[brk]
		16
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	Table Title
	0
	0
[tag]
	Column Head
	0
	[fnt]
		Palatino
		180
		0
		49154
	[algn]
		1
		3
		0
		0
		0
	[spc]
		40
		220
		4
		0
		0
		3
		100
	[brk]
		4
	[line]
		11
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	Column Head
	0
	0
[tag]
	call-out
	0
	[fnt]
		Helvetica
		160
		0
		16384
	[algn]
		1
		3
		0
		0
		0
	[spc]
		40
		180
		4
		0
		0
		1
		100
	[brk]
		0
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	call-out
	0
	0
[tag]
	chap number
	0
	[fnt]
		Helvetica
		720
		0
		16385
	[algn]
		1
		3
		0
		0
		0
	[spc]
		40
		520
		4
		0
		0
		4
		100
	[brk]
		0
	[line]
		17
		1680
		4
		0
		1
		1
		1
		420
		10
		1
	[spec]
		0
		2
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	chap number
	0
	0
[tag]
	Chapter Title
	0
	[fnt]
		Helvetica
		320
		0
		16385
	[algn]
		1
		3
		720
		0
		0
	[spc]
		40
		360
		4
		0
		480
		3
		100
	[brk]
		81
	[line]
		17
		8520
		3
		0
		1
		3
		1
		644
		10
		1
	[spec]
		0
		2
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	Body Text
	0
	0
[tag]
	1st Pg Footer
	0
	[fnt]
		Palatino
		180
		0
		49153
	[algn]
		2
		3
		0
		0
		0
	[spc]
		33
		273
		1
		0
		0
		1
		100
	[brk]
		0
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	1st Pg Footer
	0
	0
[tag]
	Footnote
	0
	[fnt]
		Times New Roman
		180
		0
		49152
	[algn]
		1
		3
		0
		244
		0
	[spc]
		40
		2400
		3
		0
		0
		1
		100
	[brk]
		4
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		0
		<*:>
		0
		1
		1
		256
		0
		0
		0
	[nfmt]
		280
		1
		2
		.
		,
		$
	Footnote
	0
	0
[tag]
	Figure Title
	0
	[fnt]
		Helvetica
		180
		0
		16385
	[algn]
		1
		3
		720
		0
		0
	[spc]
		40
		220
		4
		40
		80
		4
		100
	[brk]
		80
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	Body Text
	0
	0
[tag]
	indent Tip
	0
	[fnt]
		Helvetica
		200
		0
		16384
	[algn]
		1
		3
		1080
		480
		0
	[spc]
		40
		240
		4
		0
		80
		4
		100
	[brk]
		4
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		Tip
		18944
		3
		1
		1
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	indent tip
	0
	0
[tag]
	indent Find
	0
	[fnt]
		Helvetica
		200
		0
		16384
	[algn]
		1
		3
		1080
		1800
		0
	[spc]
		40
		240
		4
		0
		80
		4
		100
	[brk]
		4
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		Finding Out More
		18944
		3
		1
		1
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	indent find
	0
	0
[tag]
	copyrt
	0
	[fnt]
		Palatino
		180
		0
		49152
	[algn]
		1
		3
		0
		0
		0
	[spc]
		24
		220
		4
		0
		60
		4
		100
	[brk]
		36
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		1
		
		18944
		1
		1
		0
		2
		0
		0
	[nfmt]
		280
		1
		2
		.
		,
		$
	copyrt
	4
	1
	2390
	1
	2869
	1
	3347
	1
	3826
	1200
[tag]
	seealso
	0
	[fnt]
		Helvetica
		200
		0
		16385
	[algn]
		1
		3
		720
		0
		0
	[spc]
		40
		240
		4
		80
		0
		4
		100
	[brk]
		16
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		2
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	seealso
	0
	0
[tag]
	crossref
	0
	[fnt]
		Palatino
		200
		0
		49152
	[algn]
		1
		3
		720
		0
		0
	[spc]
		40
		240
		4
		0
		0
		4
		100
	[brk]
		36
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		1
		
		18944
		1
		1
		0
		2
		0
		0
	[nfmt]
		280
		1
		2
		.
		,
		$
	crossref
	4
	1
	2390
	1
	2869
	1
	3347
	1
	3826
	0
[tag]
	popref
	0
	[fnt]
		Palatino
		200
		0
		49152
	[algn]
		513
		3
		720
		0
		720
	[spc]
		40
		240
		4
		0
		0
		4
		100
	[brk]
		36
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		1
		
		18944
		1
		1
		0
		2
		0
		0
	[nfmt]
		280
		1
		2
		.
		,
		$
	popref
	4
	1
	2390
	1
	2869
	1
	3347
	1
	3826
	0
[tag]
	right footer
	0
	[fnt]
		Palatino
		180
		0
		49153
	[algn]
		4
		1
		0
		0
		0
	[spc]
		33
		216
		1
		60
		0
		3
		100
	[brk]
		32
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	right footer
	1
	3
	8640
	0
[tag]
	left footer
	0
	[fnt]
		Palatino
		180
		0
		49153
	[algn]
		4
		1
		0
		0
		5212
	[spc]
		33
		216
		1
		60
		0
		3
		100
	[brk]
		32
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	left footer
	1
	3
	8640
	0
[frm]
	1
	1573060
	1346
	960
	9059
	11570
	0
	1
	1
	1 0 0 0 0 0 0
	0
	16777215
	21
	0
	0
	0 0
	[frmlay]
		512
		7713
		1
		0
		0
		1
		960
		0
		0
		2
		0
		0
		0
		0
		1
		504
		6320
		0
	[tbl]
		 1 5 0 86 1440 86 5 43 43
		[h]
			 0 10481 86 2 0 4 0
		[e]
		[w]
			 0 1440 86 2 0
			 1 1440 86 2 0
			 2 1440 86 2 0
			 3 1480 86 2 0
			 4 1440 86 2 0
		[e]
		[data]
			 0 0 8 0 0 0 0 1 0 0 0 0
<+@><:S+113><:f140,2Palatino,0,0,0>ABS

<+@><:S+113><:f140,2Palatino,0,0,0>ACCESS

<+@><:S+113><:f140,2Palatino,0,0,0>ACOS

<+@><:S+113><:f140,2Palatino,0,0,0>ACTIVATEAPP

<+@><:S+113><:f140,2Palatino,0,0,0>ALIAS

<+@><:S+113><:f140,2Palatino,0,0,0>AND

<+@><:S+113><:f140,2Palatino,0,0,0>ANY

<+@><:S+113><:f140,2Palatino,0,0,0>APPEND

<+@><:S+113><:f140,2Palatino,0,0,0>AS

<+@><:S+113><:f140,2Palatino,0,0,0>ASC

<+@><:S+113><:f140,2Palatino,0,0,0>ASIN

<+@><:S+113><:f140,2Palatino,0,0,0>ATN

<+@><:S+113><:f140,2Palatino,0,0,0>ATN2

<+@><:S+113><:f140,2Palatino,0,0,0>BASE

<+@><:S+113><:f140,2Palatino,0,0,0>BEEP

<+@><:S+113><:f140,2Palatino,0,0,0>BIN

<+@><:S+113><:f140,2Palatino,0,0,0>BIN$

<+@><:S+113><:f140,2Palatino,0,0,0>BINARY

<+@><:S+113><:f140,2Palatino,0,0,0>BIND

<+@><:S+113><:f140,2Palatino,0,0,0>BYVAL

<+@><:S+113><:f140,2Palatino,0,0,0>CALL

<+@><:S+113><:f140,2Palatino,0,0,0>CASE

<+@><:S+113><:f140,2Palatino,0,0,0>CCUR

<+@><:S+113><:f140,2Palatino,0,0,0>CDAT

<+@><:S+113><:f140,2Palatino,0,0,0>CDBL

<+@><:S+113><:f140,2Palatino,0,0,0>CHDIR

<+@><:S+113><:f140,2Palatino,0,0,0>CHDRIVE

<+@><:S+113><:f140,2Palatino,0,0,0>CHR

<+@><:S+113><:f140,2Palatino,0,0,0>CHR$

<+@><:S+113><:f140,2Palatino,0,0,0>CINT

<+@><:S+113><:f140,2Palatino,0,0,0>CLASS

<+@><:S+113><:f140,2Palatino,0,0,0>CLNG

<+@><:S+113><:f140,2Palatino,0,0,0>CLOSE

<+@><:S+113><:f140,2Palatino,0,0,0>COMMAND

<+@><:S+113><:f140,2Palatino,0,0,0>COMMAND$

<+@><:S+113><:f140,2Palatino,0,0,0>CONST

<+@><:S+113><:f140,2Palatino,0,0,0>COS

<+@><:S+113><:f140,2Palatino,0,0,0>CREATEOBJECT

<+@><:S+113><:f140,2Palatino,0,0,0>CSNG

<+@><:S+113><:f140,2Palatino,0,0,0>CSTR

<+@><:S+113><:f140,2Palatino,0,0,0>CURDIR

<+@><:S+113><:f140,2Palatino,0,0,0>CURDIR$

<+@><:S+113><:f140,2Palatino,0,0,0>CURDRIVE

<+@><:S+113><:f140,2Palatino,0,0,0>CURDRIVE$

<+@><:S+113><:f140,2Palatino,0,0,0>CURRENCY

<+@><:S+113><:f140,2Palatino,0,0,0>CVAR

<+@><:S+113><:f140,2Palatino,0,0,0>DATATYPE

<+@><:S+113><:f140,2Palatino,0,0,0>DATE

<+@><:S+113><:f140,2Palatino,0,0,0>DATE$

<+@><:S+113><:f140,2Palatino,0,0,0>DATENUMBER

<+@><:S+113><:f140,2Palatino,0,0,0>DATEVALUE

<+@><:S+113><:f140,2Palatino,0,0,0>DAY

<+@><:S+113><:f140,2Palatino,0,0,0>DECLARE

<+@><:S+113><:f140,2Palatino,0,0,0>DEFCUR

<+@><:S+113><:f><:f140,2Palatino,0,0,0>

>
			 0 1 2056 0 0 0 0 1 0 0 0 0
<+@><:S+113><:f140,2Palatino,0,0,0>DEFDBL

<+@><:S+113><:f140,2Palatino,0,0,0>DEFINT

<+@><:S+113><:f140,2Palatino,0,0,0>DEFLNG

<+@><:S+113><:f140,2Palatino,0,0,0>DEFSNG

<+@><:S+113><:f140,2Palatino,0,0,0>DEFSTR

<+@><:S+113><:f140,2Palatino,0,0,0>DEFVAR

<+@><:S+113><:f140,2Palatino,0,0,0>DELETE

<+@><:S+113><:f140,2Palatino,0,0,0>DIM

<+@><:S+113><:f140,2Palatino,0,0,0>DIR

<+@><:S+113><:f140,2Palatino,0,0,0>DIR$

<+@><:S+113><:f140,2Palatino,0,0,0>DO

<+@><:S+113><:f140,2Palatino,0,0,0>DOUBLE

<+@><:S+113><:f140,2Palatino,0,0,0>ELSE

<+@><:S+113><:f140,2Palatino,0,0,0>ELSEIF

<+@><:S+113><:f140,2Palatino,0,0,0>END

<+@><:S+113><:f140,2Palatino,0,0,0>ENVIRON

<+@><:S+113><:f140,2Palatino,0,0,0>ENVIRON$

<+@><:S+113><:f140,2Palatino,0,0,0>EOF

<+@><:S+113><:f140,2Palatino,0,0,0>EQV

<+@><:S+113><:f140,2Palatino,0,0,0>ERASE

<+@><:S+113><:f140,2Palatino,0,0,0>ERL

<+@><:S+113><:f140,2Palatino,0,0,0>ERR

<+@><:S+113><:f140,2Palatino,0,0,0>ERROR

<+@><:S+113><:f140,2Palatino,0,0,0>ERROR$

<+@><:S+113><:f140,2Palatino,0,0,0>EVALUATE

<+@><:S+113><:f140,2Palatino,0,0,0>EVENT

<+@><:S+113><:f140,2Palatino,0,0,0>EXECUTE

<+@><:S+113><:f140,2Palatino,0,0,0>EXIT

<+@><:S+113><:f140,2Palatino,0,0,0>EXP

<+@><:S+113><:f140,2Palatino,0,0,0>FALSE

<+@><:S+113><:f140,2Palatino,0,0,0>FILEATTR

<+@><:S+113><:f140,2Palatino,0,0,0>FILECOPY

<+@><:S+113><:f140,2Palatino,0,0,0>FILEDATETIME

<+@><:S+113><:f140,2Palatino,0,0,0>FILELEN

<+@><:S+113><:f140,2Palatino,0,0,0>FIX

<+@><:S+113><:f140,2Palatino,0,0,0>FOR

<+@><:S+113><:f140,2Palatino,0,0,0>FORALL

<+@><:S+113><:f140,2Palatino,0,0,0>FORMAT

<+@><:S+113><:f140,2Palatino,0,0,0>FORMAT$

<+@><:S+113><:f140,2Palatino,0,0,0>FRACTION

<+@><:S+113><:f140,2Palatino,0,0,0>FREEFILE

<+@><:S+113><:f140,2Palatino,0,0,0>FROM

<+@><:S+113><:f140,2Palatino,0,0,0>FUNCTION

<+@><:S+113><:f140,2Palatino,0,0,0>GET

<+@><:S+113><:f140,2Palatino,0,0,0>GETFILEATTR

<+@><:S+113><:f140,2Palatino,0,0,0>GETOBJECT

<+@><:S+113><:f140,2Palatino,0,0,0>GOSUB

<+@><:S+113><:f140,2Palatino,0,0,0>GOTO

<+@><:S+113><:f140,2Palatino,0,0,0>HEX

<+@><:S+113><:f140,2Palatino,0,0,0>HEX$

<+@><:S+113><:f140,2Palatino,0,0,0>HOUR

<+@><:S+113><:f140,2Palatino,0,0,0>IF

<+@><:S+113><:f140,2Palatino,0,0,0>IMESTATUS

<+@><:S+113><:f140,2Palatino,0,0,0>IMP

<+@><:S+113><:f140,2Palatino,0,0,0>IN

<+@><:S+113><:f><:f140,2Palatino,0,0,0>

>
			 0 2 8 0 0 0 0 1 0 0 0 0
<+@><:S+113><:f140,2Palatino,0,0,0>INPUT

<+@><:S+113><:f140,2Palatino,0,0,0>INPUT$

<+@><:S+113><:f140,2Palatino,0,0,0>INPUTB

<+@><:S+113><:f140,2Palatino,0,0,0>INPUTB$

<+@><:S+113><:f140,2Palatino,0,0,0>INPUTBOX

<+@><:S+113><:f140,2Palatino,0,0,0>INPUTBOX$

<+@><:S+113><:f140,2Palatino,0,0,0>INSTR

<+@><:S+113><:f140,2Palatino,0,0,0>INSTRB

<+@><:S+113><:f140,2Palatino,0,0,0>INT

<+@><:S+113><:f140,2Palatino,0,0,0>INTEGER

<+@><:S+113><:f140,2Palatino,0,0,0>IS

<+@><:S+113><:f140,2Palatino,0,0,0>ISARRAY

<+@><:S+113><:f140,2Palatino,0,0,0>ISDATE

<+@><:S+113><:f140,2Palatino,0,0,0>ISELEMENT

<+@><:S+113><:f140,2Palatino,0,0,0>ISEMPTY

<+@><:S+113><:f140,2Palatino,0,0,0>ISLIST

<+@><:S+113><:f140,2Palatino,0,0,0>ISNULL

<+@><:S+113><:f140,2Palatino,0,0,0>ISNUMERIC

<+@><:S+113><:f140,2Palatino,0,0,0>ISOBJECT

<+@><:S+113><:f140,2Palatino,0,0,0>ISSCALAR

<+@><:S+113><:f140,2Palatino,0,0,0>ISUNKNOWN

<+@><:S+113><:f140,2Palatino,0,0,0>KILL

<+@><:S+113><:f140,2Palatino,0,0,0>LBOUND

<+@><:S+113><:f140,2Palatino,0,0,0>LCASE

<+@><:S+113><:f140,2Palatino,0,0,0>LCASE$

<+@><:S+113><:f140,2Palatino,0,0,0>LEFT

<+@><:S+113><:f140,2Palatino,0,0,0>LEFT$

<+@><:S+113><:f140,2Palatino,0,0,0>LEFTB

<+@><:S+113><:f140,2Palatino,0,0,0>LEFTB$

<+@><:S+113><:f140,2Palatino,0,0,0>LEN

<+@><:S+113><:f140,2Palatino,0,0,0>LENB

<+@><:S+113><:f140,2Palatino,0,0,0>LET

<+@><:S+113><:f140,2Palatino,0,0,0>LIB

<+@><:S+113><:f140,2Palatino,0,0,0>LIKE

<+@><:S+113><:f140,2Palatino,0,0,0>LINE

<+@><:S+113><:f140,2Palatino,0,0,0>LIST

<+@><:S+113><:f140,2Palatino,0,0,0>LISTTAG

<+@><:S+113><:f140,2Palatino,0,0,0>LMBCS

<+@><:S+113><:f140,2Palatino,0,0,0>LOC

<+@><:S+113><:f140,2Palatino,0,0,0>LOCK

<+@><:S+113><:f140,2Palatino,0,0,0>LOF

<+@><:S+113><:f140,2Palatino,0,0,0>LOG

<+@><:S+113><:f140,2Palatino,0,0,0>LONG

<+@><:S+113><:f140,2Palatino,0,0,0>LOOP

<+@><:S+113><:f140,2Palatino,0,0,0>LSET

<+@><:S+113><:f140,2Palatino,0,0,0>LTRIM

<+@><:S+113><:f140,2Palatino,0,0,0>LTRIM$

<+@><:S+113><:f140,2Palatino,0,0,0>ME

<+@><:S+113><:f140,2Palatino,0,0,0>MESSAGEBOX

<+@><:S+113><:f140,2Palatino,0,0,0>MID

<+@><:S+113><:f140,2Palatino,0,0,0>MID$

<+@><:S+113><:f140,2Palatino,0,0,0>MIDB

<+@><:S+113><:f140,2Palatino,0,0,0>MIDB$

<+@><:S+113><:f140,2Palatino,0,0,0>MINUTE

<+@><:S+113><:f140,2Palatino,0,0,0>MKDIR<:f>

>
			 0 3 8 0 0 0 0 1 0 0 0 0
<+@><:S+113><:f140,2Palatino,0,0,0>MOD

<+@><:S+113><:f140,2Palatino,0,0,0>MONTH

<+@><:S+113><:f140,2Palatino,0,0,0>NAME

<+@><:S+113><:f140,2Palatino,0,0,0>NEW

<+@><:S+113><:f140,2Palatino,0,0,0>NEXT

<+@><:S+113><:f140,2Palatino,0,0,0>NOCASE

<+@><:S+113><:f140,2Palatino,0,0,0>NOT

<+@><:S+113><:f140,2Palatino,0,0,0>NOTHING

<+@><:S+113><:f140,2Palatino,0,0,0>NOW

<+@><:S+113><:f140,2Palatino,0,0,0>NULL

<+@><:S+113><:f140,2Palatino,0,0,0>OCT

<+@><:S+113><:f140,2Palatino,0,0,0>OCT$

<+@><:S+113><:f140,2Palatino,0,0,0>ON

<+@><:S+113><:f140,2Palatino,0,0,0>OPEN

<+@><:S+113><:f140,2Palatino,0,0,0>OPTION

<+@><:S+113><:f140,2Palatino,0,0,0>OR

<+@><:S+113><:f140,2Palatino,0,0,0>OUTPUT

<+@><:S+113><:f140,2Palatino,0,0,0>PASS

<+@><:S+113><:f140,2Palatino,0,0,0>PI

<+@><:S+113><:f140,2Palatino,0,0,0>PRESERVE

<+@><:S+113><:f140,2Palatino,0,0,0>PRINT

<+@><:S+113><:f140,2Palatino,0,0,0>PRIVATE

<+@><:S+113><:f140,2Palatino,0,0,0>PROPERTY

<+@><:S+113><:f140,2Palatino,0,0,0>PUBLIC

<+@><:S+113><:f140,2Palatino,0,0,0>PUT

<+@><:S+113><:f140,2Palatino,0,0,0>RANDOM

<+@><:S+113><:f140,2Palatino,0,0,0>RANDOMIZE

<+@><:S+113><:f140,2Palatino,0,0,0>READ

<+@><:S+113><:f140,2Palatino,0,0,0>REDIM

<+@><:S+113><:f140,2Palatino,0,0,0>REM

<+@><:S+113><:f140,2Palatino,0,0,0>REMOVE

<+@><:S+113><:f140,2Palatino,0,0,0>RESET

<+@><:S+113><:f140,2Palatino,0,0,0>RESUME

<+@><:S+113><:f140,2Palatino,0,0,0>RETURN

<+@><:S+113><:f140,2Palatino,0,0,0>RIGHT

<+@><:S+113><:f140,2Palatino,0,0,0>RIGHT$

<+@><:S+113><:f140,2Palatino,0,0,0>RIGHTB

<+@><:S+113><:f140,2Palatino,0,0,0>RIGHTB$

<+@><:S+113><:f140,2Palatino,0,0,0>RMDIR

<+@><:S+113><:f140,2Palatino,0,0,0>RND

<+@><:S+113><:f140,2Palatino,0,0,0>ROUND

<+@><:S+113><:f140,2Palatino,0,0,0>RSET

<+@><:S+113><:f140,2Palatino,0,0,0>RTRIM

<+@><:S+113><:f140,2Palatino,0,0,0>RTRIM$

<+@><:S+113><:f140,2Palatino,0,0,0>SAVED

<+@><:S+113><:f140,2Palatino,0,0,0>SECOND

<+@><:S+113><:f140,2Palatino,0,0,0>SEEK

<+@><:S+113><:f140,2Palatino,0,0,0>SELECT

<+@><:S+113><:f140,2Palatino,0,0,0>SENDKEYS

<+@><:S+113><:f140,2Palatino,0,0,0>SET

<+@><:S+113><:f140,2Palatino,0,0,0>SETFILEATTR

<+@><:S+113><:f140,2Palatino,0,0,0>SGN

<+@><:S+113><:f140,2Palatino,0,0,0>SHARED

<+@><:S+113><:f140,2Palatino,0,0,0>SHELL

<+@><:S+113><:f140,2Palatino,0,0,0>SIGNAL<:f>

>
			 0 4 8 0 0 0 0 1 0 0 0 0
<+@><:S+113><:f140,2Palatino,0,0,0>SIN

<+@><:S+113><:f140,2Palatino,0,0,0>SINGLE

<+@><:S+113><:f140,2Palatino,0,0,0>SPACE

<+@><:S+113><:f140,2Palatino,0,0,0>SPACE$

<+@><:S+113><:f140,2Palatino,0,0,0>SPC

<+@><:S+113><:f140,2Palatino,0,0,0>SQR

<+@><:S+113><:f140,2Palatino,0,0,0>STATIC

<+@><:S+113><:f140,2Palatino,0,0,0>STEP

<+@><:S+113><:f140,2Palatino,0,0,0>STOP

<+@><:S+113><:f140,2Palatino,0,0,0>STR

<+@><:S+113><:f140,2Palatino,0,0,0>STR$

<+@><:S+113><:f140,2Palatino,0,0,0>STRCOMPARE

<+@><:S+113><:f140,2Palatino,0,0,0>STRING

<+@><:S+113><:f140,2Palatino,0,0,0>STRING$

<+@><:S+113><:f140,2Palatino,0,0,0>SUB

<+@><:S+113><:f140,2Palatino,0,0,0>TAB

<+@><:S+113><:f140,2Palatino,0,0,0>TAN

<+@><:S+113><:f140,2Palatino,0,0,0>THEN

<+@><:S+113><:f140,2Palatino,0,0,0>TIME

<+@><:S+113><:f140,2Palatino,0,0,0>TIME$

<+@><:S+113><:f140,2Palatino,0,0,0>TIMENUMBER

<+@><:S+113><:f140,2Palatino,0,0,0>TIMER

<+@><:S+113><:f140,2Palatino,0,0,0>TIMEVALUE

<+@><:S+113><:f140,2Palatino,0,0,0>TO

<+@><:S+113><:f140,2Palatino,0,0,0>TODAY

<+@><:S+113><:f140,2Palatino,0,0,0>TRIM

<+@><:S+113><:f140,2Palatino,0,0,0>TRIM$

<+@><:S+113><:f140,2Palatino,0,0,0>TRUE

<+@><:S+113><:f140,2Palatino,0,0,0>TYPE

<+@><:S+113><:f140,2Palatino,0,0,0>TYPENAME

<+@><:S+113><:f140,2Palatino,0,0,0>UBOUND

<+@><:S+113><:f140,2Palatino,0,0,0>UCASE

<+@><:S+113><:f140,2Palatino,0,0,0>UCASE$

<+@><:S+113><:f140,2Palatino,0,0,0>UCHR

<+@><:S+113><:f140,2Palatino,0,0,0>UCHR$

<+@><:S+113><:f140,2Palatino,0,0,0>UNI

<+@><:S+113><:f140,2Palatino,0,0,0>UNICODE

<+@><:S+113><:f140,2Palatino,0,0,0>UNLOCK

<+@><:S+113><:f140,2Palatino,0,0,0>UNTIL

<+@><:S+113><:f140,2Palatino,0,0,0>USE

<+@><:S+113><:f140,2Palatino,0,0,0>USELSX

<+@><:S+113><:f140,2Palatino,0,0,0>USTRING

<+@><:S+113><:f140,2Palatino,0,0,0>USTRING$

<+@><:S+113><:f140,2Palatino,0,0,0>VAL

<+@><:S+113><:f140,2Palatino,0,0,0>VARIANT

<+@><:S+113><:f140,2Palatino,0,0,0>WEEKDAY

<+@><:S+113><:f140,2Palatino,0,0,0>WEND

<+@><:S+113><:f140,2Palatino,0,0,0>WHILE

<+@><:S+113><:f140,2Palatino,0,0,0>WIDTH

<+@><:S+113><:f140,2Palatino,0,0,0>WITH

<+@><:S+113><:f140,2Palatino,0,0,0>WRITE

<+@><:S+113><:f140,2Palatino,0,0,0>XOR

<+@><:S+113><:f140,2Palatino,0,0,0>YEAR

<+@><:S+113><:f140,2Palatino,0,0,0>YIELD<:f>

>
		[e]
	[tble]
[frm]
	24
	1572932
	2241
	960
	8164
	3331
	0
	3
	1
	1 0 0 0 0 0 0
	0
	16777215
	18
	1
	1535
	256 40960
	[frmlay]
		4370
		5923
		3
		0
		0
		3
		960
		0
		0
		2
		0
		2
		0
		182
		1
		960
		5280
		0
	[tbl]
		 8 2 0 86 1440 0 5 43 43
		[h]
			 0 240 86 18 0 2 0
			 1 200 86 2 0 2 0
			 2 200 86 2 0 2 0
			 3 200 86 2 0 2 0
			 4 200 86 2 0 2 0
			 5 200 86 2 0 2 0
			 6 200 86 2 0 2 0
			 7 200 86 2 0 2 0
		[e]
		[w]
			 0 960 120 6 0
			 1 4800 0 2 0
		[e]
		[data]
			 0 0 0 0 0 0 0 1 0 0 0 0
@Column Head@Suffix

>
			 0 1 0 0 0 0 0 1 0 0 0 0
@Column Head@Data type

>
			 1 0 0 0 0 0 0 1 0 0 0 0
%

>
			 1 1 0 0 0 0 0 1 0 0 0 0
Integer 

>
			 2 0 0 0 0 0 0 1 0 0 0 0
&

>
			 2 1 0 0 0 0 0 1 0 0 0 0
Long 

>
			 3 0 0 0 0 0 0 1 0 0 0 0
!

>
			 3 1 0 0 0 0 0 1 0 0 0 0
Single 

>
			 4 0 0 0 0 0 0 1 0 0 0 0
#

>
			 4 1 0 0 0 0 0 1 0 0 0 0
Double 

>
			 5 0 0 0 0 0 0 1 0 0 0 0
@@

>
			 5 1 0 0 0 0 0 1 0 0 0 0
Currency 

>
			 6 0 0 0 0 0 0 1 0 0 0 0
$

>
			 6 1 0 0 0 0 0 1 0 0 0 0
String 

>
			 7 0 0 0 0 0 0 1 0 0 0 0
(none)

>
			 7 1 0 0 0 0 0 1 0 0 0 0
Variant 

>
		[e]
	[tble]
[frm]
	21
	1572932
	2001
	960
	7924
	8460
	0
	3
	1
	1 0 0 0 0 0 0
	0
	16777215
	17
	2
	2845
	22784 65280
	[frmlay]
		6990
		5923
		3
		0
		0
		3
		960
		0
		0
		2
		0
		248
		161
		10129
		1
		960
		5280
		0
	[tbl]
		 16 2 0 86 1440 0 5 43 43
		[h]
			 0 240 86 18 0 2 0
			 1 800 86 2 0 1 0
			 2 1000 86 2 0 1 0
			 3 1000 86 2 0 1 0
			 4 1200 86 2 0 1 0
			 5 800 86 2 0 1 0
			 6 800 86 2 0 1 0
			 7 800 86 2 0 1 0
			 8 1000 86 2 0 1 0
			 9 800 86 2 0 1 0
			 10 400 86 2 0 1 0
			 11 600 86 2 0 1 0
			 12 800 86 2 0 1 0
			 13 1200 86 2 0 1 0
			 14 600 86 2 0 1 0
			 15 1000 86 2 0 1 0
		[e]
		[w]
			 0 1200 120 6 0
			 1 4560 0 2 0
		[e]
		[data]
			 0 0 0 0 0 0 0 1 0 0 0 0
@Column Head@Scope

>
			 0 1 0 0 0 0 0 1 0 0 0 0
@Column Head@Description

>
			 1 0 0 0 0 0 0 1 0 0 0 0
<:f><:f>Module

>
			 1 1 0 0 0 0 0 1 0 0 0 0
<:f>A variable is declared in module scope if the declaration is outside of any subprogram, class, or type definition in the module. The variable name has a meaning as long as the module is loaded.<:f>

>
			 2 1 0 0 0 0 0 1 0 0 0 0
The variable name is visible anywhere within the module. Everywhere within the module, it has the meaning specified in the declaration, except within a subprogram, type, or class where the same variable name is also declared.

>
			 3 1 0 0 0 0 0 1 0 0 0 0
<:f>The variable is Private by default and can be referred to only within the module that defines it. A variable can be referred to in other modules only if it is declared as Public and the other modules access the defining module with the Use statement.

>
			 4 0 0 0 0 0 0 1 0 0 0 0
<:f>Subprogram

>
			 4 1 0 0 0 0 0 1 0 0 0 0
<:f>A variable is declared in subprogram scope if it is declared within the definition of a function, a sub, or a property. Only inside the subprogram does the variable name have the meaning specified in the declaration. The variable name is visible anywher
e within the subprogram.<:f><:f>

>
			 5 1 0 0 0 0 0 1 0 0 0 0
<:f>Ordinarily, the variable is created and initialized when the subprogram is invoked, and deleted when the subprogram exits. This behavior can be modified with the Static keyword:

>
			 6 0 0 0 0 0 0 1 0 0 0 0
<:I240,0,0,0>

>
			 6 1 0 0 0 0 0 1 0 0 0 0
<:I240,0,0,0>If the variable is declared with the Static<+!><:f,QCourier,> <-!><:f>keyword, its value persists between calls to the subprogram. The value is valid as long as the module containing the subprogram is loaded.

>
			 7 0 0 0 0 0 0 1 0 0 0 0
<:I240,0,0,0>

>
			 7 1 0 0 0 0 0 1 0 0 0 0
<:I240,0,0,0>If the subprogram itself is declared Static, the values of all variables in the subprogram (whether explicitly or implicitly declared) persist between calls to the subprogram.

>
			 8 0 0 0 0 0 0 1 0 0 0 0
<:f>Type or class

>
			 8 1 0 0 0 0 0 1 0 0 0 0
A variable is declared in type or class scope if it is declared within the definition of a type or a class (for classes, it must additionally be declared outside the definition of a subprogram). The variable is called a member variable of the type of class.

>
			 9 1 0 0 0 0 0 1 0 0 0 0
<+">Type member variables<-">: A type member variable is created and initialized when an instance of that type is declared. It is deleted when the type variable goes out of scope.

>
			 10 1 0 0 0 0 0 1 0 0 0 0
The visibility of a type member variable is automatically Public<:f,2Palatino,>.<:f>

>
			 11 1 0 0 0 0 0 1 0 0 0 0
<+">Class member variables<-">: A class member variable is created and initialized when an instance of that class is created. It is deleted when the object is deleted.

>
			 12 1 0 0 0 0 0 1 0 0 0 0
Each class member variable can be declared Public<+!> <-!>or Private. A Private member can only be referred to within the class or its derived classes; class member variables are<:f,2Palatino,> 
<-!><:f>Private<+!><:f,QCourier,> <-!><:f>by default.

>
			 13 1 0 0 0 0 0 1 0 0 0 0
<+">Visibility of type member variables and <-"><-!>Public<+!> <-!><+">class member variables<-">: The visibility of a type member variable (which is always<:f,2Palatino,> 
<-!><:f>Public<:f,2Palatino,>) <:f>and of a<:f,2Palatino,> <-!><:f>Public<+!> 
<-!>class member variable depends, for any particular type or object, on the declaration of the instance variable that refers to that instance:

>
			 14 0 0 0 0 0 0 1 0 0 0 0
<:I240,0,0,0>

>
			 14 1 0 0 0 0 0 1 0 0 0 0
<:I240,0,0,0>If the instance variable is declared <-!>Private, then the member variable is visible only in the owning module

>
			 15 0 0 0 0 0 0 1 0 0 0 0
<:I240,0,0,0>

>
			 15 1 0 0 0 0 0 1 0 0 0 0
<:I240,0,0,0>If the instance variable is declared <-!>Public, then the member variable is visible wherever the instance variable is visible: it can be referred to in the other modules where the module that owns this instance variable is accessed with the Use<-!> stateme
nt.

>
		[e]
	[tble]
[frm]
	6
	1572932
	2001
	960
	7924
	2678
	0
	3
	1
	1 0 0 0 0 0 0
	0
	16777215
	13
	3
	0
	720 512
	[frmlay]
		4210
		5923
		3
		0
		0
		3
		960
		0
		0
		2
		0
		1
		1
		0
		1
		900
		5220
		0
	[tbl]
		 7 2 0 86 1440 0 5 43 43
		[h]
			 0 460 86 18 0 2 0
			 1 400 86 2 0 1 0
			 2 1200 86 2 0 1 0
			 3 1000 86 2 0 1 0
			 4 1200 86 2 0 1 0
			 5 1400 86 2 0 1 0
			 6 1000 86 2 0 1 0
		[e]
		[w]
			 0 1200 120 6 0
			 1 4560 0 2 0
		[e]
		[data]
			 0 0 0 0 0 0 0 1 0 0 0 0
@Column Head@Language element

>
			 0 1 0 0 0 0 0 1 0 0 0 0
@Column Head@ <**>Description

>
			 1 0 0 0 0 0 0 1 0 0 0 0
<:f>Literal

>
			 1 1 0 0 0 0 0 1 0 0 0 0
Either a numeric literal, such as 777 or 77.7 or 7.77E+02, or a string literal, such as 
</S>777 Sixth Avenue</T>.

>
			 2 0 0 0 0 0 0 1 0 0 0 0
<:f>Identifier

>
			 2 1 0 0 0 0 0 1 0 0 0 0
A name you give to a variable, a subprogram, or other user-defined element in a script, such as a label or a user-specified type. Examples of identifiers are Seven, six_up, Seven77, Hyperlist, RevByYear, rollup, and PATHOCASE. In the LotusScript documentati
on, identifiers are referred to as </S>names.</T>

>
			 3 0 0 0 0 0 0 1 0 0 0 0
Operator

>
			 3 1 0 0 0 0 0 1 0 0 0 0
One or more characters, or a word, representing a built-in LotusScript operation. Operations are performed on values: either literals, or values that are represented by names, or values that are represented by expressions.

>
			 4 1 0 0 0 0 0 1 0 0 0 0
<:f>For example, an asterisk (*) represents multiplication of two numeric values, and the two-character operator 
<+!><:f,QCourier New,><<=<:f> <-!> represents the less-than-or-equal-to comparison operator on two numeric values or string values. Some operators are also keywords: for example, the keyword Not is the operator for logical negation of a value.

>
			 5 0 0 0 0 0 0 1 0 0 0 0
Keyword

>
			 5 1 0 0 0 0 0 1 0 0 0 0
A word with a fixed spelling and a particular meaning in the LotusScript language. It is distinguished from a name, a word whose spelling and meaning you choose. Keywords such as Print represent actions; others represent built-in functions, such as Dir and 
Sin, or operators such as Not; others represent data types, such as Double<:f,2Palatino,>; a<:f>nd so on.

>
			 6 0 0 0 0 0 0 1 0 0 0 0
<:f>Special character

>
			 6 1 0 0 0 0 0 1 0 0 0 0
A special character has miscellaneous uses. For example, some special characters punctuate statements and lines in the script; some designate a name as having a particular data type, when attached to the name. Some special characters are used in more than o
ne way.

>
		[e]
	[tble]
[frm]
	7
	1572932
	2241
	2680
	8164
	7307
	0
	3
	1
	1 0 0 0 0 0 0
	0
	16777215
	12
	4
	12287
	2 3584
	[frmlay]
		8060
		5923
		3
		0
		0
		3
		2680
		0
		0
		2
		0
		1
		1
		0
		1
		960
		5280
		0
	[tbl]
		 4 2 0 86 1440 0 5 43 43
		[h]
			 0 240 86 18 0 2 0
			 1 1200 86 2 0 1 0
			 2 1400 86 2 0 1 0
			 3 1400 86 2 0 1 0
		[e]
		[w]
			 0 1920 120 6 0
			 1 3840 0 2 0
		[e]
		[data]
			 0 0 0 0 0 0 0 1 0 0 0 0
@Column Head@Notation

>
			 0 1 0 0 0 0 0 1 0 0 0 0
@Column Head@Description

>
			 1 0 0 0 0 0 0 1 0 0 0 0
<:f,BHelvetica,>&B<+">bbb<:f,QCourier New,> <-"><:f>(Binary)

>
			 1 1 0 0 0 0 0 1 0 0 0 0
Each <+">b<-"> is the binary digit 0 or 1; for example, &B1100001001 (equivalent to the decimal integer 777). The range of legal binary values is expressible in 32 binary digits. Binary integers of &B100000 ... (31 zeroes) and larger represent negative numb
ers.

>
			 2 0 0 0 0 0 0 1 0 0 0 0
<:f,BHelvetica,>&O<+">ooo<:f,QCourier New,> <-"><:f>(Octal)

>
			 2 1 0 0 0 0 0 1 0 0 0 0
Each <+">o<-"> is a digit from 0 to 7; for example, &O1411 (equivalent to the decimal integer 777). The range of legal octal values is expressible in 11 octal digits. Octal integers of &O20000000000 and larger represent negative numbers. (Octal integers of 
&O40000000000 and larger are out of range.)

>
			 3 0 0 0 0 0 0 1 0 0 0 0
<:f,BHelvetica,>&H<+">hhh<:f,QCourier New,> <-"><:f>(Hexadecimal)

>
			 3 1 0 0 0 0 0 1 0 0 0 0
Each <+">h<-"> is a digit from 0 to 9, or a letter from A to F; for example, &H309 (<:f,BHelv,0,0,0>equivalent to 
<:f>the decimal integer 777). The range of legal hexadecimal values is expressible in eight hexadecimal digits. Hexadecimal integers of &H80000000 and larger represent negative numbers.

>
		[e]
	[tble]
[frm]
	11
	1572932
	2181
	6040
	8224
	7295
	0
	3
	1
	1 0 0 0 0 0 0
	0
	16777215
	11
	5
	0
	14591 2
	[frmlay]
		6510
		6043
		3
		0
		0
		3
		6040
		0
		0
		2
		0
		1
		1
		0
		1
		960
		5280
		0
	[tbl]
		 2 2 0 86 1440 0 5 43 43
		[h]
			 0 240 86 18 0 2 0
			 1 800 86 2 0 1 0
		[e]
		[w]
			 0 1320 120 6 0
			 1 4560 0 2 0
		[e]
		[data]
			 0 0 0 0 0 0 0 1 0 0 0 0
@Column Head@Operator

>
			 0 1 0 0 0 0 0 1 0 0 0 0
@Column Head@Operation performed

>
			 1 0 0 0 0 0 0 1 0 0 0 0
( )<+!><:f,QCourier New,> <-!><:f>(Unary) 

>
			 1 1 0 0 0 0 0 1 0 0 0 0
<:f>Precedence. Designates a subexpression for evaluation prior to the other expressions within the statement. If multiple subexpressions are enclosed in parentheses, they are evaluated in left-to-right order. 

>
		[e]
	[tble]
[frm]
	11
	1572932
	2001
	960
	7924
	4374
	0
	3
	1
	1 0 0 0 0 0 0
	0
	16777215
	10
	6
	0
	65280 767
	[frmlay]
		8795
		5923
		3
		0
		0
		3
		960
		0
		0
		2
		0
		1
		1
		0
		1
		960
		5280
		0
	[tbl]
		 14 2 0 86 1440 0 5 43 43
		[h]
			 0 240 86 18 0 2 0
			 1 200 86 2 0 2 0
			 2 200 86 2 0 2 0
			 3 200 86 2 0 2 0
			 4 200 86 2 0 2 0
			 5 200 86 2 0 2 0
			 6 200 86 2 0 2 0
			 7 1000 86 2 0 1 0
			 8 200 86 2 0 2 0
			 9 200 86 2 0 2 0
			 10 200 86 2 0 2 0
			 11 200 86 2 0 2 0
			 12 200 86 2 0 2 0
			 13 400 86 2 0 1 0
		[e]
		[w]
			 0 1200 120 6 0
			 1 4560 0 2 0
		[e]
		[data]
			 0 0 0 0 0 0 0 1 0 0 0 0
@Column Head@Operator

>
			 0 1 0 0 0 0 0 1 0 0 0 0
@Column Head@Operation performed

>
			 1 0 0 0 0 0 0 1 0 0 0 0
<:f180,BArial,0,0,0>^<:f>

>
			 1 1 0 0 0 0 0 1 0 0 0 0
<-!><:f><:f>Exponentiation

>
			 2 0 0 0 0 0 0 1 0 0 0 0
<:f180,BArial,0,0,0>- (Unary) <:f>

>
			 2 1 0 0 0 0 0 1 0 0 0 0
<:f>Negation

>
			 3 0 0 0 0 0 0 1 0 0 0 0
<:f180,BArial,0,0,0>* /<:f>

>
			 3 1 0 0 0 0 0 1 0 0 0 0
<-!><:f><:f>Multiplication and division

>
			 4 0 0 0 0 0 0 1 0 0 0 0
<:f180,BArial,0,0,0>\<:f>

>
			 4 1 0 0 0 0 0 1 0 0 0 0
<-!><:f><:f>Integer division

>
			 5 0 0 0 0 0 0 1 0 0 0 0
<:f180,BArial,0,0,0>Mod<:f>

>
			 5 1 0 0 0 0 0 1 0 0 0 0
<-!><:f><:f>Modulo division (remainder)

>
			 6 0 0 0 0 0 0 1 0 0 0 0
<:f180,BArial,0,0,0>- +<:f>

>
			 6 1 0 0 0 0 0 1 0 0 0 0
<-!><:f><:f>Subtraction and addition

>
			 7 0 0 0 0 0 0 1 0 0 0 0
<:f180,BArial,0,0,0>=   <<<;>   <;><<   << <<=   =<<   <;>  <;>= =<;><:f>

>
			 7 1 0 0 0 0 0 1 0 0 0 0
<-!><:f><:f>Comparison of numeric values: equal, not equal (two forms), less than, less than or equal (two forms), greater than, greater than or equal (two forms). These are called comparison operators or relational operators. They all have the same precede
nce.

>
			 8 0 0 0 0 0 0 1 0 0 0 0
Not<+!><:f,QCourier New,> <-!><:f>(Unary) 

>
			 8 1 0 0 0 0 0 1 0 0 0 0
<:f>Logical negation (bitwise)

>
			 9 0 0 0 0 0 0 1 0 0 0 0
And 

>
			 9 1 0 0 0 0 0 1 0 0 0 0
<-!><:f><:f>Logical <+">and<-"> (bitwise)

>
			 10 0 0 0 0 0 0 1 0 0 0 0
Or 

>
			 10 1 0 0 0 0 0 1 0 0 0 0
<-!><:f>Logical <+">or<-"> (bitwise)

>
			 11 0 0 0 0 0 0 1 0 0 0 0
Xor 

>
			 11 1 0 0 0 0 0 1 0 0 0 0
<-!><:f><:f>Logical <+">exclusive-or<-"> (bitwise)

>
			 12 0 0 0 0 0 0 1 0 0 0 0
Eqv 

>
			 12 1 0 0 0 0 0 1 0 0 0 0
<-!><:f><:f>Logical equivalence (bitwise)

>
			 13 0 0 0 0 0 0 1 0 0 0 0
Imp 

>
			 13 1 0 0 0 0 0 1 0 0 0 0
<-!>Logical implication (TRUE if the first operand is FALSE or the second operand is TRUE)<-!><-!><-!>

>
		[e]
	[tble]
[frm]
	12
	1572932
	2241
	1200
	8164
	4913
	0
	3
	1
	1 0 0 0 0 0 0
	0
	16777215
	9
	7
	4
	0 0
	[frmlay]
		9904
		5923
		3
		0
		0
		3
		1200
		0
		0
		2
		0
		0
		0
		0
		1
		720
		5040
		0
	[tbl]
		 5 2 0 86 1440 0 5 43 43
		[h]
			 0 240 86 18 0 2 0
			 1 400 86 2 0 1 0
			 2 1000 86 2 0 1 0
			 3 600 86 2 0 2 0
			 4 1000 86 2 0 1 0
		[e]
		[w]
			 0 1200 120 6 0
			 1 4560 0 2 0
		[e]
		[data]
			 0 0 0 0 0 0 0 1 0 0 0 0
@Column Head@Operator

>
			 0 1 0 0 0 0 0 1 0 0 0 0
@Column Head@Operation performed

>
			 1 0 0 0 0 0 0 1 0 0 0 0
+ &

>
			 1 1 0 0 0 0 0 1 0 0 0 0
<-!><:f>String concatenation. The result is the string consisting of the first string operand followed by the second.

>
			 2 0 0 0 0 0 0 1 0 0 0 0
 

>
			 2 1 0 0 0 0 0 1 0 0 0 0
To avoid ambiguity, the & operator is preferred as the concatenation operator. If one or both operands are Variant, the + operator can be interpreted as numeric addition rather than string concatenation (see 
</S>Data Type Conversion</T>).

>
			 3 0 0 0 0 0 0 1 0 0 0 0
=  <<<;>  <;><<  <<<**><<=  =<<  <;>  <;>=<**>=<;>

>
			 3 1 0 0 0 0 0 1 0 0 0 0
<-!><:f>Comparison of string values: equal, not equal (two forms), less than, less than or equal (two forms), greater than, greater than or equal (two forms)

>
			 4 0 0 0 0 0 0 1 0 0 0 0
Like 

>
			 4 1 0 0 0 0 0 1 0 0 0 0
<-!><:f>Pattern matching. A string expression is compared with a given pattern string of characters that can include wildcards, ranges of characters, and lists of characters. The result 
<:f180,BArial,0,0,0>is TRUE if the expression matches the pattern, and otherwise FALSE.<:f><-!><-!>

>
		[e]
	[tble]
[frm]
	13
	1572932
	2241
	7503
	8164
	10216
	0
	3
	1
	1 0 0 0 0 0 0
	0
	16777215
	8
	8
	12291
	0 65280
	[frmlay]
		7903
		5923
		3
		0
		0
		3
		7503
		0
		0
		2
		0
		0
		3
		65535
		1
		960
		5280
		0
	[tbl]
		 5 2 0 86 1440 0 5 43 43
		[h]
			 0 240 86 18 0 2 0
			 1 200 86 2 0 2 0
			 2 600 86 2 0 1 0
			 3 600 86 2 0 1 0
			 4 600 86 2 0 1 0
		[e]
		[w]
			 0 960 120 6 0
			 1 4800 0 2 0
		[e]
		[data]
			 0 0 0 0 0 0 0 1 0 0 0 0
@Column Head@Operator

>
			 0 1 0 0 0 0 0 1 0 0 0 0
@Column Head@Operation performed

>
			 1 0 0 0 0 0 0 1 0 0 0 0
IS

>
			 1 1 0 0 0 0 0 1 0 0 0 0
<-!><:f>Comparison of object references.

>
			 2 1 0 0 0 0 0 1 0 0 0 0
When A and B are object reference variables, the form A Is B returns TRUE (-1) if A and B refer to the same object, and otherwise FALSE (0).

>
			 3 1 0 0 0 0 0 1 0 0 0 0
The form A Is NOTHING (or NOTHING Is A) returns TRUE if A holds the value NOTHING, and FALSE otherwise.

>
			 4 1 0 0 0 0 0 1 0 0 0 0
<:f>The Is operator has lower precedence than any other operator (parentheses, numeric operators, or string operators).

>
		[e]
	[tble]
[frm]
	16
	1572932
	2001
	6310
	7924
	9995
	0
	3
	1
	1 0 0 0 0 0 0
	0
	16777215
	14
	9
	32256
	12291 0
	[frmlay]
		8681
		5923
		3
		0
		0
		3
		6310
		0
		0
		2
		0
		255
		255
		0
		1
		720
		5040
		0
	[tbl]
		 7 2 0 86 1440 0 5 43 43
		[h]
			 0 240 86 18 0 2 0
			 1 400 86 2 0 1 0
			 2 200 86 2 0 2 0
			 3 400 86 2 0 1 0
			 4 200 86 2 0 1 0
			 5 400 86 2 0 1 0
			 6 1200 86 2 0 1 0
		[e]
		[w]
			 0 2280 120 6 0
			 1 3480 0 2 0
		[e]
		[data]
			 0 0 0 0 0 0 0 1 0 0 0 0
@Column Head@Type of special character

>
			 0 1 0 0 0 0 0 1 0 0 0 0
@Column Head@ Use

>
			 1 0 0 0 0 0 0 1 0 0 0 0
Special characters within other contexts

>
			 1 1 0 0 0 0 0 1 0 0 0 0
These contexts are:

>
			 2 0 0 0 0 0 0 1 0 0 0 0
 

>
			 2 1 0 0 0 0 0 1 0 0 0 0
<:I240,0,0,0>Within numeric literals

>
			 3 1 0 0 0 0 0 1 0 0 0 0
<:I240,0,0,0>In the SendKeys statement and the Format and Format$ functions

>
			 4 1 0 0 0 0 0 1 0 0 0 0
<:I240,0,0,0>In some file-handling statements

>
			 5 0 0 0 0 0 0 1 0 0 0 0
Special characters within literal strings

>
			 5 1 0 0 0 0 0 1 0 0 0 0
Treated like any other characters, as text.

>
			 6 0 0 0 0 0 0 1 0 0 0 0
White space (spaces and tabs)

>
			 6 1 0 0 0 0 0 1 0 0 0 0
Ignored around a special character, when the character is used as described in the table. In general, LotusScript recognizes a special character with one of these uses whether or not it is set off by white space. The exceptions are noted in the table.

>
		[e]
	[tble]
[frm]
	17
	1572932
	1949
	960
	7977
	8318
	0
	3
	1
	1 0 0 0 0 0 0
	0
	16777215
	15
	10
	0
	0 0
	[frmlay]
		6648
		6028
		3
		0
		0
		3
		960
		0
		0
		2
		0
		79
		220
		12
		1
		960
		5280
		0
	[tbl]
		 28 2 0 86 1440 0 5 43 43
		[h]
			 0 240 86 18 0 2 0
			 1 600 86 2 0 1 0
			 2 460 86 2 0 1 0
			 3 600 86 2 0 1 0
			 4 600 86 2 0 1 0
			 5 600 86 2 0 1 0
			 6 1200 86 2 0 1 0
			 7 200 86 2 0 1 0
			 8 400 86 2 0 1 0
			 9 400 86 2 0 1 0
			 10 400 86 2 0 1 0
			 11 200 86 2 0 2 0
			 12 200 86 2 0 2 0
			 13 400 86 2 0 1 0
			 14 600 86 2 0 1 0
			 15 600 86 2 0 1 0
			 16 200 86 2 0 2 0
			 17 400 86 2 0 1 0
			 18 600 86 2 0 1 0
			 19 400 86 2 0 1 0
			 20 400 86 2 0 1 0
			 21 600 86 2 0 1 0
			 22 400 86 2 0 1 0
			 23 400 86 2 0 1 0
			 24 400 86 2 0 1 0
			 25 1000 86 2 0 1 0
			 26 600 86 2 0 1 0
			 27 800 86 2 0 1 0
		[e]
		[w]
			 0 1785 120 6 0
			 1 4080 0 2 0
		[e]
		[data]
			 0 0 0 0 0 0 0 1 0 0 0 0
@Column Head@Character

>
			 0 1 0 0 0 0 0 1 0 0 0 0
@Column Head@Usage

>
			 1 0 0 0 0 0 0 1 0 0 0 0
<:f,QCourier,>" "  <:f>(double quotes)

>
			 1 1 0 0 0 0 0 1 0 0 0 0
Delimit a literal string on a single line. Use consecutive double quotes (<:f,QCourier,>""<:f>) to include a double-quote character in the string. For example:

>
			 2 1 0 0 0 0 0 1 0 0 0 0
@mono@<:I0,0,0,0>PRINT "</W>""</W>"   'Prints </W>"</W>

>
			 3 0 0 0 0 0 0 1 0 0 0 0
<:f180,BArial,0,0,0>| |  <:f>(vertical bars)

>
			 3 1 0 0 0 0 0 1 0 0 0 0
Delimit a multi-line literal string. To include a vertical bar character in a string, use consecutive vertical bars (<:f180,BArial,0,0,0> | |<:f> ).

>
			 4 0 0 0 0 0 0 1 0 0 0 0
{ } (braces)

>
			 4 1 0 0 0 0 0 1 0 0 0 0
Delimit a multi-line literal string. To include braces in a string, use a single open brace ( { ) and doubled close braces ( }} ).

>
			 5 0 0 0 0 0 0 1 0 0 0 0
<:f,QCourier,>:  <:f>(colon)

>
			 5 1 0 0 0 0 0 1 0 0 0 0
Separates multiple statements on a single line. When suffixed to a name at the beginning of a line, a colon designates the name as a label.

>
			 6 0 0 0 0 0 0 1 0 0 0 0
<:f,QCourier,>% & ! # @ $

>
			 6 1 0 0 0 0 0 1 0 0 0 0
<:f>When suffixed to a variable name, each of these characters declares the variable to be of a particular data type. When suffixed to a number being assigned to a constant, each of these characters declares the constant to be of a particular data type. 

>
			 7 1 0 0 0 0 0 1 0 0 0 0
<:f,QCourier,>%<:f> is also used to designate a compiler directive.

>
			 8 1 0 0 0 0 0 1 0 0 0 0
<:f,QCourier,>&<:f> is also used to prefix a binary, octal, or hexadecimal constant.

>
			 9 1 0 0 0 0 0 1 0 0 0 0
<:f,QCourier,>#<:f> is also used to specify a file number in some file I/O statements and functions.

>
			 10 0 0 0 0 0 0 1 0 0 0 0
<:f,QCourier,>*  <:f>(asterisk)

>
			 10 1 0 0 0 0 0 1 0 0 0 0
<:f>Specifies the string length in a fixed-length string declaration.

>
			 11 0 0 0 0 0 0 1 0 0 0 0
<:f,2Palatino,>( )<:f,QCourier,>  <:f>(parentheses)

>
			 11 1 0 0 0 0 0 1 0 0 0 0
<:f>Parentheses are used:

>
			 12 0 0 0 0 0 0 1 0 0 0 0
<:I240,0,0,0>

>
			 12 1 0 0 0 0 0 1 0 0 0 0
<:I240,0,0,0>To group an expression

>
			 13 0 0 0 0 0 0 1 0 0 0 0
<:I240,0,0,0>

>
			 13 1 0 0 0 0 0 1 0 0 0 0
<:I240,0,0,0>In a function or sub call, to indicate that an argument should be passed by value

>
			 14 0 0 0 0 0 0 1 0 0 0 0
<:I240,0,0,0>

>
			 14 1 0 0 0 0 0 1 0 0 0 0
<:I240,0,0,0>To delimit the argument list in function and sub definitions, and in calls to functions and subs

>
			 15 0 0 0 0 0 0 1 0 0 0 0
<:I240,0,0,0>

>
			 15 1 0 0 0 0 0 1 0 0 0 0
<:I240,0,0,0>To delimit the list of array bounds in an array declaration, and in a reference to an array element or a list element

>
			 16 0 0 0 0 0 0 1 0 0 0 0
<:f,QCourier,>.  <:f>(period)

>
			 16 1 0 0 0 0 0 1 0 0 0 0
<:f>Used in references to type and object members

>
			 17 0 0 0 0 0 0 1 0 0 0 0
<:f,2Palatino,>,<:f,QCourier,>  <:f>(comma)

>
			 17 1 0 0 0 0 0 1 0 0 0 0
<:f>Separates parts within some elements and statements, including:

>
			 18 1 0 0 0 0 0 1 0 0 0 0
<:I240,0,0,0>Arguments in calls to built-in functions; and in function and sub definitions, and calls to these functions and subs

>
			 19 1 0 0 0 0 0 1 0 0 0 0
<:I240,0,0,0>Bounds in array declarations, and subscripts in references to array elements

>
			 20 1 0 0 0 0 0 1 0 0 0 0
<:I240,0,0,0>Expressions in a Print statement or a Print # statement

>
			 21 1 0 0 0 0 0 1 0 0 0 0
<:I240,0,0,0>Elements in miscellaneous other statements, including many file-manipulation statements and others

>
			 22 0 0 0 0 0 0 1 0 0 0 0
<:f,QCourier,>;  <:f>(semicolon)

>
			 22 1 0 0 0 0 0 1 0 0 0 0
Separates expressions in a Print statement or a Print # statement.

>
			 23 0 0 0 0 0 0 1 0 0 0 0
<:f,QCourier,>'  <:f>(single quote)

>
			 23 1 0 0 0 0 0 1 0 0 0 0
Indicates the beginning of a comment. The comment continues to the end of the current line. 

>
			 24 0 0 0 0 0 0 1 0 0 0 0
<:f,QCourier,>_  <:f>(underscore)

>
			 24 1 0 0 0 0 0 1 0 0 0 0
<:f>Continues the last statement on the current line to the next line. 

>
			 25 1 0 0 0 0 0 1 0 0 0 0
<:I240,0,0,0>The underscore character must be preceded by at least one space or tab. (Otherwise LotusScript regards it as the last character of the preceding element in the statement, not as the line-continuation character.)

>
			 26 1 0 0 0 0 0 1 0 0 0 0
<:I240,0,0,0>Underscore within a literal string or a comment does not continue the statement to the next line.

>
			 27 1 0 0 0 0 0 1 0 0 0 0
<:I240,0,0,0>After the line-continuation character, nothing can appear on the line except for white space or a comment beginning with a single quote (<:f,QCourier,>'<:f>).

>
		[e]
	[tble]
[frm]
	18
	1572932
	2241
	3230
	8164
	7173
	0
	3
	1
	1 0 0 0 0 0 0
	0
	16777215
	16
	11
	255
	5120 33024
	[frmlay]
		4820
		5923
		3
		0
		0
		3
		3230
		0
		0
		2
		0
		24
		22
		1223
		1
		960
		5280
		0
	[tbl]
		 10 2 0 86 1440 0 5 43 43
		[h]
			 0 240 86 18 0 2 0
			 1 400 86 2 0 1 0
			 2 200 86 2 0 2 0
			 3 200 86 2 0 2 0
			 4 600 86 2 0 1 0
			 5 200 86 2 0 2 0
			 6 200 86 2 0 2 0
			 7 200 86 2 0 2 0
			 8 400 86 2 0 1 0
			 9 400 86 2 0 1 0
		[e]
		[w]
			 0 1440 120 6 0
			 1 4320 0 2 0
		[e]
		[data]
			 0 0 0 0 0 0 0 1 0 0 0 0
@Column Head@Data type

>
			 0 1 0 0 0 0 0 1 0 0 0 0
@Column Head@Value

>
			 1 0 0 0 0 0 0 1 0 0 0 0
Currency 

>
			 1 1 0 0 0 0 0 1 0 0 0 0
<-!><:f>8-byte integer representing a currency value to four decimal places

>
			 2 0 0 0 0 0 0 1 0 0 0 0
Double 

>
			 2 1 0 0 0 0 0 1 0 0 0 0
<-!><:f>Double-precision (8-byte) floating point number

>
			 3 0 0 0 0 0 0 1 0 0 0 0
Integer 

>
			 3 1 0 0 0 0 0 1 0 0 0 0
<-!><:f>Short (2-byte) whole number 

>
			 4 1 0 0 0 0 0 1 0 0 0 0
<:f>In 32-bit versions of Windows</Y>, an integer has 4 bytes; use the short integer to correspond to the LotusScript integer.

>
			 5 0 0 0 0 0 0 1 0 0 0 0
Long 

>
			 5 1 0 0 0 0 0 1 0 0 0 0
<-!><:f>Long (4-byte) whole number

>
			 6 0 0 0 0 0 0 1 0 0 0 0
Single 

>
			 6 1 0 0 0 0 0 1 0 0 0 0
<-!><:f>Single-precision (4-byte) floating point number

>
			 7 0 0 0 0 0 0 1 0 0 0 0
String 

>
			 7 1 0 0 0 0 0 1 0 0 0 0
<-!><:f>Variable-length character string

>
			 8 0 0 0 0 0 0 1 0 0 0 0
String * <+">n<-"><:f>

>
			 8 1 0 0 0 0 0 1 0 0 0 0
<-!><:f>Fixed-length character string. <:f,BHelvetica,><+">n<:f> <-">specifies the number of characters in the string.

>
			 9 0 0 0 0 0 0 1 0 0 0 0
Variant 

>
			 9 1 0 0 0 0 0 1 0 0 0 0
<-!><:f>An array, list, object, date value, or any value of a built-in data type except fixed-length String. 

>
		[e]
	[tble]
[frm]
	27
	1572932
	2241
	1400
	8164
	4885
	0
	3
	1
	1 0 0 0 0 0 0
	0
	16777215
	19
	12
	3328
	0 65280
	[frmlay]
		4370
		5923
		3
		0
		0
		3
		1400
		0
		0
		2
		0
		1
		1
		0
		1
		900
		5220
		0
	[tbl]
		 7 2 0 86 1440 0 5 43 43
		[h]
			 0 240 86 18 0 2 0
			 1 600 86 2 0 1 0
			 2 400 86 2 0 1 0
			 3 200 86 2 0 2 0
			 4 200 86 2 0 2 0
			 5 400 86 2 0 1 0
			 6 800 86 2 0 1 0
		[e]
		[w]
			 0 2400 120 6 0
			 1 3360 0 2 0
		[e]
		[data]
			 0 0 0 0 0 0 0 1 0 0 0 0
@Column Head@Type of variable

>
			 0 1 0 0 0 0 0 1 0 0 0 0
@Column Head@Initial value

>
			 1 0 0 0 0 0 0 1 0 0 0 0
Numeric<**>(Integer,<+!> <-!>Long,<+!> <-!>Single, Double,<+!> <-!>Currency)

>
			 1 1 8 0 0 0 0 1 0 0 0 0
<+@><-!>0.00

>
			 2 0 0 0 0 0 0 1 0 0 0 0
Fixed-length String

>
			 2 1 0 0 0 0 0 1 0 0 0 0
<-!>A string of the specified length, filled with Chr(0) (the NULL character)

>
			 3 0 0 0 0 0 0 1 0 0 0 0
Variable-length String

>
			 3 1 0 0 0 0 0 1 0 0 0 0
<-!>"" (the empty string)

>
			 4 0 0 0 0 0 0 1 0 0 0 0
Variant

>
			 4 1 0 0 0 0 0 1 0 0 0 0
EMPTY

>
			 5 0 0 0 0 0 0 1 0 0 0 0
Object reference variable

>
			 5 1 0 0 0 0 0 1 0 0 0 0
NOTHING (unless New is specified in the variable declaration)

>
			 6 0 0 0 0 0 0 1 0 0 0 0
Type variable 

>
			 6 1 0 0 0 0 0 1 0 0 0 0
Type members (or members of its members, and so forth) each have one of the types listed above. They are allocated, and initialized as described.

>
		[e]
	[tble]
[frm]
	31
	1572932
	2241
	960
	8164
	4230
	0
	3
	1
	1 0 0 0 0 0 0
	0
	16777215
	20
	13
	0
	65280 1023
	[frmlay]
		4600
		5923
		3
		0
		0
		3
		960
		0
		0
		2
		0
		1
		1
		0
		1
		900
		5220
		0
	[tbl]
		 9 2 0 86 1440 0 5 43 43
		[h]
			 0 240 86 18 0 2 0
			 1 600 86 2 0 1 0
			 2 1000 86 2 0 1 0
			 3 800 86 2 0 1 0
			 4 600 86 2 0 1 0
			 5 1000 86 2 0 1 0
			 6 1200 86 2 0 1 0
			 7 600 86 2 0 1 0
			 8 800 86 2 0 1 0
		[e]
		[w]
			 0 960 120 6 0
			 1 4800 0 2 0
		[e]
		[data]
			 0 0 0 0 0 0 0 1 0 0 0 0
@Column Head@Constant

>
			 0 1 0 0 0 0 0 1 0 0 0 0
@Column Head@Value

>
			 1 0 0 0 0 0 0 1 0 0 0 0
NULL

>
			 1 1 0 0 0 0 0 1 0 0 0 0
A special value which represents </S>unknown</T> or </S>missing</T> data. The NULL value can only be assigned to Variant variables.<-!><-!><-!>

>
			 2 1 0 0 0 0 0 1 0 0 0 0
When the value NULL is used as an operand, the result of the operation is NULL. (The few exceptions to this are documented in 
</S>Operators and Expressions.</T>) Many built-in functions return NULL when they are passed NULL.

>
			 3 1 0 0 0 0 0 1 0 0 0 0
The NULL value is provided for your programming convenience: for example, to represent errors in your script, or the absence of a result. To determine if a variable contains the NULL value, use the IsNull function.

>
			 4 1 0 0 0 0 0 1 0 0 0 0
<:f>LotusScript never generates the NULL value if the NULL keyword doesn't appear in the script. So if you don't use it, you never have to test for it.

>
			 5 0 0 0 0 0 0 1 0 0 0 0
<:f>EMPTY

>
			 5 1 0 0 0 0 0 1 0 0 0 0
The initial value of a Variant variable. If converted to a string, it is 
<:f,QCourier,>"<:f,QCourier,>"<:f> (the empty string). If converted to a number, it is 0 (zero). To test a variable for the EMPTY value, use the IsEmpty function. There is no keyword to represent EMPTY.

>
			 6 0 0 0 0 0 0 1 0 0 0 0
NOTHING

>
			 6 1 0 0 0 0 0 1 0 0 0 0
The initial value of an object reference variable. As soon as you assign a specific instance to the variable using New, the variable no longer contains NOTHING. You can explicitly assign the value NOTHING to an object reference variable. To test a variable 
for the NOTHING value, use the Is operator.<-!><-!>

>
			 7 0 0 0 0 0 0 1 0 0 0 0
PI

>
			 7 1 0 0 0 0 0 1 0 0 0 0
The ratio of the circumference of a circle to its diameter. This constant can be assigned to any numeric variable, or used in numeric expressions.<-!><-!>

>
			 8 0 0 0 0 0 0 1 0 0 0 0
TRUE and FALSE

>
			 8 1 0 0 0 0 0 1 0 0 0 0
The numeric values -1 and 0 respectively. These values are returned by all comparison and logical operations. In an If, Do, or While statement, which test for TRUE or FALSE, any non-zero value is considered TRUE.<-!><-!>

>
		[e]
	[tble]
[lay]
	Standard
	3079
	[rght]
		12960
		10166
		1
		960
		1200
		3
		960
		720
		0
		1
		0
		1
		0
		2
		1
		960
		9446
		5
		1
		720
		1
		1440
		1
		2880
		1
		4320
		1
		5760
	[lft]
		12960
		10166
		1
		720
		1200
		3
		960
		960
		0
		1
		0
		1
		0
		2
		1
		720
		9206
		5
		1
		720
		1
		1440
		1
		2880
		1
		4320
		1
		5760
	[hlft]
	[lyfrm]
		1
		3008
		0
		0
		10166
		960
		0
		1
		3
		1 0 0 0 0 0 0
		0
		0
		1
	[frmlay]
		960
		10166
		1
		720
		180
		3
		480
		960
		0
		1
		0
		1
		1
		0
		1
		720
		9206
		0
	[txt]
@right footer@LotusScript Language Reference	<:X3,0;EditDate %Da>10/03/94<:X~3,0;EditDate %Da>

>
	[hrght]
	[lyfrm]
		1
		11200
		0
		0
		10166
		960
		0
		1
		3
		1 0 0 0 0 0 0
		0
		0
		2
	[frmlay]
		960
		10166
		1
		960
		180
		3
		480
		720
		0
		1
		0
		1
		1
		0
		1
		960
		9446
		0
	[txt]
@right footer@<:X3,0;EditDate %Da>10/03/94<:X~3,0;EditDate %Da><:f>	LotusScript Language Reference

>
	[flft]
	[lyfrm]
		1
		5056
		0
		11760
		10166
		12960
		0
		1
		3
		1 0 0 0 0 0 0
		0
		0
		3
	[frmlay]
		12960
		10166
		1
		720
		480
		3
		11940
		960
		0
		1
		0
		1
		1
		0
		1
		720
		9206
		0
	[txt]
@left footer@page <:P10,0,>	Lotus Strictly Private

>
	[frght]
	[lyfrm]
		1
		13248
		0
		11760
		10166
		12960
		0
		1
		3
		1 0 0 0 0 0 0
		0
		0
		4
	[frmlay]
		12960
		10166
		1
		960
		480
		3
		11940
		720
		0
		1
		0
		1
		1
		0
		1
		960
		9446
		0
	[txt]
@right footer@Lotus Strictly Private	page <:P10,0,>

>
[elay]
[l1]
	0
[pg]
	4
	11 184 14 32 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
	26 43 11 32 1 0 0 220 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
	44 169 39 32 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
	67 165 61 0 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
[edoc]
@Chapter Title@<:#1364,8486><:f><:f>Chapter 1  <**>Language Basics

<:#600,8486><:f>LotusScript is a programming language that lets you automate your work in Lotus</n> products. You can use it for a wide variety of tasks, from creating simple macros to developing complex cross-product applications.

@Ahead@<:#410,8486><:f><:f>Scripts<:X8,1;Index "Language basics" #><:f><:X8,1;Index "Scripts" #><:X8,1;Index "Source code" #><:X8,1;Index "Modules" #>

@1st Paragraph@<:#600,8486><:f>A script is the source language form of a LotusScript application. When the script has been compiled and loaded, it is a module. The environment in which you write, debug, and run scripts depends on the product with which you are using LotusScript.

<:#600,8486><:f>Some products can automate parts of the scripting process, restricting or eliminating the need to use parts of LotusScript. See your product documentation for more information.

@Bhead@<:#280,8486><:f>Source Statements<:X8,1;Index "Statements" #><:X8,1;Index "Directives" #><:X8,1;Index "% directive indicator" #><:X8,1;Index "Comments" #><:X8,1;Index "Remarks" #><:X8,1;Index "REM" #>

@1st Paragraph@<:#1000,8486><:f>A script is composed of statements in the LotusScript language. Each statement consists of keywords, operators, literals, names, and punctuation, written according to the syntax rules for that kind of statement. The language includes several dozen kinds
 of statements. These are documented in alphabetical order in Chapter 11, 
</S>Functions and Statements</T> (together with the built-in functions).

<:#600,8486><:f>The statements of a script are written as lines of text. These lines are processed one after the other by the LotusScript compiler to produce a module that LotusScript can run. Another kind of statement, called a directive, is treated specially by the c
ompiler:

@bullet@<:#720,8486>The %<:f>Rem...<:f>%<:f>EndRem directive. The keywords %<:f>Rem and %<:f>EndRem indicate the beginning and end of a comment of any length. The compiler ignores the lines that appear between these keywords. 

@bullet@<:#720,8486>The %Include directive. When the compiler encounters this in a script, it inserts the contents of another designated file of ASCII text in the script at that point and then continues compiling line by line, beginning with the first line of the included file
.

<:#600,8486><:f>A script can also include one-line comments: either the contents of a Rem (for 
</S>remark</T>) statement, or within a line, following an apostrophe (<:f,QCourier,>'<:f>). The compiler also ignores these.

@Chead@<:#240,8486><:f>Related topics

@popref@<:#240,8486><:f>%Include Directive: to include another script source file during compilation

@popref@<:#240,8486>%Rem...%EndRem Directives: to insert a multi-line comment in a script

@Bhead@<:#280,8486><:f>Statements and Lines<:X8,2;Index "Statements" #><:X8,2;Index "_ continuation character" #><:X8,2;Index "Statements" # "continuation ( _ )"><:X8,2;Index "Continuation character ( _ )" #><:X8,2;Index "Line-continuation character ( _ )" #><:X8,2;Index "REM" #>
<:X8,2;Index "%REM" #><:X8,2;Index "%ENDREM" #><:X8,2;Index "ENDREM" #><:X8,2;Index "%INCLUDE" #><:X8,2;Index "INCLUDE" #>

@1st Paragraph@<:#600,8486><:f>The statements of a script are written as lines of text. The text on a line can begin at the left margin, or it can be indented on the line without affecting the meaning. The script can include blank lines without effect.

<:#400,8486><:f>Statements are commonly written one to a line. This example shows a sample script of three statements, each on its own line:

@mono@<:#660,8486>DIM X AS VARIANT<**>X = DATENUMBER(1947, 10, 8)<**>PRINT X

<:#400,8486><:f>Except as described below, LotusScript regards a<+!><+"> <-"><-!>newline as marking the end of a statement. The beginning of the next line starts a new statement.

<:#600,8486><:f>To write a statement on two or more lines, use the line-continuation character _ (underscore) at the end of each line to be continued. The following example is the same script as above:

@mono@<:#880,8486>DIM X _<**>AS VARIANT<**>X = DATENUMBER(1947, 10, 8)<**>PRINT X

<:#600,8486><:f>This enables you to break a long statement to enhance readability, or break up any statement that can be more conveniently written on several lines. The underscore used to continue a line must be preceded by at least one space.

<:#800,8486><:f>The apostrophe (<:f,QCourier,>'<:f>) designates the rest of the line as a comment. When LotusScript processes the statements in a script, comments are ignored. So a one-line comment does not interfere with line continuation. This script is no different 
from the preceding example:

@mono@<:#880,8486>DIM X _			'Declare X to accept a date value<**>AS VARIANT<**>X = DATENUMBER(1947, 10, 8)<**>PRINT X

<:#400,8486><:f>However, since the comment is ignored, any line-continuation character must precede the start of the comment. This example would be illegal:

@mono@<:#1100,8486>DIM X			'Declare X to accept a date value _<**>AS VARIANT<**>X = DATENUMBER(1947, 10, 8)<**>PRINT X

<:#600,8486><:f>The underscore is within the comment, and is therefore ignored. LotusScript attempts to process the first two lines as separate statements, but AS VARIANT is not a statement.

<:#1000,8486><+!>Note  <-!>Block statements in LotusScript follow a different rule for line continuation. Within a block statement, some parts of the statement can be written on separate lines without using an underscore for continuation. To determine whether line-conti
nuation characters are needed in a particular statement, see the description of that statement in Chapter 11, 
</S>Functions and Statements.</T>

@Chead@<:#240,8486>Related topics

@popref@<:#240,8486>Block Statements

@Bhead@<:#280,8486><:f><:f>Multiple Statements on a Line<:X8,3;Index "Statements" #><:X8,3;Index "Statements" # "two or more per line"><:X8,3;Index "" # " Statement separator"><:X8,3;Index "Statement separator ( " # " )">

@1st Paragraph@<:#600,8486><:f>Any number of statements can appear on the same line, as many as will fit. A colon (:) separates one statement from the next beginning on the same line. The following is equivalent to three lines written one after the other:

@mono@<:#220,8486>DIM X AS VARIANT : X = DATENUMBER(1947, 10, 8) : PRINT X

<:#400,8486><:f><:f>With few exceptions, any statement can start within a line, following another statement and a colon. The exceptions are:

@bullet@<:#240,8486>The <:f>%Include directive. This must be first on a line.

@bullet@<:#480,8486>The %<:f>Rem...%EndRem directives. The keywords %<:f>Rem and %EndRem must each be first on a line.

@bullet@<:#240,8486>Any labeled statement. The statement label must be first on a line.

@Chead@<:#240,8486><:f>Related topics

@popref@<:#240,8486><:f>Labels

@popref@<:#240,8486>%Include Directive: to include another script source file during compilation

@popref@<:#240,8486>%Rem...%EndRem Directives: to insert a multi-line comment in a script

@Bhead@<:#280,8486><:f>Block Statements<:X8,3;Index "Statements" #><:X8,3;Index "Block statements" #><:X8,3;Index "Multi-line statements" #>

@1st Paragraph@<:#400,8486><:f>Some statements can appear on multiple lines and are delimited by two or more keywords; they often contain other statements. These are called block statements. 

<:#600,8486>For example, the For...Next statement is a block statement: it begins with For, ends with Next, and includes one or more statements that are executed a specified number of times. Its syntax is represented by:

<:R1,4,1,1170,1,2869,1,3347,1,3826,><:#600,8486><:f><+!>For<-!> <+">count_var<-"> <+!>=<-!> <+">first<-"> <+!>To<-!> 
<+">last<-"> <[><+!>Step<-!> <+">step<-">]<**>	<[><+">statements<-">]<**><+!>Next<-!> <[><+">count_var<-">]

<:R><:#800,8486><:f>Depending on the type of statement, there can be one or more <+">statements<-"> units between the block statement</R>s delimiters. For example, an If...Then...Else...End If statement has two groups of statements within it: the 
</S>Then group</T> of statements and the </S>Else group</T> of statements.

<:#200,8486><:f><:f>The following lists describe all of the block statements in LotusScript:

@Chead@<:#480,8486>Declarations for subprograms (functions, subs, and properties). The corresponding statements are:

@popref@<:#240,8486><:f>Function...End Function Statement: to define a function

@popref@<:#240,8486>Sub...End Sub Statement: to define a sub

@popref@<:#240,8486><:f>Property Get/Set...End Property Statements: to define a property

@Chead@<:#240,8486><:f>Declarations for classes and types. The statements are:

@popref@<:#240,8486><:f>Class...End Class Statement: to define a class

@popref@<:#240,8486><:f>Type...End Type Statement: to define a type

@Chead@<:#480,8486><:f>Control statements, in which other statements are executed (or skipped over) based on some condition. The statements are:

@popref@<:#480,8486><:f>Do...Loop Statement: to execute a group of statements repeatedly while or until a condition is TRUE

@popref@<:#240,8486>For...Next Statement: to execute a group of statements a specific number of times

@popref@<:#480,8486><:f>ForAll...End ForAll Statement: to execute a group of statements repeatedly for each element of an array or list

@popref@<:#240,8486><:f>If...Then...Else...End If Statement: to conditionally execute a group of statements

@popref@<:#240,8486>Select Case...End Select Statement: to select and execute a group of statements

@popref@<:#240,8486><:f>While...Wend Statement: to repeat a group of statements while a condition is TRUE

@popref@<:#240,8486>With Statement: to work with a single object in a group of statements

@Chead@<:#240,8486>Syntax of block statements

@1st Paragraph@<:#1200,8486><:f>In LotusScript documentation, the syntax description of a block statement appears on multiple lines to illustrate how you can format it within your script. Generally, the statements that delimit the block statement don</R>t use the line-continuation cha
racter because LotusScript already expects to see them on different lines. Any other statements within those delimiters require the line-continuation character ( _ ) if they run onto an additional line.

@Chead@<:#240,8486><:f>Restrictions on block statements

@1st Paragraph@<:#400,8486><:f>There are some restrictions on the statements that can appear within the delimiting statements of a block statement. 

<:#600,8486><:f>Within a block statement, a name can have a different meaning than outside of that statement. Sometimes a name is meaningful only within the block statement (for example, the 
<+">ref_var<-"> in a Forall...End Forall statement).

<:#200,8486><:f>Within a block statement, there are special rules for the flow of execution.

<:#400,8486><:f>For information on a particular block statement, see the statement descriptions in Chapter 11, 
</S>Functions and Statements.</T>

@Ahead@<:#410,8486><:f>Language Elements<:X8,5;Index "Elements of statements" #><:X8,5;Index "Literals" #><:X8,5;Index "Identifiers" #><:X8,5;Index "Operators" #><:X8,5;Index "Keywords" #><:X8,5;Index "Special characters" #><:X8,5;Index "White space" #><:X8,5;Index "Names" #>

<:#600,8486><:f>LotusScript recognizes five kinds of language elements in the statements in a script. Every statement is a sequence of these elements, written according to the syntax rules for that kind of statement.

<:#400,8486><:f>The following table shows the kinds of language elements available within LotusScript. 

<:S+120><:f><:t3>

<:#800,8486><:f>Within a statement, one element is sometimes separated from the next by white space: a space or a tab. Where white space is legal, usually a single space separates two elements. Extra white space can be used to make a statement more readable, but it has
 no effect.

<:#800,8486><:f,,0,0,0>White space is needed primarily to separate names and keywords, or to make the use of a special character unambiguous. It is not needed with most non-alphanumeric operators. It is often incorrect to use white space around a special character, suc
h as a da<:f,,0,0,0>ta type suffix character appended to a name.

@Chead@<:#240,8486><:f>Related topics

@popref@<:#240,8486><:f>Identifiers

@popref@<:#240,8486>Keywords

@popref@<:#240,8486>Literals

@popref@<:#240,8486>Operators and Expressions

@popref@<:#240,8486>Punctuation and Special Characters

@popref@<:#240,8486>Source Statements

@Bhead@<:#280,8486><:f>Literals<:X8,6;Index "Literals" #>

@1st Paragraph@<:#200,8486><:f>Literals consist of numeric literals and string literals.

<:#400,8486><:f>A numeric literal represents an ordinary number. Numeric literals are also called literal numbers, or just numbers.

<:#400,8486><:f>A string literal represents text. String literals are also called literal strings, or just strings.

@Bhead@<:#280,8486><:f><:f>Numbers<:X8,6;Index "Numbers" #><:X8,6;Index "Values" # " literal numbers">

@1st Paragraph@<:#600,8486><:f>Literal numbers in LotusScript include numbers expressed as decimals (for example, 7.77), or in scientific notation (7.77E+02); or as decimal integers (777); or as binary, octal, or hexadecimal integers.

@Chead@<:#240,8486><:f>Decimal numbers and numbers in scientific notation

@1st Paragraph@<:#400,8486><:f>The legal range of these numbers is the range for Double values. A decimal number or a number in scientific notation has the data type Double.

@Chead@<:#240,8486><:f>Integers

@1st Paragraph@<:#600,8486><:f>The legal range of a decimal, binary, octal, or hexadecimal integer is the range for Long values. An integer has the data type Integer if its value is within the range for Integer values, and otherwise it has the data type Long.

<:#400,8486><:f>Binary (base 2), octal (base 8), and hexadecimal (base 16) integers are written as shown in the following table.

<:t4>

@Bhead@<:#280,8486><:f><:f>Strings<:X8,7;Index "Strings" #><:X8,7;Index "Values" # " literal strings"><:X8,7;Index "Empty string" #>

@1st Paragraph@<:#400,8486><:f>A literal string in LotusScript is a string of characters enclosed in one of the following delimiters:

@bullet@<:#240,8486>Double quotation marks ( " )

@bullet@<:#240,8486>Vertical bars ( | )

@bullet@<:#240,8486>Braces ( { } )

@1st Paragraph@<:#400,8486>A literal string can include any character. Its maximum length is 16,000 characters. The empty string has no characters at all; it is represented by 
<+!><:f,QCourier,>""<-!><:f>.

@Chead@<:#240,8486><:f>Including delimiters within strings

<:#400,8486>To include a quotation mark in a string enclosed in quotation marks, use two quotation marks (<+!><:f,QCourier,>""<-!><:f>). For example, this Print statement:

@mono@<:#220,8486>PRINT "This is a quotation mark "" within a string."

<:#200,8486><:f>prints the following:

@mono@<:#220,8486>This is a quotation mark " within a string.

<:#400,8486><:f>Likewise, to include a vertical bar in a string enclosed in vertical bars, use two vertical bar characters.

<:R1,5,1,714,1,1443,1,2880,1,4323,1,5763,><:#400,8486><:f>If you are using a brace-delimited string, you must double the closing brace if you want it to be part of the string. For example, this Print statement:

@mono@<+@><:R1,5,1,714,1,1443,1,2880,1,4323,1,5763,><:#220,8486>PRINT { This is a brace statement with { HELLO }} within a string. }

<:R1,5,1,714,1,1443,1,2880,1,4323,1,5763,><:#200,8486><:f>prints the following:

@mono@<+@><:R1,5,1,714,1,1443,1,2880,1,4323,1,5763,><:#220,8486>This is a brace statement with { HELLO } within a string.

<+@><:R1,5,1,714,1,1443,1,2880,1,4323,1,5763,><:#200,8486>Note that only the closing brace for HELLO in the Print statement is doubled.

@Chead@<:R1,5,1,714,1,1443,1,2880,1,4323,1,5763,><:#240,8486>Spanning multiple lines

<:R1,5,1,714,1,1443,1,2880,1,4323,1,5763,><:#600,8486>If you want a string constant to span multiple lines, enclosed it in bars or braces, then use a newline character. (The newline character is considered part of the string.)  For example:

@mono@<:R><:#440,8486>PRINT |This is a string<**>that includes a line break|

<:R1,5,1,714,1,1443,1,2880,1,4323,1,5763,><:#400,8486><:f>However, string constants enclosed in double quotes cannot span multiple lines.. Also, you cannot nest strings that are delimited by a vertical bar or braces.

@Chead@<:R><:#240,8486>Concatenating two strings

<:#400,8486>You can concatenate two strings using the plus sign (+) or ampersand (&). For example:

@mono@<:#220,8486>PRINT "This is" + " more text"

<:#400,8486><:f></S>This is</T> and </S> more text</T> are concatenated into the string 
</S>This is more text</T> (note the space preceding </S>more</T>), and that string is printed.

@Chead@<:#240,8486><:f>String comparisons

@1st Paragraph@<:#800,8486><:f>Two strings can be compared using the relational operators. When comparing strings, LotusScript examines the two strings character by character, starting with the first character in each string. The collating sequence values (positions in the character 
sort sequence) of the two characters are compared.

<:#400,8486><:f>If these values are not<+"> <-">equal, the string whose character has the larger collating sequence value (appears later in the sort sequence) is the larger<+"> 
<-">string. For example:

@mono@<:#220,8486>PRINT "bb" <;> "auk"	'Prints -1 (TRUE)

<:#600,8486><:f>b is later in the sort sequence than a, so the string </S>bb</T> is larger than the string 
</S>auk</T>. That is, the result of comparing the first two characters using the greater-than operator (<+!><;><-!>) is TRUE, which is represented in LotusScript by the value -1.

<:#600,8486><:f>If the collating sequence values of the pair of characters are the same, and<+"> 
<-">both strings contain more characters, then the character comparison proceeds to the next character. For example:

@mono@<:#220,8486>PRINT "bb" <;> "bark"	'Prints -1 (TRUE)

<:#400,8486><:f>The first character in the two strings compares equal. Comparing the second characters determines that 
</S>bb</T> is larger than </S>bark</T> because b is larger than a.

<:#400,8486><:f>If the end of both<+"> <-">strings is reached simultaneously, the strings are equal. In this example, the strings are the same length, with every pair of characters matching.

@mono@<:#220,8486>PRINT "baa" <;> "baa"	'Prints 0 (FALSE)

<:#200,8486><:f>Otherwise the longer string is the larger string. For example:

@mono@<:#220,8486>PRINT "baas" <;> "baa"	'Prints -1 (TRUE)

<:#600,8486><:f>You can use the Option Compare Case and Option Compare NoCase statements to make string comparison case sensitive and case insensitive, respectively. The default is case sensitive.

@Chead@<:#240,8486><:f>Related topics

@popref@<:#240,8486><:f>String Data Type

@popref@<:#240,8486>Option Compare Statement

@Bhead@<:#280,8486><:f>Identifiers<:X8,9;Index "Identifiers" #><:X8,9;Index "Names" #><:X8,9;Index "Escape character" #><:X8,9;Index "Tilde (~) escape character" #><:X8,9;Index "~ (tilde) escape character" #>

@1st Paragraph@<:#800,8486><:f>An identifier is the name you give to a variable, a constant, a type, a class, or a subprogram (a function, sub, or property). An identifier can also be used as a label if you omit the data type suffix character. In the LotusScript documentation, identi
fiers are referred to as </S>names.</T>

<:#200,8486>Here</R>s how to construct a name:

@bullet@<:#240,8486><:f><:f>The first character in a name must be a letter (upper or lower case).

@bullet@<:#240,8486>The remaining characters can be letters, digits, or the underscore character.

@bullet@<:#480,8486>A data type suffix character (one of the characters %, &, !, #, @, and $) can be appended to a name.

@bullet@<:#480,8486>The maximum length of a name is 40 characters, not including the optional suffix character.

@bullet@<:#240,8486>Names are case-insensitive. For example, VerED is the same name as vered.

<:#800,8486>Lotus product and OLE classes may define property or method whose identifiers use illegal LotusScript characters. Variables registered by Lotus products might also use illegal LotusScript characters. In these cases, prefix the illegal character with a tilde
 (~) to prevent error messages. For example:

@mono@<:#1100,8486>CALL ProductClass.$MyMethod	'Illegal<**>CALL ProductClass.~$MyMethod	'Legal<**><**>X = OLEClass.my.prop		'Illegal<**>X = OLEClass.my~.prop	'Legal

@Chead@<:#240,8486><:f>Related topics

@popref@<:#240,8486><:f>Declaring Data Types with Suffix Characters

@popref@<:#240,8486>Labels

@popref@<:#240,8486>Constants

@popref@<:#240,8486>Variables

@popref@<:#240,8486>Class...End Class Statement: to define a class

@popref@<:#240,8486>Const Statement: to declare a constant

@popref@<:#240,8486>Dim, Private, Public, and Static Statements: to declare a variable

@popref@<:#240,8486>Function...End Function Statement: to define a function

@popref@<:#240,8486>Sub...End Sub Statement: to define a sub

@popref@<:#240,8486>Type...End Type Statement: to define a type

@Bhead@<:#280,8486><:f>Operators and Expressions<:X8,10;Index "Operators" #><:X8,10;Index "Expressions" #><:X8,10;Index "Operators" # "binary and unary"><:X8,10;Index "Operands" #><:X8,10;Index "Logical operators" #><:X8,10;Index "Mathematical operators" #><:X8,10;Index "Arithmetic operators" #>
<:X8,10;Index "Relational operators" #><:X8,10;Index "String operators" #><:X8,10;Index "Text operators" #><:X8,10;Index "Elements of statements" # " operators"><:X8,10;Index "Parentheses" # " as an operator"><:X8,10;Index "Subexpressions" #><:X8,10;Index "Precedence order" #>
<:X8,10;Index "MOD" #><:X8,10;Index "OR" #><:X8,10;Index "XOR" #><:X8,10;Index "NOT" #><:X8,10;Index "AND" #><:X8,10;Index "IS" #><:X8,10;Index "LIKE" #><:X8,10;Index "EQV" #><:X8,10;Index "IMP" #>

@1st Paragraph@<:#200,8486><:f>An expression consists of operands combined with operators.

@bullet@<:#480,8486>An operand is a language element that represents a value. Operands include constants, literals, variables, functions, and properties.

@bullet@<:#480,8486>An operator determines how the value of the expression is computed from the operands.

<:#200,8486><:f>Every expression is either a numeric expression or a string expression.

@bullet@<:#960,8486>In a numeric expression, the operands and operators are numeric. This means that the data types of the operands are one of the five built-in numeric data types or the data type Variant. The operators must be defined to work on numeric values. (See the 
</S>Numeric operators</T> table, later in this section.)

@bullet@<:#720,8486>In a string expression, the operands are of data type String or Variant. The operators must be defined to work on string values. (See the 
</S>String operators</T> table, later in this section.)

<:#400,8486><:f>The simplest expression is a variable or a constant, with no operator at all. The next simplest is one operator with its operand or operands.

<:#600,8486>Every operator is either a binary operator (having two operands) or a unary operator (having one operand). In the tables below, the operators are binary unless designated 
</S>(Unary)</T>.

<:#1000,8486><:f>In more complex expressions, including two or more operators, some of the operands are themselves expressions, sometimes called subexpressions. LotusScript evaluates a complex expression by evaluating the subexpressions in a precedence order that is det
ermined by the operators used. That is, an operator with higher precedence is evaluated before an operator with lower precedence.

<:#1000,8486><:f>The four tables of operators that follow appear in precedence order: the parentheses operator has highest precedence, then the group of numeric operators, then the group of string operators, and then the Is operator. (A few exceptions are noted with the
 tables.)  Precedence order within the group of numeric operators and within the group of string operators is shown within the tables for these groups.

@Chead@<:#240,8486><:f>Parentheses

@Bhead@<:t5>

<:#400,8486><:f><:f>Parentheses are used to group components of an expression. They can be applied in both numeric expressions and string expressions.

@Chead@<:#240,8486><:f>Numeric operators

<:S+120><:f><:t6>

<:#1200,8486>In an expression that has two or more numeric operators, LotusScript evaluates the operators in the precedence order shown in the table: first exponentiation, then negation, and so on. When two operators in a numeric expression have the same precedence, lik
e multiplication and division, LotusScript associates their operands from left to right. For example,  A/B*C is evaluated as (A/B)*C, not as A/(B*C). The expression A/B/C is evaluated as (A/B)/C, not as A/(B/C).

<:#600,8486>The result of a numeric relational operation is one of the numeric values -1 (representing TRUE) or 0 (representing FALSE); or else NULL (in most cases when either of the operands is NULL).

<:#600,8486>The result of the other numeric operations is a numeric value, except for a logical operation where one of the operands is NULL. The result of such an operation is NULL except in these cases:

@bullet@<:#240,8486>If the operator is And and the other operand is FALSE, then the result is FALSE.

@bullet@<:#240,8486>If the operator is Or and the other operand is TRUE, then the result is TRUE.

@bullet@<:#240,8486>If the operator is Imp and the first operand is FALSE, then the result is TRUE.

@bullet@<:#240,8486>If the operator is Imp and the second operand is TRUE, then the result is TRUE.

@Chead@<:#240,8486><:f>String operators

@Bhead@<:t7>

<:#600,8486>The result of a string comparison (relational) operation or the Like operation is one of the numeric values -1 (representing TRUE) or 0 (representing FALSE). If one or more operands is NULL, the result is NULL.

<:#1000,8486>The concatenation operators in the table have higher precedence than the numeric comparison operators. The numeric comparison operators, the string comparison operators, and Like all have the same precedence: lower than + and &, and higher than the numeric 
logical operators. When two operators in a string expression have the same precedence, LotusScript associates their operands from left to right. 

@Chead@<:#240,8486><:f>Object reference comparison operator

<:t8>

@Chead@<:#240,8486><:f><:f>Related topics

@popref@<:#240,8486><:f>Built-In Constants and Values

@popref@<:#240,8486>Data Type Conversion

@popref@<:#240,8486>Literals

@Bhead@<:#280,8486><:f>Keywords<:X8,14;Index "Keywords" #><:X8,14;Index "Elements of statements" # " keywords">

@1st Paragraph@<:#600,8486><:f>A keyword is a word with a fixed spelling and a particular meaning in the LotusScript language. It is distinguished from a name, a word whose spelling and meaning you choose.

<:#200,8486>Keywords are used in these ways:

@bullet@<:#480,8486>As components of statements: for example, Open, or Print, or On. In LotusScript we refer to 
</S>the Open statement</T> or </S>the Print statement.</T>

@1st lev para@<:#960,8486>Different statements can begin with the same keyword: the On Error statement and the On Event statement, for example. When a statement also has a keyword or phrase to designate its end (a 
</S>block statement</T>), we refer to it as, for example, the While...Wend statement, or the Class...End Class statement.

@bullet@<:#960,8486>To name built-in functions, such as the Fix function for converting numbers, or the MessageBox function for interactive input. Some keywords that name built-in functions also begin statements: for example, Mid is both the name of a function and the first wo
rd of a statement.

@bullet@<:#480,8486>To name the built-in data types. These are named by the keywords Currency, Double, and so on.

@bullet@<:#480,8486>To identify two special-purpose subs within a user-defined class, the subs New and Delete.

@bullet@<:#480,8486>To identify built-in values with special meanings, in<:f180,BArial,0,0,0>cluding NULL , NOTHING , TRUE<:f>, FALSE, and PI.

@bullet@<:#720,8486>To name operators, such as Eqv and And. Some operators are named by keywords, and some by special characters and special-character pairs such as * (asterisk) for multiplication or 
<+!><:f,QCourier,><<<;><-!><:f> for inequality.

<:f>Keywords are </S>reserved words</T>: their meaning is specified by LotusScript, and they cannot be used with any other meaning in a script. The one exception to this rule is that most keywords can be used as names to name variables within a type, and va
riables and subprograms within a class. <:f>The following list shows all of the LotusScript language keywords.<:f><:t0>

@Chead@<+@><:S+-1><:#240,8486>Related topics

@popref@<:#240,8486><:f>Block Statements

@popref@<:#240,8486>Identifiers

@popref@<:#240,8486>Operators and Expressions

@popref@<:#240,8486>Source Statements

@Bhead@<:#280,8486><:f>Punctuation and Special Characters<:X8,16;Index "Punctuation" #><:X8,16;Index "Special characters" #>

@1st Paragraph@<:#400,8486><:f>LotusScript uses special characters, including punctuation characters and others, for several purposes. Special characters are used to:

@bullet@<:#240,8486>Delimit literal strings

@bullet@<:#240,8486>Designate variables as having particular data types

@bullet@<:#240,8486>Punctuate lists, such as argument lists and subscript lists

@bullet@<:#240,8486>Punctuate statements

@bullet@<:#240,8486>Punctuate lines in a script

<:#800,8486><:f>The topic that follows, </S>Table of Punctuation and Special Characters,</T> is a quick reference for the common uses of the special characters. See the relevant specific topics elsewhere in this manual for details of how these characters are used<+!><+">
. <-!><-">Note also the following table.

<:t9>

@Chead@<:#240,8486><:f><:f><:f><:f><:f><:f>Related topics

@popref@<:#240,8486><:f>Block Statements

@popref@<:#240,8486>Identifiers

@popref@<:#240,8486>Operators and Expressions

@popref@<:#240,8486>Source Statements

@popref@<:#240,8486>Table of Punctuation and Special Characters

@Bhead@<:#280,8486><:f>Table of Punctuation and Special Characters<:X8,17;Index "Special characters" # " table"><:X8,17;Index "Punctuation" # " table"><:X8,17;Index "Table of special characters" #><:X8,17;Index "Characters" # " table">

@1st Paragraph@<:#200,8486><:f>The following table shows LotusScript special characters and describes their usage.

<:t10>

@Chead@<:#240,8486><:f><:f>Related topics

@popref@<:#240,8486><:f>Punctuation and Special Characters

@Ahead@<:#410,8486><:f>Variables<:X8,18;Index "Variables" # "defined">

@1st Paragraph@<:#400,8486><:f>A variable is an area of storage that you name; the value assigned to a variable can change during execution of a script.

<:#1200,8486><:f>You define a variable to be of a particular type, which restricts the kind of value(s) the variable can hold. You also define the scope of a variable, which determines when and how long the variable exists and to what parts of your application it is vis
ible. Typically, if you do not choose a particular type or scope for the variable, LotusScript chooses a type and scope by default.

<:#200,8486><:f><:f>A variable name can be any valid identifier.

@Bhead@<:#280,8486><:f>Data Types of Variables

@1st Paragraph@<:#600,8486><:f>The data type of a variable restricts the kind of data it can contain. The table below shows the built-in data types of variables, and the kind of value that a variable of each data type can hold.

<:t11>

<:#200,8486><:f><:f><:f>A variable must be of one of the following types:

@bullet@<:#720,8486>A built-in data type: one of the eight types listed above. Its value must be a number, a string, a date value, or one of the special values NULL or EMPTY. The variable is called a scalar variable. Its value is a scalar value.

@bullet@<:#720,8486>A user-defined type: a type defined by the user with a Type...End Type<:f> statement. The variable is called a type variable. It can only hold an item of that user-defined type.

@bullet@<:#960,8486>A class: a class defined by the user with a Class...End Class statement,  or a class defined by the Lotus product that LotusScript is running with. The variable is called an object reference variable. Its value can only be a reference to an instance of that
 class or of a derived class; or the special value NOTHING.

@bullet@<:#240,8486>LotusScript also defines two kinds of aggregate variables:

@bullet@<:#960,8486><:f>An array variable is an aggregate variable with one or more elements. The array variable has a single type: a built-in type, a user-defined type, or a class. Each element of the array can hold a single item of that type. Each element is accessed by a di
stinct set of subscripts attached to the variable name.

@bullet@<:#1200,8486>A list variable is an aggregate variable with zero or more elements. Like an array variable, the list variable has a single type: a built-in type, a user-defined type, or a class. Each element of the list can hold a single item of that type. Each element is
 accessed by a list tag attached to the variable name. The list tag for each element must be unique within the set of list tags for that list.

<:#1000,8486><:f><:f><:f>The Variant data type is a general-purpose data type. A Variant variable can contain a number, a string, a date value, an array, a list, an object, the value NULL, the value EMPTY, or the value NOTHING. A date value is an eight-byte floating-poi
nt value, in which the integer part represents a serial day counted from from 1/1/100 AD, and the fractional part represents the time as a fraction of a day, measured from midnight.

<:#200,8486><:f>To determine the type of data in a Variant variable, you use the Datatype function.

@Chead@<:#240,8486><:f>Related topics

@popref@<:#240,8486><:f>Arrays

@popref@<:#240,8486>Lists

@popref@<:#240,8486>Constants

@popref@<:#240,8486>Scope and Visibility of Variables

@popref@<:#240,8486>Variant Data Type

@popref@<:#480,8486>DataType Function: to determine the data type of the value currently assigned to a variable

@Bhead@<:#280,8486><:f>Declaring Variables<:X8,20;Index "Declaring variables" #><:X8,20;Index "Variables" # "declaring"><:X8,20;Index "Scope" # "of variables"><:X8,20;Index "PUBLIC" #><:X8,20;Index "PRIVATE" #><:X8,20;Index "STATIC" #>

@1st Paragraph@<:#400,8486><:f>To designate the name and data type of a variable, you declare it. Variables are ordinarily declared using the Dim statement, or one of its variations.

<:#1200,8486><:f>If a variable is used (referenced) before it is declared, LotusScript implicitly declares it for you. This makes it easy to write simple scripts. When LotusScript implicitly declares a variable, it chooses a data type and a scope for the variable. The d
ata type chosen for an implicitly declared variable is Variant, unless a data type suffix character is used on the variable name. The scope for an implicitly declared variable is the same as it would be if a Dim statement for it directly preceded its first 
use.

<:#600,8486><:f>To prevent LotusScript from implicitly declaring variables, use the Option Declare statement. This statement tells LotusScript to require explicit declarations for all your variables.

@Chead@<:#240,8486><:f>Related topics

@popref@<:#240,8486><:f>Dim, Private, Public, and Static Statements: to declare a variable

@popref@<:#240,8486>Option Declare Statement: to suppress implicit declaration of undeclared variables

@Bhead@<:#280,8486><:f>Scope and Visibility of Variables<:X8,21;Index "Declaring variables" #><:X8,21;Index "Variables" # "declaring"><:X8,21;Index "Scope" # "of variables"><:X8,21;Index "PUBLIC" #><:X8,21;Index "PRIVATE" #><:X8,21;Index "STATIC" #><:X8,21;Index "Visibility" # "of variables">
<:X8,21;Index "Variables" # "scope"><:X8,21;Index "Variables" # "visibility">

@1st Paragraph@<:#600,8486><:f>The following information is collected here for summary reference only. Details are found in the descriptions of individual topics in Chapter 11, 
</S>Functions and Statements.</T>

<:#1000,8486><:f>Within a module, there can be three different kinds of scope, or domains where a variable can be declared. The three kinds of scope are module scope, subprogram scope, and type or class scope. The scope where a variable is declared affects the visibilit
y of the variable: where the variable can be referred to in the module and in other modules.

<:t2>

@Chead@<:#240,8486><:f><:f><:f>Related topics

@popref@<:#240,8486><:f>Name Conflicts and Shadowing

@popref@<:#240,8486>Dim, Private, Public, and Static Statements: to declare a variable

@popref@<:#240,8486><:f>Use Statement: to load a module containing Public definitions

@Bhead@<:#280,8486><:f>Name Conflicts and Shadowing<:X8,22;Index "Declaring variables" #><:X8,22;Index "Variables" # "declaring"><:X8,22;Index "Scope" # "of variables"><:X8,22;Index "Variables" # "scope"><:X8,22;Index "Conflicts between names" #><:X8,22;Index "Shadowing" #><:X8,22;Index "Names" # "conflicts">
<:X8,22;Index "Identifiers" # "conflicts"><:X8,22;Index "Names" # "shadowing"><:X8,22;Index "Identifiers" # "shadowing">

@1st Paragraph@<:#400,8486><:f>Two variables or subprograms with the same name cannot be declared in the same scope.

<:#200,8486><:f>For example, the following two statements cannot exist within the same subprogram:

@mono@<:#440,8486>DIM BAIL AS INTEGER<**>DIM BAIL AS STRING

<:#400,8486><:f>The result is a name conflict. The compiler reports an error when it encounters a name conflict in a script.

<:#200,8486><:f>All of the following result in name conflicts:

@bullet@<:#240,8486>Within a module:

@indent bullet@<:#480,8486><:f>Two module-level constants, variables, subprograms, types, or classes with the same name

@indent bullet@<:#240,8486>A type with the same name as a class

@indent bullet@<:#480,8486>A module-level variable with the same name as a module-level constant or subprogram

@indent bullet@<:#240,8486>A module-level constant with the same name as a module-level subprogram

@bullet@<:#240,8486>In different modules:

@indent bullet@<:#240,8486><:f>A Public type with the same name as a Public class

@indent bullet@<:#480,8486>A Public module-level variable with the same name as a Public module-level constant or subprogram

@indent bullet@<:#480,8486>A Public module-level constant with the same name as a Public module-level subprogram

@bullet@<:#240,8486>Within a class, two members with the same name

@bullet@<:#240,8486>Within a type, two members with the same name

@bullet@<:#240,8486>Within a subprogram:

@indent bullet@<:#240,8486><:f>Two subprogram arguments with the same name

@indent bullet@<:#240,8486>Two labels with the same name

@indent bullet@<:#240,8486>Two variables with the same name

@indent bullet@<:#240,8486>A subprogram argument and a variable with the same name

<:#1400,8486><:f>Variables or subprograms declared in different scopes can have the same name, however. When such a name is used in a reference, LotusScript interprets it as referring to the variable or subprogram declared in the innermost scope that is visible where th
e reference is used. A variable or subprogram of the same name declared at a scope outside of this innermost visible scope, is not accessible. This effect is called shadowing: the outer declaration(s) of the name are 
</S>shadowed</T>, or made invisible, by the inner declaration.

@Chead@<:#240,8486><:f>Example

@mono@<:#6160,8486>CLASS MyClass<**>  X AS INTEGER			'Declare a class-level X<**><**>  SUB NEW<**>    X = 2				'Give the class-level X the value 2<**>  END SUB<**><**>  SUB MySub1<**>    DIM X AS INTEGER		'Declare a sub-level X<**>    X = ME.X - 1			'Give it the value 1<**>  
  PRINT X				'Print the sub-level X<**>  END SUB<**><**>  SUB MySub2<**>    PRINT X				'Print the class-level X<**>  END SUB<**>END CLASS<**>DIM X AS INTEGER			'Declare a module-level X<**><**>SUB StartUp<**>  X = 3						'Give the module-level X the value 3
<**>  DIM A AS NEW MyClass	'Give the class-level X the value 2<**>								'(sub NEW in the class gets called)<**>  A.MySub1					'Give the sub-level X the value 1 
<**>								'and print it<**>  A.MySub2					'Print the class-level X<**>  PRINT X					'Print the module-level X<**>END SUB

<:#600,8486><:f>The above script prints the numbers 1, 2, and 3. However, it stores (in reverse order) the values it prints, demonstrating that there are, indeed, three variables named X. One is of module scope, one is of class scope, and one is of subprogram scope.

<:#200,8486><:f,,0,0,0>One noteworthy line in the above example is:

@mono@<:#220,8486>X = ME.X - 1		'Give X the value 1

<:#1000,8486><:f,,0,0,0>This line occurs in MySub1 inside MyClass. The use of the 
<:f>Me <:f,,0,0,0>keyword allows a member subprogram to access members of the class that would otherwise be shadowed. In the above case, Me.X refers to the class-level X, which has the value 2. The 
<-!><:f>Me <:f,,0,0,0>is necessary because the class-level X is currently shadowed by the subprogram-level X.

@Chead@<:#240,8486><:f>Related topics

@popref@<:#240,8486><:f>Declaring Variables

@popref@<:#240,8486>Class...End Class Statement: to define a class

@Bhead@<:#280,8486><:f>Declaring Data Types with Suffix Characters<:X8,24;Index "Suffix characters" #><:X8,24;Index "Data types" # "declaring implicitly"><:X8,24;Index "Variables" # "implicit declaration"><:X8,24;Index "Declarations" # "implicit"><:X8,24;Index "Implicit declarations" #>
<:X8,24;Index "% data type suffix" #><:X8,24;Index "& data type suffix" #><:X8,24;Index "! data type suffix" #><:X8,24;Index "# data type suffix" #><:X8,24;Index "@ data type suffix" #><:X8,24;Index "$ data type suffix" #>

@1st Paragraph@<:#400,8486><:f>By appending one of the following characters to the name of a variable, constant, function, or property, or to a numeric literal, you can specify its data type.

<:t1>

@Chead@<:#240,8486><:f><:f>Example 1

@mono@<:#220,8486>DIM SampleData$

<:#400,8486><:f>The variable name SampleData has the data type suffix character $ appended, so the data type of SampleData is String.

@Chead@<:#240,8486><:f>Example 2

@mono@<:#220,8486>DIM NewData

<:#400,8486><:f>No suffix character is appended to the declared name NewData, so the data type of NewData is Variant.

@Chead@<:#240,8486><:f>Example 3

<:#400,8486><:f>You cannot use a data type suffix character within an explicit variable declaration. For example:

@mono@<:#220,8486>DIM Penguint% AS INTEGER	'Error

<:#400,8486><:f>A name does not include the suffix character, if any, that appears in its declaration (explicit or implicit). 

@Chead@<:#240,8486><:f><:f>Example 4

<:#400,8486>No two variables, constants, functions, or properties in the same scope can have the same name. For example:

@mono@<:#1320,8486>Penguint% = 3				'Implicit declaration of Penguint<**>								'Establishes data type of Penguint 
<**>								'as INTEGER<**>Penguint$ = "SetupName"	'Error. Cannot redeclare Penguint, and<**>								'cannot refer to Penguint with another<**>								'data type suffix character.

@Chead@<:#240,8486><:f><:f>Example 5

<:#400,8486>You can use any explicitly declared variable with or without providing its data type suffix character. For example:

@mono@<:#660,8486>DIM Penguint AS INTEGER	'Explicit declaration of Penguint<**>Penguint% = 1				'Assigns the value 1 to Penguint<**>PRINT Penguint			'Prints 1

@Chead@<:#240,8486><:f><:f>Example 6

<:#400,8486>If a variable is implicitly declared, you must use it exactly as it first appears in the script, including the suffix character, if any. For example:

@mono@<:#660,8486>Penguint% = 1				'Implicit declaration of Penguint<**>PRINT Penguint%			'Prints 1<**>PRINT Penguint			'Error

@Bhead@<:#280,8486><:f>Establishing the Data Type of an Implicitly Declared Variable<:f><:X8,26;Index "Suffix characters" #><:X8,26;Index "Variables" # "implicit declaration"><:X8,26;Index "Declarations" # "implicit"><:X8,26;Index "Implicit declarations" #><:f>

@1st Paragraph@<:#600,8486>A referenced variable is implicitly declared if its name has not been explicitly declared, and is not defined as a Public name in another module that is used by the current module.

<:#400,8486><:f>LotusScript declares the variable as a scalar variable, establishing its data type by the following rules:

@bullet@<:#480,8486>If the name includes a data type suffix character, that determines the variable's data type

@bullet@<:#480,8486>If no data type suffix character is specified, the data type is determined by the applicable Def<+">type<-">, if any

@bullet@<:#240,8486>If there is no applicable Def<+">type<-">, the variable is of type Variant

<:#400,8486>Once a variable has been implicitly declared, it can't be explicitly declared in the same scope.

<:#400,8486><:f>An implicit declaration cannot be used to override an existing declaration of the same variable in an outer scope.

@Chead@<:#240,8486><:f>Related topics

@popref@<:#240,8486><:f>Declaring Data Types with Suffix Characters

@popref@<:#480,8486><:f>Def<+">type<-"> Statements: to set the default data type for variables, functions, and properties whose names begin with certain letters

@Bhead@<:#280,8486><:f>How Variables Are Initialized<:X8,26;Index "Variables" # "initializing"><:X8,26;Index "Initialized values" #><:X8,26;Index "Index "Initial values" #" #>

@1st Paragraph@<:#400,8486><:f>When a script is run, all explicitly declared variables are initialized:<+"> 
<-">assigned an initial value.

<:#200,8486><:f>Variables are initialized on declaration as shown in this table.

<:t12>

<:#600,8486><:f><:f><:f>An array variable has a type just like an ordinary variable. Each element of an array variable has that same type. Each element is initialized like an ordinary variable of that type, as specified in the table.

<:#200,8486><:f>A list variable has no elements when it is declared. There is nothing to initialize.

@Chead@<:#240,8486><:f>Related topics

@popref@<:#480,8486><:f>DataType Function: to determine the data type of the value currently assigned to a variable

@Ahead@<:#410,8486><:f>Data Type Conversion<:X8,27;Index "Data types" # "converting"><:X8,27;Index "Conversion" # "of data types">

@1st Paragraph@<:#400,8486><:f>LotusScript sometimes converts values from one data type to another as needed. Numeric values are automatically converted for the purpose at hand. For example:

@mono@<:#1540,8486>DIM X AS INTEGER, Y AS INTEGER, Z AS INTEGER<**>X = 1.6<**>PRINT X			'Prints 2<**>Y = 1.5<**>PRINT Y			'Prints 2<**>Z = 2.5<**>PRINT Z			'Prints 2

<:#800,8486><:f>In this example, the value 1.6 is assigned to X. Since X is an Integer variable, 1.6 is converted to an integer before the assignment takes place. Conversion of floating point values (Single and Double values) to integer values (Integer and Long values)
 rounds the value to the nearest integer, which is 2 in this case.

<:#600,8486><:f>When 1.5 is assigned to Y, LotusScript rounds it to 2, the nearest even integer. A floating-point value exactly halfway between two integer values is always rounded to the even integer value. So the value 2.5 is also rounded to 2 when it is assigned to 
Z.

<:#400,8486><:f>String data is sometimes converted to numbers and vice versa. See the descriptions of individual operators for the detailed rules that explain when this happens.

@Chead@<:#240,8486><:f>Related topics

@popref@<:#240,8486><:f>Conversion in Argument Passing

@popref@<:#240,8486>Conversion in Binary Operations

@popref@<:#240,8486>Operators

@popref@<:#240,8486>Variant Value Conversion

@popref@<:#480,8486>DataType Function: to determine the data type of the value currently assigned to a variable

@Bhead@<:#280,8486><:f>Conversion in Binary Operations<:X8,28;Index "Conversion" # "in binary operations"><:X8,28;Index "Data types" # "converting"><:X8,28;Index "Binary operations" # "data conversion in">

@1st Paragraph@<:#600,8486><:f>When two numeric values with different data types are used as operands for a binary operator, the data type of one operand can be converted to the data type of the other operand before the operation is evaluated. For example:

@bullet@<:#480,8486>If an operator has one Integer operand and one Long operand, the Integer value can be converted to a Long value before the operation is evaluated

@bullet@<:#480,8486>If an operator has one Single operand and one Double operand, the Single value can be converted to a Double value before the operation is evaluated

<:#400,8486><:f>If the operand being converted is a variable, the contents of the variable are not changed. The conversion is done only as part of evaluating the expression.

<:#400,8486><:f>The rules for conversion in operations are detailed in the documentation of individual operators.

@Chead@<:#240,8486><:f>Example 1

@mono@<:#1100,8486>DIM SInt AS INTEGER<**>DIM MyLong AS LONG<**>IF SInt% = MyLong& THEN	'Convert INTEGER to LONG for comparison<**>  '...<**>END IF

<:#200,8486><:f>The Integer value is converted to a Long value before the two values are compared.

@Chead@<:#240,8486><:f>Example 2

@mono@<:#1540,8486>DIM Sum AS VARIANT, Sint AS INTEGER<**>Sint = 42<**>Sum = Sint% + 1<**>PRINT DATATYPE(Sum)		'Prints 2 (INTEGER)<**>Sint = 32767				'Assigns the largest INTEGER value to Sint<**>Sum = Sint + 1&			'Converts Sum to LONG to prevent an overflow<**>PRINT DATATYPE
(Sum)		'Prints 3 (LONG)

@Chead@<:#240,8486><:f>Related topics

@popref@<:#240,8486><:f>Operators

@popref@<:#240,8486>Variant Value Conversion

@popref@<:#480,8486>DataType Function: to determine the data type of the value currently assigned to a variable

@Bhead@<:#280,8486><:f>Conversion in Argument Passing<:X8,29;Index "Conversion" # "in argument passing"><:X8,29;Index "Data types" # "converting"><:X8,29;Index "Argument passing" # "conversion in"><:X8,29;Index "Argument passing" # "by reference">

@1st Paragraph@<:#600,8486><:f>Type conversion can take place when an argument is passed by value to a subprogram. If the subprogram expects one numeric type, but an argument of another type is passed, the value is converted if possible. (It can be too large to be converted.)

<:#600,8486><:f>If an argument is passed by reference to a subprogram, the data type of the reference must match that of the declared argument, unless the declared argument is of type Variant.

@Chead@<:#240,8486><:f>Related topics

@popref@<:#240,8486><:f>Operators

@popref@<:#240,8486>Variant Value Conversion

@popref@<:#480,8486>DataType Function: to determine the data type of the value currently assigned to a variable

@Bhead@<:#280,8486><:f>Variant Value Conversion<:X8,29;Index "Conversion" # "in VARIANT values"><:X8,29;Index "Data types" # "converting"><:X8,29;Index "VARIANT" # "conversion in">

@1st Paragraph@<:#800,8486><:f>In general, implicit number-to-string conversion or string-to-number conversion does not take place, unless the value being converted is contained in a Variant variable. In general, LotusScript will attempt to convert a value assigned to a Variant to wh
atever type is needed. For example:

@mono@<:R1,4,1,1200,1,1680,1,2160,1,2820,><:#1100,8486>DIM X AS VARIANT<**>X = 1040<**>PRINT X + "A"		'Prints: 1040A<**>X = "43"<**>PRINT X + 5		'Prints: 48

<:R><:#600,8486><:f>This illustrates that when a Variant variable is used in a numeric context, its value is converted to a numeric value if necessary. When a Variant variable is used in a string context, its value is converted to a string if necessary.

<:#600,8486><:f>When the <+!><:f,QCourier,>+<-!><:f> operator is used with one or two Variant operands, the contents of the Variant operands determine whether LotusScript performs numeric addition or string concatenation:

@bullet@<:#240,8486>Addition is performed when one of the following is true:

@indent bullet@<:#240,8486><:f>Both operands contain numeric values

@indent bullet@<:f>One operand is numeric, and the other is a Variant containing a string

@indent bullet@<:#480,8486>Both operands are Variants, with a string in one and a numeric value in the other

@1st lev para@<:#480,8486><:f>In the second and third cases, an error results if the string cannot be converted to a number.

@bullet@<:#240,8486>Concatenation is performed when one of the following is true:

@indent bullet@<:#240,8486><:f>Both operands are strings

@indent bullet@<:#240,8486><:f>One operand is a string, and the other is a Variant containing a numeric value

@Chead@<:#240,8486><:f>Related topics

@popref@<:#240,8486><:f>Operators

@popref@<:#480,8486>DataType Function: to determine the data type of the value currently assigned to a variable

@Ahead@<:#410,8486><:f>Constants<:X8,30;Index "Constants" #><:X8,30;Index "Constants" # "named">

@1st Paragraph@<:#200,8486><:f>Provide a means for naming constant (non-variable) values in your scripts.

@Bhead@<:#280,8486><:f><:f>Built-In Constants and Values<:X8,30;Index "Built-in constants" #><:X8,30;Index "Constants" # "built-in"><:X8,30;Index "NULL" #><:X8,30;Index "NOTHING" #><:X8,30;Index "PI" #><:X8,30;Index "EMPTY" #><:X8,30;Index "ISEMPTY" #><:X8,30;Index "IS" #><:X8,30;Index "TRUE" #>
<:X8,30;Index "FALSE" #><:X8,30;Index "Named constants" #><:X8,30;Index "LSCONST.LSS" #><:X8,30;Index "File, LSCONST.LSS" #>

<:#400,8486><:f>LotusScript includes an internal value named EMPTY, and five built-in constants with pre-defined values. The following table shows these constants and their values.

<:t13>

<:#600,8486><:f><:f>LotusScript also provides a set of constants with predefined names that you can use in your scripts (rather than using their numeric equivalents). These constants are defined in the file LSCONST.LSS; include this file in your scripts with the 
<:f>%Include directive.

@Chead@<:#240,8486><:f>Related topics

@popref@<:#240,8486><:f>Operators and Expressions

@popref@<:#240,8486>Const Statement: to declare a constant

@popref@<:#240,8486>%Include Directive: to include another script source file during compilation

@Ahead@<:#410,8486><:f>Labels<:X8,31;Index "Labels" #><:X8,31;Index "Statement labels" #>

@1st Paragraph@<:#200,8486><:f>A label gives a name to a statement.

<:#400,8486><:f>The following statements transfer control to a labeled statement by referring to its label:

@mono@<:#1540,8486>GOSUB...RETURN<**>GOTO<**>IF...GOTO...ELSE<**>ON ERROR<**>ON...GOSUB...RETURN<**>ON...GOTO<**>RESUME

<:#200,8486><:f>Here</R>s how to construct a label:

<:#200,8486><+"><:f>label<-">:

@bullet@<:#240,8486><:f><:f>A <+">label<-"> is any name.

@bullet@<:#480,8486>A label can only appear at the beginning of a line. It labels the first statement on the line.

@bullet@<:#480,8486>A label can appear on a line by itself. This labels the first statement starting after the line.

@bullet@<:#480,8486><:f>A given statement can have more than one label preceding it; but the labels must appear on different lines.

@bullet@<:#480,8486><:f>A given label can</R>t be used to label more than one statement in the same subprogram.

@bullet@<:#240,8486>A name used as a label can</R>t have a data type suffix character appended.

@bullet@<:#240,8486>A label can contain up to 40 characters.

@Chead@<:#240,8486><:f>Example

@mono@<:#1760,8486>SUB SendOff<**>  ...<**>  GOTO ALab<**>  PRINT "Not here..."<**>  EXIT SUB<**>  ...<**>  ALab: PRINT "Jumped to ALab"<**>END SUB

<:#400,8486><:f>The Goto statement transfers control to the statement with the label ALab. This statement prints the string 
</S>Jumped to ALab</T>.

@Chead@<:#240,8486><:f>Related topics

@popref@<:#240,8486><:f>Identifiers

@popref@<:#240,8486>Goto Statement: to transfer control to a labeled statement

@popref@<:#240,8486>GoSub...Return Statement: to transfer control to a labeled statement and return

@popref@<:#240,8486>If...Goto...Else Statement: to conditionally transfer control to a labeled statement

@popref@<:#240,8486>On...GoSub...Return Statement: to transfer control to one of a list of labels and return

@popref@<:#240,8486>On...Goto Statement: to transfer control to one of a list of labels

@popref@<:#240,8486>On Error Statement: to handle runtime errors in a script

@popref@<:#240,8486>Resume Statement: to resume script execution at a specified statement<:f>

>

[Embedded]
00118039
