Sto avviando un progetto di classe che riguarda l'aggiunta di alcune funzionalità a Go.Vai utilizza Vai a analizzare se stesso?
Tuttavia, sono completamente confuso sulla struttura di Go. Avevo l'impressione che Go usasse flex e bison ma non trovo nulla di familiare nel codice sorgente Go.
D'altra parte, la directory go/src/pkg/go ha cartelle con nomi familiari (ast, token, parser, ecc.) Ma tutti contengono file .go. Non ho capito bene!
La mia richiesta è, di chiunque abbia familiarità con Go, puoi darmi una panoramica di come Go è lexed, parsed, ecc. E dove trovare i file per modificare la grammatica e cosa no?
Non sarei sorpreso se avessero scritto il parser a mano (e anche il rollare a mano un lexer non è terribilmente stravagante). In realtà è abbastanza comune per i compilatori maturi e ha vari vantaggi. – delnan