public CodeClass MakeClass(IBfsDataBlock block)
{
//Append all local fields no matter the type
CodeClass codeClass = new CodeClass(block.Name);
foreach (BfsLocalField localField in block.LocalFieldList)
codeClass.CodeFields.Add( localField.PrimitiveType.PrimitiveType.ToString().ToLower() + " " + localField.Name + ";");
if (block is BfsStruct)
{
BfsStruct dataStruct = block as BfsStruct;
MakeStruct(codeClass, dataStruct);
return codeClass;
}
else if (block is BfsEnum)
{
BfsEnum dataEnum = block as BfsEnum;
MakeEnum(codeClass, dataEnum);
return codeClass;
}
else if (block is BfsBitfield)
{
BfsBitfield dataField = block as BfsBitfield;
MakeBitfield(codeClass, dataField);
return codeClass;
}
else if (block is BfsAbsOffset || block is BfsRelOffset)
{
BfsCompiler.ReportError(block.BlockTypeSourceRange,"Not yet implemented: Support for abs_offset or rel_offset!");
}
return null;
}