There seem to be no differences between the grammar of Borland Delphi 4 and D5. However diffs between D6 (VER140) and D4 are the following: - 'local' - directive ignored in Windows programming? is 'exports' allowed in units, not only libraries? - 'platform', 'deprecated', and 'library' - hint directivee after declarations of identifiers, and after the 'end' of routines. 'library' should be a directive? As long as keywords have no contextual scope, 'library' should be left as keyword. - 'varargs' - directive "The varargs directive works only with external routines and only with the cdecl calling convention." used for "importing a C++ function that takes a variable number of parameters" - some new comment-directives: {$MESSAGE {$SetPEFlags {$$SetPEOptFlags "new $IF directive with constant expression evaluation" {$IF Defined(WIN32) and (SomeConst > 12.0) } - new assembler: "New directives, VMTOFFSET and DMTINDEX New instruction support: MMX, SIMD, Enhanced MMX, and Intel SSE for the Pentium Pro, Pentium III, and Pentium 4 CPUs; and AMD Enhanced 3D for the AMD K7 CPUs. New support for DQ (define quadword data) pseudo-opcode." ---------------------------------------------------------------------------------------- My schedule: - update comments for Chartable "string : UPARROW IMMCHARR_ID ;" conversion goes rather "if $61 <= x <= $7A then Result := ( x XOR $40 ) - $20 else Result := ( x XOR $40 );" - first rewrite D4 grammar to EBNF with help of Aedil's y22l.awk (Yacc to LaTeX) (see http://y2l.sourceforge.net/download/y2l.tar.gz ). (I wrote a Ebnf2Yacc.sed script so this should cause problems for yacc users.) - rename some %token according to (Character Mnemonics, ISSO 2DIS 10646, rfc1345) - generate good docs with LaTeX package named rail. - consider other parsing strategies; e.g. generate a RDP wwith the simple tool Compmake (Compiler-Maker 1.0; Toolbox 1994.06 ) - port grammar from D4 to D6; may be a complete front-end with AST-generation ... if i find enough time, ...