Accept + in exponent of scientific-notation floating-point DSL literals (#1020)

* Accept + in scientific-notation floating-point DSL literals

* Parser-generator artifacts; unit-test update; go mod update
This commit is contained in:
John Kerl 2022-05-01 23:39:03 -04:00 committed by GitHub
parent 77e3f54ff7
commit 2e727829c4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 1756 additions and 1614 deletions

1
go.mod
View file

@ -18,6 +18,7 @@ go 1.15
require (
github.com/facette/natsort v0.0.0-20181210072756-2cd4dd1e2dcb
github.com/goccmack/gocc v0.0.0-20211213154817-7ea699349eca // indirect
github.com/johnkerl/lumin v1.0.0
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51
github.com/lestrrat-go/strftime v1.0.6

27
go.sum
View file

@ -2,6 +2,8 @@ github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/facette/natsort v0.0.0-20181210072756-2cd4dd1e2dcb h1:IT4JYU7k4ikYg1SCxNI1/Tieq/NFvh6dzLdgi7eu0tM=
github.com/facette/natsort v0.0.0-20181210072756-2cd4dd1e2dcb/go.mod h1:bH6Xx7IW64qjjJq8M2u4dxNaBiDfKK+z/3eGDpXEQhc=
github.com/goccmack/gocc v0.0.0-20211213154817-7ea699349eca h1:NuA6w6b01Ojdig+4K1l9p4Pp3unlv4owphbOiENm8m4=
github.com/goccmack/gocc v0.0.0-20211213154817-7ea699349eca/go.mod h1:c4Mb67Mg9+pl6OlxvnFBUiiQOSlXfh0QukINLl54OD0=
github.com/johnkerl/lumin v1.0.0 h1:CV34cHZOJ92Y02RbQ0rd4gA0C06Qck9q8blOyaPoWpU=
github.com/johnkerl/lumin v1.0.0/go.mod h1:eLf5AdQOaLvzZ2zVy4REr/DSeEwG+CZreHwNLICqv9E=
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs=
@ -22,12 +24,37 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY=
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/mod v0.5.1 h1:OJxoQ/rynoF0dcCdI7cLPktw/hR2cueqYfjm43oqK38=
golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211019181941-9d821ace8654 h1:id054HUawV2/6IGm2IV8KZQjqtwAOo2CYlOToYqa0d0=
golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20201210144234-2321bbc49cbf h1:MZ2shdL+ZM/XzY3ZGOnh4Nlpnxz5GSOhOmtHo3iPU6M=
golang.org/x/term v0.0.0-20201210144234-2321bbc49cbf/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.1.8/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=

View file

@ -701,11 +701,11 @@ var ActTab = ActionTable{
Ignore: "",
},
ActionRow{ // S170
Accept: 106,
Accept: 0,
Ignore: "",
},
ActionRow{ // S171
Accept: 105,
Accept: 106,
Ignore: "",
},
ActionRow{ // S172
@ -717,31 +717,31 @@ var ActTab = ActionTable{
Ignore: "",
},
ActionRow{ // S174
Accept: 58,
Accept: 105,
Ignore: "",
},
ActionRow{ // S175
Accept: 80,
Accept: 58,
Ignore: "",
},
ActionRow{ // S176
Accept: 59,
Accept: 80,
Ignore: "",
},
ActionRow{ // S177
Accept: 87,
Accept: 59,
Ignore: "",
},
ActionRow{ // S178
Accept: 53,
Accept: 87,
Ignore: "",
},
ActionRow{ // S179
Accept: 75,
Accept: 53,
Ignore: "",
},
ActionRow{ // S180
Accept: 35,
Accept: 75,
Ignore: "",
},
ActionRow{ // S181
@ -753,7 +753,7 @@ var ActTab = ActionTable{
Ignore: "",
},
ActionRow{ // S183
Accept: 0,
Accept: 35,
Ignore: "",
},
ActionRow{ // S184
@ -761,11 +761,11 @@ var ActTab = ActionTable{
Ignore: "",
},
ActionRow{ // S185
Accept: 127,
Accept: 0,
Ignore: "",
},
ActionRow{ // S186
Accept: 40,
Accept: 127,
Ignore: "",
},
ActionRow{ // S187
@ -773,67 +773,67 @@ var ActTab = ActionTable{
Ignore: "",
},
ActionRow{ // S188
Accept: 124,
Accept: 40,
Ignore: "",
},
ActionRow{ // S189
Accept: 116,
Accept: 124,
Ignore: "",
},
ActionRow{ // S190
Accept: 115,
Accept: 116,
Ignore: "",
},
ActionRow{ // S191
Accept: 117,
Accept: 115,
Ignore: "",
},
ActionRow{ // S192
Accept: 109,
Accept: 117,
Ignore: "",
},
ActionRow{ // S193
Accept: 112,
Accept: 109,
Ignore: "",
},
ActionRow{ // S194
Accept: 40,
Accept: 112,
Ignore: "",
},
ActionRow{ // S195
Accept: 110,
Accept: 40,
Ignore: "",
},
ActionRow{ // S196
Accept: 119,
Accept: 110,
Ignore: "",
},
ActionRow{ // S197
Accept: 118,
Accept: 119,
Ignore: "",
},
ActionRow{ // S198
Accept: 120,
Accept: 118,
Ignore: "",
},
ActionRow{ // S199
Accept: 129,
Accept: 120,
Ignore: "",
},
ActionRow{ // S200
Accept: 51,
Accept: 129,
Ignore: "",
},
ActionRow{ // S201
Accept: 39,
Accept: 51,
Ignore: "",
},
ActionRow{ // S202
Accept: 41,
Accept: 39,
Ignore: "",
},
ActionRow{ // S203
Accept: 40,
Accept: 41,
Ignore: "",
},
ActionRow{ // S204
@ -873,11 +873,11 @@ var ActTab = ActionTable{
Ignore: "",
},
ActionRow{ // S213
Accept: 132,
Accept: 40,
Ignore: "",
},
ActionRow{ // S214
Accept: 40,
Accept: 132,
Ignore: "",
},
ActionRow{ // S215
@ -893,31 +893,31 @@ var ActTab = ActionTable{
Ignore: "",
},
ActionRow{ // S218
Accept: 138,
Accept: 40,
Ignore: "",
},
ActionRow{ // S219
Accept: 40,
Accept: 138,
Ignore: "",
},
ActionRow{ // S220
Accept: 44,
Accept: 40,
Ignore: "",
},
ActionRow{ // S221
Accept: 45,
Accept: 44,
Ignore: "",
},
ActionRow{ // S222
Accept: 40,
Accept: 45,
Ignore: "",
},
ActionRow{ // S223
Accept: 46,
Accept: 40,
Ignore: "",
},
ActionRow{ // S224
Accept: 40,
Accept: 46,
Ignore: "",
},
ActionRow{ // S225
@ -929,19 +929,19 @@ var ActTab = ActionTable{
Ignore: "",
},
ActionRow{ // S227
Accept: 47,
Accept: 40,
Ignore: "",
},
ActionRow{ // S228
Accept: 40,
Accept: 47,
Ignore: "",
},
ActionRow{ // S229
Accept: 21,
Accept: 40,
Ignore: "",
},
ActionRow{ // S230
Accept: 40,
Accept: 21,
Ignore: "",
},
ActionRow{ // S231
@ -949,31 +949,31 @@ var ActTab = ActionTable{
Ignore: "",
},
ActionRow{ // S232
Accept: 48,
Ignore: "",
},
ActionRow{ // S233
Accept: 40,
Ignore: "",
},
ActionRow{ // S233
Accept: 48,
Ignore: "",
},
ActionRow{ // S234
Accept: 50,
Accept: 40,
Ignore: "",
},
ActionRow{ // S235
Accept: 104,
Accept: 50,
Ignore: "",
},
ActionRow{ // S236
Accept: 33,
Accept: 104,
Ignore: "",
},
ActionRow{ // S237
Accept: 0,
Accept: 33,
Ignore: "",
},
ActionRow{ // S238
Accept: 31,
Accept: 0,
Ignore: "",
},
ActionRow{ // S239
@ -981,7 +981,7 @@ var ActTab = ActionTable{
Ignore: "",
},
ActionRow{ // S240
Accept: 0,
Accept: 31,
Ignore: "",
},
ActionRow{ // S241
@ -989,7 +989,7 @@ var ActTab = ActionTable{
Ignore: "",
},
ActionRow{ // S242
Accept: 106,
Accept: 0,
Ignore: "",
},
ActionRow{ // S243
@ -997,55 +997,55 @@ var ActTab = ActionTable{
Ignore: "",
},
ActionRow{ // S244
Accept: 0,
Accept: 106,
Ignore: "",
},
ActionRow{ // S245
Accept: 106,
Ignore: "",
},
ActionRow{ // S246
Accept: 106,
Ignore: "",
},
ActionRow{ // S247
Accept: 60,
Ignore: "",
},
ActionRow{ // S248
Accept: 54,
Ignore: "",
},
ActionRow{ // S249
Accept: 0,
Ignore: "",
},
ActionRow{ // S246
Accept: 0,
Ignore: "",
},
ActionRow{ // S247
Accept: 0,
Ignore: "",
},
ActionRow{ // S248
Accept: 106,
Ignore: "",
},
ActionRow{ // S249
Accept: 106,
Ignore: "",
},
ActionRow{ // S250
Accept: 37,
Accept: 106,
Ignore: "",
},
ActionRow{ // S251
Accept: 37,
Accept: 60,
Ignore: "",
},
ActionRow{ // S252
Accept: 40,
Accept: 54,
Ignore: "",
},
ActionRow{ // S253
Accept: 40,
Accept: 0,
Ignore: "",
},
ActionRow{ // S254
Accept: 111,
Accept: 37,
Ignore: "",
},
ActionRow{ // S255
Accept: 40,
Accept: 37,
Ignore: "",
},
ActionRow{ // S256
Accept: 42,
Accept: 40,
Ignore: "",
},
ActionRow{ // S257
@ -1053,7 +1053,7 @@ var ActTab = ActionTable{
Ignore: "",
},
ActionRow{ // S258
Accept: 130,
Accept: 111,
Ignore: "",
},
ActionRow{ // S259
@ -1061,7 +1061,7 @@ var ActTab = ActionTable{
Ignore: "",
},
ActionRow{ // S260
Accept: 19,
Accept: 42,
Ignore: "",
},
ActionRow{ // S261
@ -1069,15 +1069,15 @@ var ActTab = ActionTable{
Ignore: "",
},
ActionRow{ // S262
Accept: 134,
Accept: 130,
Ignore: "",
},
ActionRow{ // S263
Accept: 135,
Accept: 40,
Ignore: "",
},
ActionRow{ // S264
Accept: 24,
Accept: 19,
Ignore: "",
},
ActionRow{ // S265
@ -1085,23 +1085,23 @@ var ActTab = ActionTable{
Ignore: "",
},
ActionRow{ // S266
Accept: 40,
Accept: 134,
Ignore: "",
},
ActionRow{ // S267
Accept: 40,
Accept: 135,
Ignore: "",
},
ActionRow{ // S268
Accept: 40,
Accept: 24,
Ignore: "",
},
ActionRow{ // S269
Accept: 142,
Accept: 40,
Ignore: "",
},
ActionRow{ // S270
Accept: 108,
Accept: 40,
Ignore: "",
},
ActionRow{ // S271
@ -1113,19 +1113,19 @@ var ActTab = ActionTable{
Ignore: "",
},
ActionRow{ // S273
Accept: 40,
Accept: 142,
Ignore: "",
},
ActionRow{ // S274
Accept: 40,
Accept: 108,
Ignore: "",
},
ActionRow{ // S275
Accept: 143,
Accept: 40,
Ignore: "",
},
ActionRow{ // S276
Accept: 107,
Accept: 40,
Ignore: "",
},
ActionRow{ // S277
@ -1137,67 +1137,67 @@ var ActTab = ActionTable{
Ignore: "",
},
ActionRow{ // S279
Accept: 0,
Accept: 143,
Ignore: "",
},
ActionRow{ // S280
Accept: 106,
Accept: 107,
Ignore: "",
},
ActionRow{ // S281
Accept: 0,
Accept: 40,
Ignore: "",
},
ActionRow{ // S282
Accept: 106,
Accept: 40,
Ignore: "",
},
ActionRow{ // S283
Accept: 106,
Accept: 0,
Ignore: "",
},
ActionRow{ // S284
Accept: 40,
Accept: 106,
Ignore: "",
},
ActionRow{ // S285
Accept: 40,
Accept: 106,
Ignore: "",
},
ActionRow{ // S286
Accept: 131,
Accept: 0,
Ignore: "",
},
ActionRow{ // S287
Accept: 140,
Accept: 0,
Ignore: "",
},
ActionRow{ // S288
Accept: 40,
Accept: 106,
Ignore: "",
},
ActionRow{ // S289
Accept: 20,
Accept: 106,
Ignore: "",
},
ActionRow{ // S290
Accept: 23,
Accept: 106,
Ignore: "",
},
ActionRow{ // S291
Accept: 22,
Ignore: "",
},
ActionRow{ // S292
Accept: 27,
Ignore: "",
},
ActionRow{ // S293
Accept: 40,
Ignore: "",
},
ActionRow{ // S292
Accept: 40,
Ignore: "",
},
ActionRow{ // S293
Accept: 131,
Ignore: "",
},
ActionRow{ // S294
Accept: 107,
Accept: 140,
Ignore: "",
},
ActionRow{ // S295
@ -1205,19 +1205,19 @@ var ActTab = ActionTable{
Ignore: "",
},
ActionRow{ // S296
Accept: 43,
Accept: 20,
Ignore: "",
},
ActionRow{ // S297
Accept: 49,
Accept: 23,
Ignore: "",
},
ActionRow{ // S298
Accept: 14,
Accept: 22,
Ignore: "",
},
ActionRow{ // S299
Accept: 40,
Accept: 27,
Ignore: "",
},
ActionRow{ // S300
@ -1225,23 +1225,23 @@ var ActTab = ActionTable{
Ignore: "",
},
ActionRow{ // S301
Accept: 40,
Accept: 107,
Ignore: "",
},
ActionRow{ // S302
Accept: 7,
Accept: 40,
Ignore: "",
},
ActionRow{ // S303
Accept: 136,
Accept: 43,
Ignore: "",
},
ActionRow{ // S304
Accept: 0,
Accept: 49,
Ignore: "",
},
ActionRow{ // S305
Accept: 106,
Accept: 14,
Ignore: "",
},
ActionRow{ // S306
@ -1257,35 +1257,35 @@ var ActTab = ActionTable{
Ignore: "",
},
ActionRow{ // S309
Accept: 40,
Accept: 7,
Ignore: "",
},
ActionRow{ // S310
Accept: 17,
Accept: 136,
Ignore: "",
},
ActionRow{ // S311
Accept: 8,
Accept: 0,
Ignore: "",
},
ActionRow{ // S312
Accept: 16,
Accept: 106,
Ignore: "",
},
ActionRow{ // S313
Accept: 144,
Accept: 106,
Ignore: "",
},
ActionRow{ // S314
Accept: 13,
Accept: 40,
Ignore: "",
},
ActionRow{ // S315
Accept: 12,
Accept: 40,
Ignore: "",
},
ActionRow{ // S316
Accept: 0,
Accept: 40,
Ignore: "",
},
ActionRow{ // S317
@ -1293,42 +1293,74 @@ var ActTab = ActionTable{
Ignore: "",
},
ActionRow{ // S318
Accept: 126,
Accept: 17,
Ignore: "",
},
ActionRow{ // S319
Accept: 121,
Accept: 8,
Ignore: "",
},
ActionRow{ // S320
Accept: 40,
Accept: 16,
Ignore: "",
},
ActionRow{ // S321
Accept: 18,
Accept: 144,
Ignore: "",
},
ActionRow{ // S322
Accept: 0,
Accept: 13,
Ignore: "",
},
ActionRow{ // S323
Accept: 125,
Accept: 12,
Ignore: "",
},
ActionRow{ // S324
Accept: 141,
Accept: 0,
Ignore: "",
},
ActionRow{ // S325
Accept: 0,
Accept: 40,
Ignore: "",
},
ActionRow{ // S326
Accept: 0,
Accept: 126,
Ignore: "",
},
ActionRow{ // S327
Accept: 121,
Ignore: "",
},
ActionRow{ // S328
Accept: 40,
Ignore: "",
},
ActionRow{ // S329
Accept: 18,
Ignore: "",
},
ActionRow{ // S330
Accept: 0,
Ignore: "",
},
ActionRow{ // S331
Accept: 125,
Ignore: "",
},
ActionRow{ // S332
Accept: 141,
Ignore: "",
},
ActionRow{ // S333
Accept: 0,
Ignore: "",
},
ActionRow{ // S334
Accept: 0,
Ignore: "",
},
ActionRow{ // S335
Accept: 113,
Ignore: "",
},

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -138,10 +138,13 @@ float_literal
| _decdig { _decdig} '.' { _decdig }
| _decdig { _decdig} _scinotE _decdig { _decdig}
| _decdig { _decdig} _scinotE '-' _decdig { _decdig}
| _decdig { _decdig} _scinotE '+' _decdig { _decdig}
| _decdig { _decdig} '.' { _decdig} _scinotE _decdig { _decdig}
| _decdig { _decdig} '.' { _decdig} _scinotE '-' _decdig { _decdig}
| _decdig { _decdig} '.' { _decdig} _scinotE '+' _decdig { _decdig}
| { _decdig} '.' _decdig { _decdig} _scinotE _decdig { _decdig}
| { _decdig} '.' _decdig { _decdig} _scinotE '-' _decdig { _decdig}
| { _decdig} '.' _decdig { _decdig} _scinotE '+' _decdig { _decdig}
;
const_M_PI : 'M' '_' 'P' 'I' ;

View file

@ -1,5 +1,5 @@
DSL EXPRESSION:
$x = 123. + 1e-2 / .2e3 + 1.e-3
$x = 123. + 1e-2 / .2e3 + 1.e-3 + 2e+1
AST:
@ -8,9 +8,11 @@ AST:
* direct field value "x"
* operator "+"
* operator "+"
* float literal "123."
* operator "/"
* float literal "1e-2"
* float literal ".2e3"
* float literal "1.e-3"
* operator "+"
* float literal "123."
* operator "/"
* float literal "1e-2"
* float literal ".2e3"
* float literal "1.e-3"
* float literal "2e+1"

View file

@ -1 +1 @@
$x = 123. + 1e-2 / .2e3 + 1.e-3
$x = 123. + 1e-2 / .2e3 + 1.e-3 + 2e+1