private void ConvertEnumType(PegNode node, BfsEnum block)
{
if (block == null)
throw new AstConvertException("Type wasn't an enum");
StoreSourceRange(node, block);
block.Name = GetNodeText(node);
block.PrimitiveType = ConvertPrimitiveType(node.next_);
//For all enum fields contained in the enum (values,ranges and 'else')
for (PegNode enumfield = node.next_.next_; enumfield != null; enumfield = enumfield.next_)
{
if (GetNodeId(enumfield) == EBinaryFileSchemaParser.enumfield)
ConvertEnumField(enumfield, block);
else if (GetNodeId(enumfield) == EBinaryFileSchemaParser.localfield)
ConvertLocalField(enumfield, block);
else
throw new AstConvertException("Not an enum field!");
}
}