2015-08-31 14 views
6

Passando attraverso il codice nel progetto Nim stesso, trovo che alcuni proc decorati da "magic" pragma mancano la definizione proc (example). Non c'è un documento per spiegare il pragma, immagino che la definizione del proc sia da qualche altra parte e che venga unita durante la compilazione. Ma non riesco ancora a trovare la definizione cercando l'intero progetto.Qual è il significato del pragma "magico" in nim?

Ho frainteso il pragma "magico"? Qual è il significato di questo? E come usarlo?

risposta

4

Il pragma {.magic.} viene utilizzato per definire operazioni e tipi incorporati, vale a dire tutto ciò che richiede il compilatore magico per funzionare (da cui il nome). Non è destinato ad essere utilizzato al di fuori dei moduli del sistema.

+2

Dove posso ottenere le definizioni di questi procs? – Roger

+1

Sono tutti implementati nel compilatore. Ad esempio, la procedura a cui è stato collegato è eventualmente implementata nel ramo 'opcParseStmtToAst' nella procedura' rawExecute() 'in' compiler/vm.nim'. –

+3

In alcune altre lingue/macchine virtuali, queste operazioni 'magic' sono anche chiamate' intrinseche'. Vedi https://en.wikipedia.org/wiki/Intrinsic_function per il contesto aggiuntivo. –

Problemi correlati