exip  Alpha 0.5.4
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
grammars.h
Go to the documentation of this file.
1 /*==================================================================*\
2 | EXIP - Embeddable EXI Processor in C |
3 |--------------------------------------------------------------------|
4 | This work is licensed under BSD 3-Clause License |
5 | The full license terms and conditions are located in LICENSE.txt |
6 \===================================================================*/
7 
17 #ifndef GRAMMARS_H_
18 #define GRAMMARS_H_
19 
20 #include "errorHandle.h"
21 #include "procTypes.h"
22 #include "contentHandler.h"
23 
24 // Defines the initial dimension of the dynamic array - production
25 #define DEFAULT_PROD_ARRAY_DIM 10
26 
32 #define GET_ELEM_GRAMMAR_QNAMEID(schema, qnameID) GET_LN_URI_QNAME((schema)->uriTable, qnameID).elemGrammar == INDEX_MAX?NULL:&((schema)->grammarTable.grammar[GET_LN_URI_QNAME((schema)->uriTable, qnameID).elemGrammar])
33 
39 #define GET_TYPE_GRAMMAR_QNAMEID(schema, qnameID) GET_LN_URI_QNAME((schema)->uriTable, qnameID).typeGrammar == INDEX_MAX?NULL:&((schema)->grammarTable.grammar[GET_LN_URI_QNAME((schema)->uriTable, qnameID).typeGrammar])
40 
50 
56 void popGrammar(EXIGrammarStack** gStack);
57 
69 errorCode createDocGrammar(EXIPSchema* schema, QNameID* elQnameArr, Index qnameCount);
70 
82 errorCode createFragmentGrammar(EXIPSchema* schema, QNameID* elQnameArr, Index qnameCount);
83 
84 #if BUILD_IN_GRAMMARS_USE
85 
92  errorCode createBuiltInElementGrammar(EXIGrammar* elementGrammar, EXIStream* strm);
93 
107  errorCode insertZeroProduction(DynGrammarRule* rule, EventType evnt, SmallIndex nonTermID, QNameID* qname, boolean hasSecondLevelProd);
108 #endif
109 
117 unsigned int getBitsFirstPartCode(EXIStream* strm, Index prodCount, SmallIndex currentRuleIndx);
118 
119 #if EXIP_DEBUG == ON
120 
128 errorCode printGrammarRule(SmallIndex nonTermID, GrammarRule* rule, EXIPSchema *schema);
129 
130 #endif // EXIP_DEBUG
131 
132 #endif /* GRAMMARS_H_ */