Hola a todos, tengo una duda acerca de la construccion de compiladores, especificamente en la construccion del analizador lexico, y es acerca de los numeros negativos, lo que pasa, que un token valido deberia de ser -343 no? realmente lo validaria en la tabla de simbolos como un numero negativo, pero que pasa si escribo
int o= 3-4?
Es decir si yo pongo
int o=-4
En la tabla de simbolos entraria:
int variable = numero
pero y si yo escribo
int o=4-3
En la tabla de simbolos entraria:
int variable = numero numero
lo cual estaria mal, pues deberia entrar
int variable = numero - numero
no? cual seria la condicion para establecer esto? o acaso estoy equivocado?
Porfavor, alguien que me aclare mi duda :)
defines que elementos van a delimitar a los tokens, esto es generalemente el signo de espacio, pero tambieen pueden ser los simbolos aritmeticos logicos, parentesis, puntos, comas etc, sigono = etc,
asi por ejem
si encuentra esto
*nt var= -23;
recoge int, que la identifica como palabra resevada
despues var, que al no ser una palabra reservada, la mete como variable a la talba e variables
despues el signo igual
cpn el signo no se
creo que depende de como lo quieras manejar
si seria 0 mnenos 23
o podria ser
-23
lo puedes manejar como el signo del numero o como una operacion y asi omites el signo del numero la verdad como nunca lo implemente.
intentale asi
int var= 3-4;
int variable= numero - numero
y
int var=-34;
int variable= 0 - numero
intentá asi, y si te sale lo rolas! xD
Umm... ya entendi tu punto, jaja.. creo que no estaba pensando, el problema con lo que me haz dicho primero, es que mi maestro nos dijo que hay una regla a seguir en el desarrollo de un analizador lexico, el fin de un automata, es el principio del segundo... esto es, que si yo pongo:
int var=1
me deberia reconocer
int variable = 1
a pesar de que se este pegado el texto(var=1),
pero ahora que lo pienso, es mi lenguaje, y yo puedo definir la sintaxis en especial del operador negativo
es decir que puedo especificar que si hay un - entonces es un signo negativo, pero si existe un -numero, entonces lo considerara como un numero negativo aun a pesar del contexto en el que se encuentre XD y problema solucionado :) ajajja... no se que tan tonto suene, pero pues asi lo are :) jajaja gracias por ayudarme a pensar... :S ya solo me falta una ultima duda y estara listo! =D