%{/* nlmheader.y - parse NLM header specification keywords.
- Copyright (C) 1993 Free Software Foundation, Inc.
+ Copyright (C) 1993, 94, 95, 97, 1998 Free Software Foundation, Inc.
This file is part of GNU Binutils.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
-Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Written by Ian Lance Taylor <ian@cygnus.com>.
#include <ansidecl.h>
#include <stdio.h>
#include <ctype.h>
-#include <bfd.h>
-#include "sysdep.h"
+#include "bfd.h"
#include "bucomm.h"
#include "nlm/common.h"
#include "nlm/internal.h"
%token CHECK CODESTART COPYRIGHT CUSTOM DATE DEBUG DESCRIPTION EXIT
%token EXPORT FLAG_ON FLAG_OFF FULLMAP HELP IMPORT INPUT MAP MESSAGES
%token MODULE MULTIPLE OS_DOMAIN OUTPUT PSEUDOPREEMPTION REENTRANT
-%token SCREENNAME SHARELIB STACK STACKSIZE START SYNCHRONIZE
-%token THREADNAME TYPE VERBOSE VERSION XDCDATA
+%token SCREENNAME SHARELIB STACK START SYNCHRONIZE
+%token THREADNAME TYPE VERBOSE VERSIONK XDCDATA
/* Arguments. */
}
| CODESTART STRING
{
- nlmheader_warn ("CODESTART is not implemented; sorry", -1);
+ nlmheader_warn (_("CODESTART is not implemented; sorry"), -1);
free ($2);
}
| COPYRIGHT QUOTED_STRING
len = strlen ($2);
if (len >= NLM_MAX_COPYRIGHT_MESSAGE_LENGTH)
{
- nlmheader_warn ("copyright string is too long",
+ nlmheader_warn (_("copyright string is too long"),
NLM_MAX_COPYRIGHT_MESSAGE_LENGTH - 1);
len = NLM_MAX_COPYRIGHT_MESSAGE_LENGTH - 1;
}
free ($2);
free ($3);
free ($4);
+ if (version_hdr->month < 1 || version_hdr->month > 12)
+ nlmheader_warn (_("illegal month"), -1);
+ if (version_hdr->day < 1 || version_hdr->day > 31)
+ nlmheader_warn (_("illegal day"), -1);
+ if (version_hdr->year < 1900 || version_hdr->year > 3000)
+ nlmheader_warn (_("illegal year"), -1);
}
| DEBUG
{
len = strlen ($2);
if (len > NLM_MAX_DESCRIPTION_LENGTH)
{
- nlmheader_warn ("description string is too long",
+ nlmheader_warn (_("description string is too long"),
NLM_MAX_DESCRIPTION_LENGTH);
len = NLM_MAX_DESCRIPTION_LENGTH;
}
fixed_hdr->flags &=~ nlmlex_get_number ($2);
free ($2);
}
+ | FULLMAP
+ {
+ map_file = "";
+ full_map = true;
+ }
| FULLMAP STRING
{
map_file = $2;
{
input_files = string_list_append (input_files, $2);
}
+ | MAP
+ {
+ map_file = "";
+ }
| MAP STRING
{
map_file = $2;
if (output_file == NULL)
output_file = $2;
else
- nlmheader_warn ("ignoring duplicate OUTPUT statement", -1);
+ nlmheader_warn (_("ignoring duplicate OUTPUT statement"), -1);
}
| PSEUDOPREEMPTION
{
len = strlen ($2);
if (len >= NLM_MAX_SCREEN_NAME_LENGTH)
{
- nlmheader_warn ("screen name is too long",
+ nlmheader_warn (_("screen name is too long"),
NLM_MAX_SCREEN_NAME_LENGTH);
len = NLM_MAX_SCREEN_NAME_LENGTH;
}
var_hdr->stackSize = nlmlex_get_number ($2);
free ($2);
}
- | STACKSIZE STRING
- {
- var_hdr->stackSize = nlmlex_get_number ($2);
- free ($2);
- }
| START STRING
{
start_procedure = $2;
len = strlen ($2);
if (len >= NLM_MAX_THREAD_NAME_LENGTH)
{
- nlmheader_warn ("thread name is too long",
+ nlmheader_warn (_("thread name is too long"),
NLM_MAX_THREAD_NAME_LENGTH);
len = NLM_MAX_THREAD_NAME_LENGTH;
}
var_hdr->threadNameLength = len;
strncpy (var_hdr->threadName, $2, len);
- var_hdr->screenName[NLM_MAX_THREAD_NAME_LENGTH] = '\0';
+ var_hdr->threadName[len] = '\0';
free ($2);
}
| TYPE STRING
{
verbose = true;
}
- | VERSION STRING STRING STRING
+ | VERSIONK STRING STRING STRING
{
long val;
version_hdr->majorVersion = nlmlex_get_number ($2);
val = nlmlex_get_number ($3);
if (val < 0 || val > 99)
- nlmheader_warn ("illegal minor version number (must be between 0 and 99)",
+ nlmheader_warn (_("illegal minor version number (must be between 0 and 99)"),
-1);
else
version_hdr->minorVersion = val;
val = nlmlex_get_number ($4);
- if (val < 1 || val > 26)
- nlmheader_warn ("illegal revision number (must be between 1 and 26)",
+ if (val < 0)
+ nlmheader_warn (_("illegal revision number (must be between 0 and 26)"),
-1);
+ else if (val > 26)
+ version_hdr->revision = 0;
else
version_hdr->revision = val;
free ($2);
free ($3);
free ($4);
}
- | VERSION STRING STRING
+ | VERSIONK STRING STRING
{
long val;
version_hdr->majorVersion = nlmlex_get_number ($2);
val = nlmlex_get_number ($3);
if (val < 0 || val > 99)
- nlmheader_warn ("illegal minor version number (must be between 0 and 99)",
+ nlmheader_warn (_("illegal minor version number (must be between 0 and 99)"),
-1);
else
version_hdr->minorVersion = val;
{ "SCREENNAME", SCREENNAME },
{ "SHARELIB", SHARELIB },
{ "STACK", STACK },
- { "STACKSIZE", STACKSIZE },
+ { "STACKSIZE", STACK },
{ "START", START },
{ "SYNCHRONIZE", SYNCHRONIZE },
{ "THREADNAME", THREADNAME },
{ "TYPE", TYPE },
{ "VERBOSE", VERBOSE },
- { "VERSION", VERSION },
+ { "VERSION", VERSIONK },
{ "XDCDATA", XDCDATA }
};
if (c != EOF && ! isspace ((unsigned char) c) && c != ',')
{
nlmheader_identify ();
- fprintf (stderr, "%s:%d: illegal character in keyword: %c\n",
+ fprintf (stderr, _("%s:%d: illegal character in keyword: %c\n"),
current.name, current.lineno, c);
}
else
{
- int i;
+ unsigned int i;
for (i = 0; i < KEYWORD_COUNT; i++)
{
}
nlmheader_identify ();
- fprintf (stderr, "%s:%d: unrecognized keyword: %s\n",
+ fprintf (stderr, _("%s:%d: unrecognized keyword: %s\n"),
current.name, current.lineno, lex_buf);
}
if (c == EOF)
{
nlmheader_identify ();
- fprintf (stderr, "%s:%d: end of file in quoted string\n",
+ fprintf (stderr, _("%s:%d: end of file in quoted string\n"),
current.name, start_lineno);
++parse_errors;
}
ret = strtol (s, &send, 10);
if (*send != '\0')
- nlmheader_warn ("bad number", -1);
+ nlmheader_warn (_("bad number"), -1);
return ret;
}
if (! done)
{
- fprintf (stderr, "%s: problems in NLM command language input:\n",
+ fprintf (stderr, _("%s: problems in NLM command language input:\n"),
program_name);
done = 1;
}