Sto creando il mio linguaggio di programmazione basato su javascript (sì, è pazzesco, ma è solo per imparare ...). Beh, sto leggendo parser e il primo passaggio è quello di convertire il codice sorgente per i token, come:Creazione di un parser (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 ";"
Non so se la mia logica è corretta per quello per un po '. Sul mio parser è ancora meglio (o no?) E tradurre ad esso (sì, array multidimensionale):
T_IF "if"
T_EXPRESSION ...
T_IDENTIFIER "x"
T_GT ">"
T_NUMBER "5"
T_CLOSURE ...
T_IDENTIFIER "return"
T_TRUE "true"
ho qualche dubbio:
- è il mio modo migliore o peggiore che il modo originale ? Nota che il mio codice sarà letto e compilato (tradotto in un'altra lingua, come PHP), invece di essere interpretato in ogni momento.
- Dopo il tokenizer, cosa devo fare esattamente? Sono davvero perso su questo passaggio!
- Ci sono alcuni buoni tutorial per imparare come posso farlo?
Bene, è quello. Ciao!
Ehi, fare un linguaggio di programmazione non è pazzesco. Molte persone qui stanno facendo la stessa cosa. – ApprenticeHacker
Hai provato il Dragon-Book? Fondamentalmente quello che chiami passaggio uno è lo stadio lexer, seguito dall'effettivo stadio sintattico sintattico -> idealmente emettendo una sorta di AST (Abstract Syntax Tree) che puoi quindi analizzare semanticamente (analizzare) o convertire nella tua lingua target – stryba
@IntermediateHacker Haha ... Sì, la parte * pazzesca * è molto complessa per una persona. Ma imparare è una cosa molto buona, davvero. Per un uso professionale credo che abbia bisogno di una squadra, quindi è pazzesco farlo da solo. : p –