Changelog 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. Version 0.5.5:
  2. Fixed bugs:
  3. - The LLscnt_ array for thread-safe parsers was dimensioned incorrectly.
  4. - Handling of string escapes was incorrect for unknown escapes.
  5. Version 0.5.4:
  6. Fixed bugs:
  7. - LLsymb is now properly initialized before the first call to LLread and
  8. the lexer
  9. Version 0.5.3:
  10. New features:
  11. - added possibility to mark a code section with %top, which will cause it
  12. to be included at the top of the output
  13. Version 0.5.2:
  14. Fixed bugs:
  15. - correct check for overflow in addition, which caused incorrect length
  16. calculations under some compiler optimisations. The user visible result
  17. was that a "Recursion in default for non-terminal" error was reported
  18. where there should be none
  19. - octal escapes between 300 and 377 are now properly parsed, as well as
  20. two character octal escapes between \30 and \77
  21. Version 0.5.1:
  22. New features:
  23. - variables created to hold return values are now initialised the same way
  24. that LLretval is initialised. This prevents uninitialised use of these
  25. values and is better aligned with user expectation.
  26. - warnings are generated for some cases in which it is clear that a
  27. returned value is not used in subsequent code.
  28. Version 0.5.0:
  29. New features:
  30. - a new repetition operator (..?) is implemented. With it, users can
  31. specify that the last element in a repeating term is optional for the
  32. last repetition of that term.
  33. - an option to specify the extensions of the generated files was
  34. added.
  35. Fixed bugs:
  36. - in case of a %while controlled repetition conflict in a ? repetition,
  37. the sets controlling error recovery would not be adjusted correctly if
  38. the %while expression evaluated to false
  39. - when tracing tokens the EOFILE token resulting from %start directives
  40. would not be printed
  41. Version 0.4.1:
  42. New features:
  43. - a new element, the back-reference operator is introduced. By using ...
  44. elements preceding the current term in its enclosing term are copied in
  45. its place. Most usefull for comma-separated lists and similar constructs
  46. Fixed bugs:
  47. - moved initialisation of LLretval to before user supplied declarations,
  48. such that assignments to LLretval like: rule<int> { LLretval = 1; }: ...
  49. will not be undone
  50. - return value overrides specified on tokens will now trigger an error
  51. Version 0.4.0:
  52. New features:
  53. - return values for rules
  54. - the --depend option has an extra modifier phony, that adds phony targets
  55. for all the dependencies to avoid make problems when renaming or
  56. removing dependencies
  57. - the --help option does not show all options by default anymore. An
  58. optional argument has been added to --help to select which options to
  59. show
  60. - detection of symbols that are likely to clash with generated symbols
  61. - LLindex and LLsets internal variables are now const, to make sure they
  62. don't get overwritten and to allow more compiler optimizations
  63. Fixed bugs:
  64. - removed a typo, which caused erroneous arguments to --dump-tokens to
  65. report an erroneous argument to --depend
  66. - fixed typos in the output --dump-llmessage
  67. - added volatile keyword to local variables in the generated parser if
  68. --abort and --reentrant are used because setjmp/longjmp is not
  69. guaranteed to correctly save local variables otherwise
  70. - printing of contains sets has been restored for --verbose=3
  71. - LLnextgen will no longer stop if a 0 byte is found in the input
  72. Version 0.3.3:
  73. Fixed bugs:
  74. - using characters in the range 0x80 - 0xff in the input could cause
  75. segmentation faults
  76. Version 0.3.2:
  77. New features:
  78. - an option to facilitate gettext use by adding macros in the symbol table
  79. definition for all user defined strings, and a call to gettext in
  80. LLgetSymbol
  81. Fixed bugs:
  82. - minor issues with symbol table generation
  83. - using --generate-lexer-wrapper caused compile errors for generated
  84. parser due to undeclared symbol
  85. Version 0.3.1:
  86. Fixed bugs:
  87. - the configure script has been fixed
  88. Version 0.3.0:
  89. New features:
  90. - an option to specify a regular expression for which token definitions are
  91. automatically generated, plus an option to dump the automatically
  92. generated token definitions [Only available if the POSIX regular
  93. expression API is available on your platform]
  94. - more error messages are now generated in input-line order
  95. - fewer aborts for "ambiguous input", because several errors are now
  96. considered non-critical for further analysis
  97. - new implementation of LLreissue that automatically saves the token to be
  98. reissued
  99. - include guards in generated header file
  100. - defines added to header file to allow for version testing
  101. - an option to generate thread-safe parsers
  102. NOTE: the new LLreissue implementation is incompatible with previous
  103. versions of LLnextgen. If you use LLreissue, and do not use the generated
  104. lexical analyser wrapper, you will have to adapt your code. See
  105. documentation for details.
  106. Fixed bugs:
  107. - fixed bug in handling of \x escape sequences in include-file names and
  108. option strings
  109. - fixed bug that would stop LLnextgen reading the trailing portiong of a
  110. file that included another but was missing a ';' after the %include
  111. directive
  112. Version 0.2.5:
  113. New features:
  114. - added option to generate dependency information about the generated files
  115. - added option to dump top-level C-code to allow the C preprocessor to
  116. generate dependency information for the generated files
  117. Fixed bugs:
  118. - added warning about using --generate-lexer-wrapper and --reentrant at the
  119. same time.
  120. - removed double warnings about certain combinations of options
  121. - reduced the size of the LLscnt array by a factor LL_SSETS
  122. - fixed error about unterminated comments for line comments at the end
  123. of a file
  124. Version 0.2.4:
  125. Fixed bugs:
  126. - finding the base name of file names on MS-Windows was implemented
  127. incorrectly. It assumed that \ was the only directory separator, while
  128. / is also allowed.
  129. Version 0.2.3:
  130. New features:
  131. - detailed suppression of warnings. NOTE: the option --no-warn-eof has been
  132. removed in favour of the new warning suppression mechanism
  133. Fixed bugs:
  134. - warning suppression wasn't implemented for most warnings. This has now
  135. been fixed
  136. - a warning is now issued regarding use of --reentrant if multiple %start
  137. directives are used in one grammar. The warning can be suppressed with
  138. --suppress-warnings=multiple-parser
  139. Version 0.2.2:
  140. Fixed bugs:
  141. - long options would be recognised even if only a leading substring would
  142. be specified
  143. - the alternation conflict example was corrected
  144. Version 0.2.1:
  145. Fixed bugs:
  146. - fixed %first code for sets with one or more tokens
  147. Version 0.2:
  148. New features
  149. - symbol table generation
  150. - dumping of lexer wrapper
  151. - dumping of default LLmessage
  152. - LLabort
  153. - %include
  154. - %options
  155. Fixed bugs:
  156. - lexer-wrapper and default LLmessage compile problems
  157. - prevent potential name space clobbering with token names by moving the
  158. #include directive
  159. - defered reading of next token for
  160. [ 'a' | 'b' ]
  161. constructions so that a following action can assume the token text to be
  162. valid (LLgen compatibility fix)
  163. - labels were generated incorrectly when using a %while to solve
  164. repetition conflicts in + repetitions, leading to uncompilable code
  165. - file name handling on MS Windows platform
  166. - symbol renaming bugs
  167. - removed spurious error messages about:
  168. - alternatives never being chosen, while there was only one (be it empty)
  169. alternative in a rule
  170. - Terms without symbols
  171. - fixed %first code for empty sets and sets with only one token
  172. - fixed add length routine, so it now takes the factor into account. This
  173. corrects an error in default alternative determination for alternatives
  174. including a fixed repetition term with a repetition count larger than 1
  175. - many minor bugs
  176. Version 0.1.1:
  177. Fixed bugs:
  178. - Now print warning message at top of Lpars.c and Lpars.h
  179. - bug fix in token tracking code, which caused erroneous error messages