From: David Gibson <david-xT8FGy+AXnRB3Ne2BGzF6laj5H9X9Tb+@public.gmane.org>
To: Anton Staaf <robotboy-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
Cc: devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org
Subject: Re: [PATCH 1/2] Add character literal parsing in bytestrings
Date: Thu, 21 Jul 2011 15:19:03 +1000 [thread overview]
Message-ID: <20110721051903.GO6399@yookeroo.fritz.box> (raw)
In-Reply-To: <CAF6FioX-yYwd3FN106yCwJQD7N27J9XSiUseFHuhTWJGeq3pvw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
On Wed, Jul 20, 2011 at 09:50:43AM -0700, Anton Staaf wrote:
> On Wed, Jul 20, 2011 at 6:40 AM, David Gibson
> <david-xT8FGy+AXnRB3Ne2BGzF6laj5H9X9Tb+@public.gmane.org> wrote:
> > On Thu, Jun 23, 2011 at 04:20:38PM -0700, Anton Staaf wrote:
> >> This adds support for parsing simple (non-escaped) 'x' character
> >> literal syntax in bytestrings. For example:
> >>
> >> property = ['a' 2b 'c'];
> >>
> >> is equivalent to:
> >>
> >> property = [61 2b 62];
> >
> > Hrm. I like the idea of being able to encode character literals.
> > However I'm dubious as to whether the bytestring syntax is the right
> > place to encode them.
> >
> > Bytestrings are quite lexically strange, they are quite different from
> > the < ... > cell syntax: the things inside default to hex, and spacing
> > is irrelevant ([abcd] is equivalent to [ab cd], [a bc] is a syntax
> > error and *not* equivalent to [0a bc]). This makes me worry about
> > possible ambiguities or other parsing problems if we put something
> > other than exactly 2 digit hex bytes in there - not that I can see any
> > definite ambiguities in this proposal.
>
> As you point out below, the < ... > syntax doesn't permit byte values
> (a cell is 32 bits). So using the cell list syntax would create a lot
> of wasted space. Especially in my use where I need to create four 128
> byte tables for keyboard scan code mapping. It would end up wasting
> >1KB.
I certainly wasn't suggesting using padding. Apart from the wasted
space, it wouldn't let you use it for an already defined binding which
lacks the padding.
> Adding cell size control syntax would certainly solve that
> problem. Is this something your interested in pursuing at this time,
> I'd be happy to help with that instead of continuing to push this.
Well, to be honest I'd love to have this syntax several years ago :).
The implementation should be almost trivial, really the only stumbling
block is finding a syntax which is unambiguous, won't cause parsing
oddities and obeys the principle least surprise as best we can.
> Alternatively, I think it is clear that there are no problems parsing
> out the character literals. Mainly because the ' character is unique
> and will never otherwise occur as a character in a byte literal
> declaration. The occurrence or lack there of of white space should
> also not be a problem, since the character literal parsing is of a
> fixed length, thus there is no possibility for an ambiguous use such
> as ' ab '. Also, the invalid use [a bc] is still invalid with
> character literals added, for example [a 'b'] or [a'b'] are both
> invalid because the existing bytestring regex only matches two hex
> characters in a row, and the new character literal regex only matches
> a single character bounded by single quotes. So neither regex will
> match the lone a character and parsing will fail there.
That's true. Consider me about 40% persuaded :).
Ok, here's what I suggest. For now, can you create a patch which
recognizes the character construct syntax in the lexer (including
escapes), and allows its use in cell context. That won't actually do
what you want, but it gets a fair chunk of the code in a testable,
upstreamable form without making syntax changes I'm uncomfortable
with.
While we're getting that merged we can debate which/how to proceed
with either variable size cell syntax or allowing the character
literals in bytestring context.
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
next prev parent reply other threads:[~2011-07-21 5:19 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-23 23:20 [PATCH 0/2] Character literal parsing Anton Staaf
[not found] ` <1308871239-32683-1-git-send-email-robotboy-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2011-06-23 23:20 ` [PATCH 1/2] Add character literal parsing in bytestrings Anton Staaf
[not found] ` <1308871239-32683-2-git-send-email-robotboy-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2011-07-20 13:40 ` David Gibson
[not found] ` <20110720134006.GJ6399-787xzQ0H9iQXU02nzanrWNbf9cGiqdzd@public.gmane.org>
2011-07-20 16:50 ` Anton Staaf
[not found] ` <CAF6FioX-yYwd3FN106yCwJQD7N27J9XSiUseFHuhTWJGeq3pvw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-07-21 5:19 ` David Gibson [this message]
[not found] ` <20110721051903.GO6399-787xzQ0H9iQXU02nzanrWNbf9cGiqdzd@public.gmane.org>
2011-07-21 12:41 ` Jon Loeliger
[not found] ` <E1QjsZh-00024e-HY-CYoMK+44s/E@public.gmane.org>
2011-07-27 1:49 ` David Gibson
2011-06-23 23:20 ` [PATCH 2/2] Add escaped character support to character literals Anton Staaf
2011-06-24 20:02 ` [PATCH 0/2] Character literal parsing David Brown
[not found] ` <8yawrgb3smr.fsf-AOX6H5vLt3Uj8izMo0bVsAC/G2K4zDHf@public.gmane.org>
2011-06-24 20:22 ` Anton Staaf
[not found] ` <BANLkTi=iUqMwag-A6t1ubDgSAN9xqWuTMwLG32EKKWuwVbigyg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-06-24 21:11 ` David Brown
[not found] ` <8yafwmz3pg3.fsf-AOX6H5vLt3Uj8izMo0bVsAC/G2K4zDHf@public.gmane.org>
2011-06-24 21:17 ` Jon Loeliger
[not found] ` <E1QaDkb-0004cc-Jx-CYoMK+44s/E@public.gmane.org>
2011-06-24 21:28 ` Anton Staaf
2011-06-24 21:32 ` Anton Staaf
2011-06-24 21:34 ` Grant Likely
[not found] ` <BANLkTinDPNfXWUOWPR3HmZatE=ohzO0Ybg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-06-24 21:47 ` Anton Staaf
[not found] ` <BANLkTi=EEuuYSZdLeE1UFsdT=xuEZREkEs+R_FcdQo6JPA-fEQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-06-28 23:00 ` Anton Staaf
2011-07-20 13:44 ` David Gibson
2011-07-20 13:42 ` David Gibson
[not found] ` <20110720134238.GK6399-787xzQ0H9iQXU02nzanrWNbf9cGiqdzd@public.gmane.org>
2011-07-20 16:23 ` Anton Staaf
[not found] ` <CAF6FioVMOxF7Vc74F6-yPGkwx7xS_xEa03Q2BpQewGaG=ZvkYQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-07-20 17:27 ` Jon Loeliger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110721051903.GO6399@yookeroo.fritz.box \
--to=david-xt8fgy+axnrb3ne2bgzf6laj5h9x9tb+@public.gmane.org \
--cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
--cc=robotboy-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).