Re: [Vala] [Genie] multi-line structs



On Mon, Jan 04, 2010 at 08:25:06 -0500, Jamie McCracken wrote:
On Mon, 2010-01-04 at 02:07 -0500, Arc Riley wrote:
A syntax quirk that I found a bit obnoxious:

  const entries : array of OptionEntry = { \
    { "config", 'c', OptionFlags.IN_MAIN, \
      OptionArg.FILENAME, ref config, \
      "Use alternative configuration", "FILE" }, \
    { "license", 'L', OptionFlags.IN_MAIN, \
      OptionArg.NONE, ref license, \
      "Print software license and exit", null }, \
    { "version", 'V', OptionFlags.IN_MAIN, \
      OptionArg.NONE, ref version, \
      "Print version information and exit", null }, \
    {null} }

The \ shouldn't be needed inside {}, but valac reports an error of
unexpected indentation(etc) without it.  Is there a way to do this without
escaping the line breaks or can we get this improved for the next valac
release?

Im working on improving that as it really is fugly like that - I hope to
have something committed this week

most likely we will allow lines ending in comma or open curly brace to
act as line continuations 

The python way is to ignore all line-breaks when any kind of parenthesis ((),
[] or {}) is open. IMO it would be the sanest one and cover most cases.

Alternatively, you the Lua way is IIRC ignoring newlines when they are not in
the follow set, i.e. whenever they are not expected by the parser and would
cause an error otherwise. That automatically covers the open parenthesis case
(since a statement can't end with imbalanced parenthesis) as well as ending
with a binary operator. The disadvantage is obviously that making the parser
leaner makes it detect errors later and thus harder to understand.

-- 
                                                 Jan 'Bulb' Hudec <bulb ucw cz>



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]