示例#1
0
 private String buscarVariableDeclarada(ID_token token)
 {
     foreach (ID_token tok in TOKEN_type)
     {
         if (tok.contenido.Equals(token.contenido))
         {
             if (memoriaAsignacion.Equals(""))
             {
                 return(tok.lexema);
             }
             else
             {
                 return("ID_");
             }
         }
     }
     return("");
 }
示例#2
0
 public void clsificarTokens(List <LOCATION_token> DETECTED_tokens)
 {
     foreach (LOCATION_token token in DETECTED_tokens)
     {
         if (wORD_Recerved.verificacion(token.contenido))
         {
             temp        = new ID_token("ReservatedWord_TOKEN", token.contenido, token.lineaUbicacion, token.inicioCadena, Color.Green);
             temp.lexema = temp.contenido.ToUpper();
             TOKEN_type.Add(temp);
         }
         else
         {
             if (vAR_Type.verificacion(token.contenido))
             {
                 temp              = new ID_token("VariableType_TOKEN", token.contenido, token.lineaUbicacion, token.inicioCadena, Color.Blue);
                 temp.lexema       = temp.contenido.ToUpper();
                 memoriaAsignacion = temp.lexema;
                 TOKEN_type.Add(temp);
             }
             else
             {
                 if (booleanRefrence.analizar(token.contenido))
                 {
                     temp        = new ID_token("BooleanState_TOKEN", token.contenido, token.lineaUbicacion, token.inicioCadena, Color.Orange);
                     temp.lexema = temp.contenido.ToUpper();
                     TOKEN_type.Add(temp);
                 }
                 else
                 {
                     if (aFD_Id_Reference.analizar(token.contenido))
                     {
                         temp = new ID_token("Id_TOKEN", token.contenido, token.lineaUbicacion, token.inicioCadena, Color.Yellow);
                         String IdTemp = this.buscarVariableDeclarada(temp);
                         if (!(IdTemp.Equals("")))
                         {
                             temp.lexema = IdTemp;
                             TOKEN_type.Add(temp);
                         }
                         else
                         {
                             temp.lexema = "ID_" + memoriaAsignacion;
                             TOKEN_type.Add(temp);
                         }
                     }
                     else
                     if (afd_Character.analizar(token.contenido))
                     {
                         temp        = new ID_token("character_TOKEN", token.contenido, token.lineaUbicacion, token.inicioCadena, Color.Brown);
                         temp.lexema = "LETRA";
                         TOKEN_type.Add(temp);
                     }
                     else
                     if (afdEnteros.analizar(token.contenido))
                     {
                         temp        = new ID_token("Number_TOKEN", token.contenido, token.lineaUbicacion, token.inicioCadena, Color.BlueViolet);
                         temp.lexema = "NUMERO_E";
                         TOKEN_type.Add(temp);
                     }
                     else
                     if (afdDecimales.analizar(token.contenido))
                     {
                         temp        = new ID_token("RealNumber_TOKEN", token.contenido, token.lineaUbicacion, token.inicioCadena, Color.Cyan);
                         temp.lexema = "NUMERO_D";
                         TOKEN_type.Add(temp);
                     }
                     else
                     if (aritemetics_Signs.analizar(token.contenido))
                     {
                         temp        = new ID_token("ArithmeticSign_TOKEN", token.contenido, token.lineaUbicacion, token.inicioCadena, Color.Blue);
                         temp.lexema = temp.contenido;
                         TOKEN_type.Add(temp);
                     }
                     else
                     if (relationalOperators.analizar(token.contenido))
                     {
                         temp        = new ID_token("RelationalOperator_TOKEN", token.contenido, token.lineaUbicacion, token.inicioCadena, Color.Blue);
                         temp.lexema = "OP_RELACIONAL";
                         TOKEN_type.Add(temp);
                     }
                     else
                     if (logicOperators.analizar(token.contenido))
                     {
                         temp        = new ID_token("LogicOperators_TOKEN", token.contenido, token.lineaUbicacion, token.inicioCadena, Color.Blue);
                         temp.lexema = temp.contenido;
                         TOKEN_type.Add(temp);
                     }
                     else
                     if (groupingSing.analizar(token.contenido))
                     {
                         temp        = new ID_token("GroupingSing_TOKEN", token.contenido, token.lineaUbicacion, token.inicioCadena, Color.Blue);
                         temp.lexema = temp.contenido;
                         TOKEN_type.Add(temp);
                     }
                     else
                     if (token.contenido.Equals("="))
                     {
                         temp              = new ID_token("Asigment_TOKEN", token.contenido, token.lineaUbicacion, token.inicioCadena, Color.HotPink);
                         temp.lexema       = "=";
                         memoriaAsignacion = "";
                         TOKEN_type.Add(temp);
                     }
                     else
                     if (token.contenido.Equals(";"))
                     {
                         temp              = new ID_token("Ending_TOKEN", token.contenido, token.lineaUbicacion, token.inicioCadena, Color.HotPink);
                         temp.lexema       = ";";
                         memoriaAsignacion = "";
                         TOKEN_type.Add(temp);
                     }
                     else
                     if (token.contenido.Equals(","))
                     {
                         temp        = new ID_token("SeparadorVar_TOKEN", token.contenido, token.lineaUbicacion, token.inicioCadena, Color.OrangeRed);
                         temp.lexema = ",";
                         TOKEN_type.Add(temp);
                     }
                     else
                     if (afd_Cadena.analizar(token.contenido))
                     {
                         temp        = new ID_token("String_TOKEN", token.contenido, token.lineaUbicacion, token.inicioCadena, Color.Gray);
                         temp.lexema = "CAD_TEXTO";
                         TOKEN_type.Add(temp);
                     }
                     else
                     if (afd_Comentario.analizar(token.contenido))
                     {
                         temp        = new ID_token("comment_TOKEN", token.contenido, token.lineaUbicacion, token.inicioCadena, Color.Red);
                         temp.lexema = "COMENTARIO";
                         TOKEN_type.Add(temp);
                     }
                     else
                     {
                         temp        = new ID_token("unknown_TOKEN", token.contenido, token.lineaUbicacion, token.inicioCadena, Color.CornflowerBlue);
                         temp.lexema = "ERROR";
                         TOKEN_type.Add(temp);
                     }
                 }
             }
         }
     }
     DETECTED_tokens = null;
 }