On Mon, Jan 11, 2010 at 02:40, Juha Manninen <[email protected]> wrote: > Earlier in this thread you gave support for this new syntax: > > const > IDECommandStrs: array[0..] of TIdentMapEntry = ( > > So what about semantics. The semantics here is that you don't need to define > the upper bound for a const array.
Althoug I agree with Juha that in general, it is a good idea to free programmer from the burden of hand-counting const array elements, I have a few notes: 1) Proposed syntax seems somewhat suboptimal. Historically, Pascal used redundancy and keywords to minimize the chance of errors and make diagnostics easier. In that spirit, I think some active indication of arbitrary upper bound is preferable to a mere omission: IDECommandStrs: array[0..*] of TIdentMapEntry = ( IDECommandStrs: array[0..auto] of TIdentMapEntry = ( IDECommandStrs: array[0..end] of TIdentMapEntry = ( 2) We should think through and specify how multi-dimensional arrays should work: matrix: [1..auto, 1..auto] of Integer = ((1, 2, 3), (4, 5, 6)); > I copy the whole IDECommandStrs array below to demonstrate the problem. [skip] > const > IDECommandStrs: array[0..198] of TIdentMapEntry = ( > // search > (Value: ecFind; Name: 'ecFind'), > (Value: ecFindAgain; Name: 'ecFindAgain'), [skip] 3) Finally, regardless of the preceeding discussion, that IDECommandStrs array seems like a tiresome and pointless exercise in code duplication. Why not use function IDECommandStr(ec: TIdentMapEntry): String; begin WriteStr(ec, Result); end; instead? -- _______________________________________________ Lazarus mailing list [email protected] http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
