2008-10-05 12 views
28

Potrzebuję pełnej składni Object Pascal (najlepiej Delphi 2009). Część składni jest podana w plikach pomocy, ale nie wszystkie informacje są dostępne. Zacząłem więc zbierać luźne informacje. Ostatnio dodałem je do mniej lub bardziej kompletnego opisu składni (podobnego do EBNF).Poszukuję pełnej składni Delphi (obiekt pascal)

Chociaż wygląda na obszerny, nadal istnieją błędy i jestem pewien, że brakuje niektórych części (szczególnie w składni .NET). Pytam więc społeczność SO Delphi. Czy masz jakieś informacje lub czy możesz poprawić błędy? W zamian zapewniam pełną składnię społeczności. Prawdopodobnie oszczędza ci to trochę czasu ;-). W przyszłości lubię robić to samo dla innych języków (jak C#/C++/Java).

Podano opis składni, który już mam: My Syntax sofar. Lub jeśli podoba Ci się Text version. (XHTML jest generowany z wersji tekstowej).

Należy pamiętać, że składnia koncentruje się na części syntaktycznej, ponieważ część leksykalna nie stanowi problemu.

Aktualizacja

Mam nową wersję Delphi składni. html version. Obejmuje wersje al, w tym 2009. Pryzmaty są nadal na liście rzeczy do zrobienia. I nie jestem pewien, czy zachowam je razem.

Dla prawdziwych purystów, zawiera również pełny kod assemblera (który nie obsługuje pełnego 100% zestawu intel, ale tylko kilka instrukcji zostało pominiętych.).

+0

Co próbujesz osiągnąć, tj. Jaki jest twój cel końcowy? Gramatyka sama w sobie nie jest zbyt użyteczna. Czy jest przeznaczony do odczytu maszynowego (np. Dla generatora analizatora składni)? –

+0

@menjaraz, nie, nie znalazłem dodatkowego źródła. Ale prawie skończyłem ze składnią XE2, używając wszelkich informacji ze źródeł, pomocy, stron internetowych oraz prób i błędów. –

+3

Twoja wersja gramatyki języka Delphi z 2009 r. Jest teraz używana w dodatku Sonar Delphi, który został wydany w lutym 2012 r. I jest dostępny pod adresem http://docs.codehaus.org/display/SONAR/Delphi+Plugin – mjn

Odpowiedz

1

Czym dokładnie są błędy i funkcjonalność, których brakuje?

Po zeskanowaniu dokumentu wydaje się, że mieszasz składnię i semantykę. Nie rozumiem, dlaczego rozróżniać SimpleTypeFloat i SimpleTypeOrdinal na poziomie syntaktycznym lub pierwszeństwo operatora kodu jako funkcję składniową w AddOp i MulOp. true, false, nil to identyfikatory, tak jak każda wybrana nazwa zmiennej.

0

Zawsze można przeczytać źródło do Free Pascal Compiler. Obsługuje Object Pascal.

+0

Lub po prostu spróbuj uruchomić analizator składni na zestawie testowym FPC. Ma wiele przykładowych programów z bardziej "ODD" Obj Pascal funkcje –

16

Spróbuj tego: DGrok - Delphi gramatyka

+0

To wygląda obiecująco. Thanx! –

+0

Nice. Poziom Delphi 2007. Analizator składni w języku C#. Szkoda, że ​​nie było takiego na poziomie XE. –

+0

@Warren P: [PasParse] (https://github.com/Turbo87/PasParse) to port DGrok Delphi Ciesz się ;-) ale nadal poziom Delphi 2007 :-( – menjaraz

3

Nie ma kompletne, opublikowane Składnia Delphi. Pamiętaj, że .net i win32 delphi mają różne składnie.

This project ma wbudowany ręczny parser Delphi. I wiele przypadków testowych kodu, który kompiluje, ale przesuwa granice składni.

1

Gramatyka Delphi 7 znajduje się z tyłu książki Object Pascal.

Masz na myśli za kilka tysięcy dolarów, że nawet ci tego nie wysyłają? Czy wysyłają ci nawet plakat 6 "x 6"?

+0

Nie, ja też tego nie mam. To dlatego –

2

To może być dobra pomoc. Jest to parser używane w TwoDesk's Castalia.

+0

FPC używające RAD, Lazarus również wyróżnia parsery oparte na mw * (później synhighlighter) –