Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Here are notes on a medium-sized commit by jrose to clean up groovy.g and associated files.

Affected source files:

Functional changes

  • Allow newline before LBRACE uniformly. Use nlsWarn in all such cases.
  • Factor T[] syntax into declaratorBrackets rule.
  • Make new and METHOD_CALL expressions have common structure.
  • Add grammar for proposed "$*x" GString syntax.
  • Right-exclusive ranges are spelled x..<y (x...y temporarily backward-compatible).
  • Fix bug in #! comment syntax.
  • Clarify keywords in argList rule. Allow '[:' only in grammar notes.

Name changes

  • SPREAD_ARG => SPREAD_DOT (for *. nodes)
  • OPTIONAL_ARG => OPTIONAL_DOT (for ?. nodes)


  • Remove transitional hack arrayOrTypeArgs.
  • Clean up and simplify pathExpression and commandStatement rules.
  • Add some more javadoc.
  • Remove annoying zz= decorations on argList, etc.
  • Remove useless rules for expressionBlock, assignmentTail, assignmentOp.
  • Factor statement label syntax into statementLabelPrefix.
  • Remove some useless 'greedy' declarations.