Construyendo un analizador sintético (Parte I)

Estoy creando mi propio lenguaje de programación basado en JavaScript (sí, es una locura, pero es solo para aprender ...¿tal vez). Bueno, estoy leyendo sobre analizadores y el primer paso es convertir el código fuente en tokens, como:

if(x > 5)
  return true;

Tokenizer para:

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 para eso por un tiempo. En mi analizador es aún mejor ¿o no) y traducirlo (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 ser interpretado todo el tiempo. Después de usar el tokenizador, ¿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

Respuestas a la pregunta(6)

Su respuesta a la pregunta