ietf-openproxy
[Top] [All Lists]

RE: capability negotiations

2003-10-08 10:17:08

On Wed, 8 Oct 2003, Martin Stecher wrote:

I do not really like that a structure does now start with either SP
or CRLF right after the bracket.

I like it 50%. The leading SP is indeed a bug that should be fixed.

Leading CRLF is intentional -- it allows the parser to switch to
named-value parsing mode by looking ahead one character only.
Incidently, it makes syntax constructs simpler and also follows
classic C formatting style. How about this compromise (get rid of
leading SP, leave leading CRLF):

  message = name [SP anonym-parameters]
        [CRLF named-parameters CRLF]
        [CRLF payload]
        ";" CRLF

  anonym-parameters = value *(SP value)               ; spaced values
  named-parameters = named-value *(CRLF named-value)  ; CRLF-separated values
  list-parameters = value *("," value)                ; comma-separated
  payload = data

  value = atom / structure / list
  named-value = name ":" SP value
  atom = bare-value / quoted-value
  structure = "{" [anonym-parameters] [CRLF named-parameters CRLF] "}"
  list =      "(" [list-parameters] ")"

The above is (should be) identical to your proposal, except:

        - named-parameters always start with CRLF,
          making parsing optimizations possible

        - named-parameters always end with CRLF,
          making the layout classic C-like and
          allowing for easier MIME-style payload
          identification (CRLFCRLF or CRLF; terminates
          "headers"), a very useful parsing optimization

For example,

        CMD1;

        CMD2 {
                n1: v1
                n2: {
                        n21: {v21a v21b}
                        n22: (v22a,v22b)
                }
        };

        CMD3 1 2 3
        n1: v1
        n2: v2
        ;


I think we actually migrated to an even cleaner/simpler syntax with
all these named-members-related changes! Any corrections or
objections?

Thanks,

Alex.


<Prev in Thread] Current Thread [Next in Thread>