diff options
author | Stephen Warren <swarren@nvidia.com> | 2012-09-27 17:11:04 -0600 |
---|---|---|
committer | Jon Loeliger <jdl@jdl.com> | 2012-09-28 09:23:43 -0500 |
commit | 1ff3d3f8de701ed107e908030b5c1fed9d17125a (patch) | |
tree | 6b5b4fadc245a5e8f8412778ec8943ccf49fd59e /dtc-lexer.l | |
parent | 45013d86197fea96810a7ae1b920d22b4c887688 (diff) | |
download | device-tree-compiler-1ff3d3f8de701ed107e908030b5c1fed9d17125a.tar.gz |
dtc: cpp co-existence: allow names starting with # to be escaped
The device tree language as currently defined conflicts with the C pre-
processor in one aspect - when a property or node name begins with a #
character, a pre-processor would attempt to interpret it as a directive,
fail, and most likely error out.
This change allows a property/node name to be prefixed with \. This
prevents a pre-processor from seeing # as the first non-whitespace
character on the line, and hence prevents the conflict. \ was previously
an illegal character in property/node names, so this change is
backwards compatible. The \ is stripped from the name during parsing
by dtc.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'dtc-lexer.l')
-rw-r--r-- | dtc-lexer.l | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/dtc-lexer.l b/dtc-lexer.l index 91c4930..edbeb86 100644 --- a/dtc-lexer.l +++ b/dtc-lexer.l @@ -162,9 +162,10 @@ static int pop_input_file(void); return ']'; } -<PROPNODENAME>{PROPNODECHAR}+ { +<PROPNODENAME>\\?{PROPNODECHAR}+ { DPRINT("PropNodeName: %s\n", yytext); - yylval.propnodename = xstrdup(yytext); + yylval.propnodename = xstrdup((yytext[0] == '\\') ? + yytext + 1 : yytext); BEGIN_DEFAULT(); return DT_PROPNODENAME; } |