Annotation of Amaya/amaya/templateDeclarations.h, revision 1.7
1.1 francesc 1: #ifndef TEMPLATE_DECLARATIONS
2: #define TEMPLATE_DECLARATIONS
3:
1.4 francesc 4: //The predefined library id
1.1 francesc 5: #define PREDEFINED_LIB "-Predefined-"
1.4 francesc 6:
7: //Type natures
1.2 vatton 8: #define COMPONENT 0
9: #define SIMPLE_TYPE 1
1.3 francesc 10: #define XMLELEMENT 2
1.2 vatton 11: #define UNION 3
12:
1.4 francesc 13: //Simple type ids
14: #define XTIGER_NUMBER 0
15: #define XTIGER_STRING 1
16: #define XTIGER_BOOLEAN 2
17: //And for future issues
18: #define XTIGER_CUSTOM 3
1.1 francesc 19:
20: #define THOT_EXPORT extern
21: #include "amaya.h"
22: #include "document.h"
23: #include "mydictionary.h"
24:
1.2 vatton 25: /* Structure of a template */
1.1 francesc 26: struct _XTigerTemplate;
27: typedef struct _XTigerTemplate *XTigerTemplate;
28:
1.5 francesc 29: /* Structure of a declaration */
30: struct _Declaration;
31: typedef struct _Declaration *Declaration;
1.4 francesc 32:
1.2 vatton 33: typedef int SimpleTypeType;
1.1 francesc 34:
1.5 francesc 35: #ifdef TEMPLATES
36: //List of loaded templates and libraries
37: THOT_EXPORT DicDictionary templates;
38: #endif
1.1 francesc 39:
1.5 francesc 40: /*----------------------------------------------------------------------
41: Initializing the template environment
42: ----------------------------------------------------------------------*/
43: extern void InitializeTemplateEnvironment ( void );
1.2 vatton 44:
45: /*----------------------------------------------------------------------
1.5 francesc 46: Creates a new template with its dictionaries and stores it.
47: ----------------------------------------------------------------------*/
48: extern XTigerTemplate NewXTigerTemplate (const char *templatePath,
49: const ThotBool addPredefined );
1.2 vatton 50:
1.1 francesc 51: /*----------------------------------------------------------------------
1.5 francesc 52: Creates a new library with its dictionaries and stores it.
1.1 francesc 53: ----------------------------------------------------------------------*/
1.5 francesc 54: extern XTigerTemplate NewXTigerLibrary (const char *templatePath,
55: const ThotBool addPredefined );
1.1 francesc 56:
1.2 vatton 57: /*----------------------------------------------------------------------
58: ----------------------------------------------------------------------*/
1.5 francesc 59: extern void NewSimpleType ( const XTigerTemplate t,
1.2 vatton 60: const char *name,
1.5 francesc 61: SimpleTypeType xtype );
1.1 francesc 62:
63: /*----------------------------------------------------------------------
64: ----------------------------------------------------------------------*/
1.5 francesc 65: extern void NewComponent ( const XTigerTemplate t,
1.2 vatton 66: const char *name,
67: const Element el );
1.1 francesc 68:
1.2 vatton 69: /*----------------------------------------------------------------------
70: ----------------------------------------------------------------------*/
1.5 francesc 71: extern void NewUnion ( const XTigerTemplate t,
1.2 vatton 72: const char *name,
1.5 francesc 73: DicDictionary include = NULL,
74: DicDictionary exclude = NULL );
1.1 francesc 75:
1.2 vatton 76: /*----------------------------------------------------------------------
77: ----------------------------------------------------------------------*/
1.5 francesc 78: extern void NewElement ( const XTigerTemplate t,
1.3 francesc 79: const char *name );
80:
81: /*----------------------------------------------------------------------
82: ----------------------------------------------------------------------*/
83: extern Declaration GetDeclaration(const XTigerTemplate t, const char *name);
84:
1.1 francesc 85:
1.2 vatton 86: /*----------------------------------------------------------------------
87: Free all the space used by a template (also its dictionaries)
88: ----------------------------------------------------------------------*/
89: extern void FreeXTigerTemplate ( XTigerTemplate t );
1.1 francesc 90:
91: /*----------------------------------------------------------------------
1.2 vatton 92: Imports all declarations in a library lib to a template t
1.1 francesc 93: ----------------------------------------------------------------------*/
1.2 vatton 94: extern void AddLibraryDeclarations (XTigerTemplate t, XTigerTemplate lib);
1.1 francesc 95:
1.5 francesc 96: extern void RedefineSpecialUnions(XTigerTemplate t);
97: extern void DumpDeclarations(XTigerTemplate t);
1.4 francesc 98:
1.6 francesc 99: //Acess to template members
100:
101: extern DicDictionary GetComponents(XTigerTemplate t);
102: extern Document GetTemplateDocument(XTigerTemplate t);
1.7 ! francesc 103: extern void SetTemplateDocument(XTigerTemplate t, Document doc);
1.6 francesc 104:
105: //Access to component members
106: extern Element GetComponentContent(Declaration d);
107:
108:
1.2 vatton 109: #endif //TEMPLATE_DECLARATIONS
Webmaster