Page 1 of 1

Version 3, Mark finally weighs in

Posted: Tue Jun 14, 2011 9:36 am
by MtnViewJohn
Mark read the version 3 external reference spec and proposes these changes:
  • All of the CF_ constants and flags should be moved into the CF:: namespace, now that we have namespaces.
  • cfdg files should be all version 2 or all version 3, no mixing of the two types
  • Continue to use shape to introduce version 3 rules, but use path to introduce version 3 paths
  • Context Free uses curly brackets for too many things. Mark wants to use square brackets for shape adjustments and only use curly brackets for statement grouping. Single bracket pairs [ ] would enclose shape adjustments in canonical form and double bracket pairs [[ ]] would enclose shape adjustments in ordered form. The canonicizing operator goes away.
  • background, tile, and size directives would go away. They would be replaced by configuration variables CF::background, CF::tile, and CF::size.
  • The syntax for indicating that a rule is reusing its parameters is too easy to mistake. Instead of empty parentheses it will be parentheses enclosing an equal sign: foo(=) []
  • Get rid of forward declarations. Just do two-pass parsing.
  • Dynamically picking 1 or -1 for the loop increment is evil. If the loop increment is not specified then the loop increment is 1.
  • cfdg files are Unicode files in any encoding scheme, not just UTF8 encoding