diff options
author | Nathan Sidwell <nathan@codesourcery.com> | 2007-05-24 09:24:09 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@codesourcery.com> | 2007-05-24 09:24:09 +0000 |
commit | 746dcfd6a0c3e31c85454a1be271d513e46459f6 (patch) | |
tree | 2b27bd3a957af47723f0d685cd94b52c691a29b3 /ld/ldlex.l | |
parent | ded9754e4e5386ad69bf485dd4b08905f1fa0b8a (diff) | |
download | binutils-redhat-746dcfd6a0c3e31c85454a1be271d513e46459f6.tar.gz |
* ldlex.l: ASSERT is recognized in SCRIPT env. NAMES cannot
contain commas in EXP env.
* ldgram.y (extern_name_list): Push to EXP env, move body to ...
(extern_name_list_body): ... here.
(script_file, ifile_list): Reformat.
(statement): Add ASSERT.
testsuite:
* ld-scripts/assert.t: Add additional cases.
* ld-scripts/extern.t, ld-scripts/extern.s,
ld-scripts/extern.exp: New.
Diffstat (limited to 'ld/ldlex.l')
-rw-r--r-- | ld/ldlex.l | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/ld/ldlex.l b/ld/ldlex.l index 61fbe6d9bc..88a8f1d655 100644 --- a/ld/ldlex.l +++ b/ld/ldlex.l @@ -256,7 +256,7 @@ V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)* <EXPRESSION,BOTH,SCRIPT>"LOADADDR" { RTOKEN(LOADADDR);} <EXPRESSION,BOTH>"MAX" { RTOKEN(MAX_K); } <EXPRESSION,BOTH>"MIN" { RTOKEN(MIN_K); } -<EXPRESSION,BOTH>"ASSERT" { RTOKEN(ASSERT_K); } +<EXPRESSION,BOTH,SCRIPT>"ASSERT" { RTOKEN(ASSERT_K); } <BOTH,SCRIPT>"ENTRY" { RTOKEN(ENTRY);} <BOTH,SCRIPT,MRI>"EXTERN" { RTOKEN(EXTERN);} <EXPRESSION,BOTH,SCRIPT>"NEXT" { RTOKEN(NEXT);} @@ -363,11 +363,19 @@ V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)* } -<BOTH,EXPRESSION>{FILENAMECHAR1}{FILENAMECHAR}* { +<BOTH>{FILENAMECHAR1}{FILENAMECHAR}* { yylval.name = xstrdup (yytext); return NAME; } -<BOTH,EXPRESSION>"-l"{FILENAMECHAR}+ { +<BOTH>"-l"{FILENAMECHAR}+ { + yylval.name = xstrdup (yytext + 2); + return LNAME; + } +<EXPRESSION>{FILENAMECHAR1}{NOCFILENAMECHAR}* { + yylval.name = xstrdup (yytext); + return NAME; + } +<EXPRESSION>"-l"{NOCFILENAMECHAR}+ { yylval.name = xstrdup (yytext + 2); return LNAME; } |