La construction d'un analyseur (Partie I)

Je suis en train de faire mon propre basée sur javascript langage de programmation (ouais, c'est fou, mais c'est pour apprendre que... peut-être?). Eh bien, je suis en train de lire sur les analyseurs et la première étape est de convertir le code source de tokens, comme:

if(x > 5)
  return true;

Tokenizer pour:

T_IF          "if"
T_LPAREN      "("
T_IDENTIFIER  "x"
T_GT          ">"
T_NUMBER      "5"
T_RPAREN      ")"
T_IDENTIFIER  "return"
T_TRUE        "true"
T_TERMINATOR  ";"

Je ne sais pas si ma logique est correcte pour que de tout. Sur mon parser, c'est encore mieux (ou pas?) et traduire pour elle (ouais, tableau multidimensionnel):

T_IF             "if"
  T_EXPRESSION     ...
    T_IDENTIFIER     "x"
    T_GT             ">"
    T_NUMBER         "5"
  T_CLOSURE        ...
    T_IDENTIFIER     "return"
    T_TRUE           "true"

J'ai quelques doutes:

  1. Est ma façon meilleure ou pire que la façon originale? Notez que mon code sera lu et compilé (traduit dans une autre langue, comme PHP), au lieu d'interpréter tout le temps.
  2. Après je tokenizer, ce que je dois faire exactement? Je suis vraiment perdu sur ce col!
  3. Il y a quelques bon tutoriel pour savoir comment je peux faire?

Bien, c'est que. Bye!

  • Hey, en faisant un langage de programmation n'est pas fou. Beaucoup de gens ici font la même chose.
  • Avez-vous essayé le Dragon-Book? Fondamentalement, ce que vous appelez passer de l'un est le lexer étape, suivie par le syntaxiques analyse de l'étape -> idéalement, la sortie d'une sorte d'AST (Abstract syntax Tree) que vous pouvez ensuite analyser sémantiquement (parse) ou de convertir dans votre langue cible
  • Haha... Oui, le fou de la partie est qui est très complexe à un peuple le faire. Mais apprendre, c'est une très bonne chose, vraiment. Pour un usage professionnel, je suppose que c'besoin d'une équipe, il est fou de le faire seul. :p