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

Public Member Functions | List of all members
cogitant::OperationCGIFInput::IStreamCGIF Class Reference

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

#include "cogitant/inputcgif.h"

Inheritance diagram for cogitant::OperationCGIFInput::IStreamCGIF:
cogitant::IStream

Public Member Functions

 IStreamCGIF ()
 Constructeur. More...
 
bool isSpecialChar (wchar_t c)
 Le caractère est-il un caractère spécial dans le format. More...
 
bool isEscapeChar (wchar_t c)
 Le caractère est-il le caractère d'echappement. 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 LexemeType isKeyword (std::string const &s)
 La chaîne passée est-elle un mot clef du 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...
 
virtual std::string lexemeToString (Lexeme const &l)
 Convertit le lexème en chaîne de caractères représentant le lexème. 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...
 

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...
 
- 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...
 
- 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 CGIF.

Cette classe est utilisée pour l'opération de lecture CGIF (cogitant::OperationCGIFInput). 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 CGIF est lu.

Constructor & Destructor Documentation

◆ IStreamCGIF()

cogitant::OperationCGIFInput::IStreamCGIF::IStreamCGIF ( )

Constructeur.

Member Function Documentation

◆ isEscapeChar()

bool cogitant::OperationCGIFInput::IStreamCGIF::isEscapeChar ( wchar_t  c)
virtual

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

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

Reimplemented from cogitant::IStream.

◆ isSpecialChar()

bool cogitant::OperationCGIFInput::IStreamCGIF::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 CGIF.

Reimplemented from cogitant::IStream.