mirror of
https://github.com/cc65/cc65.git
synced 2025-08-10 04:25:21 +00:00
New condes type interruptor
git-svn-id: svn://svn.cc65.org/cc65/trunk@3187 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
@@ -6,7 +6,7 @@
|
|||||||
/* */
|
/* */
|
||||||
/* */
|
/* */
|
||||||
/* */
|
/* */
|
||||||
/* (C) 1998-2003 Ullrich von Bassewitz */
|
/* (C) 1998-2004 Ullrich von Bassewitz */
|
||||||
/* R<>merstra<72>e 52 */
|
/* R<>merstra<72>e 52 */
|
||||||
/* D-70794 Filderstadt */
|
/* D-70794 Filderstadt */
|
||||||
/* EMail: uz@cc65.org */
|
/* EMail: uz@cc65.org */
|
||||||
@@ -524,7 +524,8 @@ static void DoConDes (void)
|
|||||||
{
|
{
|
||||||
static const char* Keys[] = {
|
static const char* Keys[] = {
|
||||||
"CONSTRUCTOR",
|
"CONSTRUCTOR",
|
||||||
"DESTRUCTOR",
|
"DESTRUCTOR",
|
||||||
|
"INTERRUPTOR",
|
||||||
};
|
};
|
||||||
char Name [sizeof (SVal)];
|
char Name [sizeof (SVal)];
|
||||||
long Type;
|
long Type;
|
||||||
@@ -567,7 +568,7 @@ static void DoConDes (void)
|
|||||||
/* Parse the remainder of the line and export the symbol */
|
/* Parse the remainder of the line and export the symbol */
|
||||||
ConDes (Name, (unsigned) Type);
|
ConDes (Name, (unsigned) Type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void DoConstructor (void)
|
static void DoConstructor (void)
|
||||||
@@ -1098,6 +1099,25 @@ static void DoInclude (void)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void DoInterruptor (void)
|
||||||
|
/* Export a symbol as interruptor */
|
||||||
|
{
|
||||||
|
char Name [sizeof (SVal)];
|
||||||
|
|
||||||
|
/* Symbol name follows */
|
||||||
|
if (Tok != TOK_IDENT) {
|
||||||
|
ErrorSkip ("Identifier expected");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
strcpy (Name, SVal);
|
||||||
|
NextTok ();
|
||||||
|
|
||||||
|
/* Parse the remainder of the line and export the symbol */
|
||||||
|
ConDes (Name, CD_TYPE_INT);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void DoInvalid (void)
|
static void DoInvalid (void)
|
||||||
/* Handle a token that is invalid here, since it should have been handled on
|
/* Handle a token that is invalid here, since it should have been handled on
|
||||||
* a much lower level of the expression hierarchy. Getting this sort of token
|
* a much lower level of the expression hierarchy. Getting this sort of token
|
||||||
@@ -1692,6 +1712,7 @@ static CtrlDesc CtrlCmdTab [] = {
|
|||||||
{ ccNone, DoImportZP },
|
{ ccNone, DoImportZP },
|
||||||
{ ccNone, DoIncBin },
|
{ ccNone, DoIncBin },
|
||||||
{ ccNone, DoInclude },
|
{ ccNone, DoInclude },
|
||||||
|
{ ccNone, DoInterruptor },
|
||||||
{ ccNone, DoInvalid }, /* .LEFT */
|
{ ccNone, DoInvalid }, /* .LEFT */
|
||||||
{ ccNone, DoLineCont },
|
{ ccNone, DoLineCont },
|
||||||
{ ccNone, DoList },
|
{ ccNone, DoList },
|
||||||
|
@@ -200,6 +200,7 @@ struct DotKeyword {
|
|||||||
{ ".IMPORTZP", TOK_IMPORTZP },
|
{ ".IMPORTZP", TOK_IMPORTZP },
|
||||||
{ ".INCBIN", TOK_INCBIN },
|
{ ".INCBIN", TOK_INCBIN },
|
||||||
{ ".INCLUDE", TOK_INCLUDE },
|
{ ".INCLUDE", TOK_INCLUDE },
|
||||||
|
{ ".INTERRUPTOR", TOK_INTERRUPTOR },
|
||||||
{ ".LEFT", TOK_LEFT },
|
{ ".LEFT", TOK_LEFT },
|
||||||
{ ".LINECONT", TOK_LINECONT },
|
{ ".LINECONT", TOK_LINECONT },
|
||||||
{ ".LIST", TOK_LIST },
|
{ ".LIST", TOK_LIST },
|
||||||
@@ -480,7 +481,7 @@ static void NextChar (void)
|
|||||||
|
|
||||||
/* For better handling of files with unusual line endings (DOS
|
/* For better handling of files with unusual line endings (DOS
|
||||||
* files that are accidently translated on Unix for example),
|
* files that are accidently translated on Unix for example),
|
||||||
* first remove all whitespace at the end, then add a single
|
* first remove all whitespace at the end, then add a single
|
||||||
* newline.
|
* newline.
|
||||||
*/
|
*/
|
||||||
Len = strlen (IFile->Line);
|
Len = strlen (IFile->Line);
|
||||||
|
@@ -189,11 +189,12 @@ enum Token {
|
|||||||
TOK_IMPORTZP,
|
TOK_IMPORTZP,
|
||||||
TOK_INCBIN,
|
TOK_INCBIN,
|
||||||
TOK_INCLUDE,
|
TOK_INCLUDE,
|
||||||
|
TOK_INTERRUPTOR,
|
||||||
TOK_LEFT,
|
TOK_LEFT,
|
||||||
TOK_LINECONT,
|
TOK_LINECONT,
|
||||||
TOK_LIST,
|
TOK_LIST,
|
||||||
TOK_LISTBYTES,
|
TOK_LISTBYTES,
|
||||||
TOK_LOBYTE,
|
TOK_LOBYTE,
|
||||||
TOK_LOCAL,
|
TOK_LOCAL,
|
||||||
TOK_LOCALCHAR,
|
TOK_LOCALCHAR,
|
||||||
TOK_LOWORD,
|
TOK_LOWORD,
|
||||||
|
@@ -6,10 +6,10 @@
|
|||||||
/* */
|
/* */
|
||||||
/* */
|
/* */
|
||||||
/* */
|
/* */
|
||||||
/* (C) 2000 Ullrich von Bassewitz */
|
/* (C) 2000-2004 Ullrich von Bassewitz */
|
||||||
/* Wacholderweg 14 */
|
/* R<>merstra<72>e 52 */
|
||||||
/* D-70597 Stuttgart */
|
/* D-70794 Filderstadt */
|
||||||
/* EMail: uz@musoftware.de */
|
/* EMail: uz@cc65.org */
|
||||||
/* */
|
/* */
|
||||||
/* */
|
/* */
|
||||||
/* This software is provided 'as-is', without any expressed or implied */
|
/* This software is provided 'as-is', without any expressed or implied */
|
||||||
@@ -60,6 +60,7 @@
|
|||||||
/* Predefined types */
|
/* Predefined types */
|
||||||
#define CD_TYPE_CON 0 /* Constructor */
|
#define CD_TYPE_CON 0 /* Constructor */
|
||||||
#define CD_TYPE_DES 1 /* Destructor */
|
#define CD_TYPE_DES 1 /* Destructor */
|
||||||
|
#define CD_TYPE_INT 2 /* Interruptor */
|
||||||
|
|
||||||
/* When part of an export in an object file, type and priority are encoded in
|
/* When part of an export in an object file, type and priority are encoded in
|
||||||
* one byte. In this case, the following macros access the fields:
|
* one byte. In this case, the following macros access the fields:
|
||||||
|
Reference in New Issue
Block a user