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; } } }