public override int VisitFuncionDirectiva([NotNull] gramticSicEstandarParser.FuncionDirectivaContext context)
        {
            string etiqueta1 = "";
            string ET        = context.children[0].GetText();

            if (context.children[1].GetChild(1) != null && context.ChildCount != 3)
            {
                etiqueta1 = context.children[1].GetChild(0).GetText();
            }
            if (!ChecaPalabrasReservadas(etiqueta1))
            {
                if (context.etiqueta() != null)
                {
                    string etiqueta = context.etiqueta().GetText();
                    // Se verifica que no exista la etiqueta de lo contrario se genera un error (SIMBOLO DUPLICADOS).
                    if (!tabsim.ContainsKey(etiqueta))
                    {
                        tabsim.Add(etiqueta, contadorPrograma);
                    }
                }
                string valor = context.operdir().GetText();
                if (valor.Contains("H"))
                {
                    string AUX = context.tipodir().GetText();
                    switch (AUX)
                    {
                    case "RESW":
                        contadorPrograma += 3 * Convert.ToInt32(valor, 16);
                        break;

                    case "RESB":
                        contadorPrograma += Convert.ToInt32(valor.TrimEnd('H'), 16);
                        break;

                    case "WORD":
                        contadorPrograma += 3;
                        break;
                    }
                }
                else
                {
                    String dir = context.tipodir().GetText();
                    switch (dir)
                    {
                    case "RESW":
                        contadorPrograma += 3 * Convert.ToInt32(valor);
                        break;

                    case "RESB":
                        contadorPrograma += Convert.ToInt32(valor);;
                        break;

                    case "WORD":
                        contadorPrograma += 3;
                        break;
                    }
                }
            }
            return(contadorPrograma);
        }
        public override string VisitFuncionDirectiva([NotNull] gramticSicEstandarParser.FuncionDirectivaContext context)
        {
            string constante = context.children[1].GetText().ToString();
            string valor     = context.operdir().GetText();
            String val       = context.tipodir().ToString();

            if (valor.Contains("H"))
            {
                switch (context.tipodir().GetText())
                {
                case "RESW":
                    listaCodigoObjeto.Add("------");
                    constante = "------";
                    break;

                case "RESB":
                    listaCodigoObjeto.Add("------");
                    constante = "------";
                    break;

                case "WORD":
                    char[] delimiter = { 'h', 'H' };
                    if (valor.Contains("h") || valor.Contains('H'))
                    {
                        constante = valor.TrimEnd(delimiter).PadLeft(6, '0');
                    }
                    else
                    {
                        constante = (int.Parse(valor).ToString("X").PadLeft(6, '0'));
                    }

                    listaCodigoObjeto.Add(constante);
                    break;
                }
            }
            else
            {
                String dir = context.tipodir().GetText();
                switch (dir)
                {
                case "RESW":
                    listaCodigoObjeto.Add("------");
                    constante = "------";
                    break;

                case "RESB":
                    listaCodigoObjeto.Add("------");
                    constante = "------";
                    break;

                case "WORD":
                    char[] delimiter = { 'h', 'H' };
                    if (valor.Contains("h") || valor.Contains('H'))
                    {
                        constante = valor.TrimEnd(delimiter).PadLeft(6, '0');
                    }
                    else
                    {
                        constante = (int.Parse(valor).ToString("X").PadLeft(6, '0'));
                    }

                    listaCodigoObjeto.Add(constante);
                    break;
                }
            }

            return(constante);
        }