|
|
@@ -50,106 +50,6 @@ static int errn;
|
|
|
|
|
|
/* ==================================== */
|
|
|
|
|
|
-/* <0 ... Error, 1 .. Not-Found, 0.. Success */
|
|
|
-static int _exiGet1stLevelEventCode(exi_state_t* state, exi_event_t eventType, uint16_t* resGrammarID) {
|
|
|
- /* retrieve current grammar-rule ID */
|
|
|
- uint16_t grammarID = state->grammarStack[ state->stackIndex ];
|
|
|
-
|
|
|
- switch(grammarID) {
|
|
|
- case DOCUMENT:
|
|
|
- switch(eventType) {
|
|
|
- case START_DOCUMENT:
|
|
|
- *resGrammarID = 0;
|
|
|
- return 0;
|
|
|
- default:
|
|
|
- return 1; /* not found */
|
|
|
- }
|
|
|
- break;
|
|
|
- case DOC_CONTENT:
|
|
|
- switch(eventType) {
|
|
|
- /* TODO other IDs */
|
|
|
- case START_ELEMENT_GENERIC:
|
|
|
- *resGrammarID = 0;
|
|
|
- return 0;
|
|
|
- default:
|
|
|
- return 1; /* not found */
|
|
|
- }
|
|
|
- break;
|
|
|
- case DOC_END:
|
|
|
- switch(eventType) {
|
|
|
- case END_DOCUMENT:
|
|
|
- *resGrammarID = 0;
|
|
|
- return 0;
|
|
|
- default:
|
|
|
- return 1; /* not found */
|
|
|
- }
|
|
|
- break;
|
|
|
- case UR_TYPE_GRAMMAR_0:
|
|
|
- switch(eventType) {
|
|
|
- case ATTRIBUTE_GENERIC:
|
|
|
- *resGrammarID = 0;
|
|
|
- return 0;
|
|
|
- case START_ELEMENT_GENERIC:
|
|
|
- *resGrammarID = 1;
|
|
|
- return 0;
|
|
|
- case END_ELEMENT:
|
|
|
- *resGrammarID = 2;
|
|
|
- return 0;
|
|
|
- case CHARACTERS_GENERIC:
|
|
|
- *resGrammarID = 3;
|
|
|
- return 0;
|
|
|
- default:
|
|
|
- return 1; /* not found */
|
|
|
- }
|
|
|
- break;
|
|
|
- case UR_TYPE_GRAMMAR_1:
|
|
|
- switch(eventType) {
|
|
|
- case START_ELEMENT_GENERIC:
|
|
|
- *resGrammarID = 0;
|
|
|
- return 0;
|
|
|
- case END_ELEMENT:
|
|
|
- *resGrammarID = 1;
|
|
|
- return 0;
|
|
|
- case CHARACTERS_GENERIC:
|
|
|
- *resGrammarID = 2;
|
|
|
- return 0;
|
|
|
- default:
|
|
|
- return 1; /* not found */
|
|
|
- }
|
|
|
- break;
|
|
|
- }
|
|
|
-
|
|
|
- return 1; /* not found */
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-static int _exiGetEventCodeLength(exi_state_t* state, uint16_t* eventCodeLength) {
|
|
|
- /* retrieve current grammar-rule ID */
|
|
|
- uint16_t grammarID = state->grammarStack[ state->stackIndex ];
|
|
|
-
|
|
|
- switch(grammarID) {
|
|
|
- /* TODO OTHER IDs */
|
|
|
- case DOCUMENT:
|
|
|
- *eventCodeLength = 0;
|
|
|
- return 0;
|
|
|
- case DOC_CONTENT:
|
|
|
- /* TODO other root elements */
|
|
|
- *eventCodeLength = IS_STRICT ? 0 : 1;
|
|
|
- return 0;
|
|
|
- case DOC_END:
|
|
|
- *eventCodeLength = IS_STRICT ? 0 : 1;
|
|
|
- return 0;
|
|
|
- case UR_TYPE_GRAMMAR_0:
|
|
|
- *eventCodeLength = IS_STRICT ? 4 : 5;
|
|
|
- return 0;
|
|
|
- case UR_TYPE_GRAMMAR_1:
|
|
|
- *eventCodeLength = IS_STRICT ? 3 : 4;
|
|
|
- return 0;
|
|
|
- }
|
|
|
-
|
|
|
- return EXI_ERROR_UNEXPECTED_GRAMMAR_ID;
|
|
|
-}
|
|
|
-
|
|
|
static int _encodeNBitIntegerValue(bitstream_t* stream, integer_t* iv, uint16_t nbits, int32_t lowerBound) {
|
|
|
int errn;
|
|
|
uint32_t val;
|