Estoy haciendo mi propio lenguaje de programación basado en JavaScript (sí, es una locura, pero es solo para aprender ... ¿quizás?). Bien, estoy leyendo acerca de los analizadores y el primer paso es convertir el código fuente de fichas, como:Creando un analizador (Parte I)
if(x > 5)
return true;
Tokenizer a:
T_IF "if"
T_LPAREN "("
T_IDENTIFIER "x"
T_GT ">"
T_NUMBER "5"
T_RPAREN ")"
T_IDENTIFIER "return"
T_TRUE "true"
T_TERMINATOR ";"
No sé si mi lógica es correcta por eso por un tiempo En mi programa de análisis es aún mejor (o no?) Y traducir a ella (sí, matriz multidimensional):
T_IF "if"
T_EXPRESSION ...
T_IDENTIFIER "x"
T_GT ">"
T_NUMBER "5"
T_CLOSURE ...
T_IDENTIFIER "return"
T_TRUE "true"
tengo algunas dudas:
- es mi manera mejor o peor que la forma original ? Tenga en cuenta que mi código será leído y compilado (traducido a otro idioma, como PHP), en lugar de interpretado todo el tiempo.
- Después de tokenizer, ¿qué necesito hacer exactamente? ¡Estoy realmente perdido en este pase!
- ¿Hay algún buen tutorial para aprender cómo puedo hacerlo?
Bueno, es eso. ¡Adiós!
Oye, hacer un lenguaje de programación no es una locura. Mucha gente aquí está haciendo lo mismo. – ApprenticeHacker
¿Has probado el Dragon-Book? Básicamente lo que se llama pasar uno es la etapa más lex, seguida por la etapa de análisis sintáctico real -> idealmente generar algún tipo de AST (Árbol de sintaxis abstracta) que luego se puede analizar semánticamente (analizar) o convertir a su idioma de destino – stryba
@IntermediateHacker Haha ... Sí, la parte * loca * es que es muy compleja para una sola persona hacerlo. Pero aprender es algo muy bueno, de verdad. Para un uso profesional, supongo que necesita un equipo, por lo que es una locura hacerlo solo. :pag –