[5.1/mi] SYNTAX CHANGE? - List ``[ ]'' vs ``{ }''

Andrew Cagney
2001-03-21T15:59:00Z

Hello,

The MI documentation currently contains:

GDB/MI Draft Changes to Output Syntax
=====================================

One problem identified in the existing GDB/MI output syntax was the
difficulty in differentiating between a tuple such as:

{number="1",type="breakpoint",disp="keep",enabled="y"}

where each value has a unique label, and a list such as:

{"1","2","4"}
{bp="1",bp="2",bp="4"}

where values are un-labeled or the label is duplicated.

[....]

`RESULT ==>'
STRING "=" VALUE

`VALUE ==>'
C-STRING `|' TUPPLE `|' LIST

`TUPPLE ==>'
"{}" `|' "{" RESULT { "," RESULT } "}"

`LIST ==>'
"`[]'" `|' "`['" VALUE { "," VALUE } "`]'"

--

Which would change the above examples to:

["1","2","4"]
[bp="1",bp="2",bp="4"]

This should look familar if you've used erlang or maranda(?).

I'd like to propose that this change be adopted before MI is enabled
(before 5.1 is released). The code change is trivial.

My concern is with people that might currently be using MI. While the
opening section reads:

Note that GDB/MI is still under construction, so some of the
features described below are incomplete and subject to change.

I'm very very open to feedback. Given that MI currently involves a
custom GDB, I suspect that no one is using it in a production
environment (Apple?).

--

Should my proposal to ``correctly fix'' the problem fail, I'll fix the
problem by deleting that section of the MI spec :-)

I might also add a note warning implementors of the ambigious syntax :-)

enjoy,
Andrew