elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Complicadores
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Complicadores  (Leído 6,119 veces)
Choclito

Desconectado Desconectado

Mensajes: 99



Ver Perfil
Complicadores
« en: 9 Noviembre 2010, 04:17 am »

HOla a todos hace poco hize un analizador Lexico y me dio curiosidad de compartirlo y si tienen alguna mejora mucho mejor podriamoz compartir.
y en el siguiente enlace hize unos videitos sobre los patrones de las variables y/o palabras reservadas: http://www.youtube.com/watch?v=X50-vn-5h0E
bueno si les agrada buen provecho

Código
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Text;
  7. using System.Windows.Forms;
  8.  
  9. namespace AnalizadorLexico
  10. {
  11.    public partial class Form1 : Form
  12.    {
  13.        int x;//Declaro una Variable Publica para Guardar las Posicones
  14.        //Declaro 3 Arreglos Mas Para Guardar mis Simbolos
  15.        bool Erro = false;
  16.        public static int[] Codigo=new int[61];
  17.        public static string[] Tokens = new string[61];
  18.        public static string[] Simbolo = new string[61];
  19.        public Form1()
  20.        {
  21.            InitializeComponent();
  22.            for (int i = 0; i < Codigo.Length; i++) // Inicializamos los Codigos
  23.                Codigo[i] = i + 1;
  24.            Simbolo[0] = "Procedimiento"; Tokens[0] = "PALABRA RESERVADA - PR";
  25.            Simbolo[1] = "Funcion"; Tokens[1] = "PALABRA RESERVADA - PR";
  26.            Simbolo[2] = "Principal";Tokens[2] = "PALABRA RESERVADA - PR";
  27.            Simbolo[3] = "Entero";Tokens[3] = "PALABRA RESERVADA - PR";
  28.            Simbolo[4] = "Decimal";Tokens[4] = "PALABRA RESERVADA - PR";
  29.            Simbolo[5] = "Doble";Tokens[5] = "PALABRA RESERVADA - PR";
  30.            Simbolo[6] = "Caracter";Tokens[6] = "PALABRA RESERVADA - PR";
  31.            Simbolo[7] = "Cadena";Tokens[7] = "PALABRA RESERVADA - PR";
  32.            Simbolo[8] = "Booleano";Tokens[8] = "PALABRA RESERVADA - PR";
  33.            Simbolo[9] = "Si";Tokens[9] = "PALABRA RESERVADA - PR";
  34.            Simbolo[10] = "Entonces";Tokens[10] = "PALABRA RESERVADA - PR";
  35.            Simbolo[11] = "Sino";Tokens[11] = "PALABRA RESERVADA - PR";
  36.            Simbolo[12] = "Abrir";Tokens[12] = "PALABRA RESERVADA - PR";
  37.            Simbolo[13] = "Caso";Tokens[13] = "PALABRA RESERVADA - PR";
  38.            Simbolo[14] = "Quiebre";Tokens[14] = "PALABRA RESERVADA - PR";
  39.            Simbolo[15] = "Defecto";Tokens[15] = "PALABRA RESERVADA - PR";
  40.            Simbolo[16] = "Ira";Tokens[16] = "PALABRA RESERVADA - PR";
  41.            Simbolo[17] = "Retornar";Tokens[17] = "PALABRA RESERVADA - PR";
  42.            Simbolo[18] = "Para";Tokens[18] = "PALABRA RESERVADA - PR";
  43.            Simbolo[19] = "Mientras";Tokens[19] = "PALABRA RESERVADA - PR";
  44.            Simbolo[20] = "Hacer";Tokens[20] = "PALABRA RESERVADA - PR";
  45.            Simbolo[21] = "Mostrar";Tokens[21] = "PALABRA RESERVADA - PR";
  46.            Simbolo[22] = "Leer";Tokens[22] = "PALABRA RESERVADA - PR";
  47.            Simbolo[23] = "Limpiar";Tokens[23] = "PALABRA RESERVADA - PR";
  48.            Simbolo[24] = "Pausa";Tokens[24] = "PALABRA RESERVADA - PR";
  49.            Simbolo[25] = "Abs";Tokens[25] = "PALABRA RESERVADA - PR";
  50.            Simbolo[26] = "Mod";Tokens[26] = "PALABRA RESERVADA - PR";
  51.            Simbolo[27] = "Exp";Tokens[27] = "PALABRA RESERVADA - PR";
  52.            Simbolo[28] = "Sqrt";Tokens[28] = "PALABRA RESERVADA - PR";
  53.            Simbolo[29] = "(";Tokens[29] = "SIGNO SEPARADOR";
  54.            Simbolo[30] = ")";Tokens[30] = "SIGNO SEPARADOR";
  55.            Simbolo[31] = "{";Tokens[31] = "SIGNO SEPARADOR";
  56.            Simbolo[32] = "}";Tokens[32] = "SIGNO SEPARADOR";
  57.            Simbolo[33] = "[";Tokens[33] = "SIGNO SEPARADOR";
  58.            Simbolo[34] = "]";Tokens[34] = "SIGNO SEPARADOR";
  59.            Simbolo[35] = "+";Tokens[35] = "OPERADOR - OP";
  60.            Simbolo[36] = "-"; Tokens[36] = "OPERADOR - OP";
  61.            Simbolo[37] = "*"; Tokens[37] = "OPERADOR - OP";
  62.            Simbolo[38] = "/"; Tokens[38] = "OPERADOR - OP";
  63.            Simbolo[39] = "&&"; Tokens[39] = "OPERADOR - OP";
  64.            Simbolo[40] = "++"; Tokens[40] = "OPERADOR - OP";
  65.            Simbolo[41] = "--"; Tokens[41] = "OPERADOR - OP";
  66.            Simbolo[42] = "="; Tokens[42] = "SIGNO COMPARADOR - SC";
  67.            Simbolo[43] = "=="; Tokens[43] = "SIGNO COMPARADOR - SC";
  68.            Simbolo[44] = "<="; Tokens[44] = "SIGNO COMPARADOR - SC";
  69.            Simbolo[45] = ">="; Tokens[45] = "SIGNO COMPARADOR - SC";
  70.            Simbolo[46] = "<"; Tokens[46] = "SIGNO COMPARADOR - SC";
  71.            Simbolo[47] = ">"; Tokens[47] = "SIGNO COMPARADOR - SC";
  72.            Simbolo[48] = "!="; Tokens[48] = "SIGNO COMPARADOR - SC";
  73.            Simbolo[49] = "!"; Tokens[49] = "SIGNO RELACIONADOR - SR";
  74.            Simbolo[50] = "&"; Tokens[50] = "SIGNO RELACIONADOR - SR";
  75.            Simbolo[51] = "|"; Tokens[51] = "SIGNO RELACIONADOR - SR";
  76.            Simbolo[52] = ","; Tokens[52] = "SIGNO DE PUNTUACION - SP";
  77.            Simbolo[53] = ";"; Tokens[53] = "SIGNO DE PUNTUACION - SP";
  78.            Simbolo[54] = ":"; Tokens[54] = "SIGNO DE PUNTUACION - SP";
  79.            Simbolo[55] = "\""; Tokens[55] = "SIGNO DE PUNTUACION - SP";
  80.            Simbolo[56] = "'"; Tokens[56] = "SIGNO DE PUNTUACION - SP";
  81.            Simbolo[57] = "."; Tokens[57] = "SIGNO DE PUNTUACION - SP";
  82.            Simbolo[58] = "_"; Tokens[58] = "SIGNO SEPARADOR";
  83.            Simbolo[59] = "FALSE"; Tokens[59] = "Booleano - BO";
  84.            Simbolo[60] = "TRUE"; Tokens[60] = "Booleano - BO";
  85.        }
  86.        private void btnAnalizar_Click(object sender, EventArgs e)
  87.        {
  88.            if (dgvtokens.RowCount > 0) // Limpio Simpre y Cuando Hayga Datos en el DataGridWied
  89.                dgvtokens.Rows.Clear();
  90.            if (dgvErrores.RowCount > 0)
  91.                dgvErrores.Rows.Clear();
  92.            Erro = false;
  93.            richTextBox2.Text = "";
  94.            Analizar(); //LLamo ah mi Procedimiento Analizar
  95.        }
  96.        private void Analizar()
  97.        {            
  98.            char[] Cadena = richTextBox1.Text.ToCharArray();//Separo del Texto Fuente En Caracteres Separados y Almaceno en un Array de tipo Caracter
  99.            string Texto = "";
  100.            int i = 0; //Declaro mi Contador para Poder Recorrer toda la Cadena
  101.            while (i < Cadena.Length)
  102.            {
  103.                if (i < Cadena.Length - 1)
  104.                {
  105.                    //Verificamos con que Letra Empiezza i
  106.                    if (AnalizarLetra(Cadena[i]))
  107.                    {
  108.                        x = i;//Guardamos la Posicion Donde Empieza
  109.                        while (AnalizarNumero(Cadena[i]) || AnalizarLetra(Cadena[i]) || Cadena[i] == '_')//Repetira Mientras Sea un Numero oh una Letra
  110.                        {
  111.                            Texto = Texto + Cadena[i].ToString();
  112.                            i++;
  113.                            if (i == Cadena.Length) break;//Si Llegamos ah la Ultina Posicion Salimos porque ya no hay nada por analizar
  114.                        }
  115.                        //Ver si es una Palabra Reservada oh es un Identificador
  116.                        PR(Texto); //Llamamos ah un Procedimiento Palabra Reservada -PR para Confirmar si es una PR                  
  117.                        Texto = "";
  118.                    }
  119.                    else if (AnalizarNumero(Cadena[i]) || (Cadena[i].ToString() == "-" && AnalizarNumero(Cadena[i + 1])))
  120.                    {
  121.                        x = i;//Guardamos la Posicion Donde Empieza    
  122.                        string Ti = "E";
  123.                        bool SolounPunto = true; //Inicializamos una Variable Aux que nos Va Indicar que la Concadenacion ya Tiene un Punto y no Puede Aceptar mas
  124.                        if (Cadena[i].ToString() == "-") //si es que primero empieza con un -
  125.                        {
  126.                            Texto = Texto + Cadena[i].ToString();
  127.                            i += 1;                            
  128.                        }
  129.                        while (AnalizarNumero(Cadena[i])) //Repetira mientras sea un Numero
  130.                        {
  131.                            Texto = Texto + Cadena[i].ToString();
  132.                            i++;
  133.                            if (i < Cadena.Length - 1) //entrara siempre y cuando no sea el ultimo Caracter del Texto fuente
  134.                            {
  135.                                if (Cadena[i] == '.' && AnalizarNumero(Cadena[i + 1]) && SolounPunto) // Si se Cumple las Reglas Seguimos Cancadenando
  136.                                {
  137.                                    Texto = Texto + Cadena[i].ToString();
  138.                                    SolounPunto = false;
  139.                                    Ti = "D";
  140.                                    i++;
  141.                                }
  142.                            }
  143.                            if (i == Cadena.Length) break;//Si Llegamos ah la Ultina Posicion Salimos porque ya no hay nada por analizar
  144.                        }
  145.                        //Mostrar el Numero  
  146.                        if (Ti == "E") //Si es Entero
  147.                        {
  148.                            dgvtokens.RowCount = dgvtokens.RowCount + 1;
  149.                            dgvtokens[0, dgvtokens.RowCount - 1].Value = "60";
  150.                            dgvtokens[1, dgvtokens.RowCount - 1].Value = Texto.ToString();
  151.                            dgvtokens[2, dgvtokens.RowCount - 1].Value = "NUMERO ENTERO - NE";
  152.                            dgvtokens[3, dgvtokens.RowCount - 1].Value = (x + 1).ToString();
  153.                            Texto = "";
  154.                        }
  155.                        else //Si es Decimal
  156.                        {
  157.                            dgvtokens.RowCount = dgvtokens.RowCount + 1;
  158.                            dgvtokens[0, dgvtokens.RowCount - 1].Value = "61";
  159.                            dgvtokens[1, dgvtokens.RowCount - 1].Value = Texto.ToString();
  160.                            dgvtokens[2, dgvtokens.RowCount - 1].Value = "NUMERO DECIMAL - ND";
  161.                            dgvtokens[3, dgvtokens.RowCount - 1].Value = (x + 1).ToString();
  162.                            Texto = "";
  163.                        }
  164.                    }
  165.                    else if (Cadena[i].ToString() == " " || Cadena[i].ToString() == "\n" || Cadena[i].ToString() == "\t")//si hay un espacio o un enter seguimos avanzando
  166.                        i++;
  167.                    else if (char.IsSymbol(Cadena[i]) || char.IsSeparator(Cadena[i]) || char.IsPunctuation(Cadena[i])) // ahora vemos si son simbolos
  168.                    {
  169.                        x = i;
  170.                        if (i < Cadena.Length - 1)
  171.                        {
  172.                            if (Cadena[i].ToString() == "=" && Cadena[i + 1].ToString() == "=")
  173.                            {
  174.                                string Union = Cadena[i].ToString() + Cadena[i + 1].ToString();
  175.                                AnalizarSimbolo(Union, x);
  176.                                i = i + 2;
  177.                            }
  178.                            else if (Cadena[i].ToString() == "!" && Cadena[i + 1].ToString() == "=")
  179.                            {
  180.                                string Union = Cadena[i].ToString() + Cadena[i + 1].ToString();
  181.                                AnalizarSimbolo(Union, x);
  182.                                i = i + 2;
  183.                            }
  184.                            else if (Cadena[i].ToString() == ">" && Cadena[i + 1].ToString() == "=")
  185.                            {
  186.                                string Union = Cadena[i].ToString() + Cadena[i + 1].ToString();
  187.                                AnalizarSimbolo(Union, x);
  188.                                i = i + 2;
  189.                            }
  190.                            else if (Cadena[i].ToString() == "<" && Cadena[i + 1].ToString() == "=")
  191.                            {
  192.                                string Union = Cadena[i].ToString() + Cadena[i + 1].ToString();
  193.                                AnalizarSimbolo(Union, x);
  194.                                i = i + 2;
  195.                            }
  196.                            else if (Cadena[i].ToString() == "+" && Cadena[i + 1].ToString() == "+")
  197.                            {
  198.                                string Union = Cadena[i].ToString() + Cadena[i + 1].ToString();
  199.                                AnalizarSimbolo(Union, x);
  200.                                i = i + 2;
  201.                            }
  202.                            else if (Cadena[i].ToString() == "-" && Cadena[i + 1].ToString() == "-")
  203.                            {
  204.                                string Union = Cadena[i].ToString() + Cadena[i + 1].ToString();
  205.                                AnalizarSimbolo(Union, x);
  206.                                i = i + 2;
  207.                            }
  208.                            else if (Cadena[i].ToString() == "&" && Cadena[i + 1].ToString() == "&")
  209.                            {
  210.                                string Union = Cadena[i].ToString() + Cadena[i + 1].ToString();
  211.                                AnalizarSimbolo(Union, x);
  212.                                i = i + 2;
  213.                            }
  214.                            else if (Cadena[i].ToString() == "/" && Cadena[i + 1].ToString() == "/") // Para los Comentarios de Linea
  215.                            {
  216.                                string Union = "";
  217.                                x = i;
  218.                                for (int j = i; j < Cadena.Length; j++)
  219.                                {
  220.                                    if (Cadena[i].ToString() != "\n")
  221.                                    {
  222.                                        Union = Union + Cadena[j];
  223.                                        i += 1;//Incremento mi Contador
  224.                                    }
  225.                                    else
  226.                                    {
  227.                                        i = j;//Intercambio la Posicion Donde Estuvo el Enter
  228.                                        break;
  229.                                    }
  230.                                }
  231.                                dgvtokens.RowCount = dgvtokens.RowCount + 1;
  232.                                dgvtokens[0, dgvtokens.RowCount - 1].Value = "65";
  233.                                dgvtokens[1, dgvtokens.RowCount - 1].Value = Union.ToString();
  234.                                dgvtokens[2, dgvtokens.RowCount - 1].Value = "COMENTARIO DE LINEA - CL";
  235.                                dgvtokens[3, dgvtokens.RowCount - 1].Value = (x + 1).ToString();
  236.                            }
  237.                            else if (Cadena[i].ToString() == "/" && Cadena[i + 1].ToString() == "*") // Para los Comentarios de Parrafo
  238.                            {
  239.                                x = i;
  240.                                int flag = -1;
  241.                                //Recorro Toda mi Cadena para Ver si se Encuentra * y el /
  242.                                for (int j = i + 2; j < Cadena.Length; j++)
  243.                                {
  244.                                    if (j + 1 != Cadena.Length)
  245.                                    {
  246.                                        if (Cadena[j].ToString() == "*" && Cadena[j + 1].ToString() == "/")
  247.                                        {
  248.                                            flag = j + 1;
  249.                                            break;
  250.                                        }
  251.                                    }
  252.                                }
  253.                                if (flag > -1)
  254.                                {
  255.                                    i = flag + 1;
  256.                                    dgvtokens.RowCount = dgvtokens.RowCount + 1;
  257.                                    dgvtokens[0, dgvtokens.RowCount - 1].Value = "65";
  258.                                    dgvtokens[1, dgvtokens.RowCount - 1].Value = "/* */";
  259.                                    dgvtokens[2, dgvtokens.RowCount - 1].Value = "COMENTARIO DE PARRAFO - CP";
  260.                                    dgvtokens[3, dgvtokens.RowCount - 1].Value = (x + 1).ToString();
  261.                                }
  262.                                else
  263.                                {
  264.                                    AnalizarSimbolo(Cadena[i].ToString(), x);//Analizo el Simbolo Solo
  265.                                    i = i + 1;
  266.                                }
  267.                            }
  268.                            else if (Cadena[i].ToString() == "\"") //Cada Vez que encuentra una Comilla
  269.                            {
  270.                                int flag = -1;
  271.                                string Union = "";
  272.                                x = i;
  273.                                //Recorrer Toda la Cadena Hasta Ubicar el ""
  274.                                for (int j = i + 1; j < Cadena.Length; j++)
  275.                                {
  276.                                    if (Cadena[j].ToString() == "\"")
  277.                                    {
  278.                                        flag = j;
  279.                                        break;
  280.                                    }
  281.                                    else if (Cadena[j].ToString() == "\n")//oh si llego ah fin de linea y no encontro nada
  282.                                    {
  283.                                        flag = -1;
  284.                                        break;
  285.                                    }
  286.                                }
  287.                                if (flag > -1)
  288.                                {
  289.                                    i = flag + 1;//Actualizamos la Nueva Posicion ah Buscar e Incrementado mas uno
  290.                                    //Un Pequeño Recorrido para Concadenar
  291.                                    for (int k = x; k < i; k++)
  292.                                        Union = Union + Cadena[k];
  293.                                    dgvtokens.RowCount = dgvtokens.RowCount + 1;
  294.                                    dgvtokens[0, dgvtokens.RowCount - 1].Value = "62";
  295.                                    dgvtokens[1, dgvtokens.RowCount - 1].Value = Union.ToString();
  296.                                    dgvtokens[2, dgvtokens.RowCount - 1].Value = "CADENA - CA";
  297.                                    dgvtokens[3, dgvtokens.RowCount - 1].Value = (x + 1).ToString();
  298.                                }
  299.                                else
  300.                                {
  301.                                    AnalizarSimbolo(Cadena[i].ToString(), x);//Analizo el Simbolo Solo
  302.                                    i = i + 1;
  303.                                }
  304.                            }
  305.                            else if (Cadena[i].ToString() == "'") //Cada Vez que Encuentre una Comilla Simple
  306.                            {
  307.                                x = i;
  308.                                string Union = Cadena[i].ToString() + Cadena[i + 1].ToString();
  309.                                i = i + 2;
  310.                                if (i <= Cadena.Length - 1)
  311.                                {
  312.                                    if (Cadena[i].ToString() == "'") //Si Cumple la Condicion
  313.                                    {
  314.                                        dgvtokens.RowCount = dgvtokens.RowCount + 1;
  315.                                        dgvtokens[0, dgvtokens.RowCount - 1].Value = "63";
  316.                                        dgvtokens[1, dgvtokens.RowCount - 1].Value = Union.ToString() + Cadena[i].ToString();
  317.                                        dgvtokens[2, dgvtokens.RowCount - 1].Value = "CARACTER - CR";
  318.                                        dgvtokens[3, dgvtokens.RowCount - 1].Value = (x + 1).ToString();
  319.                                        i++;
  320.                                    }
  321.                                    else
  322.                                    {
  323.                                        i = x;
  324.                                        AnalizarSimbolo(Cadena[i].ToString(), x);
  325.                                        i = i + 1;
  326.                                    }
  327.                                }
  328.                                else //Regreso al Principio donde Almaceno mi Puntero
  329.                                {
  330.                                    i = x;
  331.                                    AnalizarSimbolo(Cadena[i].ToString(), x);
  332.                                    i = i + 1;
  333.                                }
  334.                            }
  335.                            else //Si no se Cumple nada de las Condiciones Dada Analizo el Simbolo para Ver si es un Desconocido
  336.                            {
  337.                                AnalizarSimbolo(Cadena[i].ToString(), x);
  338.                                i = i + 1;
  339.                            }
  340.                        }
  341.                        else // Si Solo  Tengo un Simbolo
  342.                        {
  343.                            AnalizarSimbolo(Cadena[i].ToString(), x);
  344.                            i = i + 1;
  345.                        }
  346.                    }
  347.                }
  348.                else //Si solo es una Cadena de Longitud 1
  349.                {
  350.                    x = i;
  351.                    if (AnalizarNumero(Cadena[i]))
  352.                    {
  353.                        Texto = Cadena[i].ToString();
  354.                        dgvtokens.RowCount = dgvtokens.RowCount + 1;
  355.                        dgvtokens[0, dgvtokens.RowCount - 1].Value = "60";
  356.                        dgvtokens[1, dgvtokens.RowCount - 1].Value = Texto.ToString();
  357.                        dgvtokens[2, dgvtokens.RowCount - 1].Value = "NUMERO ENTERO - NE";
  358.                        dgvtokens[3, dgvtokens.RowCount - 1].Value = (x + 1).ToString();                        
  359.                    }
  360.                    else if (AnalizarLetra(Cadena[i]))
  361.                    {
  362.                        Texto = Cadena[i].ToString();
  363.                        PR(Texto); //Llamamos ah un Procedimiento Palabra Reservada -PR para Confirmar si es una PR                          
  364.                    }
  365.                    else
  366.                    {
  367.                        AnalizarSimbolo(Cadena[i].ToString(), x);
  368.                    }
  369.                    Texto = "";
  370.                    i++;
  371.                }
  372.  
  373.            }
  374.            richTextBox2.Text = (Erro) ? "Analisis Lexico INCORRECTO" : "Analisis Lexico CORRECTO";
  375.        }
  376.  
  377.        private void AnalizarSimbolo(string Union, int PosEmpieza)
  378.        {
  379.            int flag = -1;
  380.            int Pos = -1;
  381.            for (int i = 29; i < Simbolo.Length; i++)
  382.            {
  383.                if (Simbolo[i] == Union)
  384.                {
  385.                    flag = 1;
  386.                    Pos = i;
  387.                    break;
  388.                }
  389.            }
  390.            //Verificamos si el Simbolo Pertenece al Lp
  391.            if (flag > -1)
  392.            {
  393.                dgvtokens.RowCount = dgvtokens.RowCount + 1;
  394.                dgvtokens[0, dgvtokens.RowCount - 1].Value = Codigo[Pos];
  395.                dgvtokens[1, dgvtokens.RowCount - 1].Value = Union.ToString();                
  396.                dgvtokens[2, dgvtokens.RowCount - 1].Value = Tokens[Pos];
  397.                dgvtokens[3, dgvtokens.RowCount - 1].Value = (PosEmpieza + 1).ToString();                
  398.            }
  399.            else
  400.            {
  401.                Erro = true;
  402.                dgvtokens.RowCount = dgvtokens.RowCount + 1;
  403.                dgvtokens[0, dgvtokens.RowCount - 1].Value = "64";
  404.                dgvtokens[1, dgvtokens.RowCount - 1].Value = Union.ToString();
  405.                dgvtokens[2, dgvtokens.RowCount - 1].Value = "SIMBOLO DESCONOCIDO - SD";
  406.                dgvtokens[3, dgvtokens.RowCount - 1].Value = (PosEmpieza + 1).ToString();
  407.                dgvErrores.RowCount = dgvErrores.RowCount + 1;
  408.                dgvErrores[0, dgvErrores.RowCount - 1].Value = "1";
  409.                dgvErrores[1, dgvErrores.RowCount - 1].Value = Union.ToString();                
  410.                dgvErrores[2, dgvErrores.RowCount - 1].Value = (PosEmpieza + 1).ToString();
  411.            }
  412.        }
  413.        private void PR(string Texto)
  414.        {
  415.            int flag = -1;
  416.            int Pos = -1;
  417.            for (int i = 0; i < Simbolo.Length; i++)
  418.            {
  419.                if (Simbolo[i] == Texto)
  420.                {
  421.                    flag = 1;
  422.                    Pos = i;
  423.                    break;
  424.                }
  425.            }
  426.            if (flag > -1) // Confirmamos si es una PR
  427.            {
  428.                dgvtokens.RowCount = dgvtokens.RowCount + 1;
  429.                dgvtokens[0, dgvtokens.RowCount - 1].Value = Codigo[Pos];
  430.                dgvtokens[1, dgvtokens.RowCount - 1].Value = Texto.ToString();
  431.                dgvtokens[2, dgvtokens.RowCount - 1].Value = Tokens[Pos];
  432.                dgvtokens[3, dgvtokens.RowCount - 1].Value = (x + 1).ToString();
  433.            }
  434.            else
  435.            {
  436.                dgvtokens.RowCount = dgvtokens.RowCount + 1;
  437.                dgvtokens[0, dgvtokens.RowCount - 1].Value = "59";
  438.                dgvtokens[1, dgvtokens.RowCount - 1].Value = Texto.ToString();
  439.                dgvtokens[2, dgvtokens.RowCount - 1].Value = "VARIABLE O IDENTIFICADOR - ID";
  440.                dgvtokens[3, dgvtokens.RowCount - 1].Value = (x + 1).ToString();
  441.            }
  442.        }              
  443.  
  444.        private bool AnalizarNumero(char p)
  445.        {
  446.            bool Estado;
  447.            switch (p.ToString())
  448.            {
  449.                case "0":
  450.                case "1":
  451.                case "2":
  452.                case "3":
  453.                case "4":
  454.                case "5":
  455.                case "6":
  456.                case "7":
  457.                case "8":
  458.                case "9": Estado = true; break;
  459.                default: Estado = false; break;
  460.            }
  461.            return Estado;
  462.        }
  463.  
  464.        private bool AnalizarLetra(char p)
  465.        {
  466.            return char.IsLetter(p) ? true : false;
  467.        }
  468.    }
  469. }


En línea

Zeroql


Desconectado Desconectado

Mensajes: 957


Todo lo k sucede sucede por una razon


Ver Perfil WWW
Re: Complicadores
« Respuesta #1 en: 15 Noviembre 2010, 16:55 pm »

Muy bueno, un sistema de compilacion, intente hacer uno asi, pero me enrede, aunque se puede optimizar.
igual es muy bueno.


En línea

Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo.
/.-ZEROQL.-\   -----  #937675#

.::IT::.

Desconectado Desconectado

Mensajes: 167



Ver Perfil
Re: Complicadores
« Respuesta #2 en: 15 Noviembre 2010, 18:01 pm »

Grande "Choclo"  ;-) estoy seguro que me ah de servir en algun momento gracias por compartir!!!!!!!!
En línea

Simplemente .::IT::.
Choclito

Desconectado Desconectado

Mensajes: 99



Ver Perfil
Re: Complicadores
« Respuesta #3 en: 15 Noviembre 2010, 22:26 pm »

de nada amigos para eso tamoz para compartir xD...!
En línea

argaMalo

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Complicadores
« Respuesta #4 en: 15 Abril 2012, 23:57 pm »

quisiera q me ayudaras tengo problemas con dgvtokens me sale error. y necesito q me funcione ya q lo deseo utilizar
En línea

rubensin

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Complicadores
« Respuesta #5 en: 9 Mayo 2014, 05:15 am »

de casualidad no tienes algun compilador en c sharp que me lo puedas pasar. gracias
En línea

rubensin

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Complicadores
« Respuesta #6 en: 9 Mayo 2014, 05:16 am »

algun compilador porfavor que me  lo puedas pasar en c sharp
En línea

.::IT::.

Desconectado Desconectado

Mensajes: 167



Ver Perfil
Re: Complicadores
« Respuesta #7 en: 10 Mayo 2014, 08:50 am »

algun compilador porfavor que me  lo puedas pasar en c sharp

Puedes probar http://roslyn.codeplex.com/
En línea

Simplemente .::IT::.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines