Example #1
0
        //- directives --------------------------------------------------------

        public void handleDirective(Directive directive)
        {
            switch (directive.type)
            {
            case DirectiveType.PUBLIC:
                Symbol sym = ((PublicDir)directive).sym;
                sym.type = Symbol.SymType.PUBLIC;
                break;

            case DirectiveType.SECTION:

                String  secName = ((SectionDir)directive).name;
                Section sec     = oboe.findSection(secName);
                if (sec == null)
                {
                    //Section.Flags flags = Section.TEXTFLAGS;
                    //Section.Alignment align = Section.Alignment.IMAGE_SCN_ALIGN_16BYTES;
                    //if (secName.Equals(".data")) {
                    //    flags = Section.DATAFLAGS;
                    //    align = Section.Alignment.IMAGE_SCN_ALIGN_4BYTES;
                    //}
                    //else if (secName.Equals(".bss"))
                    //{
                    //    flags = Section.BSSFLAGS;
                    //    align = Section.Alignment.IMAGE_SCN_ALIGN_4BYTES;
                    //}
                    //sec = oboe.addSection(secName, flags, align);
                }
                curSection = sec;
                break;

            default:
                break;
            }
        }