|
1
2
3
4
5
6
7
|
/*
* File: MorphDeserializer.cpp
* Author: mlenart
*
* Created on 12 listopad 2013, 15:31
*/
|
|
8
|
#include <map>
|
|
9
|
#include <algorithm>
|
|
10
|
//#include <cstdint>
|
|
11
|
#include "MorphDeserializer.hpp"
|
|
12
13
|
#include "EncodedInterpretation.hpp"
#include "InterpsGroup.hpp"
|
|
14
|
#include "deserializationUtils.hpp"
|
|
15
|
|
|
16
17
18
19
|
//const uint8_t LEMMA_ONLY_LOWER = 0;
//const uint8_t LEMMA_UPPER_PREFIX = 1;
//const uint8_t LEMMA_MIXED_CASE = 2;
//const unsigned int MAX_WORD_SIZE = 256;
|
|
20
|
|
|
21
22
23
24
25
26
|
MorphDeserializer::MorphDeserializer() {
}
MorphDeserializer::~MorphDeserializer() {
}
|
|
27
|
long MorphDeserializer::deserialize(const unsigned char* ptr, vector<InterpsGroup>& interps) const {
|
|
28
|
const unsigned char* currPtr = ptr;
|
|
29
|
uint8_t interpTypesNum = readInt8(currPtr);
|
|
30
31
32
33
|
interps.clear();
interps.reserve(interpTypesNum);
for (unsigned int i = 0; i < interpTypesNum; i++) {
InterpsGroup ig;
|
|
34
35
|
ig.type = readInt8(currPtr);
ig.size = readInt16(currPtr);
|
|
36
37
38
|
ig.ptr = currPtr;
currPtr += ig.size;
interps.push_back(ig);
|
|
39
40
41
|
}
return currPtr - ptr;
}
|