blitz3d/compiler
blitz-research 8921900d40 Removed some of the dead configs. 2014-07-30 12:17:33 +12:00
..
assem_x86 Initial commit. 2014-01-31 08:23:00 +13:00
codegen_x86 Initial commit. 2014-01-31 08:23:00 +13:00
assem.h Initial commit. 2014-01-31 08:23:00 +13:00
bb_tech.txt Initial commit. 2014-01-31 08:23:00 +13:00
block.h_old Initial commit. 2014-01-31 08:23:00 +13:00
codegen.h Initial commit. 2014-01-31 08:23:00 +13:00
compiler.cpp Initial commit. 2014-01-31 08:23:00 +13:00
compiler.dsp Removed some of the dead configs. 2014-07-30 12:17:33 +12:00
compiler.h Initial commit. 2014-01-31 08:23:00 +13:00
decl.cpp Initial commit. 2014-01-31 08:23:00 +13:00
decl.h Initial commit. 2014-01-31 08:23:00 +13:00
decl.old Initial commit. 2014-01-31 08:23:00 +13:00
declnode.cpp Initial commit. 2014-01-31 08:23:00 +13:00
declnode.h Initial commit. 2014-01-31 08:23:00 +13:00
environ.cpp Initial commit. 2014-01-31 08:23:00 +13:00
environ.h Initial commit. 2014-01-31 08:23:00 +13:00
ex.h Initial commit. 2014-01-31 08:23:00 +13:00
exprnode.cpp Initial commit. 2014-01-31 08:23:00 +13:00
exprnode.h Initial commit. 2014-01-31 08:23:00 +13:00
ir_code.txt Initial commit. 2014-01-31 08:23:00 +13:00
label.h Initial commit. 2014-01-31 08:23:00 +13:00
node.cpp Initial commit. 2014-01-31 08:23:00 +13:00
node.h Initial commit. 2014-01-31 08:23:00 +13:00
nodes.h Initial commit. 2014-01-31 08:23:00 +13:00
parser.cpp Initial commit. 2014-01-31 08:23:00 +13:00
parser.h Initial commit. 2014-01-31 08:23:00 +13:00
prognode.cpp Initial commit. 2014-01-31 08:23:00 +13:00
prognode.h Initial commit. 2014-01-31 08:23:00 +13:00
readme.txt Initial commit. 2014-01-31 08:23:00 +13:00
semant.old Initial commit. 2014-01-31 08:23:00 +13:00
std.cpp Initial commit. 2014-01-31 08:23:00 +13:00
std.h Initial commit. 2014-01-31 08:23:00 +13:00
stmtnode.cpp Initial commit. 2014-01-31 08:23:00 +13:00
stmtnode.h Initial commit. 2014-01-31 08:23:00 +13:00
stringmap.h Initial commit. 2014-01-31 08:23:00 +13:00
stringmap.txt Initial commit. 2014-01-31 08:23:00 +13:00
syn.txt Initial commit. 2014-01-31 08:23:00 +13:00
tnode.txt Initial commit. 2014-01-31 08:23:00 +13:00
todo.txt Initial commit. 2014-01-31 08:23:00 +13:00
toker.cpp Initial commit. 2014-01-31 08:23:00 +13:00
toker.h Initial commit. 2014-01-31 08:23:00 +13:00
type.cpp Initial commit. 2014-01-31 08:23:00 +13:00
type.h Initial commit. 2014-01-31 08:23:00 +13:00
var.h Initial commit. 2014-01-31 08:23:00 +13:00
varnode.cpp Initial commit. 2014-01-31 08:23:00 +13:00
varnode.h Initial commit. 2014-01-31 08:23:00 +13:00

readme.txt

Classes:

ProgNode	- output of parse - tree of Nodes
TProg		- output of translate - vector of TNodes
string      - output of codegen
Module		- output of assemble

reserved asm labels.

_b???? reserved for private blitz lib calls
_l???? reserved for compiler generated labels
_c???? reserved for codegen generated labels
_a???? reserved for asm generated labels

Codegen should probably be able to create it's own 'data' for constants.

The IR_CONST instruction may have to generate a label to store, say, 
strings (and floats on x86?) 


* libs prototype info:

	graphics%%%			- 3 int args
	rect%%%%			- 4 int args
	vwait
	%mousex				- int result
	%mousey				- int result
	<Image>loadImage$	- obj result, 1 string arg

* floats, strings, user types

	Stick with old BB newtypes:

	NewType mytype
		x.f:y.f:z.f
		image.Image
	End NewType

	Dim List lst.mytype
	Dim Queue que.mytype
	Dim Vector vec.mytype

	test=new mytype
	test\x=100
	test\y=100
	test\z=100

	name="Hello"

	move test

	statement move t.mytype
		t\x=t\x+t\xs
		t\y=t\y+t\ys
	end statement

* stop/step/continue/debug

* error handling

	Errors are sent to cerr, and an exception thrown.

	Error string format:

	E charpos message - eg:

	cerr<<"E 100 Blitz expects an identifier here"<<endl;