21 #if !defined(osmscout_oss_PARSER_H) 22 #define osmscout_oss_PARSER_H 74 void SynErr(
int line,
int col,
int n);
75 void Error(
int line,
int col,
const char *s);
76 void Warning(
int line,
int col,
const char *s);
110 void ExpectWeak(
int n,
int follow);
111 bool WeakSeparator(
int n,
int syFol,
int repFol);
113 osmscout::Color PostprocessColor(
const osmscout::Color& color)
const;
134 std::string result(str);
136 if (result.length()>=2 &&
138 result[result.length()-1]==
'"') {
139 result=result.substr(1,result.length()-2);
147 std::istringstream buffer(
string);
149 buffer.imbue(std::locale::classic());
153 return !buffer.fail() && !buffer.bad() && buffer.eof();
158 if (c>=
'0' && c<=
'9') {
161 else if (c>=
'a' && c<=
'f') {
170 const std::string& featureName,
171 const std::string& flagName,
172 TypeInfoSet& resultTypes)
177 std::string e=
"Unknown feature '"+featureName+
"'";
183 size_t flagIndex=std::numeric_limits<size_t>::max();
185 if (!flagName.empty() &&
186 !feature->GetFlagIndex(flagName,
188 std::string e=
"Unknown feature flag '"+featureName+
"."+flagName+
"'";
195 if (type->HasFeature(featureName)) {
200 resultTypes.Set(type);
205 if (!resultTypes.Empty()) {
220 void SemErr(
const char* msg);
233 void IDENT(std::string& value);
234 void BOOL(
bool& value);
244 void COORD(Vertex2D& coord);
246 void DOUBLE(
double& value);
254 void COLOR(Color& color);
255 void MAG(Magnification& magnification);
256 void UINT(
size_t& value);
271 void UMAP(
double& width);
300 void STRING(std::string& value);
310 #endif // !defined(COCO_PARSER_H__) void SIZECONDITION(SizeConditionRef &condition)
void CIRCLE(Symbol &symbol)
void AREAFILLSYMSTYLE(FillPartialStyle &fillStyle)
void PATHTEXTSTYLEATTR(PathTextPartialStyle &style)
void STYLEFILTER_FEATURE_ENTRY(StyleFilter &filter, TypeInfoSet &types)
void STYLEDEF(StyleFilter filter, bool state)
void STYLEFILTER_MAG(StyleFilter &filter)
void TEXTSTYLEATTR(TextPartialStyle &style)
void WAYPATHSYMBOLSTYLE(StyleFilter filter, bool state)
StyleFilter & AddFeature(size_t featureFilterIndex, size_t flagIndex)
void ATTRIBUTEVALUE(PartialStyleBase &style, const StyleAttributeDescriptor &descriptor)
void STYLEBLOCK(StyleFilter filter, bool state)
void FLAGCONDBLOCK(bool state)
osmscout::Color(*)(const osmscout::Color &) ColorPostprocessor
Definition: StyleConfig.h:52
Index selectors by type and level.
Definition: StyleConfig.h:553
void NODESTYLEDEF(StyleFilter filter, bool state)
void AREASTYLEDEF(StyleFilter filter, bool state)
void STYLEFILTER_PATH(StyleFilter &filter)
void STYLEFILTER(StyleFilter &filter)
void ROUTEPATHTEXTSTYLE(StyleFilter filter, bool state)
void MAG(Magnification &magnification)
std::shared_ptr< Token > TokenRef
Definition: Scanner.h:41
bool StringToDouble(const char *string, double &value)
Definition: Parser.h:145
Definition: StyleConfig.h:376
void ROUTESTYLE(StyleFilter filter, bool state)
void POLYGON(Symbol &symbol)
void AREAICONSTYLE(StyleFilter filter, bool state)
void CONSTBLOCK(bool state)
void AddFeatureToFilter(StyleFilter &filter, const std::string &featureName, const std::string &flagName, TypeInfoSet &resultTypes)
Definition: Parser.h:169
void STYLEFILTER_GROUP(StyleFilter &filter)
void NODETEXTSTYLE(StyleFilter filter, bool state)
void WAYSTYLE(StyleFilter filter, bool state)
std::string Destring(const char *str)
Definition: Parser.h:132
Definition: StyleConfig.h:354
void ATTRIBUTE(PartialStyleBase &style, const StyleDescriptor &descriptor)
void STYLEFILTER_ONEWAY(StyleFilter &filter)
void SemWarning(const char *msg)
void AREATEXTSTYLE(StyleFilter filter, bool state)
void Warning(int line, int col, const char *s)
void STYLEFILTER_FEATURE(StyleFilter &filter)
void Exception(const char *s)
void STYLEFILTER_SIZE(StyleFilter &filter)
Definition: StyleDescription.h:102
Errors * errors
Definition: Parser.h:116
void AREABORDERSYMBOLSTYLE(StyleFilter filter, bool state)
void STYLEFILTER_TYPE(StyleFilter &filter)
Definition: Scanner.h:153
void SemErr(const char *msg)
void STYLECONDBLOCK(StyleFilter filter, bool state)
std::shared_ptr< SizeCondition > SizeConditionRef
Definition: StyleConfig.h:218
std::string text
Definition: Parser.h:65
void ICONSTYLEATTR(IconPartialStyle &style)
void AREABORDERTEXTSTYLE(StyleFilter filter, bool state)
Definition: Styles.h:1135
Definition: StyleDescription.h:474
TypeConfigRef GetTypeConfig() const
void WAYSHIELDSTYLE(StyleFilter filter, bool state)
void CONSTANT(StyleConstantRef &constant)
void Error(int line, int col, const char *s)
size_t GetHexDigitValue(char c)
Definition: Parser.h:156
void IDENT(std::string &value)
std::shared_ptr< StyleConstant > StyleConstantRef
Definition: StyleConfig.h:102
void LINESTYLEATTR(LinePartialStyle &style)
bool FiltersByType() const
Definition: StyleConfig.h:267
void COLOR_VALUE(Color &color)
void AREABORDERSYMSTYLE(BorderPartialStyle &borderStyle)
bool HasType(const TypeInfoRef &type) const
Definition: StyleConfig.h:277
std::shared_ptr< Feature > FeatureRef
Definition: TypeFeature.h:219
void WAYSTYLEDEF(StyleFilter filter, bool state)
bool hasErrors
Definition: Parser.h:70
void PATHSHIELDSTYLEATTR(PathShieldPartialStyle &style)
int column
Definition: Parser.h:64
int line
Definition: Parser.h:63
void STYLE(StyleFilter filter, bool state)
void AREASTYLE(StyleFilter filter, bool state)
Definition: StyleConfig.h:241
void DOUBLE(double &value)
StyleConfig & config
Definition: Parser.h:118
void SynErr(int line, int col, int n)
MagnificationConverter magnificationConverter
Definition: Parser.h:119
void FLAGBLOCK(bool state)
Definition: Magnification.h:262
size_t GetFeatureFilterIndex(const Feature &feature) const
void BORDERSTYLEATTR(BorderPartialStyle &style)
void NODEICONSTYLE(StyleFilter filter, bool state)
void WAYPATHTEXTSTYLE(StyleFilter filter, bool state)
Type
Definition: Parser.h:54
void ROUTESTYLEDEF(StyleFilter filter, bool state)
std::list< Err > errors
Definition: Parser.h:69
void STRING(std::string &value)
void WAYGROUP(size_t priority)
void FILLSTYLEATTR(FillPartialStyle &style)
bool state
Definition: Parser.h:120
void COORD(Vertex2D &coord)
Type type
Definition: Parser.h:62
void UDOUBLE(double &value)
void AREASYMBOLSTYLE(FillPartialStyle &fillStyle, BorderPartialStyle &borderStyle)
void CONSTCONDBLOCK(bool state)
Parser(Scanner *scanner, StyleConfig &config, osmscout::ColorPostprocessor colorPostprocessor=nullptr)
ValueType
Definition: Parser.h:122
void AREABORDERSTYLE(StyleFilter filter, bool state)
void RECTANGLE(Symbol &symbol)
void PATHSYMBOLSTYLEATTR(PathSymbolPartialStyle &style)