public override string VisitCInstruccion([NotNull] gramticSicEstandarParser.CInstruccionContext context)
        {
            int    codigoObjeto = 0;
            int    indexado     = 0;
            string aux;
            string modoDir = context.oper().GetText();

            if (modoDir[modoDir.Length - 2] == ',')
            {
                indexado = 1 << 15;
                modoDir  = modoDir.TrimEnd(',', 'X');
            }

            // Se verifica que la etiqueta exista en la tabla de tabsim.
            if (tabsim.ContainsKey(modoDir))
            {
                codigoObjeto = Convert.ToInt32(codOp[context.CODOP().GetText()], 16) << 16 | indexado |
                               tabsim[modoDir];
                aux = codigoObjeto.ToString("X").PadLeft(6, '0');
            }
            else
            {
                codigoObjeto = Convert.ToInt32(codOp[context.CODOP().GetText()], 16) << 16 | indexado |
                               Convert.ToInt32("7FFF", 16);
                aux = codigoObjeto.ToString("X").PadLeft(6, '0') + ",error";
            }

            listaCodigoObjeto.Add(aux);
            return(aux);
        }
 private void SumaDirectivaOInstruccion(gramticSicEstandarParser.CInstruccionContext context)
 {
     if (context.CODOP() == null)
     {
         contadorPrograma = base.VisitCInstruccion(context);
     }
     else
     {
         if (context.children[0].GetText() != "+")
         {
             contadorPrograma += 3;
         }
         else
         {
             formato4          = true;
             contadorPrograma += 4;
         }
     }
 }
        public override int VisitCInstruccion([NotNull] gramticSicEstandarParser.CInstruccionContext 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);
                    }
                    else
                    {
                        SumaDirectivaOInstruccion(context);
                        throw new Exception("Error: Simbolos Duplicados: ");
                    }
                }

                SumaDirectivaOInstruccion(context);
            }
            else
            {
                string etiqueta = context.etiqueta().GetText();
                tabsim.Add(etiqueta, contadorPrograma);
                contadorPrograma += 3;
            }
            return(contadorPrograma);
        }