]> git.sur5r.net Git - cc65/commitdiff
changed name of function to .ISMNEMONIC, small fixes
authorJT <jeremiah.turner@gmail.com>
Tue, 19 May 2015 23:50:51 +0000 (19:50 -0400)
committerJT <jeremiah.turner@gmail.com>
Tue, 19 May 2015 23:50:51 +0000 (19:50 -0400)
src/ca65/expr.c
src/ca65/scanner.c
src/ca65/token.h

index 9bccc62f2082cbb0797efc3b9a215253202cd6eb..c4da328242b0bd9009c26db32af24cbbe50acc79 100644 (file)
@@ -418,10 +418,10 @@ static ExprNode* FuncDefined (void)
 
 
 
-static ExprNode* FuncDefinedInstr (void)
-/* Handle the .DEFINEDINSTR builtin function */
+static ExprNode* FuncIsMnemonic (void)
+/* Handle the .ISMNEMONIC, .ISMNEM builtin function */
 {
-    int Instr = 0;
+    int Instr = -1;
 
     /* Check for a macro or an instruction depending on UbiquitousIdents */
 
@@ -436,7 +436,7 @@ static ExprNode* FuncDefinedInstr (void)
             Instr = FindInstruction (&CurTok.SVal);
         }
     } else {
-        Error ("Idenitifier expected.");
+        Error ("Identifier expected.");
     }
     /* Skip the name */
     NextTok ();
@@ -1094,8 +1094,8 @@ static ExprNode* Factor (void)
             N = Function (FuncDefined);
             break;
 
-        case TOK_DEFINEDINSTR:
-            N = Function (FuncDefinedInstr);
+        case TOK_ISMNEMONIC:
+            N = Function (FuncIsMnemonic);
             break;
 
         case TOK_HIBYTE:
index 4d7927c1c0e8bd4179719341644e72b76e5de922..30494b365335f5e156f251c68b262b0f88364b2a 100644 (file)
@@ -132,164 +132,165 @@ struct DotKeyword {
     const char* Key;                    /* MUST be first field */
     token_t     Tok;
 } DotKeywords [] = {
-    { ".A16",           TOK_A16          },
-    { ".A8",            TOK_A8           },
-    { ".ADDR",          TOK_ADDR         },
-    { ".ADDRSIZE",      TOK_ADDRSIZE     },
-    { ".ALIGN",         TOK_ALIGN        },
-    { ".AND",           TOK_BOOLAND      },
-    { ".ASCIIZ",        TOK_ASCIIZ       },
-    { ".ASSERT",        TOK_ASSERT       },
-    { ".AUTOIMPORT",    TOK_AUTOIMPORT   },
-    { ".BANK",          TOK_BANK         },
-    { ".BANKBYTE",      TOK_BANKBYTE     },
-    { ".BANKBYTES",     TOK_BANKBYTES    },
-    { ".BITAND",        TOK_AND          },
-    { ".BITNOT",        TOK_NOT          },
-    { ".BITOR",         TOK_OR           },
-    { ".BITXOR",        TOK_XOR          },
-    { ".BLANK",         TOK_BLANK        },
-    { ".BSS",           TOK_BSS          },
-    { ".BYT",           TOK_BYTE         },
-    { ".BYTE",          TOK_BYTE         },
-    { ".CASE",          TOK_CASE         },
-    { ".CHARMAP",       TOK_CHARMAP      },
-    { ".CODE",          TOK_CODE         },
-    { ".CONCAT",        TOK_CONCAT       },
-    { ".CONDES",        TOK_CONDES       },
-    { ".CONST",         TOK_CONST        },
-    { ".CONSTRUCTOR",   TOK_CONSTRUCTOR  },
-    { ".CPU",           TOK_CPU          },
-    { ".DATA",          TOK_DATA         },
-    { ".DBG",           TOK_DBG          },
-    { ".DBYT",          TOK_DBYT         },
-    { ".DEBUGINFO",     TOK_DEBUGINFO    },
-    { ".DEF",           TOK_DEFINED      },
-    { ".DEFINE",        TOK_DEFINE       },
-    { ".DEFINED",       TOK_DEFINED      },
-    { ".DEFINEDINSTR",  TOK_DEFINEDINSTR },
-    { ".DELMAC",        TOK_DELMAC       },
-    { ".DELMACRO",      TOK_DELMAC       },
-    { ".DESTRUCTOR",    TOK_DESTRUCTOR   },
-    { ".DWORD",         TOK_DWORD        },
-    { ".ELSE",          TOK_ELSE         },
-    { ".ELSEIF",        TOK_ELSEIF       },
-    { ".END",           TOK_END          },
-    { ".ENDENUM",       TOK_ENDENUM      },
-    { ".ENDIF",         TOK_ENDIF        },
-    { ".ENDMAC",        TOK_ENDMACRO     },
-    { ".ENDMACRO",      TOK_ENDMACRO     },
-    { ".ENDPROC",       TOK_ENDPROC      },
-    { ".ENDREP",        TOK_ENDREP       },
-    { ".ENDREPEAT",     TOK_ENDREP       },
-    { ".ENDSCOPE",      TOK_ENDSCOPE     },
-    { ".ENDSTRUCT",     TOK_ENDSTRUCT    },
-    { ".ENDUNION",      TOK_ENDUNION     },
-    { ".ENUM",          TOK_ENUM         },
-    { ".ERROR",         TOK_ERROR        },
-    { ".EXITMAC",       TOK_EXITMACRO    },
-    { ".EXITMACRO",     TOK_EXITMACRO    },
-    { ".EXPORT",        TOK_EXPORT       },
-    { ".EXPORTZP",      TOK_EXPORTZP     },
-    { ".FARADDR",       TOK_FARADDR      },
-    { ".FATAL",         TOK_FATAL        },
-    { ".FEATURE",       TOK_FEATURE      },
-    { ".FILEOPT",       TOK_FILEOPT      },
-    { ".FOPT",          TOK_FILEOPT      },
-    { ".FORCEIMPORT",   TOK_FORCEIMPORT  },
-    { ".FORCEWORD",     TOK_FORCEWORD    },
-    { ".GLOBAL",        TOK_GLOBAL       },
-    { ".GLOBALZP",      TOK_GLOBALZP     },
-    { ".HIBYTE",        TOK_HIBYTE       },
-    { ".HIBYTES",       TOK_HIBYTES      },
-    { ".HIWORD",        TOK_HIWORD       },
-    { ".I16",           TOK_I16          },
-    { ".I8",            TOK_I8           },
-    { ".IDENT",         TOK_MAKEIDENT    },
-    { ".IF",            TOK_IF           },
-    { ".IFBLANK",       TOK_IFBLANK      },
-    { ".IFCONST",       TOK_IFCONST      },
-    { ".IFDEF",         TOK_IFDEF        },
-    { ".IFNBLANK",      TOK_IFNBLANK     },
-    { ".IFNCONST",      TOK_IFNCONST     },
-    { ".IFNDEF",        TOK_IFNDEF       },
-    { ".IFNREF",        TOK_IFNREF       },
-    { ".IFP02",         TOK_IFP02        },
-    { ".IFP816",        TOK_IFP816       },
-    { ".IFPC02",        TOK_IFPC02       },
-    { ".IFPSC02",       TOK_IFPSC02      },
-    { ".IFREF",         TOK_IFREF        },
-    { ".IMPORT",        TOK_IMPORT       },
-    { ".IMPORTZP",      TOK_IMPORTZP     },
-    { ".INCBIN",        TOK_INCBIN       },
-    { ".INCLUDE",       TOK_INCLUDE      },
-    { ".INTERRUPTOR",   TOK_INTERRUPTOR  },
-    { ".LEFT",          TOK_LEFT         },
-    { ".LINECONT",      TOK_LINECONT     },
-    { ".LIST",          TOK_LIST         },
-    { ".LISTBYTES",     TOK_LISTBYTES    },
-    { ".LOBYTE",        TOK_LOBYTE       },
-    { ".LOBYTES",       TOK_LOBYTES      },
-    { ".LOCAL",         TOK_LOCAL        },
-    { ".LOCALCHAR",     TOK_LOCALCHAR    },
-    { ".LOWORD",        TOK_LOWORD       },
-    { ".MAC",           TOK_MACRO        },
-    { ".MACPACK",       TOK_MACPACK      },
-    { ".MACRO",         TOK_MACRO        },
-    { ".MATCH",         TOK_MATCH        },
-    { ".MAX",           TOK_MAX          },
-    { ".MID",           TOK_MID          },
-    { ".MIN",           TOK_MIN          },
-    { ".MOD",           TOK_MOD          },
-    { ".NOT",           TOK_BOOLNOT      },
-    { ".NULL",          TOK_NULL         },
-    { ".OR",            TOK_BOOLOR       },
-    { ".ORG",           TOK_ORG          },
-    { ".OUT",           TOK_OUT          },
-    { ".P02",           TOK_P02          },
-    { ".P816",          TOK_P816         },
-    { ".PAGELEN",       TOK_PAGELENGTH   },
-    { ".PAGELENGTH",    TOK_PAGELENGTH   },
-    { ".PARAMCOUNT",    TOK_PARAMCOUNT   },
-    { ".PC02",          TOK_PC02         },
-    { ".POPCPU",        TOK_POPCPU       },
-    { ".POPSEG",        TOK_POPSEG       },
-    { ".PROC",          TOK_PROC         },
-    { ".PSC02",         TOK_PSC02        },
-    { ".PUSHCPU",       TOK_PUSHCPU      },
-    { ".PUSHSEG",       TOK_PUSHSEG      },
-    { ".REF",           TOK_REFERENCED   },
-    { ".REFERENCED",    TOK_REFERENCED   },
-    { ".RELOC",         TOK_RELOC        },
-    { ".REPEAT",        TOK_REPEAT       },
-    { ".RES",           TOK_RES          },
-    { ".RIGHT",         TOK_RIGHT        },
-    { ".RODATA",        TOK_RODATA       },
-    { ".SCOPE",         TOK_SCOPE        },
-    { ".SEGMENT",       TOK_SEGMENT      },
-    { ".SET",           TOK_SET          },
-    { ".SETCPU",        TOK_SETCPU       },
-    { ".SHL",           TOK_SHL          },
-    { ".SHR",           TOK_SHR          },
-    { ".SIZEOF",        TOK_SIZEOF       },
-    { ".SMART",         TOK_SMART        },
-    { ".SPRINTF",       TOK_SPRINTF      },
-    { ".STRAT",         TOK_STRAT        },
-    { ".STRING",        TOK_STRING       },
-    { ".STRLEN",        TOK_STRLEN       },
-    { ".STRUCT",        TOK_STRUCT       },
-    { ".TAG",           TOK_TAG          },
-    { ".TCOUNT",        TOK_TCOUNT       },
-    { ".TIME",          TOK_TIME         },
-    { ".UNDEF",         TOK_UNDEF        },
-    { ".UNDEFINE",      TOK_UNDEF        },
-    { ".UNION",         TOK_UNION        },
-    { ".VERSION",       TOK_VERSION      },
-    { ".WARNING",       TOK_WARNING      },
-    { ".WORD",          TOK_WORD         },
-    { ".XMATCH",        TOK_XMATCH       },
-    { ".XOR",           TOK_BOOLXOR      },
-    { ".ZEROPAGE",      TOK_ZEROPAGE     },
+    { ".A16",           TOK_A16         },
+    { ".A8",            TOK_A8          },
+    { ".ADDR",          TOK_ADDR        },
+    { ".ADDRSIZE",      TOK_ADDRSIZE    },
+    { ".ALIGN",         TOK_ALIGN       },
+    { ".AND",           TOK_BOOLAND     },
+    { ".ASCIIZ",        TOK_ASCIIZ      },
+    { ".ASSERT",        TOK_ASSERT      },
+    { ".AUTOIMPORT",    TOK_AUTOIMPORT  },
+    { ".BANK",          TOK_BANK        },
+    { ".BANKBYTE",      TOK_BANKBYTE    },
+    { ".BANKBYTES",     TOK_BANKBYTES   },
+    { ".BITAND",        TOK_AND         },
+    { ".BITNOT",        TOK_NOT         },
+    { ".BITOR",         TOK_OR          },
+    { ".BITXOR",        TOK_XOR         },
+    { ".BLANK",         TOK_BLANK       },
+    { ".BSS",           TOK_BSS         },
+    { ".BYT",           TOK_BYTE        },
+    { ".BYTE",          TOK_BYTE        },
+    { ".CASE",          TOK_CASE        },
+    { ".CHARMAP",       TOK_CHARMAP     },
+    { ".CODE",          TOK_CODE        },
+    { ".CONCAT",        TOK_CONCAT      },
+    { ".CONDES",        TOK_CONDES      },
+    { ".CONST",         TOK_CONST       },
+    { ".CONSTRUCTOR",   TOK_CONSTRUCTOR },
+    { ".CPU",           TOK_CPU         },
+    { ".DATA",          TOK_DATA        },
+    { ".DBG",           TOK_DBG         },
+    { ".DBYT",          TOK_DBYT        },
+    { ".DEBUGINFO",     TOK_DEBUGINFO   },
+    { ".DEF",           TOK_DEFINED     },
+    { ".DEFINE",        TOK_DEFINE      },
+    { ".DEFINED",       TOK_DEFINED     },
+    { ".DELMAC",        TOK_DELMAC      },
+    { ".DELMACRO",      TOK_DELMAC      },
+    { ".DESTRUCTOR",    TOK_DESTRUCTOR  },
+    { ".DWORD",         TOK_DWORD       },
+    { ".ELSE",          TOK_ELSE        },
+    { ".ELSEIF",        TOK_ELSEIF      },
+    { ".END",           TOK_END         },
+    { ".ENDENUM",       TOK_ENDENUM     },
+    { ".ENDIF",         TOK_ENDIF       },
+    { ".ENDMAC",        TOK_ENDMACRO    },
+    { ".ENDMACRO",      TOK_ENDMACRO    },
+    { ".ENDPROC",       TOK_ENDPROC     },
+    { ".ENDREP",        TOK_ENDREP      },
+    { ".ENDREPEAT",     TOK_ENDREP      },
+    { ".ENDSCOPE",      TOK_ENDSCOPE    },
+    { ".ENDSTRUCT",     TOK_ENDSTRUCT   },
+    { ".ENDUNION",      TOK_ENDUNION    },
+    { ".ENUM",          TOK_ENUM        },
+    { ".ERROR",         TOK_ERROR       },
+    { ".EXITMAC",       TOK_EXITMACRO   },
+    { ".EXITMACRO",     TOK_EXITMACRO   },
+    { ".EXPORT",        TOK_EXPORT      },
+    { ".EXPORTZP",      TOK_EXPORTZP    },
+    { ".FARADDR",       TOK_FARADDR     },
+    { ".FATAL",         TOK_FATAL       },
+    { ".FEATURE",       TOK_FEATURE     },
+    { ".FILEOPT",       TOK_FILEOPT     },
+    { ".FOPT",          TOK_FILEOPT     },
+    { ".FORCEIMPORT",   TOK_FORCEIMPORT },
+    { ".FORCEWORD",     TOK_FORCEWORD   },
+    { ".GLOBAL",        TOK_GLOBAL      },
+    { ".GLOBALZP",      TOK_GLOBALZP    },
+    { ".HIBYTE",        TOK_HIBYTE      },
+    { ".HIBYTES",       TOK_HIBYTES     },
+    { ".HIWORD",        TOK_HIWORD      },
+    { ".I16",           TOK_I16         },
+    { ".I8",            TOK_I8          },
+    { ".IDENT",         TOK_MAKEIDENT   },
+    { ".IF",            TOK_IF          },
+    { ".IFBLANK",       TOK_IFBLANK     },
+    { ".IFCONST",       TOK_IFCONST     },
+    { ".IFDEF",         TOK_IFDEF       },
+    { ".IFNBLANK",      TOK_IFNBLANK    },
+    { ".IFNCONST",      TOK_IFNCONST    },
+    { ".IFNDEF",        TOK_IFNDEF      },
+    { ".IFNREF",        TOK_IFNREF      },
+    { ".IFP02",         TOK_IFP02       },
+    { ".IFP816",        TOK_IFP816      },
+    { ".IFPC02",        TOK_IFPC02      },
+    { ".IFPSC02",       TOK_IFPSC02     },
+    { ".IFREF",         TOK_IFREF       },
+    { ".IMPORT",        TOK_IMPORT      },
+    { ".IMPORTZP",      TOK_IMPORTZP    },
+    { ".INCBIN",        TOK_INCBIN      },
+    { ".INCLUDE",       TOK_INCLUDE     },
+    { ".INTERRUPTOR",   TOK_INTERRUPTOR },
+    { ".ISMNEM",        TOK_ISMNEMONIC  },
+    { ".ISMNEMONIC",    TOK_ISMNEMONIC  },
+    { ".LEFT",          TOK_LEFT        },
+    { ".LINECONT",      TOK_LINECONT    },
+    { ".LIST",          TOK_LIST        },
+    { ".LISTBYTES",     TOK_LISTBYTES   },
+    { ".LOBYTE",        TOK_LOBYTE      },
+    { ".LOBYTES",       TOK_LOBYTES     },
+    { ".LOCAL",         TOK_LOCAL       },
+    { ".LOCALCHAR",     TOK_LOCALCHAR   },
+    { ".LOWORD",        TOK_LOWORD      },
+    { ".MAC",           TOK_MACRO       },
+    { ".MACPACK",       TOK_MACPACK     },
+    { ".MACRO",         TOK_MACRO       },
+    { ".MATCH",         TOK_MATCH       },
+    { ".MAX",           TOK_MAX         },
+    { ".MID",           TOK_MID         },
+    { ".MIN",           TOK_MIN         },
+    { ".MOD",           TOK_MOD         },
+    { ".NOT",           TOK_BOOLNOT     },
+    { ".NULL",          TOK_NULL        },
+    { ".OR",            TOK_BOOLOR      },
+    { ".ORG",           TOK_ORG         },
+    { ".OUT",           TOK_OUT         },
+    { ".P02",           TOK_P02         },
+    { ".P816",          TOK_P816        },
+    { ".PAGELEN",       TOK_PAGELENGTH  },
+    { ".PAGELENGTH",    TOK_PAGELENGTH  },
+    { ".PARAMCOUNT",    TOK_PARAMCOUNT  },
+    { ".PC02",          TOK_PC02        },
+    { ".POPCPU",        TOK_POPCPU      },
+    { ".POPSEG",        TOK_POPSEG      },
+    { ".PROC",          TOK_PROC        },
+    { ".PSC02",         TOK_PSC02       },
+    { ".PUSHCPU",       TOK_PUSHCPU     },
+    { ".PUSHSEG",       TOK_PUSHSEG     },
+    { ".REF",           TOK_REFERENCED  },
+    { ".REFERENCED",    TOK_REFERENCED  },
+    { ".RELOC",         TOK_RELOC       },
+    { ".REPEAT",        TOK_REPEAT      },
+    { ".RES",           TOK_RES         },
+    { ".RIGHT",         TOK_RIGHT       },
+    { ".RODATA",        TOK_RODATA      },
+    { ".SCOPE",         TOK_SCOPE       },
+    { ".SEGMENT",       TOK_SEGMENT     },
+    { ".SET",           TOK_SET         },
+    { ".SETCPU",        TOK_SETCPU      },
+    { ".SHL",           TOK_SHL         },
+    { ".SHR",           TOK_SHR         },
+    { ".SIZEOF",        TOK_SIZEOF      },
+    { ".SMART",         TOK_SMART       },
+    { ".SPRINTF",       TOK_SPRINTF     },
+    { ".STRAT",         TOK_STRAT       },
+    { ".STRING",        TOK_STRING      },
+    { ".STRLEN",        TOK_STRLEN      },
+    { ".STRUCT",        TOK_STRUCT      },
+    { ".TAG",           TOK_TAG         },
+    { ".TCOUNT",        TOK_TCOUNT      },
+    { ".TIME",          TOK_TIME        },
+    { ".UNDEF",         TOK_UNDEF       },
+    { ".UNDEFINE",      TOK_UNDEF       },
+    { ".UNION",         TOK_UNION       },
+    { ".VERSION",       TOK_VERSION     },
+    { ".WARNING",       TOK_WARNING     },
+    { ".WORD",          TOK_WORD        },
+    { ".XMATCH",        TOK_XMATCH      },
+    { ".XOR",           TOK_BOOLXOR     },
+    { ".ZEROPAGE",      TOK_ZEROPAGE    },
 };
 
 
index 102fde8067260a4e3bd1412a3e019aca89885e53..5ffe424666c9407bb59c176a1c7a335b00c91a98 100644 (file)
@@ -148,7 +148,6 @@ typedef enum token_t {
     TOK_DEBUGINFO,
     TOK_DEFINE,
     TOK_DEFINED,
-    TOK_DEFINEDINSTR,
     TOK_DELMAC,
     TOK_DESTRUCTOR,
     TOK_DWORD,
@@ -200,6 +199,7 @@ typedef enum token_t {
     TOK_INCBIN,
     TOK_INCLUDE,
     TOK_INTERRUPTOR,
+    TOK_ISMNEMONIC,
     TOK_LEFT,
     TOK_LINECONT,
     TOK_LIST,