Analizar léxicamente en c#

Iniciado por xfz4, 6 Marzo 2013, 07:14 AM

0 Miembros y 1 Visitante están viendo este tema.

xfz4

Hola tengo un problemita con un codigo, como analizo una cadena de caracteres para luego manipularlo a mi antojo por ejemplo:

Código (csharp) [Seleccionar]
Console.WriteLine("Escribe algo: ");
string a = string.Format(Console.ReadLine());
           string str = a;
           char[] caracter = str.ToCharArray();
           foreach (char c in caracter)
           {
              //aqui haria la comparacion por ejemplo
           }

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 (csharp) [Seleccionar]
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

‭lipman

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!