blitz-research 8921900d40 Removed some of the dead configs. 11 years ago
..
assem_x86 08a613ed0e Initial commit. 12 years ago
codegen_x86 08a613ed0e Initial commit. 12 years ago
assem.h 08a613ed0e Initial commit. 12 years ago
bb_tech.txt 08a613ed0e Initial commit. 12 years ago
block.h_old 08a613ed0e Initial commit. 12 years ago
codegen.h 08a613ed0e Initial commit. 12 years ago
compiler.cpp 08a613ed0e Initial commit. 12 years ago
compiler.dsp 8921900d40 Removed some of the dead configs. 11 years ago
compiler.h 08a613ed0e Initial commit. 12 years ago
decl.cpp 08a613ed0e Initial commit. 12 years ago
decl.h 08a613ed0e Initial commit. 12 years ago
decl.old 08a613ed0e Initial commit. 12 years ago
declnode.cpp 08a613ed0e Initial commit. 12 years ago
declnode.h 08a613ed0e Initial commit. 12 years ago
environ.cpp 08a613ed0e Initial commit. 12 years ago
environ.h 08a613ed0e Initial commit. 12 years ago
ex.h 08a613ed0e Initial commit. 12 years ago
exprnode.cpp 08a613ed0e Initial commit. 12 years ago
exprnode.h 08a613ed0e Initial commit. 12 years ago
ir_code.txt 08a613ed0e Initial commit. 12 years ago
label.h 08a613ed0e Initial commit. 12 years ago
node.cpp 08a613ed0e Initial commit. 12 years ago
node.h 08a613ed0e Initial commit. 12 years ago
nodes.h 08a613ed0e Initial commit. 12 years ago
parser.cpp 08a613ed0e Initial commit. 12 years ago
parser.h 08a613ed0e Initial commit. 12 years ago
prognode.cpp 08a613ed0e Initial commit. 12 years ago
prognode.h 08a613ed0e Initial commit. 12 years ago
readme.txt 08a613ed0e Initial commit. 12 years ago
semant.old 08a613ed0e Initial commit. 12 years ago
std.cpp 08a613ed0e Initial commit. 12 years ago
std.h 08a613ed0e Initial commit. 12 years ago
stmtnode.cpp 08a613ed0e Initial commit. 12 years ago
stmtnode.h 08a613ed0e Initial commit. 12 years ago
stringmap.h 08a613ed0e Initial commit. 12 years ago
stringmap.txt 08a613ed0e Initial commit. 12 years ago
syn.txt 08a613ed0e Initial commit. 12 years ago
tnode.txt 08a613ed0e Initial commit. 12 years ago
todo.txt 08a613ed0e Initial commit. 12 years ago
toker.cpp 08a613ed0e Initial commit. 12 years ago
toker.h 08a613ed0e Initial commit. 12 years ago
type.cpp 08a613ed0e Initial commit. 12 years ago
type.h 08a613ed0e Initial commit. 12 years ago
var.h 08a613ed0e Initial commit. 12 years ago
varnode.cpp 08a613ed0e Initial commit. 12 years ago
varnode.h 08a613ed0e Initial commit. 12 years ago

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
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"<