[#BloombergLP-bslfmt-FormatSpecificationParser]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslfmt.adoc[bslfmt]::FormatSpecificationParser
:relfileprefix: ../../
:mrdocs:

Mechanism for parsing Standard C&plus;&plus; format&hyphen;specification sections&period;

== Synopsis

Declared in `&lt;bslfmt&lowbar;formatspecificationparser&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class t&lowbar;CHAR&gt;
class FormatSpecificationParser
    : public xref:BloombergLP/bslfmt/FormatSpecificationParserEnums.adoc[FormatSpecificationParserEnums]
----

== Description

This class supports parsing syntaxes of the form `fill&hyphen;and&hyphen;align?sign &num; 0 width?precision?L` and any syntax that contains a subset of the sections therein&period;

== Base Classes

[cols="1,4"]
|===
| Name| Description
| `xref:BloombergLP/bslfmt/FormatSpecificationParserEnums.adoc[FormatSpecificationParserEnums]`
| Namespace struct holding enums used for parsing&period;
|===

== Enums

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslfmt/FormatSpecificationParserEnums/Alignment.adoc[`Alignment`] 
| Alignment options parsed from a format specification&period;
| xref:BloombergLP/bslfmt/FormatSpecificationParserEnums/ProcessingState.adoc[`ProcessingState`] 
| Parser processing states for a format specification&period;
| xref:BloombergLP/bslfmt/FormatSpecificationParserEnums/Sections.adoc[`Sections`] 
| Bit flags indicating which format&hyphen;spec sections were parsed&period;
| xref:BloombergLP/bslfmt/FormatSpecificationParserEnums/Sign.adoc[`Sign`] 
| Sign options parsed from a format specification&period;
|===


== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslfmt/FormatSpecificationParser/2constructor.adoc[`FormatSpecificationParser`]         [.small]#[constructor]#
| Create a default instance of `FormatSpecificationParser`&period;
| xref:BloombergLP/bslfmt/FormatSpecificationParser/alignment.adoc[`alignment`] 
| Return the stored alignment value&period;
| xref:BloombergLP/bslfmt/FormatSpecificationParser/alternativeFlag.adoc[`alternativeFlag`] 
| Return whether an alternative processing flag was parsed&period;
| xref:BloombergLP/bslfmt/FormatSpecificationParser/filler.adoc[`filler`] 
| Return the stored filler string&period;
| xref:BloombergLP/bslfmt/FormatSpecificationParser/fillerCodePointDisplayWidth.adoc[`fillerCodePointDisplayWidth`] 
| Return the width of the filler code point&period;
| xref:BloombergLP/bslfmt/FormatSpecificationParser/localeSpecificFlag.adoc[`localeSpecificFlag`] 
| Return whether a locale&hyphen;specific formatting flag was parsed&period;
| xref:BloombergLP/bslfmt/FormatSpecificationParser/numFillerCharacters.adoc[`numFillerCharacters`] 
| Return the size of the stored filler string&period;
| xref:BloombergLP/bslfmt/FormatSpecificationParser/parse.adoc[`parse`] 
| Parse format specification sections from `parseContext`&period;
| xref:BloombergLP/bslfmt/FormatSpecificationParser/postprocess.adoc[`postprocess`] 
| Resolve nested width and precision from `context` arguments&period;
| xref:BloombergLP/bslfmt/FormatSpecificationParser/postprocessedPrecision.adoc[`postprocessedPrecision`] 
| Return the modified numeric precision extracted during postprocessing&period;
| xref:BloombergLP/bslfmt/FormatSpecificationParser/postprocessedWidth.adoc[`postprocessedWidth`] 
| Return the modified numeric width extracted during postprocessing&period;
| xref:BloombergLP/bslfmt/FormatSpecificationParser/processingState.adoc[`processingState`] 
| Return the current processing state of this parser&period;
| xref:BloombergLP/bslfmt/FormatSpecificationParser/rawPrecision.adoc[`rawPrecision`] 
| Return the unmodified precision extracted during parsing&period;
| xref:BloombergLP/bslfmt/FormatSpecificationParser/rawWidth.adoc[`rawWidth`] 
| Return the unmodified width extracted during parsing&period;
| xref:BloombergLP/bslfmt/FormatSpecificationParser/remainingSpec.adoc[`remainingSpec`] 
| Return the unparsed remainder of the specification string&period;
| xref:BloombergLP/bslfmt/FormatSpecificationParser/sign.adoc[`sign`] 
| Return the stored sign value&period;
| xref:BloombergLP/bslfmt/FormatSpecificationParser/zeroPaddingFlag.adoc[`zeroPaddingFlag`] 
| Return whether a zero padding flag was parsed&period;
|===



[.small]#Created with https://www.mrdocs.com[MrDocs]#
