Quick links: Tutorial - Examples - Files - Symbols.
Classes: Hierarchy - Index - List - Members.
Namespaces: Index - base - cs - display.

Public Member Functions | List of all members
cogitant::OperationBCGCTInput::IStreamBCGCT Class Reference

Flux de lecture d'un fichier au format BCGCT. More...

#include "cogitant/inputbcgct.h"

Inheritance diagram for cogitant::OperationBCGCTInput::IStreamBCGCT:
cogitant::IStream

Public Member Functions

 IStreamBCGCT ()
 Constructeur. More...
 
bool isSpecialChar (wchar_t c)
 Le caractère est-il un caractère spécial dans le format. More...
 
LexemeType isKeyword (std::string const &s)
 La chaîne passée est-elle un mot clef du format. More...
 
bool isEscapeChar (wchar_t c)
 Le caractère est-il le caractère d'echappement. More...
 
std::string lexemeToString (Lexeme const &l)
 Convertit le lexème en chaîne de caractères. More...
 
- Public Member Functions inherited from cogitant::IStream
 IStream ()
 Constructeur. More...
 
virtual ~IStream ()
 Destructeur. More...
 
virtual void setStream (std::istream *is, std::string const &sn="")
 Assignation du flux de lecture. More...
 
Line line () const
 Accès à la ligne courante. More...
 
Line column () const
 Accès à la colonne courante. More...
 
Encoding::Type encoding () const
 Type d'encodage du flux. More...
 
std::string const & streamName () const
 Nom du flux. More...
 
std::istream const * stream () const
 Accès direct au flux. More...
 
virtual bool init (Encoding::Type st=Encoding::DEFAULT)
 Initialisation du flux. More...
 
void setCompressed (unsigned long decosize)
 Passage en mode compressé. More...
 
virtual bool isSeparator (wchar_t c)
 Le caractère est-il un séparateur dans le format. More...
 
virtual void handleCharAfterEscapeChar (wchar_t c, std::string &result)
 Gère le caractère lu juste après un caractère d'échappement. More...
 
virtual void readString (std::string &s)
 Lecture d'une chaîne jusqu'au prochain séparateur. More...
 
virtual bool readStringQuote () const
 La précédente lecture de chaine était elle entre guillemets ou pas. More...
 
virtual bool isQuoteChar (wchar_t c, bool begin) const
 Le caractère passé est-il le caractère d'ouverture de guillements utilisé par readString(). More...
 
virtual bool isBlankChar (wchar_t c)
 Le caractère doit il être ignoré. More...
 
virtual wchar_t getChar ()
 Lecture d'un caractère sans aucune interprétation. More...
 
virtual wchar_t nextChar ()
 Lecture d'un caractère sans aucune interprétation et passage au caractère suivant. More...
 
virtual void ignoreChar ()
 Passage au caractère suivant dans le flux. More...
 
virtual void ignoreChars (unsigned long ign)
 Ignorer plusieurs caractères dans le flux. More...
 
void readBytes (unsigned char *c, unsigned int lg)
 Lecture brute d'octets. More...
 
bool eof () const
 Fin du flux de lecture atteinte. More...
 
std::streampos tellg () const
 Position actuelle dans le flux. More...
 
void memoPosition ()
 Mémorisation d'une position. More...
 
void backToMemoPosition ()
 Retour à la position mémorisée. More...
 
virtual void readLexeme (Lexeme &l)
 Lecture de l'unité lexicale suivante. More...
 
void addComment (std::string const &b, std::string const &e)
 Ajout d'un couple de chaînes de caractères délimitant un commentaire. More...
 
void addComment (std::vector< wchar_t > const &b, std::vector< wchar_t > const &e)
 Ajout d'un couple de chaînes de caractères délimitant un commentaire. More...
 
void deleteComments ()
 Supprime tous les couples de commentaires déja définis. More...
 
void setIgnoreComments (bool ic)
 Ignorer les marques de début/fin de commentaires. More...
 
void stringAddChar (std::string &s, wchar_t c) const
 Ajoute à une chaîne un caractère en convertissant ce caractère si nécessaire. More...
 
std::string const * stringConvert (std::string const &s, std::string &result)
 Convertit la chaîne si le mode de conversion d'encodage est EC_STRING. More...
 
void setEncoding (Encoding::Type nt, bool autoutf8=false)
 Modifie l'encodage du flux. More...
 
void setReadBom (bool rb)
 Modifie la lecture du BOM. More...
 
void throwException (Lexeme const &found, Lexeme const &expected1, Lexeme const &expected2=Lexeme(), Lexeme const &expected3=Lexeme(), Lexeme const &expected4=Lexeme(), Lexeme const &expected5=Lexeme())
 Lever une exception d'analyse syntaxique. More...
 
LexemeType verifyLexeme (Lexeme const &s, LexemeType l1, wchar_t sc1=0, LexemeType l2=LEX_UNKNOWN, wchar_t sc2=0, LexemeType l3=LEX_UNKNOWN, wchar_t sc3=0, LexemeType l4=LEX_UNKNOWN, wchar_t sc4=0, LexemeType l5=LEX_UNKNOWN, wchar_t sc5=0)
 Vérifie si le lexeme passé fait partie des types de lex§mes donnés.
 
LexemeType assertLexeme (Lexeme &s, LexemeType l1, wchar_t sc1=0, LexemeType l2=LEX_UNKNOWN, wchar_t sc2=0, LexemeType l3=LEX_UNKNOWN, wchar_t sc3=0, LexemeType l4=LEX_UNKNOWN, wchar_t sc4=0, LexemeType l5=LEX_UNKNOWN, wchar_t sc5=0)
 Lit le lexème suivant qui doit être d'un des types donnés. More...
 
LexemeType verifyLexeme (Lexeme const &s, LexemeType ltypes[], wchar_t lchars[])
 Vérifie si le lexème est d'un des types donnés. More...
 
LexemeType assertLexeme (Lexeme &s, LexemeType ltypes[], wchar_t lchars[])
 Lit le lexème suivant qui doit être d'un des types donnés. More...
 

Static Public Attributes

Lexèmes généraux
static const LexemeType BEGIN
 
static const LexemeType END
 
Lexèmes pour la représentation du support.
static const LexemeType SUPPORT
 
static const LexemeType ENDSUPPORT
 
static const LexemeType ORDER
 
static const LexemeType ENDORDER
 
static const LexemeType TCONSET
 
static const LexemeType ENDTCONSET
 
static const LexemeType CONCEPTTYPES
 
static const LexemeType ENDCONCEPTTYPES
 
static const LexemeType TRELSET
 
static const LexemeType ENDTRELSET
 
static const LexemeType RELATIONTYPES
 
static const LexemeType ENDRELATIONTYPES
 
static const LexemeType TNESSET
 
static const LexemeType ENDTNESSET
 
static const LexemeType NESTINGTYPES
 
static const LexemeType ENDNESTINGTYPES
 
static const LexemeType CONF
 
static const LexemeType ENDCONF
 
static const LexemeType BANNEDTYPES
 
static const LexemeType ENDBANNEDTYPES
 
Lexèmes pour la représentation de graphes.
static const LexemeType GRAPH
 
static const LexemeType ENDGRAPH
 
static const LexemeType CONCEPTS
 
static const LexemeType RELATIONS
 
static const LexemeType EDGES
 
static const LexemeType NATURE
 
static const LexemeType SET
 
static const LexemeType POINTER
 
static const LexemeType EXTENSIONS
 
static const LexemeType STAR
 
static const LexemeType DOUBLESTAR
 
Lexèmes pour la représentation de règles et contraintes.
static const LexemeType RULE
 
static const LexemeType ENDRULE
 
static const LexemeType HYPT
 
static const LexemeType CONC
 
static const LexemeType CONNECTIONPOINTS
 
static const LexemeType POSITIVECONSTRAINT
 
static const LexemeType ENDPOSITIVECONSTRAINT
 
static const LexemeType NEGATIVECONSTRAINT
 
static const LexemeType ENDNEGATIVECONSTRAINT
 
static const LexemeType CONDITION
 
static const LexemeType OBLIGATION
 
static const LexemeType INTERDICTION
 
Lexèmes non gérés pour l'instant.
static const LexemeType LAMBDA
 
static const LexemeType CANON
 
static const LexemeType DEFINED
 
static const LexemeType SCHEMA
 
static const LexemeType VARIABLES
 
static const LexemeType ENDLAMBDA
 
- Static Public Attributes inherited from cogitant::IStream
static const LexemeType LEX_UNKNOWN
 Lexème non défini ou en erreur. More...
 
static const LexemeType LEX_SPECIALCHAR
 Un caractère spécial dans le format interprété : son code est dans m_char. More...
 
static const LexemeType LEX_EOF
 La marque de fin de fichier. More...
 
static const LexemeType LEX_STRING
 Un identificateur : une chaîne dans m_string. More...
 

Static Protected Attributes

Correspondances identificateurs de lexèmes - mots clef.
static const char * c_bcgctkeywords []
 
static const LexemeType c_bcgctlexemes []
 

Additional Inherited Members

- Public Types inherited from cogitant::IStream
typedef unsigned long Line
 Numérotation des lignes. More...
 
typedef unsigned int LexemeType
 Type de Lexeme. More...
 
- Protected Types inherited from cogitant::IStream
enum  EncodingConvert { EC_NONE, EC_CHAR, EC_STRING }
 Conversion d'encodage actuellement utilisée. More...
 
- Protected Member Functions inherited from cogitant::IStream
unsigned char streamGet ()
 Simulation de la méthode get() sur le flux. More...
 
unsigned char streamPeek ()
 Simulation de la méthode peek() sur le flux. More...
 
wchar_t streamGetChar ()
 Lecture du prochain caractère du flux, en utilisant un décodage Utf16. More...
 
wchar_t streamPeekChar ()
 Accès au prochain caractère du flux, en utilisant un décodage Utf16. More...
 
void streamRead (unsigned char *buf, unsigned int lg)
 Simulation de la méthode read() sur le flux. More...
 
std::streampos length ()
 Longueur du flux. More...
 
- Protected Attributes inherited from cogitant::IStream
std::istream * m_stream
 Flux de lecture.
 
std::string m_streamname
 Nom du flux.
 
Line m_line
 Ligne en cours de lecture.
 
Line m_column
 Position en cours de lecture dans la ligne. More...
 
std::streampos m_memopos
 Mémorisation d'une position dans le flux.
 
Line m_memoposline
 Ligne de la position mémorisée.
 
Line m_memoposcolumn
 Colonne de la position mémorisée.
 
bool m_readstringquote
 Lecture de guillemets lors de la dernière lecture de chaine.
 
std::vector< std::vector< wchar_t > > m_commentbegin
 Chaines de début de comentaires. More...
 
std::vector< std::vector< wchar_t > > m_commentend
 Chaines de fin de commentaire. More...
 
bool m_ignorecomments
 Ignorer les marques de commentaires. More...
 
std::queue< wchar_t > m_queuechar
 Caractères lus mais qui doivent être interprétés à nouveau. More...
 
Encoding::Type m_encoding
 Type d'encodage du flux. More...
 
bool m_autoutf8
 Passage automatique d'un encodage Utf-8 à un encodage Latin9. More...
 
bool m_readbom
 Si défini à vrai (par défaut) tente de lire le BOM en début de flux pour déterminer l'encodage. More...
 
bool m_compressed
 Compression. More...
 
unsigned char * m_decobuffer
 Buffer utilisé pour la décompression. More...
 
unsigned long m_decobuffersize
 Taille du buffer de décompression. More...
 
unsigned long m_decobufferpos
 Position de lecture dans le buffer de décompression. More...
 
EncodingConvert m_econvert
 Conversion d'encodage. More...
 

Detailed Description

Flux de lecture d'un fichier au format BCGCT.

Cette classe est utilisée pour l'opération de lecture BCGCT (cogitant::OperationBCGCTInput) et fournit un accès simplifié aux lexèmes BCGCT présents dans le flux de lecture. Dans un usage standard de la bibliothèque, cette classe peut être ignorée, même si elle est utilisée à chaque fois qu'un fichier BCGCT est lu.

Constructor & Destructor Documentation

cogitant::OperationBCGCTInput::IStreamBCGCT::IStreamBCGCT ( )

Constructeur.

Member Function Documentation

bool cogitant::OperationBCGCTInput::IStreamBCGCT::isEscapeChar ( wchar_t  c)
virtual

Le caractère est-il le caractère d'echappement.

En BCGCT, il s'agit du caractère \.

Reimplemented from cogitant::IStream.

LexemeType cogitant::OperationBCGCTInput::IStreamBCGCT::isKeyword ( std::string const &  s)
virtual

La chaîne passée est-elle un mot clef du format.

Reimplemented from cogitant::IStream.

bool cogitant::OperationBCGCTInput::IStreamBCGCT::isSpecialChar ( wchar_t  c)
virtual

Le caractère est-il un caractère spécial dans le format.

Les caractères suivants sont spéciaux =[](){}:;,<+$ en BCGCT.

Reimplemented from cogitant::IStream.

std::string cogitant::OperationBCGCTInput::IStreamBCGCT::lexemeToString ( Lexeme const &  l)
virtual

Convertit le lexème en chaîne de caractères.

Reimplemented from cogitant::IStream.