Example #1
0
        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);
        }
Example #2
0
        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);
        }