Frog
Public Member Functions | Public Attributes | List of all members
BracketNest Class Reference

#include <mbma_brackets.h>

Inheritance diagram for BracketNest:
Inheritance graph
[legend]
Collaboration diagram for BracketNest:
Collaboration graph
[legend]

Public Member Functions

 BracketNest (CLEX::Type, Compound::Type, int, TiCC::LogStream &)
 
BaseBracketappend (BaseBracket *)
 
BracketNestclone () const
 
 ~BracketNest ()
 
bool isNested ()
 
void clearEmptyNodes ()
 
icu::UnicodeString put (bool=true) const
 
icu::UnicodeString pretty_put () const
 
bool testMatch (std::list< BaseBracket * > &result, const std::list< BaseBracket * >::iterator &rpos, std::list< BaseBracket * >::iterator &bpos)
 
std::list< BaseBracket * >::iterator glue (std::list< BaseBracket * > &, const std::list< BaseBracket * >::iterator &)
 
std::list< BaseBracket * >::iterator resolveAffix (std::list< BaseBracket * > &, const std::list< BaseBracket * >::iterator &)
 
void resolveGlue ()
 
void resolveNouns ()
 
void resolveLead ()
 
void resolveTail ()
 
void resolveMiddle ()
 
Compound::Type getCompoundType ()
 
CLEX::Type getFinalTag ()
 
folia::Morpheme * createMorpheme (folia::Document *) const
 
folia::Morpheme * createMorpheme (folia::Document *, std::string &, int &) const
 
Compound::Type compound () const
 
- Public Member Functions inherited from BaseBracket
 BaseBracket (CLEX::Type t, const std::vector< CLEX::Type > &R, int flag, TiCC::LogStream &l)
 
 BaseBracket (CLEX::Type t, int flag, TiCC::LogStream &l)
 
virtual ~BaseBracket ()
 
Status status () const
 
void set_status (const Status s)
 
virtual icu::UnicodeString morpheme () const
 
virtual std::string inflection () const
 
virtual std::string original () const
 
virtual int infixpos () const
 
virtual bool isglue () const
 
CLEX::Type tag () const
 
void setTag (CLEX::Type t)
 

Public Attributes

std::list< BaseBracket * > parts
 
- Public Attributes inherited from BaseBracket
std::vector< CLEX::TypeRightHand
 

Additional Inherited Members

- Protected Attributes inherited from BaseBracket
CLEX::Type cls
 
Status _status
 
int debugFlag
 
TiCC::LogStream & myLog
 

Constructor & Destructor Documentation

◆ BracketNest()

BracketNest::BracketNest ( CLEX::Type  t,
Compound::Type  c,
int  debug_flag,
TiCC::LogStream &  l 
)

create a BracketNest object from a CLEX::Type and a CompoundType

Parameters
tA CLEX::Type
ca Compound::Type
debug_flagthe debug value
la LogStream for messages

◆ ~BracketNest()

BracketNest::~BracketNest ( )

Member Function Documentation

◆ append()

BaseBracket * BracketNest::append ( BaseBracket t)
virtual

append a Bracket structure to this Nest

Reimplemented from BaseBracket.

◆ clearEmptyNodes()

void BracketNest::clearEmptyNodes ( )
virtual

remove all nodes that don't have a morpheme or an inflection

Reimplemented from BaseBracket.

◆ clone()

BracketNest * BracketNest::clone ( ) const
virtual

make a deep copy of the Bracketnest

Implements BaseBracket.

◆ compound()

Compound::Type BracketNest::compound ( ) const
inlinevirtual

Reimplemented from BaseBracket.

◆ createMorpheme() [1/2]

folia::Morpheme * BracketNest::createMorpheme ( folia::Document *  doc) const
virtual

use the data in the Leaf to create a folia::Morpheme node

Parameters
docThe FoLiA Document context

Implements BaseBracket.

◆ createMorpheme() [2/2]

folia::Morpheme * BracketNest::createMorpheme ( folia::Document *  doc,
std::string &  desc,
int &  cnt 
) const
virtual

use the data in the Leaf to create a folia::Morpheme node

Parameters
docThe FoLiA Document context
desca decriptien note to add
cnta counter for the number of handled morphemes

Implements BaseBracket.

◆ getCompoundType()

Compound::Type BracketNest::getCompoundType ( )
virtual

extract the Compound::Type

This function uses a lot of heuristics to determine get Compound::Type given the elements in the BracketNest

Reimplemented from BaseBracket.

◆ getFinalTag()

CLEX::Type BracketNest::getFinalTag ( )

get the result tag for this rule

◆ glue()

list< BaseBracket * >::iterator BracketNest::glue ( std::list< BaseBracket * > &  result,
const std::list< BaseBracket * >::iterator &  rpos 
)

apply a glue rule

◆ isNested()

bool BracketNest::isNested ( )
inlinevirtual

Reimplemented from BaseBracket.

◆ pretty_put()

icu::UnicodeString BracketNest::pretty_put ( ) const
virtual

create a descriptive Unicode string representation for this object

Reimplemented from BaseBracket.

◆ put()

icu::UnicodeString BracketNest::put ( bool  full = true) const
virtual

create a Unicode string representation for this object

Reimplemented from BaseBracket.

◆ resolveAffix()

list< BaseBracket * >::iterator BracketNest::resolveAffix ( std::list< BaseBracket * > &  result,
const std::list< BaseBracket * >::iterator &  rpos 
)

try to resolve an Affix rule

Parameters
resultthe output, matches might replace part of it by a new Nest
rposstart posotion for this search
Returns
an iterator where the next resolving step should start

◆ resolveGlue()

void BracketNest::resolveGlue ( )
virtual

resolve all glue rules

Reimplemented from BaseBracket.

◆ resolveLead()

void BracketNest::resolveLead ( )
virtual

resolve rules starting with *

Reimplemented from BaseBracket.

◆ resolveMiddle()

void BracketNest::resolveMiddle ( )
virtual

resolve rules with a * NOT at begin or end

Reimplemented from BaseBracket.

◆ resolveNouns()

void BracketNest::resolveNouns ( )

check for adjacent Nouns and replace by a new Nest

◆ resolveTail()

void BracketNest::resolveTail ( )
virtual

resolve rules ending with *

Reimplemented from BaseBracket.

◆ testMatch()

bool BracketNest::testMatch ( std::list< BaseBracket * > &  result,
const std::list< BaseBracket * >::iterator &  rpos,
std::list< BaseBracket * >::iterator &  bpos 
)

test if the rule matches at a certain position

Parameters
resultthe current result. A new match will be appended
rposthe position in the rules list we are at.
bposoutput parameter to return the END postion of the match
Returns
true if it matches

Member Data Documentation

◆ parts

std::list<BaseBracket *> BracketNest::parts

The documentation for this class was generated from the following files: