2008-10-05 22 views
28

Necesito una sintaxis completa de Object Pascal (preferiblemente Delphi 2009). Parte de la sintaxis viene dada por los archivos de ayuda, pero no se proporciona toda la información. Así que comencé a recopilar pequeños trozos de información. Recientemente, los agregué a una descripción de sintaxis más o menos completa (como EBNF).Buscando una sintaxis completa de Delphi (objeto pascal)

Aunque parece extenso, todavía hay errores y estoy seguro de que faltan partes (especialmente en la sintaxis .NET). Así que le pregunto a la comunidad SO Delphi. ¿Tiene alguna información o puede corregir los errores? A cambio, proporciono la sintaxis completa a la comunidad. Probablemente le ahorrará tiempo ;-). En el futuro, me gustaría hacer lo mismo para otros idiomas (como C#/C++/Java).

La descripción de la sintaxis que ya tengo está dada: My Syntax sofar. O si te gusta un Text version. (El XHTML se genera a partir de la versión de texto).

Tenga en cuenta que la sintaxis se centra en la parte sintáctica, porque la parte léxica no es realmente un problema.

actualización

tengo una nueva versión de la sintaxis de Delphi. html version. Incluye todas las versiones incluidas 2009. Las extensiones de prisma aún están en la lista de tareas pendientes. Y no estoy seguro si los voy a mantener juntos.

Para los puristas reales, también contiene el código de ensamblador completo (que no admite el 100% completo del conjunto de intel, pero solo faltan algunas instrucciones).

+0

¿Qué estás tratando de lograr, es decir, cuál es tu objetivo final? Una gramática en sí misma no es útil por mucho. ¿Está destinado a ser legible por máquina (por ejemplo, para un generador de analizador sintáctico)? –

+0

@menjaraz, no, no he encontrado un recurso adicional. Pero ya casi termino con la sintaxis XE2 usando cualquier información de fuentes, ayuda, sitios web y prueba y error. –

+3

Su versión 2009 de la gramática Delphi ahora se utiliza en el complemento Sonar Delphi que se ha lanzado en febrero de 2012, disponible en http://docs.codehaus.org/display/SONAR/Delphi+Plugin – mjn

Respuesta

1

¿Cuáles son exactamente los errores y la funcionalidad que te faltan?

Desde el escaneo de su documento, parece que mezcla la sintaxis y la semántica. No entiendo por qué distinguir entre SimpleTypeFloat y SimpleTypeOrdinal en un nivel sintáctico, o la precedencia del operador de código como característica sintáctica en AddOp y MulOp. true, false, nil son identificadores al igual que cualquier nombre de variable que elijas.

0

Siempre puede leer la fuente al Free Pascal Compiler. Es compatible con Object Pascal.

+0

O simplemente intente ejecutar su analizador en el equipo de pruebas FPC. Tiene muchos programas de ejemplo de las funciones Obj Pascal más "ODD" –

16

Prueba esto: DGrok - Delphi gramática

+0

Esto parece prometedor. Gracias! –

+0

Agradable. Nivel Delphi 2007. Analizador en C#. Ojalá hubiera uno en el nivel XE. –

+0

@Warren P: [PasParse] (https://github.com/Turbo87/PasParse) es un DGrok Delphi port Enjoy ;-) pero aún nivel Delphi 2007 :-( – menjaraz

3

No hay, sintaxis completa publicada para Delphi. Tenga en cuenta que .net y win32 delphi tienen sintaxis diferentes.

This project tiene mano-compilar Delphi parser en él. Y muchos casos de prueba de código que compila, pero empuja los límites de la sintaxis.

1

La gramática de Delphi 7 se encuentra en la parte posterior del libro de Object Pascal.

¿Quiere decir por unos pocos miles de dólares que ni siquiera le envían eso? ¿Incluso te envían un póster de 6 'x 6'?

+0

No, yo tampoco lo tengo. Es por eso. –

2

Esto podría ser una buena ayuda. Es el parser usado en TwoDesk's Castalia.

+0

El FPC que usa RAD, Lazarus también ha resaltado los analizadores basados ​​en mw * (más adelante en el símbolo de sincronización) –

Cuestiones relacionadas