]> git.sur5r.net Git - cc65/blobdiff - src/sp65/attr.h
Added a command-line option to compile a program, with __cdecl__ as the default calli...
[cc65] / src / sp65 / attr.h
index 9379a802094769e8372ffa96d1ab858b75a5f544..2b7ce68b9a995b75dcc11e3e14e754fe68f7b413 100644 (file)
 
 
 
-/* Attribute flags */
-enum AttrFlags {
-    afNone,
-    afInt,                              /* Integer number */
-};
-typedef enum AttrFlags AttrFlags;
-
-/* */
+/* Attribute structure */
 typedef struct Attr Attr;
 struct Attr {
-    AttrFlags   Flags;                  /* Attribute flags */
-    char*       Name;                   /* Attribute name */
-    char        Value[1];               /* Attribute value */
+    char*       Name;           /* Attribute name - points into Value */
+    char        Value[1];       /* Attribute value followed by Name */
 };
 
 
@@ -75,59 +67,62 @@ struct Attr {
 Attr* NewAttr (const char* Name, const char* Value);
 /* Create a new attribute */
 
+void FreeAttr (Attr* A);
+/* Free an attribute structure */
+
 void DumpAttrColl (const Collection* C);
 /* Dump a collection of attribute/value pairs for debugging */
 
 int FindAttr (const Collection* C, const char* Name, unsigned* Index);
 /* Search for an attribute with the given name in the collection. If it is
- * found, the function returns true and Index contains the index of the
- * entry. If Name isn't found, the function returns false and Index
- * will contain the insert position.
- */
+** found, the function returns true and Index contains the index of the
+** entry. If Name isn't found, the function returns false and Index
+** will contain the insert position.
+*/
 
 const Attr* GetAttr (const Collection* C, const char* Name);
 /* Search for an attribute with the given name and return it. The function
- * returns NULL if the attribute wasn't found.
- */
+** returns NULL if the attribute wasn't found.
+*/
 
 const Attr* NeedAttr (const Collection* C, const char* Name, const char* Op);
 /* Search for an attribute with the given name and return it. If the attribute
- * is not found, the function terminates with an error using Op as additional 
- * context in the error message.
- */
+** is not found, the function terminates with an error using Op as additional
+** context in the error message.
+*/
 
 const char* GetAttrVal (const Collection* C, const char* Name);
 /* Search for an attribute with the given name and return its value. The
- * function returns NULL if the attribute wasn't found.
- */
+** function returns NULL if the attribute wasn't found.
+*/
 
 const char* NeedAttrVal (const Collection* C, const char* Name, const char* Op);
 /* Search for an attribute with the given name and return its value. If the
- * attribute wasn't not found, the function terminates with an error using
- * Op as additional context in the error message.
- */
+** attribute wasn't not found, the function terminates with an error using
+** Op as additional context in the error message.
+*/
 
 void AddAttr (Collection* C, const char* Name, const char* Value);
 /* Add an attribute to an alphabetically sorted attribute collection */
 
 void SplitAddAttr (Collection* C, const char* Combined, const char* Name);
 /* Split a combined name/value pair and add it as an attribute to C. Some
- * attributes may not need a name. If the name is missing, use Name. If
- * Name is NULL, terminate with an error.
- */
+** attributes may not need a name. If the name is missing, use Name. If
+** Name is NULL, terminate with an error.
+*/
 
 Collection* ParseAttrList (const char* List, const char** NameList, unsigned NameCount);
 /* Parse a list containing name/value pairs into a sorted collection. Some
- * attributes may not need a name, so NameList contains these names. If there
- * were no errors, the function returns a alphabetically sorted collection
- * containing Attr entries.
- */
+** attributes may not need a name, so NameList contains these names. If there
+** were no errors, the function returns a alphabetically sorted collection
+** containing Attr entries.
+*/
+
+void FreeAttrList (Collection* C);
+/* Free a list of attributes */
 
 
 
 /* End of attr.h */
 
 #endif
-
-
-