From: Scott Wood <scottwood-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
To: David Gibson <david-xT8FGy+AXnRB3Ne2BGzF6laj5H9X9Tb+@public.gmane.org>
Cc: devicetree-discuss
<devicetree-discuss-mnsaURCQ41sdnm+yROfE0A@public.gmane.org>
Subject: Re: DTS language enhancements
Date: Mon, 6 Oct 2008 12:06:01 -0500 [thread overview]
Message-ID: <20081006170601.GA31967@ld0162-tx32.am.freescale.net> (raw)
In-Reply-To: <20081003043710.GH3002-787xzQ0H9iRg7VrjXcPTGA@public.gmane.org>
On Fri, Oct 03, 2008 at 02:37:10PM +1000, David Gibson wrote:
> I'm less sure what other operators we'll need here - probably need to
> build these based on actual usage examples. Likely candidates,
> however are:
> - set property
> e.g. /setprop/({ }, "reg", < 17 >) == { reg = < 17 >; }
> - remove property
> e.g. /delprop({ reg = <17>; }, "reg") == { }
> - add subnode
> e.g. /addnode/({ }, "subnode@17", {reg = <17>;}) ==
> { subnode@17 { reg = <17>; }; }
> - merge
> e.g. /merge/({foo = "abc";}, {bar = <17>;}) == {foo = "abc"; bar=<17>;}
> (this would recurse down subnodes with identical names)
Instead of /addnode/, how about an alternate version of (or option to)
/merge/ that merges the second tree with the contents of the first,
rather than treating the trees as sharing a root? This could also
supersede /setprop/, if conflicts are defined to be resolved in favor of
the second tree.
> It's possible to do this just with the /setprop/, /addnode/ operators
> described above, but that's awkward and verbose, so allowing
> expressions in the same place the property/node names go now seems
> better. jdl's patch series allows this, but I'm not sure what makes
> the grammatical distinction between the parser expecting a bare node
> name and an expression, which worries me.
I think it's the leading backslash before identifiers that distinguishes
it.
> What I would suggest here is that expressions for node/property names
> must be parenthesized. ( and ) aren't used in node/property names
> either in theory or practice AFAIK and this is consistent with integer
> expressions having to be parenthesized within cell lists to avoid
> ambiguity.
I'd rather have an identifier prefix than to require parentheses in
otherwise unambiguous contexts (which would basically amount to needing
both a prefix and a suffix). This applies to cell context as well.
> Expressions in labels
> ---------------------
>
> Jon's patch also allows expressions instead of literals in labels.
> I'm a lot more dubious about this feature: it's very un-C-like, and
> removes the current nice lexical distinctness of labels.
Why do we need it to be distinguished in the lexer? We have a parser,
let's use it. :-)
> Lexical issues of property / node names
> =======================================
>
> Property and node names are lexically troublesome because they can
> contain a bunch of characters that would usually have special
> meanings. My intention for dealing with this is that property/node
> names will only be lexed in a small number of contexts. Usually they
> will not be recognized, and we can lex C-like identifiers without
> trouble.
We could simplify the lexing, and eliminate the lexical restricitons on
when we can expect a property or node name, by letting the parser glue
together property/node names when in the appropriate context. Doing
otherwise seems like a layering violation.
Is there any plan to support expressions in bytestring context?
Otherwise, there's no way to construct things like MAC addresses that
aren't cell-aligned.
-Scott
next prev parent reply other threads:[~2008-10-06 17:06 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-03 4:37 DTS language enhancements David Gibson
[not found] ` <20081003043710.GH3002-787xzQ0H9iRg7VrjXcPTGA@public.gmane.org>
2008-10-03 5:08 ` Kumar Gala
[not found] ` <FB6717CF-EF47-40E1-B972-1E642066D5C6-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r@public.gmane.org>
2008-10-03 5:29 ` David Gibson
2008-10-03 14:07 ` Jon Loeliger
[not found] ` <48E62739.8090109-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2008-10-04 4:18 ` David Gibson
2008-10-06 17:06 ` Scott Wood [this message]
[not found] ` <20081006170601.GA31967-VKaLA/mbEU932VTgPCOETVjVikpgYyvb5NbjCUgZEJk@public.gmane.org>
2008-10-07 1:41 ` David Gibson
[not found] ` <20081007014103.GA23135-787xzQ0H9iRg7VrjXcPTGA@public.gmane.org>
2008-10-07 4:17 ` David Gibson
[not found] ` <20081007041725.GD19037-787xzQ0H9iRg7VrjXcPTGA@public.gmane.org>
2008-10-07 16:46 ` Scott Wood
2008-10-07 16:50 ` Scott Wood
[not found] ` <20081007165038.GA17126-VKaLA/mbEU932VTgPCOETVjVikpgYyvb5NbjCUgZEJk@public.gmane.org>
2008-10-09 2:27 ` David Gibson
[not found] ` <20081009022722.GC7997-787xzQ0H9iRg7VrjXcPTGA@public.gmane.org>
2008-10-09 15:08 ` Scott Wood
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=20081006170601.GA31967@ld0162-tx32.am.freescale.net \
--to=scottwood-kzfg59tc24xl57midrcfdg@public.gmane.org \
--cc=david-xT8FGy+AXnRB3Ne2BGzF6laj5H9X9Tb+@public.gmane.org \
--cc=devicetree-discuss-mnsaURCQ41sdnm+yROfE0A@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