meta data for this page
  •  

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revisionBoth sides next revision
deprecated_settings [2020/10/22 17:37] revuskydeprecated_settings [2020/11/25 12:42] revusky
Line 28: Line 28:
 In general, code injection can be used to specify that any generated class should extend a given class or implement whatever interface(s). There is no need for a plethora of configuration settings for this. In general, code injection can be used to specify that any generated class should extend a given class or implement whatever interface(s). There is no need for a plethora of configuration settings for this.
  
-The following configuration options are still supported but are deprecated in JavaCC21:+The following configuration option is still supported but is deprecated in JavaCC21:
  
-  * **OUTPUT_DIRECTORY**: This is deprecated in favor of the new BASE_SRC_DIR option. See [[convention over configuration]] for more information on the preferred way to specify your directory layout when using JavaCC21. 
   * **NODE_PREFIX**: Use of this is not encouraged in JavaCC21. By default, it is simply the empty string. (In JavaCC (or JJTree to be precise) it was "AST" by default.) I guess that prefixing all the Node classes with "AST" is a (crude) way of defining a Namespace. However, one would think these people noticed that Java has this thing called ''packages''   * **NODE_PREFIX**: Use of this is not encouraged in JavaCC21. By default, it is simply the empty string. (In JavaCC (or JJTree to be precise) it was "AST" by default.) I guess that prefixing all the Node classes with "AST" is a (crude) way of defining a Namespace. However, one would think these people noticed that Java has this thing called ''packages''
  
Line 41: Line 40:
 To specify the parser and lexer class names, you may use the ''PARSER_CLASS'' and ''LEXER_CLASS'' configuration options. However, it is not mandatory, since a ''Foo.javacc'' file will automatically generate a parser class called ''FooParser'' and a lexer class called ''FooLexer''. There will rarely be any practical value in overriding that. To specify the parser and lexer class names, you may use the ''PARSER_CLASS'' and ''LEXER_CLASS'' configuration options. However, it is not mandatory, since a ''Foo.javacc'' file will automatically generate a parser class called ''FooParser'' and a lexer class called ''FooLexer''. There will rarely be any practical value in overriding that.
  
-There are a host of settings that were added //after// the FreeCC fork, which was in mid-2008. See [[ancient history]] for more information on all this. No settings added to legacy JavaCC after about 2008 are currently in JavaCC 21. Most of them are of very marginal value. Moreover, it is safe to say that nobody uses them because they are not documented anywhere that I can find! Just for example, the **GRAMMAR_ENCODING** option was added at some point after 2008 (I don't know when exactly) to specify what encoding your grammar file is in. I am certain that nobody uses this. (Or just about nobody surely.) Everybody stores their grammar files in the system default encoding which is ''UTF-8'' on any remotely modern system that any serious developer would be working on. Adding these kinds of options that nobody uses is actually very typical of a [[nothingburger]] project. (Adding all these options and not even documenting them is nothingburger-ism squared!)+There are a host of settings that were added //after// the FreeCC fork, which was in mid-2008. See [[ancient history]] for more information on all this. No settings added to legacy JavaCC after about 2008 are currently supported in JavaCC 21. Most of them are of very marginal value. Moreover, it is safe to say that nobody uses them because they are not documented anywhere that I can find! Just for example, the **GRAMMAR_ENCODING** option was added at some point after 2008 (I don't know when exactly) to specify what encoding your grammar file is in. I am certain that nobody uses this. (Or just about nobody surely.) Everybody stores their grammar files in the system default encoding which is ''UTF-8'' on any remotely modern system that any serious developer would be working on. Adding these kinds of options that nobody uses is actually very typical of a [[nothingburger]] project. (Adding all these options and not even documenting them is nothingburger-ism squared!)
  
  
 See [[new settings in JavaCC 21]] for information on settings introduced in JavaCC21 that were not present in legacy JavaCC. See [[new settings in JavaCC 21]] for information on settings introduced in JavaCC21 that were not present in legacy JavaCC.