Using NFP (Number Format Parser) you can get an Abstract Syntax Tree (AST) from Excel number format expression.
go get github.com/xuri/nfp
package main
import "github.com/xuri/nfp"
func main() {
ps := nfp.NumberFormatParser()
tokens := ps.Parse("_(* #,##0.00_);_(* (#,##0.00);_(* \"-\"??_);_(@_)")
println(p.PrettyPrint())
}
Get AST
<Positive>
<RepeatsChar>
# <HashPlaceHolder>
<ThousandsSeparator>
## <HashPlaceHolder>
0 <ZeroPlaceHolder>
. <DecimalPoint>
00 <ZeroPlaceHolder>
<Negative>
<RepeatsChar>
( <Literal>
# <HashPlaceHolder>
, <ThousandsSeparator>
## <HashPlaceHolder>
0 <ZeroPlaceHolder>
. <DecimalPoint>
00 <ZeroPlaceHolder>
) <Literal>
<Zero>
<RepeatsChar>
- <Literal>
?? <DigitalPlaceHolder>
<Text>
@ <TextPlaceHolder>
Contributions are welcome! Open a pull request to fix a bug, or open an issue to discuss a new feature or change.
This program is under the terms of the BSD 3-Clause License. See https://opensource.org/licenses/BSD-3-Clause.