Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: xfz4 en 6 Marzo 2013, 07:14 am



Título: Analizar léxicamente en c#
Publicado por: xfz4 en 6 Marzo 2013, 07:14 am
Hola tengo un problemita con un codigo, como analizo una cadena de caracteres para luego manipularlo a mi antojo por ejemplo:

Código
  1. Console.WriteLine("Escribe algo: ");
  2. string a = string.Format(Console.ReadLine());
  3.            string str = a;
  4.            char[] caracter = str.ToCharArray();
  5.            foreach (char c in caracter)
  6.            {
  7.               //aqui haria la comparacion por ejemplo
  8.            }
  9.  
En este punto recorro mi cadena ingresada caracter por caracter.
por ejemplo si yo le ingreso 36+p*8
como puedo saber que 3 y 6 son 36, ¿antes de llegar al signo de suma?
Código
  1. if (c == '+')
para luego pedir el valor de 'p'  etc etc ... help  :huh:, es mejor con arreglos?  como lo comparo por ejemplo  if (c == string[] letras = { "aqui pondria letras"}) luego comparo con una lista de signos y el que sea igual le asigno un operador ,.. si se puede hacer esto seria genial solo necesito saber la sintaxis para q funcione yo veria como. saludines   :P

Edito: icono pregunta


Título: Re: Analizar léxicamente en c#
Publicado por: ‭lipman en 6 Marzo 2013, 07:41 am
El tema del análisis léxico es muy complicado, y antes de nada, te diré que si estás interesado ya existen herramientas para realizarlo sin tener que empezar de cero, gracias a las expresiones regulares. Revísate Flex.

Una manera de hacerlo podría ser la siguiente:
Imaginemos que quieres buscar sólo números. Simplemente buscas números y vas guardando en una estructura de datos los números que vas cogiendo. Cuando detectas un carácter paras de buscar y devuelves la estructura de datos.

Un saludo!