private IodineEnum CompileEnum(EnumDeclaration enumDecl) { IodineEnum ienum = new IodineEnum(enumDecl.Name); foreach (string name in enumDecl.Items.Keys) { ienum.AddItem(name, enumDecl.Items [name]); } return(ienum); }
public override void Accept(EnumDeclaration enumDecl) { IodineEnum ienum = new IodineEnum(enumDecl.Name); foreach (string name in enumDecl.Items.Keys) { ienum.AddItem(name, enumDecl.Items [name]); } methodBuilder.EmitInstruction(enumDecl.Location, Opcode.LoadConst, methodBuilder.Module.DefineConstant(ienum)); methodBuilder.EmitInstruction(enumDecl.Location, Opcode.StoreLocal, symbolTable.GetSymbol(enumDecl.Name).Index); }