Articles of parsing

C ++ Lire le fichier de bas en haut

J’ai un très gros fichier à parsingr, donc le lire en mémoire n’est pas idéal. De la manière dont le fichier est structuré, ce serait beaucoup plus facile si je pouvais commencer par eof et remonter au début. Est-ce que quelqu’un a un bon truc pour faire ça? J’utilise Visual Studio 2008 et C ++. […]

Analyse des entrées utilisateur formatées en C ++

Pour un projet, je dois implémenter une solution au problème de coloration des graphes. Cependant, l’entrée doit avoir une syntaxe spécifique avec laquelle je ne sais pas comment parsingr afin d’accéder aux données nécessaires pour stocker des variables. Les contraintes d’entrée doivent d’abord entrer le nombre de couleurs, puis le nombre de sumts, suivi d’une […]

Avertissement de problème d’parsing avec JSON

J’essaie de lire les données JSON d’un site Web. J’utilise Dev C ++ sur Windows 10 avec un compilateur Mingw. Ceci est un parsingur JSON d’un tutoriel que j’essaye de lancer dans un projet statique #define CURL_STATICLIB #include #include #include #include #include #include “curl.h” #include “json.h” namespace { std::size_t callback( const char* in, std::size_t size, […]

Comment parsingr using boost s’il ne s’agit pas de JSON, mais similaire?

J’ai une application qui lit certains parameters d’un fichier json, mais maintenant le fichier a changé (ce n’est pas ma décision). Le fichier a sensiblement la même apparence, mais au lieu de {} il a [] , donc si jusqu’à présent il ressemblait à { “A”: { “a”:”a”, “b”:”b” } } maintenant c’est comme ça: […]

Pourquoi l’parsing d’une ligne vide avec Spirit génère-t-elle une paire clé / valeur vide dans la carte?

J’essaie d’utiliser Spirit.Qi pour parsingr un format de fichier simple comportant des paires de valeurs de clé séparées par un signe égal. Le fichier prend également en charge les commentaires et les lignes vides, ainsi que les valeurs entre guillemets. Je peux faire en sorte que presque tout cela fonctionne comme prévu. Cependant, toute ligne […]

Analyser un format défini par l’utilisateur?

J’aime la façon dont Boost property_tree parsing certains types de fichiers. Mais mon dossier est un peu différent /*——————————–*- C++ -*———————————-*\ | WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | \*—————————————————————————*/ INFORMATION { version 2.0; format ascii; } // * * * * * * * * * * * * * * * * * * * * * * […]

Analyser le code HTML simple avec du C ++ pur

Dans mon application, je dois parsingr du code HTML simple sans utiliser le moins possible de bibliothèques externes. Mon HTML ressemble à First Content is P Header Text under header Header 2 Paragraph yep no Mon code HTML contient uniquement les balises p, h2, h3 . J’ai la structure suivante: struct Elements { std::ssortingng tag; […]

Expression simple avec boost :: esprit

J’ai besoin d’parsingr simple_expression ::= limit int_number (days | hours | minutes) . J’ai écrit du code pour la grammaire struct Parser: grammar { public: Parser(ConditionTree& a_lTree): Parser::base_type(limit_expression), m_lTree(a_lTree) { using boost::spirit::qi::uint_; using boost::spirit::qi::_1; using boost::spirit::qi::_2; limit_expression = limit_days_operator | limit_hours_operator | limit_minutes_operator ; limit_days_operator = ( ssortingng(“limit”) > uint_ > ssortingng(“days”) )[ phoenix::bind( &ConditionTree::AddDaysLimitOperator, […]

Boost Spirit Qi Espérance

Je suis relativement nouveau dans Spirit Qi et j’essaye d’parsingr un langage qui ressemble à un assembleur. Par exemple, j’aimerais parsingr: Func Ident{ Mov name, “hello” Push 5 Exit } Jusqu’ici tout va bien. Je peux parsingr correctement. Cependant, le gestionnaire d’erreurs présente parfois des emplacements d’erreur étranges. Prenons par exemple le code défectueux suivant: […]

Boost Esprit action sémantique non invoquée

J’ai essayé d’parsingr une chaîne avec Boost Spirit comme suit: integer_count int1 int2 int3 … intN Où N est le nombre entier. Par exemple, 5 1 2 3 4 5 Le code est le suivant: #define BOOST_SPIRIT_USE_PHOENIX_V3 #include #include #include namespace qi = boost::spirit::qi; namespace spirit = boost::spirit; namespace ascii = boost::spirit::ascii; using boost::phoenix::ref; template […]