Flux de lecture d'un fichier au format BCGCT. More...
#include "cogitant/inputbcgct.h"
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... | |
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.
cogitant::OperationBCGCTInput::IStreamBCGCT::IStreamBCGCT | ( | ) |
Constructeur.
|
virtual |
Le caractère est-il le caractère d'echappement.
En BCGCT, il s'agit du caractère \
.
Reimplemented from cogitant::IStream.
|
virtual |
La chaîne passée est-elle un mot clef du format.
Reimplemented from cogitant::IStream.
|
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.
|
virtual |
Convertit le lexème en chaîne de caractères.
Reimplemented from cogitant::IStream.