Version 3, Mark finally weighs in

Let the developers know what you think of the software and what can be done to either improve the CFDG language or the Context Free program.

Moderators: MtnViewJohn, chris, mtnviewmark

Post Reply
User avatar
MtnViewJohn
Site Admin
Posts: 882
Joined: Fri May 06, 2005 2:26 pm
Location: Mountain View, California
Contact:

Version 3, Mark finally weighs in

Post 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

Post Reply