]> git.sur5r.net Git - cc65/blobdiff - src/ca65/feature.c
Added pseudo function .DEFINEDINSTR
[cc65] / src / ca65 / feature.c
index 0a45ded86aefb52ed48d28dfd4978be1e90e5756..2a29b5e8f151797e113417e42b17ae746fa6354a 100644 (file)
@@ -1,8 +1,8 @@
 /*****************************************************************************/
 /*                                                                           */
-/*                                feature.c                                 */
+/*                                 feature.c                                 */
 /*                                                                           */
-/*                 Subroutines for the emulation features                   */
+/*                  Subroutines for the emulation features                   */
 /*                                                                           */
 /*                                                                           */
 /*                                                                           */
@@ -42,7 +42,7 @@
 
 
 /*****************************************************************************/
-/*                                          Data                                    */
+/*                                   Data                                    */
 /*****************************************************************************/
 
 
@@ -63,29 +63,31 @@ static const char* FeatureKeys[FEAT_COUNT] = {
     "c_comments",
     "force_range",
     "underline_in_numbers",
+    "addrsize",
+    "definedinstr",
 };
 
 
 
 /*****************************************************************************/
-/*                                          Code                                    */
+/*                                   Code                                    */
 /*****************************************************************************/
 
 
 
 feature_t FindFeature (const StrBuf* Key)
 /* Find the feature in a table and return the corresponding enum value. If the
- * feature is invalid, return FEAT_UNKNOWN.
- */
+** feature is invalid, return FEAT_UNKNOWN.
+*/
 {
     feature_t F;
 
     /* This is not time critical, so do a linear search */
     for (F = (feature_t) 0; F < FEAT_COUNT; ++F) {
-               if (SB_CompareStr (Key, FeatureKeys[F]) == 0) {
-           /* Found, index is enum value */
-           return F;
-       }
+        if (SB_CompareStr (Key, FeatureKeys[F]) == 0) {
+            /* Found, index is enum value */
+            return F;
+        }
     }
 
     /* Not found */
@@ -96,35 +98,34 @@ feature_t FindFeature (const StrBuf* Key)
 
 feature_t SetFeature (const StrBuf* Key)
 /* Find the feature and set the corresponding flag if the feature is known.
- * In any case, return the feature found. An invalid Key will return
- * FEAT_UNKNOWN.
- */
+** In any case, return the feature found. An invalid Key will return
+** FEAT_UNKNOWN.
+*/
 {
     /* Map the string to an enum value */
     feature_t Feature = FindFeature (Key);
 
     /* Set the flags */
     switch (Feature) {
-       case FEAT_DOLLAR_IS_PC:               DollarIsPC        = 1;    break;
-       case FEAT_LABELS_WITHOUT_COLONS:      NoColonLabels     = 1;    break;
-       case FEAT_LOOSE_STRING_TERM:          LooseStringTerm   = 1;    break;
-       case FEAT_LOOSE_CHAR_TERM:            LooseCharTerm     = 1;    break;
-       case FEAT_AT_IN_IDENTIFIERS:          AtInIdents        = 1;    break;
-       case FEAT_DOLLAR_IN_IDENTIFIERS:      DollarInIdents    = 1;    break;
-               case FEAT_LEADING_DOT_IN_IDENTIFIERS: LeadingDotInIdents= 1;    break;
+        case FEAT_DOLLAR_IS_PC:               DollarIsPC        = 1;    break;
+        case FEAT_LABELS_WITHOUT_COLONS:      NoColonLabels     = 1;    break;
+        case FEAT_LOOSE_STRING_TERM:          LooseStringTerm   = 1;    break;
+        case FEAT_LOOSE_CHAR_TERM:            LooseCharTerm     = 1;    break;
+        case FEAT_AT_IN_IDENTIFIERS:          AtInIdents        = 1;    break;
+        case FEAT_DOLLAR_IN_IDENTIFIERS:      DollarInIdents    = 1;    break;
+        case FEAT_LEADING_DOT_IN_IDENTIFIERS: LeadingDotInIdents= 1;    break;
         case FEAT_ORG_PER_SEG:                OrgPerSeg         = 1;    break;
-       case FEAT_PC_ASSIGNMENT:              PCAssignment      = 1;    break;
+        case FEAT_PC_ASSIGNMENT:              PCAssignment      = 1;    break;
         case FEAT_MISSING_CHAR_TERM:          MissingCharTerm   = 1;    break;
         case FEAT_UBIQUITOUS_IDENTS:          UbiquitousIdents  = 1;    break;
         case FEAT_C_COMMENTS:                 CComments         = 1;    break;
         case FEAT_FORCE_RANGE:                ForceRange        = 1;    break;
         case FEAT_UNDERLINE_IN_NUMBERS:       UnderlineInNumbers= 1;    break;
-       default:                         /* Keep gcc silent */          break;
+        case FEAT_ADDRSIZE:                   AddrSize          = 1;    break;
+        case FEAT_DEFINEDINSTR:               DefinedInstr      = 1;    break;
+        default:                         /* Keep gcc silent */          break;
     }
 
     /* Return the value found */
     return Feature;
 }
-
-
-