@stfun84: private void compileFunction(int id)

{

string name = functionNames[id];

Block block = functions[name];

Dictionary locals = new Dictionary();

int level = 1;

assemblyText.Add(".global " + name);

assemblyText.Add(name + ":");

assemblyText.Add("push %ebp");

assemblyText.Add("push %ebx");

assemblyText.Add("mov %esp,%ebp");

int argsCount = 0;

string[] arguments = Regex.Match(lines[block.Start], @"((?.*))").Groups["args"].Value.Split(',');

{

int i = -3;

foreach (var arg in arguments)

{

var variable = variableDeclarator(arg);

if (variable == null)

continue;

variable.StackPosition = i--;

locals.Add(variable.Name, variable);

argsCount++;