/usr/include/gsmlib/gsm_parser.h is in libgsmme-dev 1.10+20120414.gita5e5ae9a-0.3+b1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 | // *************************************************************************
// * GSM TA/ME library
// *
// * File: gsm_parser.h
// *
// * Purpose: Parser to parse MA/TA result strings
// *
// * Author: Peter Hofmann (software@pxh.de)
// *
// * Created: 13.5.1999
// *************************************************************************
#ifndef GSM_PARSER_H
#define GSM_PARSER_H
#include <gsmlib/gsm_util.h>
#include <gsmlib/gsm_error.h>
#include <string>
#include <vector>
namespace gsmlib
{
class Parser : public RefBase
{
private:
unsigned int _i; // index into _s, next character
std::string _s; // std::string to parse
bool _eos; // true if end-of-string reached in nextChar()
// return next character or -1 if end of string
int nextChar(bool skipWhiteSpace = true);
// "puts back" a character
void putBackChar() {if (! _eos) --_i;}
// check for empty parameter (ie. "," or end of string)
// skips white space
// returns true if no parameter
// or throw an GsmException if allowNoParameter == false
bool checkEmptyParameter(bool allowNoParameter) throw(GsmException);
// parse a std::string (like "string")
// throw an exception if not well-formed
std::string parseString2(bool stringWithQuotationMarks) throw(GsmException);
// parse a int (like 1234)
// throw an exception if not well-formed
int parseInt2() throw(GsmException);
// throw a parser exception
void throwParseException(std::string message = "") throw(GsmException);
public:
Parser(std::string s);
// the following functions skip white space
// parse a character, if absent throw a GsmException
// return false if allowNoChar == true and character not encountered
bool parseChar(char c, bool allowNoChar = false) throw(GsmException);
// parse a list of the form "("ABC", DEF")"
// the list can be empty (ie. == "" ) if allowNoList == true
std::vector<std::string> parseStringList(bool allowNoList = false)
throw(GsmException);
// parse a list of the form "(12, 14)" or "(1-4, 10)"
// the result is returned as a bit vector where for each integer
// in the list and/or range(s) a bit is set
// the list can be empty (ie. == "") if allowNoList == true
std::vector<bool> parseIntList(bool allowNoList = false)
throw(GsmException);
// parse a list of parameter ranges (see below)
// the list can be empty (ie. == "" ) if allowNoList == true
std::vector<ParameterRange> parseParameterRangeList(bool allowNoList = false)
throw(GsmException);
// parse a std::string plus its valid integer range of the
// form "("string",(1-125))"
// the parameter range may be absent if allowNoParameterRange == true
ParameterRange parseParameterRange(bool allowNoParameterRange = false)
throw(GsmException);
// parse an integer range of the form "(1-125)"
// the range may be absent if allowNoRange == true
// then IntRange::_high and _low are set to NOT_SET
// the range may be short if allowNonRange == true
// then IntRange::_high is set to NOT_SET
IntRange parseRange(bool allowNoRange = false, bool allowNonRange = false)
throw(GsmException);
// parse an integer of the form "1234"
// allow absent int if allowNoInt == true
// then it returns NOT_SET
int parseInt(bool allowNoInt = false) throw(GsmException);
// parse a std::string of the form ""string""
// allow absent std::string if allowNoString == true
// then it returns ""
// if stringWithQuotationMarks == true the std::string may contain """
// the std::string is then parsed till the end of the line
std::string parseString(bool allowNoString = false,
bool stringWithQuotationMarks = false)
throw(GsmException);
// parse a single ","
// the comma may be absent if allowNoComma == true
// returns true if there was a comma
bool parseComma(bool allowNoComma = false) throw(GsmException);
// parse till end of line, return result without whitespace
std::string parseEol() throw(GsmException);
// check that end of line is reached
void checkEol() throw(GsmException);
// return std::string till end of line without whitespace
// (does not change internal state)
std::string getEol();
};
};
#endif // GSM_PARSER_H
|