LIMA
Libre Multilingual Analyzer — C++ API
Loading...
Searching...
No Matches
Transition.h
Go to the documentation of this file.
1
// Copyright 2002-2013 CEA LIST
2
// SPDX-FileCopyrightText: 2022 CEA LIST <gael.de-chalendar@cea.fr>
3
//
4
// SPDX-License-Identifier: MIT
5
6
// NAUTITIA
7
//
8
// jys 15-JUL-2002
9
//
10
// Transition is the main composant of automatons. Actions
11
// are performed only during transitions. Automatons evoluate
12
// only with transitions.
13
// Components of transitions are :
14
// o "check" components to determine if transition is "open"
15
// o allowed events : to compare the current character
16
// class with. (mandatory)
17
// o static conditions : to check characters classes
18
// before and after current character class and
19
// inner automaton return status. (optionnal)
20
// o "action" components to determine what to do if transition
21
// has been found open.
22
// o next state : on the next character class, automaton
23
// will be on that state (optionnal)
24
// o action : move the pointer on character classes buffer,
25
// take a token, flush the token memory, ... (optionnal)
26
// o setting : set up flags into tokens data structure
27
// o return_status if automaton is an inner one. (optionnal)
28
29
#ifndef LIMA_LINGUISTICPROCESSING_FLATTOKENIZER_Transition_H
30
#define LIMA_LINGUISTICPROCESSING_FLATTOKENIZER_Transition_H
31
32
#include "
FlatTokenizerExport.h
"
33
#include "
common/Data/LimaString.h
"
34
#include "
common/Data/strwstrtools.h
"
35
#include "
ReturnStatus.h
"
36
#include "
Text.h
"
37
#include "
Events.h
"
38
#include "
State.h
"
39
#include "
Condition.h
"
40
41
#include "
linguisticProcessing/core/LinguisticAnalysisStructure/TStatus.h
"
42
// #include "linguisticProcessing/core/Tokenizer/ParseMarkup.h"
43
44
namespace
Lima
45
{
46
namespace
LinguisticProcessing
47
{
48
namespace
FlatTokenizer
49
{
50
51
class
LIMA_FLATTOKENIZER_EXPORT
Transition
52
{
53
public
:
54
enum
Setting
55
{
56
SET_T_ALPHA
,
// 0
57
SET_T_NUMERIC
,
// 1
58
SET_T_PATTERN
,
// 2
59
SET_T_WORD_BRK
,
// 3
60
SET_T_SENTENCE_BRK
,
// 4
61
SET_T_ALPHANUMERIC
,
// 5
62
SET_T_ALPHA_HYPHEN
,
// 6
63
SET_T_ALPHA_POSSESSIVE
,
// 7
64
SET_T_CAPITAL
,
// 8
65
SET_T_SMALL
,
// 9
66
SET_T_CAPITAL_1ST
,
// 10
67
SET_T_ACRONYM
,
// 11
68
SET_T_CAPITAL_SMALL
,
// 12
69
SET_T_CARDINAL_ROMAN
,
// 13
70
SET_T_ORDINAL_ROMAN
,
// 14
71
SET_T_NOT_ROMAN
,
// 15
72
SET_T_INTEGER
,
// 16
73
SET_T_COMMA_NUMBER
,
// 17
74
SET_T_DOT_NUMBER
,
// 18
75
SET_T_FRACTION
,
// 19
76
SET_T_ORDINAL_INTEGER
,
// 20
77
SET_T_ALPHA_CONCAT_ABBREV
,
// 21
78
SET_T_PARAGRAPH_BRK
,
// 22
79
SET_T_ARABIC
,
// 23
80
SET_T_LATIN_ARABIC
,
// 24
81
SET_T_ART_DEF
,
// 25
82
SET_T_ACRONYM_ARABIC
,
// 26
83
SET_T_ACRONYM_LATIN_ARABIC
,
// 27
84
SET_T_TWITTER
,
// 28
85
SET_T_ABBREV
// 29
86
};
87
static
const
char
* SettingNames[];
88
89
explicit
Transition
(
const
State
* state);
90
virtual
~Transition
();
91
92
// for run-time use. Transition does its works.
93
// Returns true if open, false otherwise
94
const
State
*
run
(
Text
& text)
const
;
95
96
inline
const
Lima::LimaString
nextStateName
()
const
97
{
98
if
(_toState)
return
(_toState->name());
99
else
return
Common::Misc::utf8stdstring2limastring(
"NONE"
);
100
}
101
102
inline
const
Condition
&
conditions
()
const
{
return
_condition;}
103
inline
Condition
&
conditions
() {
return
_condition;}
104
105
inline
const
Events
&
events
()
const
{
return
_events;}
106
inline
Events
&
events
() {
return
_events;}
107
108
// inline const State* toState() const {return _toState;}
109
// inline State* toState() {return _toState;}
110
111
inline
void
setToState
(
State
* state) {_toState = state;}
112
113
/* inline const LinguisticAnalysisStructure::TStatus& setting() const {return m_status;}
114
inline LinguisticAnalysisStructure::TStatus& setting() {return m_status;}*/
115
bool
setSetting(
const
LimaString
& s);
116
117
inline
bool
tokenize
()
const
{
return
m_tokenize;}
118
inline
void
setTokenize
(
bool
b) {m_tokenize = b;}
119
120
inline
bool
flush
()
const
{
return
m_flush;}
121
inline
void
setFlush
(
bool
f) {m_flush = f;}
122
123
inline
const
Lima::LimaString
&
defaultKey
()
const
{
return
m_defaultKey;}
124
inline
void
setDefaultKey
(
const
Lima::LimaString
& key) {m_defaultKey = key;}
125
126
private
:
127
Transition
(
const
Transition
&);
128
Transition
& operator=(
const
Transition
&);
129
void
applySettings(
Text
& text)
const
;
130
131
const
State
* m_state;
132
State
* _toState;
133
Events
_events;
134
Condition
_condition;
//0 means no conditions
135
bool
m_tokenize;
136
bool
m_flush;
137
Lima::LimaString
m_defaultKey;
138
139
// LinguisticAnalysisStructure::TStatus m_status;
140
141
std::vector<Setting> m_settings;
142
};
143
144
}
//namespace FlatTokenizer
145
}
// namespace LinguisticProcessing
146
}
// namespace Lima
147
148
#endif
Condition.h
FlatTokenizerExport.h
LIMA_FLATTOKENIZER_EXPORT
#define LIMA_FLATTOKENIZER_EXPORT
Definition
FlatTokenizerExport.h:27
Events.h
LimaString.h
ReturnStatus.h
State.h
TStatus.h
Text.h
Lima::LinguisticProcessing::FlatTokenizer::Condition
Definition
Condition.h:33
Lima::LinguisticProcessing::FlatTokenizer::Events
Definition
Events.h:31
Lima::LinguisticProcessing::FlatTokenizer::State
Definition
State.h:37
Lima::LinguisticProcessing::FlatTokenizer::Text
Definition
Text.h:36
Lima::LinguisticProcessing::FlatTokenizer::Transition
Definition
Transition.h:52
Lima::LinguisticProcessing::FlatTokenizer::Transition::setFlush
void setFlush(bool f)
Definition
Transition.h:121
Lima::LinguisticProcessing::FlatTokenizer::Transition::tokenize
bool tokenize() const
Definition
Transition.h:117
Lima::LinguisticProcessing::FlatTokenizer::Transition::conditions
const Condition & conditions() const
Definition
Transition.h:102
Lima::LinguisticProcessing::FlatTokenizer::Transition::events
const Events & events() const
Definition
Transition.h:105
Lima::LinguisticProcessing::FlatTokenizer::Transition::defaultKey
const Lima::LimaString & defaultKey() const
Definition
Transition.h:123
Lima::LinguisticProcessing::FlatTokenizer::Transition::conditions
Condition & conditions()
Definition
Transition.h:103
Lima::LinguisticProcessing::FlatTokenizer::Transition::setDefaultKey
void setDefaultKey(const Lima::LimaString &key)
Definition
Transition.h:124
Lima::LinguisticProcessing::FlatTokenizer::Transition::setTokenize
void setTokenize(bool b)
Definition
Transition.h:118
Lima::LinguisticProcessing::FlatTokenizer::Transition::setToState
void setToState(State *state)
Definition
Transition.h:111
Lima::LinguisticProcessing::FlatTokenizer::Transition::events
Events & events()
Definition
Transition.h:106
Lima::LinguisticProcessing::FlatTokenizer::Transition::flush
bool flush() const
Definition
Transition.h:120
Lima::LinguisticProcessing::FlatTokenizer::Transition::nextStateName
const Lima::LimaString nextStateName() const
Definition
Transition.h:96
Lima::LinguisticProcessing::FlatTokenizer::Transition::Setting
Setting
Definition
Transition.h:55
Lima::LinguisticProcessing::FlatTokenizer::Transition::SET_T_CARDINAL_ROMAN
@ SET_T_CARDINAL_ROMAN
Definition
Transition.h:69
Lima::LinguisticProcessing::FlatTokenizer::Transition::SET_T_LATIN_ARABIC
@ SET_T_LATIN_ARABIC
Definition
Transition.h:80
Lima::LinguisticProcessing::FlatTokenizer::Transition::SET_T_DOT_NUMBER
@ SET_T_DOT_NUMBER
Definition
Transition.h:74
Lima::LinguisticProcessing::FlatTokenizer::Transition::SET_T_ACRONYM
@ SET_T_ACRONYM
Definition
Transition.h:67
Lima::LinguisticProcessing::FlatTokenizer::Transition::SET_T_ARABIC
@ SET_T_ARABIC
Definition
Transition.h:79
Lima::LinguisticProcessing::FlatTokenizer::Transition::SET_T_ACRONYM_ARABIC
@ SET_T_ACRONYM_ARABIC
Definition
Transition.h:82
Lima::LinguisticProcessing::FlatTokenizer::Transition::SET_T_SENTENCE_BRK
@ SET_T_SENTENCE_BRK
Definition
Transition.h:60
Lima::LinguisticProcessing::FlatTokenizer::Transition::SET_T_INTEGER
@ SET_T_INTEGER
Definition
Transition.h:72
Lima::LinguisticProcessing::FlatTokenizer::Transition::SET_T_CAPITAL_SMALL
@ SET_T_CAPITAL_SMALL
Definition
Transition.h:68
Lima::LinguisticProcessing::FlatTokenizer::Transition::SET_T_ORDINAL_INTEGER
@ SET_T_ORDINAL_INTEGER
Definition
Transition.h:76
Lima::LinguisticProcessing::FlatTokenizer::Transition::SET_T_CAPITAL
@ SET_T_CAPITAL
Definition
Transition.h:64
Lima::LinguisticProcessing::FlatTokenizer::Transition::SET_T_NOT_ROMAN
@ SET_T_NOT_ROMAN
Definition
Transition.h:71
Lima::LinguisticProcessing::FlatTokenizer::Transition::SET_T_COMMA_NUMBER
@ SET_T_COMMA_NUMBER
Definition
Transition.h:73
Lima::LinguisticProcessing::FlatTokenizer::Transition::SET_T_ART_DEF
@ SET_T_ART_DEF
Definition
Transition.h:81
Lima::LinguisticProcessing::FlatTokenizer::Transition::SET_T_ALPHANUMERIC
@ SET_T_ALPHANUMERIC
Definition
Transition.h:61
Lima::LinguisticProcessing::FlatTokenizer::Transition::SET_T_ALPHA
@ SET_T_ALPHA
Definition
Transition.h:56
Lima::LinguisticProcessing::FlatTokenizer::Transition::SET_T_SMALL
@ SET_T_SMALL
Definition
Transition.h:65
Lima::LinguisticProcessing::FlatTokenizer::Transition::SET_T_CAPITAL_1ST
@ SET_T_CAPITAL_1ST
Definition
Transition.h:66
Lima::LinguisticProcessing::FlatTokenizer::Transition::SET_T_ALPHA_CONCAT_ABBREV
@ SET_T_ALPHA_CONCAT_ABBREV
Definition
Transition.h:77
Lima::LinguisticProcessing::FlatTokenizer::Transition::SET_T_ORDINAL_ROMAN
@ SET_T_ORDINAL_ROMAN
Definition
Transition.h:70
Lima::LinguisticProcessing::FlatTokenizer::Transition::SET_T_WORD_BRK
@ SET_T_WORD_BRK
Definition
Transition.h:59
Lima::LinguisticProcessing::FlatTokenizer::Transition::SET_T_PATTERN
@ SET_T_PATTERN
Definition
Transition.h:58
Lima::LinguisticProcessing::FlatTokenizer::Transition::SET_T_PARAGRAPH_BRK
@ SET_T_PARAGRAPH_BRK
Definition
Transition.h:78
Lima::LinguisticProcessing::FlatTokenizer::Transition::SET_T_ACRONYM_LATIN_ARABIC
@ SET_T_ACRONYM_LATIN_ARABIC
Definition
Transition.h:83
Lima::LinguisticProcessing::FlatTokenizer::Transition::SET_T_FRACTION
@ SET_T_FRACTION
Definition
Transition.h:75
Lima::LinguisticProcessing::FlatTokenizer::Transition::SET_T_NUMERIC
@ SET_T_NUMERIC
Definition
Transition.h:57
Lima::LinguisticProcessing::FlatTokenizer::Transition::SET_T_TWITTER
@ SET_T_TWITTER
Definition
Transition.h:84
Lima::LinguisticProcessing::FlatTokenizer::Transition::SET_T_ALPHA_POSSESSIVE
@ SET_T_ALPHA_POSSESSIVE
Definition
Transition.h:63
Lima::LinguisticProcessing::FlatTokenizer::Transition::SET_T_ALPHA_HYPHEN
@ SET_T_ALPHA_HYPHEN
Definition
Transition.h:62
run
int run(int aargc, char **aargv)
Definition
main.cpp:31
Lima
NAUTITIA.
Definition
AmosePluginsManager.h:15
Lima::LimaString
QString LimaString
Definition
LimaString.h:33
strwstrtools.h
lima_linguisticprocessing
src
linguisticProcessing
core
FlatTokenizer
Transition.h
Generated by
1.9.8