LIMA
Libre Multilingual Analyzer — C++ API
Loading...
Searching...
No Matches
tokensstream.cpp
Go to the documentation of this file.
1
// Copyright (C) 2003 by CEA LIST (LVIC)
2
// SPDX-FileCopyrightText: 2022 CEA LIST <gael.de-chalendar@cea.fr>
3
//
4
// SPDX-License-Identifier: MIT
5
6
#include "
tokensstream.h
"
7
8
9
namespace
Lima
{
10
namespace
DocumentsReader {
11
12
//**********************************************************************
13
// constructors,destructor,copy assignment
14
//**********************************************************************
15
TokensStream::TokensStream
():
16
std
::deque< IndexToken* >()
17
{
18
}
19
20
21
TokensStream::TokensStream
(
const
TokensStream
& t):
22
std
::deque< IndexToken* >()
23
{
24
copy
(t);
25
}
26
27
TokensStream
&
TokensStream::operator =
(
const
TokensStream
& t)
28
{
29
if
(
this
!= &t)
30
{
31
clear
();
32
copy
(t);
33
}
34
return
*
this
;
35
}
36
37
TokensStream::~TokensStream
()
38
{
39
clear
();
40
}
41
42
//********************
43
// helper functions
44
void
TokensStream::copy
(
const
TokensStream
& t) {
45
for
(TokensStream::const_iterator i(t.begin());
46
i != t.end(); i++) {
47
push_back((*i)->clone());
48
}
49
}
50
void
TokensStream::clear
() {
51
for
(TokensStream::const_iterator i(begin());
52
i != end(); i++) {
53
delete
(*i);
54
}
55
std::deque< IndexToken* >::clear();
56
}
57
58
//**********************************************************************
59
60
void
TokensStream::push
(
const
IndexToken& t) {
61
push_back(t.clone());
62
}
63
67
bool
TokensStream::hasToken
()
const
68
{
69
return
(!empty());
70
}
71
75
IndexToken*
TokensStream::nextToken
()
76
{
77
if
(empty())
78
{
79
throw
std::runtime_error(
"nextToken in an empty tokens stream."
);
80
}
81
IndexToken* res = front();
82
pop_front();
83
return
res;
84
}
85
86
//**********************************************************************
87
// input/output functions
88
/*
89
std::wostream& operator << (std::wostream& os, TokensStream& stream) {
90
for (TokensStream::const_iterator i(stream.begin());
91
i != stream.end(); i++) {
92
os << *i << std::endl;
93
}
94
os << CODE_ENDOFSTREAM;
95
return os;
96
}
97
98
std::wistream& operator >> (std::wistream& is, TokensStream& stream) {
99
bool endOfStream(false);
100
while (! endOfStream) {
101
IndexToken* token=readFromStream(is);
102
if (token == NULL) {
103
endOfStream=true;
104
}
105
else {
106
stream.push_back(token);
107
}
108
}
109
return is;
110
}
111
*/
112
113
}
// namespace DocumentsReader
114
}
// namespace Lima
Lima::DocumentsReader::TokensStream
This is a stream of tokens.
Definition
tokensstream.h:22
Lima::DocumentsReader::TokensStream::operator=
TokensStream & operator=(const TokensStream &)
Definition
tokensstream.cpp:27
Lima::DocumentsReader::TokensStream::clear
void clear()
Definition
tokensstream.cpp:50
Lima::DocumentsReader::TokensStream::hasToken
bool hasToken() const
Tests if a token is available.
Definition
tokensstream.cpp:67
Lima::DocumentsReader::TokensStream::nextToken
IndexToken * nextToken()
Returns the next token.
Definition
tokensstream.cpp:75
Lima::DocumentsReader::TokensStream::~TokensStream
virtual ~TokensStream()
Definition
tokensstream.cpp:37
Lima::DocumentsReader::TokensStream::copy
void copy(const TokensStream &)
Definition
tokensstream.cpp:44
Lima::DocumentsReader::TokensStream::push
void push(const IndexToken &)
Definition
tokensstream.cpp:60
Lima::DocumentsReader::TokensStream::TokensStream
TokensStream()
Definition
tokensstream.cpp:15
Lima
NAUTITIA.
Definition
AmosePluginsManager.h:15
std
STL namespace.
tokensstream.h
lima_linguisticprocessing
src
linguisticProcessing
core
DocumentsReader
tokensstream.cpp
Generated by
1.9.8