Я создаю свой собственный язык программирования на основе javascript (да, это сумасшествие, но это только для изучения... может быть?). Ну, я читаю о синтаксических анализаторах, и первый проход заключается в том, чтобы преобразовать исходный код в токены, например:
if(x > 5)
return true;
Tokenizer to:
T_IF "if"
T_LPAREN "("
T_IDENTIFIER "x"
T_GT ">"
T_NUMBER "5"
T_RPAREN ")"
T_IDENTIFIER "return"
T_TRUE "true"
T_TERMINATOR ";"
Я не знаю, правильна ли моя логика для этого. На моем парсере это еще лучше (или нет?) И перевести на него (да, многомерный массив):
T_IF "if"
T_EXPRESSION ...
T_IDENTIFIER "x"
T_GT ">"
T_NUMBER "5"
T_CLOSURE ...
T_IDENTIFIER "return"
T_TRUE "true"
У меня есть некоторые сомнения:
- Мой путь лучше или хуже, чем оригинальный способ? Обратите внимание, что мой код будет считан и скомпилирован (переведен на другой язык, например PHP), вместо того, чтобы все время интерпретировать.
- После я токенизатора, что мне нужно делать точно? Я действительно потерялся на этом пропуске!
- Есть несколько полезных уроков, чтобы узнать, как я могу это сделать.
Хорошо, это так. Bye!