NSTDIP (Non-STanDard InterPreter) - an experimental script interpreter.
Written in pure IA-64 Assembler.

version 1 - the first public theta version

Stand-alone version and COM front-end DLL included.

Distributed under WRK (whip, rape, kill) license. Read NODATA file for more information
about this hopeless er.. hmm... mmm... program.

Copyright (c) unknown soldier, 2005.
e-mail: iunknown@where.to

-------------------------------------------------------------------

LANGUAGE BASICS

Sorry for short manual, but i claim that a good example's better than nothing...



The structure of the .ns file goes as follows:

NSTDIP						-	1st line. must be there
++ ver 1					-	version number N
++ model 2					-	code model number N
++ subtype scp					-	model subtype: scp (synchronous 
							code processing) or ascp
							(asynchronous code processing)
-- Data start					-	initialized constant declarations
0001	"b"					-	create a constant >0001 = "b"
++ Data end					-	end of constant declarations
-- Variable start				-	variable declarations start
0001	mstr	-				-	declare a string variable ^0001
							'-' sign's used to show that
							the variable should be initialized
							with zero (for numbers) or
							an empty string (for strings)
0002	int	8				-	declare a string variable ^0001
							with initial value of 8
++ Variable end					-	end of vardecls
-- Jumps start					-	unconditional jumps descriptions
0001	0005	0003				-	jump $0001, go from 5th line of code
							to the 3rd.
							!!! jumps ARE ALWAYS IGNORED in this release!!!
++ Jumps end					-	end of jumps section
-- Code start					-	code starts here!
{just a comment}				-	a code comment
assign	^0001	(chc 66)	F	-	-	assign "B" (ascii 66) to the ^0001. always
							overwrite, and don't repeat the data.
							as you can see, -'s in 're inserted to
							mark that default value for a function
							or procedure parameter should be used
assign	^0001	(chc 65)	T	4	-	assign "A" (ascii 65) 4 times to the ^0001, 
							preserving existing data.
{we get BAAAA}					-	yeah, code comments are extremely useful
dataout	^0001	mstr	"a"	3		-	output ^0001 as string, in lower-case format
							("a") in 3 seconds after the operation's
							been parsed and all the data's been prepared.
dataout >0001	mstr	"A"	-		-	now we output "B" (as it is ^0001 constant
							in upper case) with a delay of 50 seconds
							(default value)
{ another comment }				-	another code comment
{ YOU *@$%^ can use any symbols you wish	-	a rich and multi-line
 in comments! }					-	code comment
++ Code end					-	end of code

This simple code writes "BAAAAB" to the standard output.

-------------------------------------------------------------------

USING THE INTERPRETER

You can call NSTDIP:
1) from command line, type
	NSTDIP [keys]filename %[pipe-name]
	keys:
		-a		always process asynchronously
		-s		always process synchronously
		-l:"file"	log errors to file
		-c		check for errors before executing

	filename: then name of your file or full path to it.
	If you want to use long paths, wrap them with quotes.

	pipe-name: redirect output to a specified named pipe
2) from any com-enabled language
	a) register nstdipfe.dll (front end dll) with regsvr32.exe
	b) access the Nstdip.CodeFlow interface methods and properties to
	control the code definition, execution, alteration and deletion.

-------------------------------------------------------------------


Thanks for participating in theta testing program!


-------------------------------------------------------------------