2008-10-05 14 views
28

Ho bisogno di una sintassi Object Pascal completa (preferibilmente Delphi 2009). Alcune delle sintassi sono fornite dai file di aiuto, ma non tutte le informazioni sono fornite. Così ho iniziato a raccogliere informazioni sciolte. Di recente li ho aggiunti a una descrizione della sintassi più o meno completa (simile a EBNF).Ricerca di una sintassi completa Delphi (oggetto pascal)

Anche se sembra esteso, ci sono ancora bug e sono sicuro che mancano le parti (specialmente nella sintassi .NET). Quindi sto chiedendo alla comunità SO Delphi. Hai qualche informazione o puoi correggere gli errori? In cambio fornisco la sintassi completa alla comunità. Probabilmente ti farà risparmiare un po 'di tempo ;-). In futuro mi piace fare lo stesso per altri linguaggi (come C#/C++/Java).

La descrizione della sintassi che ho già è data: My Syntax sofar. O se ti piace un Text version. (L'XHTML è generato dalla versione di testo).

Si noti che la sintassi si concentra sulla parte sintattica, poiché la parte lessicale non è realmente un problema.

Aggiornamento

ho una nuova versione della Delphi sintassi. html version. Include versioni al compreso 2009. Le estensioni dei prismi sono ancora nella lista delle cose da fare. E non sono sicuro se li terrò insieme.

Per i veri puristi, contiene anche il codice completo dell'assemblatore (che non supporta il 100% del set intel ma mancano solo alcune istruzioni).

+0

Cosa stai cercando di ottenere, qual è il tuo obiettivo finale? Una grammatica da sola non è utile per molto. È inteso per essere leggibile dalla macchina (ad esempio per un generatore di parser)? –

+0

@menjaraz, no, non ho trovato una risorsa aggiuntiva. Ma ho quasi finito con la sintassi XE2 usando qualsiasi informazione da fonti, aiuto, siti Web e tentativi ed errori. –

+3

La tua versione 2009 della grammatica di Delphi è ora utilizzata nel plug-in Sonar Delphi, pubblicato a febbraio 2012, disponibile su http://docs.codehaus.org/display/SONAR/Delphi+Plugin – mjn

risposta

1

Quali sono esattamente gli errori e le funzionalità che mancano?

Dalla scansione del documento, sembra che si mescolino sintassi e semantica. Non capisco perché distinguere tra SimpleTypeFloat e SimpleTypeOrdinal a livello sintattico, o la precedenza degli operatori di codice come funzione sintattica in AddOp e MulOp. true, false, nil sono identificatori proprio come qualsiasi nome di variabile che si sceglie.

0

È sempre possibile leggere la sorgente su Free Pascal Compiler. Supporta Object Pascal.

+0

Oppure prova a eseguire il parser nella suite di test FPC. Ha un sacco di programmi di esempio del più "ODD" Obj Pascal caratteristiche –

16

Prova questo: DGrok - Delphi grammatica

+0

Questo sembra promettente. Grazie! –

+0

Bello. Livello Delphi 2007. Parser in C#. Vorrei che ce ne fosse uno al livello XE. –

+0

@Warren P: [PasParse] (https://github.com/Turbo87/PasParse) è una porta Delphi DGrok Goditi ;-) ma ancora livello Delphi 2007 :-( – menjaraz

3

Non c'è completa, sintassi pubblicato per Delphi. Tieni presente che .net e win32 delphi hanno sintassi diverse.

This project ha un parser Delphi compilato a mano. E molti casi di test di codice che compila ma spinge i limiti della sintassi.

1

La grammatica di Delphi 7 si trova nella parte posteriore del libro Object Pascal.

Intendi per qualche migliaio di dollari che non ti mandano nemmeno questo? Ti mandano addirittura un poster di 6 'x 6'?

+0

No, non ce l'ho neanche io. Ecco perché: –

2

Questo potrebbe essere un buon aiuto. È lo parser utilizzato in TwoDesk's Castalia.

+0

L'FPC che utilizza RAD, Lazarus ha evidenziato anche i parser basati su mw * (in seguito synhighlighter) –