mirror of
https://github.com/johnkerl/miller.git
synced 2026-08-04 13:33:18 +00:00
Merge pull request #521 from johnkerl/json-null
Introduce JSON-null Mlrval type
This commit is contained in:
commit
f64d91cae9
40 changed files with 598748 additions and 589957 deletions
|
|
@ -1,2 +0,0 @@
|
|||
mlr DSL: syntax error at "["
|
||||
mlr put: syntax error on DSL parse of 'begin{@sum=[]} @sum[1+NR%2] += $x; end{dump}'
|
||||
3
go/regtest/cases/dsl-begin-end/0007/expout
Normal file
3
go/regtest/cases/dsl-begin-end/0007/expout
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"sum": [1.1400793586611044, 0.5513934501043855]
|
||||
}
|
||||
1
go/regtest/cases/io-json-io/0033/cmd
Normal file
1
go/regtest/cases/io-json-io/0033/cmd
Normal file
|
|
@ -0,0 +1 @@
|
|||
mlr --json --from regtest/input/nulls.json put '$z=$x+$y'
|
||||
6
go/regtest/cases/io-json-io/0033/expout
Normal file
6
go/regtest/cases/io-json-io/0033/expout
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"x": 1,
|
||||
"n": null,
|
||||
"y": 3,
|
||||
"z": 4
|
||||
}
|
||||
1
go/regtest/cases/io-json-io/0034/cmd
Normal file
1
go/regtest/cases/io-json-io/0034/cmd
Normal file
|
|
@ -0,0 +1 @@
|
|||
mlr --json --from regtest/input/nulls.json put '$z=$n+$y'
|
||||
0
go/regtest/cases/io-json-io/0034/experr
Normal file
0
go/regtest/cases/io-json-io/0034/experr
Normal file
6
go/regtest/cases/io-json-io/0034/expout
Normal file
6
go/regtest/cases/io-json-io/0034/expout
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"x": 1,
|
||||
"n": null,
|
||||
"y": 3,
|
||||
"z": 3
|
||||
}
|
||||
1
go/regtest/cases/io-json-io/0035/cmd
Normal file
1
go/regtest/cases/io-json-io/0035/cmd
Normal file
|
|
@ -0,0 +1 @@
|
|||
mlr --json --from regtest/input/nulls.json put '$z=$n+$n'
|
||||
0
go/regtest/cases/io-json-io/0035/experr
Normal file
0
go/regtest/cases/io-json-io/0035/experr
Normal file
6
go/regtest/cases/io-json-io/0035/expout
Normal file
6
go/regtest/cases/io-json-io/0035/expout
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"x": 1,
|
||||
"n": null,
|
||||
"y": 3,
|
||||
"z": null
|
||||
}
|
||||
5
go/regtest/input/nulls.json
Normal file
5
go/regtest/input/nulls.json
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"x": 1,
|
||||
"n": null,
|
||||
"y": 3
|
||||
}
|
||||
|
|
@ -186,6 +186,8 @@ func (this *ASTNode) Text() string {
|
|||
return tokenText
|
||||
case NodeTypeBoolLiteral:
|
||||
return tokenText
|
||||
case NodeTypeNullLiteral:
|
||||
return tokenText
|
||||
case NodeTypeArrayLiteral:
|
||||
return tokenText
|
||||
case NodeTypeMapLiteral:
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ const (
|
|||
NodeTypeIntLiteral = "int literal"
|
||||
NodeTypeFloatLiteral = "float literal"
|
||||
NodeTypeBoolLiteral = "bool literal"
|
||||
NodeTypeNullLiteral = "null literal"
|
||||
NodeTypeArrayLiteral = "array literal"
|
||||
NodeTypeMapLiteral = "map literal"
|
||||
NodeTypeMapLiteralKeyValuePair = "map-literal key-value pair"
|
||||
|
|
|
|||
|
|
@ -62,6 +62,9 @@ func (this *RootNode) BuildLeafNode(
|
|||
case dsl.NodeTypeBoolLiteral:
|
||||
return this.BuildBoolLiteralNode(sval), nil
|
||||
break
|
||||
case dsl.NodeTypeNullLiteral:
|
||||
return this.BuildNullLiteralNode(), nil
|
||||
break
|
||||
case dsl.NodeTypeContextVariable:
|
||||
return this.BuildContextVariableNode(astNode)
|
||||
break
|
||||
|
|
@ -256,6 +259,22 @@ func (this *BoolLiteralNode) Evaluate(
|
|||
return &this.literal
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------
|
||||
type NullLiteralNode struct {
|
||||
literal *types.Mlrval
|
||||
}
|
||||
|
||||
func (this *RootNode) BuildNullLiteralNode() *NullLiteralNode {
|
||||
return &NullLiteralNode{
|
||||
literal: types.MLRVAL_NULL,
|
||||
}
|
||||
}
|
||||
func (this *NullLiteralNode) Evaluate(
|
||||
state *runtime.State,
|
||||
) *types.Mlrval {
|
||||
return this.literal
|
||||
}
|
||||
|
||||
// ================================================================
|
||||
func (this *RootNode) BuildContextVariableNode(astNode *dsl.ASTNode) (IEvaluable, error) {
|
||||
lib.InternalCodingErrorIf(astNode.Token == nil)
|
||||
|
|
|
|||
|
|
@ -149,7 +149,7 @@ var ActTab = ActionTable{
|
|||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S32
|
||||
Accept: 108,
|
||||
Accept: 109,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S33
|
||||
|
|
@ -457,11 +457,11 @@ var ActTab = ActionTable{
|
|||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S109
|
||||
Accept: 116,
|
||||
Accept: 117,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S110
|
||||
Accept: 117,
|
||||
Accept: 118,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S111
|
||||
|
|
@ -477,7 +477,7 @@ var ActTab = ActionTable{
|
|||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S114
|
||||
Accept: 122,
|
||||
Accept: 123,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S115
|
||||
|
|
@ -517,7 +517,7 @@ var ActTab = ActionTable{
|
|||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S124
|
||||
Accept: 131,
|
||||
Accept: 132,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S125
|
||||
|
|
@ -565,11 +565,11 @@ var ActTab = ActionTable{
|
|||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S136
|
||||
Accept: 127,
|
||||
Accept: 128,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S137
|
||||
Accept: 133,
|
||||
Accept: 134,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S138
|
||||
|
|
@ -737,7 +737,7 @@ var ActTab = ActionTable{
|
|||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S179
|
||||
Accept: 121,
|
||||
Accept: 122,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S180
|
||||
|
|
@ -745,23 +745,23 @@ var ActTab = ActionTable{
|
|||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S181
|
||||
Accept: 118,
|
||||
Accept: 119,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S182
|
||||
Accept: 110,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S183
|
||||
Accept: 109,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S184
|
||||
Accept: 111,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S183
|
||||
Accept: 110,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S184
|
||||
Accept: 112,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S185
|
||||
Accept: 106,
|
||||
Accept: 107,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S186
|
||||
|
|
@ -773,19 +773,19 @@ var ActTab = ActionTable{
|
|||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S188
|
||||
Accept: 113,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S189
|
||||
Accept: 112,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S190
|
||||
Accept: 114,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S189
|
||||
Accept: 113,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S190
|
||||
Accept: 115,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S191
|
||||
Accept: 123,
|
||||
Accept: 124,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S192
|
||||
|
|
@ -841,7 +841,7 @@ var ActTab = ActionTable{
|
|||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S205
|
||||
Accept: 126,
|
||||
Accept: 127,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S206
|
||||
|
|
@ -861,7 +861,7 @@ var ActTab = ActionTable{
|
|||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S210
|
||||
Accept: 132,
|
||||
Accept: 133,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S211
|
||||
|
|
@ -877,11 +877,11 @@ var ActTab = ActionTable{
|
|||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S214
|
||||
Accept: 45,
|
||||
Accept: 39,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S215
|
||||
Accept: 39,
|
||||
Accept: 45,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S216
|
||||
|
|
@ -893,19 +893,19 @@ var ActTab = ActionTable{
|
|||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S218
|
||||
Accept: 46,
|
||||
Accept: 39,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S219
|
||||
Accept: 39,
|
||||
Accept: 46,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S220
|
||||
Accept: 21,
|
||||
Accept: 39,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S221
|
||||
Accept: 39,
|
||||
Accept: 21,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S222
|
||||
|
|
@ -913,31 +913,31 @@ var ActTab = ActionTable{
|
|||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S223
|
||||
Accept: 47,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S224
|
||||
Accept: 39,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S224
|
||||
Accept: 47,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S225
|
||||
Accept: 48,
|
||||
Accept: 39,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S226
|
||||
Accept: 101,
|
||||
Accept: 48,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S227
|
||||
Accept: 32,
|
||||
Accept: 101,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S228
|
||||
Accept: 0,
|
||||
Accept: 32,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S229
|
||||
Accept: 30,
|
||||
Accept: 0,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S230
|
||||
|
|
@ -945,7 +945,7 @@ var ActTab = ActionTable{
|
|||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S231
|
||||
Accept: 0,
|
||||
Accept: 30,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S232
|
||||
|
|
@ -953,11 +953,11 @@ var ActTab = ActionTable{
|
|||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S233
|
||||
Accept: 103,
|
||||
Accept: 0,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S234
|
||||
Accept: 0,
|
||||
Accept: 103,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S235
|
||||
|
|
@ -965,7 +965,7 @@ var ActTab = ActionTable{
|
|||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S236
|
||||
Accept: 103,
|
||||
Accept: 0,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S237
|
||||
|
|
@ -973,19 +973,19 @@ var ActTab = ActionTable{
|
|||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S238
|
||||
Accept: 58,
|
||||
Accept: 103,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S239
|
||||
Accept: 52,
|
||||
Accept: 58,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S240
|
||||
Accept: 0,
|
||||
Accept: 52,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S241
|
||||
Accept: 36,
|
||||
Accept: 0,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S242
|
||||
|
|
@ -993,15 +993,15 @@ var ActTab = ActionTable{
|
|||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S243
|
||||
Accept: 39,
|
||||
Accept: 36,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S244
|
||||
Accept: 105,
|
||||
Accept: 39,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S245
|
||||
Accept: 39,
|
||||
Accept: 106,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S246
|
||||
|
|
@ -1009,31 +1009,31 @@ var ActTab = ActionTable{
|
|||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S247
|
||||
Accept: 41,
|
||||
Accept: 39,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S248
|
||||
Accept: 39,
|
||||
Accept: 41,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S249
|
||||
Accept: 124,
|
||||
Accept: 39,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S250
|
||||
Accept: 39,
|
||||
Accept: 125,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S251
|
||||
Accept: 19,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S252
|
||||
Accept: 39,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S252
|
||||
Accept: 19,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S253
|
||||
Accept: 128,
|
||||
Accept: 39,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S254
|
||||
|
|
@ -1041,11 +1041,11 @@ var ActTab = ActionTable{
|
|||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S255
|
||||
Accept: 23,
|
||||
Accept: 130,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S256
|
||||
Accept: 39,
|
||||
Accept: 23,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S257
|
||||
|
|
@ -1061,15 +1061,15 @@ var ActTab = ActionTable{
|
|||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S260
|
||||
Accept: 136,
|
||||
Accept: 39,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S261
|
||||
Accept: 39,
|
||||
Accept: 137,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S262
|
||||
Accept: 39,
|
||||
Accept: 105,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S263
|
||||
|
|
@ -1081,27 +1081,27 @@ var ActTab = ActionTable{
|
|||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S265
|
||||
Accept: 137,
|
||||
Accept: 39,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S266
|
||||
Accept: 104,
|
||||
Accept: 39,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S267
|
||||
Accept: 39,
|
||||
Accept: 138,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S268
|
||||
Accept: 39,
|
||||
Accept: 104,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S269
|
||||
Accept: 0,
|
||||
Accept: 39,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S270
|
||||
Accept: 103,
|
||||
Accept: 39,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S271
|
||||
|
|
@ -1113,47 +1113,47 @@ var ActTab = ActionTable{
|
|||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S273
|
||||
Accept: 103,
|
||||
Accept: 0,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S274
|
||||
Accept: 39,
|
||||
Accept: 103,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S275
|
||||
Accept: 39,
|
||||
Accept: 103,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S276
|
||||
Accept: 125,
|
||||
Accept: 39,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S277
|
||||
Accept: 134,
|
||||
Accept: 39,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S278
|
||||
Accept: 39,
|
||||
Accept: 126,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S279
|
||||
Accept: 20,
|
||||
Accept: 135,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S280
|
||||
Accept: 22,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S281
|
||||
Accept: 26,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S282
|
||||
Accept: 39,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S281
|
||||
Accept: 20,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S282
|
||||
Accept: 22,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S283
|
||||
Accept: 104,
|
||||
Accept: 26,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S284
|
||||
|
|
@ -1161,19 +1161,19 @@ var ActTab = ActionTable{
|
|||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S285
|
||||
Accept: 42,
|
||||
Accept: 104,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S286
|
||||
Accept: 14,
|
||||
Accept: 39,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S287
|
||||
Accept: 39,
|
||||
Accept: 42,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S288
|
||||
Accept: 39,
|
||||
Accept: 14,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S289
|
||||
|
|
@ -1181,27 +1181,27 @@ var ActTab = ActionTable{
|
|||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S290
|
||||
Accept: 7,
|
||||
Accept: 39,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S291
|
||||
Accept: 130,
|
||||
Accept: 39,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S292
|
||||
Accept: 0,
|
||||
Accept: 7,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S293
|
||||
Accept: 103,
|
||||
Accept: 131,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S294
|
||||
Accept: 39,
|
||||
Accept: 0,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S295
|
||||
Accept: 39,
|
||||
Accept: 103,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S296
|
||||
|
|
@ -1213,39 +1213,39 @@ var ActTab = ActionTable{
|
|||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S298
|
||||
Accept: 17,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S299
|
||||
Accept: 8,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S300
|
||||
Accept: 16,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S301
|
||||
Accept: 138,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S302
|
||||
Accept: 13,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S303
|
||||
Accept: 12,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S304
|
||||
Accept: 0,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S305
|
||||
Accept: 39,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S299
|
||||
Accept: 39,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S300
|
||||
Accept: 17,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S301
|
||||
Accept: 8,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S302
|
||||
Accept: 16,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S303
|
||||
Accept: 139,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S304
|
||||
Accept: 13,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S305
|
||||
Accept: 12,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S306
|
||||
Accept: 120,
|
||||
Accept: 0,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S307
|
||||
|
|
@ -1253,39 +1253,47 @@ var ActTab = ActionTable{
|
|||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S308
|
||||
Accept: 39,
|
||||
Accept: 121,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S309
|
||||
Accept: 18,
|
||||
Accept: 39,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S310
|
||||
Accept: 0,
|
||||
Accept: 39,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S311
|
||||
Accept: 119,
|
||||
Accept: 18,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S312
|
||||
Accept: 115,
|
||||
Accept: 0,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S313
|
||||
Accept: 135,
|
||||
Accept: 120,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S314
|
||||
Accept: 0,
|
||||
Accept: 116,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S315
|
||||
Accept: 0,
|
||||
Accept: 136,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S316
|
||||
Accept: 107,
|
||||
Accept: 0,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S317
|
||||
Accept: 0,
|
||||
Ignore: "",
|
||||
},
|
||||
ActionRow{ // S318
|
||||
Accept: 108,
|
||||
Ignore: "",
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,8 +11,8 @@ import (
|
|||
|
||||
const (
|
||||
NoState = -1
|
||||
NumStates = 317
|
||||
NumSymbols = 542
|
||||
NumStates = 319
|
||||
NumSymbols = 546
|
||||
)
|
||||
|
||||
type Lexer struct {
|
||||
|
|
@ -138,521 +138,525 @@ Lexer symbols:
|
|||
22: 'M'
|
||||
23: '_'
|
||||
24: 'E'
|
||||
25: 'I'
|
||||
26: 'P'
|
||||
27: 'S'
|
||||
28: 'I'
|
||||
29: 'F'
|
||||
30: 'S'
|
||||
31: 'I'
|
||||
32: 'R'
|
||||
33: 'S'
|
||||
34: 'O'
|
||||
35: 'P'
|
||||
36: 'S'
|
||||
37: 'O'
|
||||
38: 'F'
|
||||
39: 'S'
|
||||
40: 'O'
|
||||
41: 'R'
|
||||
42: 'S'
|
||||
43: 'O'
|
||||
44: 'F'
|
||||
45: 'L'
|
||||
46: 'A'
|
||||
47: 'T'
|
||||
48: 'S'
|
||||
49: 'E'
|
||||
50: 'P'
|
||||
51: 'N'
|
||||
52: 'F'
|
||||
53: 'N'
|
||||
54: 'R'
|
||||
55: 'F'
|
||||
56: 'N'
|
||||
57: 'R'
|
||||
58: 'F'
|
||||
59: 'I'
|
||||
60: 'L'
|
||||
61: 'E'
|
||||
62: 'N'
|
||||
63: 'A'
|
||||
64: 'M'
|
||||
25: 'n'
|
||||
26: 'u'
|
||||
27: 'l'
|
||||
28: 'l'
|
||||
29: 'I'
|
||||
30: 'P'
|
||||
31: 'S'
|
||||
32: 'I'
|
||||
33: 'F'
|
||||
34: 'S'
|
||||
35: 'I'
|
||||
36: 'R'
|
||||
37: 'S'
|
||||
38: 'O'
|
||||
39: 'P'
|
||||
40: 'S'
|
||||
41: 'O'
|
||||
42: 'F'
|
||||
43: 'S'
|
||||
44: 'O'
|
||||
45: 'R'
|
||||
46: 'S'
|
||||
47: 'O'
|
||||
48: 'F'
|
||||
49: 'L'
|
||||
50: 'A'
|
||||
51: 'T'
|
||||
52: 'S'
|
||||
53: 'E'
|
||||
54: 'P'
|
||||
55: 'N'
|
||||
56: 'F'
|
||||
57: 'N'
|
||||
58: 'R'
|
||||
59: 'F'
|
||||
60: 'N'
|
||||
61: 'R'
|
||||
62: 'F'
|
||||
63: 'I'
|
||||
64: 'L'
|
||||
65: 'E'
|
||||
66: 'F'
|
||||
67: 'I'
|
||||
68: 'L'
|
||||
66: 'N'
|
||||
67: 'A'
|
||||
68: 'M'
|
||||
69: 'E'
|
||||
70: 'N'
|
||||
71: 'U'
|
||||
72: 'M'
|
||||
70: 'F'
|
||||
71: 'I'
|
||||
72: 'L'
|
||||
73: 'E'
|
||||
74: 'N'
|
||||
75: 'V'
|
||||
76: 'b'
|
||||
77: 'e'
|
||||
78: 'g'
|
||||
79: 'i'
|
||||
80: 'n'
|
||||
81: 'd'
|
||||
82: 'o'
|
||||
83: 'e'
|
||||
84: 'l'
|
||||
85: 'i'
|
||||
86: 'f'
|
||||
75: 'U'
|
||||
76: 'M'
|
||||
77: 'E'
|
||||
78: 'N'
|
||||
79: 'V'
|
||||
80: 'b'
|
||||
81: 'e'
|
||||
82: 'g'
|
||||
83: 'i'
|
||||
84: 'n'
|
||||
85: 'd'
|
||||
86: 'o'
|
||||
87: 'e'
|
||||
88: 'l'
|
||||
89: 's'
|
||||
90: 'e'
|
||||
89: 'i'
|
||||
90: 'f'
|
||||
91: 'e'
|
||||
92: 'n'
|
||||
93: 'd'
|
||||
94: 'f'
|
||||
95: 'i'
|
||||
96: 'l'
|
||||
97: 't'
|
||||
98: 'e'
|
||||
99: 'r'
|
||||
100: 'f'
|
||||
101: 'o'
|
||||
102: 'r'
|
||||
103: 'i'
|
||||
92: 'l'
|
||||
93: 's'
|
||||
94: 'e'
|
||||
95: 'e'
|
||||
96: 'n'
|
||||
97: 'd'
|
||||
98: 'f'
|
||||
99: 'i'
|
||||
100: 'l'
|
||||
101: 't'
|
||||
102: 'e'
|
||||
103: 'r'
|
||||
104: 'f'
|
||||
105: 'i'
|
||||
106: 'n'
|
||||
107: 'w'
|
||||
108: 'h'
|
||||
105: 'o'
|
||||
106: 'r'
|
||||
107: 'i'
|
||||
108: 'f'
|
||||
109: 'i'
|
||||
110: 'l'
|
||||
111: 'e'
|
||||
112: 'b'
|
||||
113: 'r'
|
||||
114: 'e'
|
||||
115: 'a'
|
||||
116: 'k'
|
||||
117: 'c'
|
||||
118: 'o'
|
||||
119: 'n'
|
||||
120: 't'
|
||||
121: 'i'
|
||||
122: 'n'
|
||||
123: 'u'
|
||||
124: 'e'
|
||||
125: 'r'
|
||||
126: 'e'
|
||||
127: 't'
|
||||
128: 'u'
|
||||
110: 'n'
|
||||
111: 'w'
|
||||
112: 'h'
|
||||
113: 'i'
|
||||
114: 'l'
|
||||
115: 'e'
|
||||
116: 'b'
|
||||
117: 'r'
|
||||
118: 'e'
|
||||
119: 'a'
|
||||
120: 'k'
|
||||
121: 'c'
|
||||
122: 'o'
|
||||
123: 'n'
|
||||
124: 't'
|
||||
125: 'i'
|
||||
126: 'n'
|
||||
127: 'u'
|
||||
128: 'e'
|
||||
129: 'r'
|
||||
130: 'n'
|
||||
131: 'f'
|
||||
130: 'e'
|
||||
131: 't'
|
||||
132: 'u'
|
||||
133: 'n'
|
||||
134: 'c'
|
||||
135: 's'
|
||||
133: 'r'
|
||||
134: 'n'
|
||||
135: 'f'
|
||||
136: 'u'
|
||||
137: 'b'
|
||||
138: 'r'
|
||||
139: 'c'
|
||||
140: 'a'
|
||||
141: 'l'
|
||||
142: 'l'
|
||||
143: 'a'
|
||||
144: 'r'
|
||||
145: 'r'
|
||||
146: 'b'
|
||||
147: 'o'
|
||||
148: 'o'
|
||||
149: 'l'
|
||||
150: 'f'
|
||||
151: 'l'
|
||||
137: 'n'
|
||||
138: 'c'
|
||||
139: 's'
|
||||
140: 'u'
|
||||
141: 'b'
|
||||
142: 'r'
|
||||
143: 'c'
|
||||
144: 'a'
|
||||
145: 'l'
|
||||
146: 'l'
|
||||
147: 'a'
|
||||
148: 'r'
|
||||
149: 'r'
|
||||
150: 'b'
|
||||
151: 'o'
|
||||
152: 'o'
|
||||
153: 'a'
|
||||
154: 't'
|
||||
155: 'i'
|
||||
156: 'n'
|
||||
157: 't'
|
||||
158: 'm'
|
||||
159: 'a'
|
||||
160: 'p'
|
||||
161: 'n'
|
||||
162: 'u'
|
||||
163: 'm'
|
||||
164: 's'
|
||||
165: 't'
|
||||
166: 'r'
|
||||
167: 'v'
|
||||
168: 'a'
|
||||
169: 'r'
|
||||
170: 'u'
|
||||
171: 'n'
|
||||
172: 's'
|
||||
173: 'e'
|
||||
174: 't'
|
||||
175: 'd'
|
||||
176: 'u'
|
||||
177: 'm'
|
||||
178: 'p'
|
||||
179: 'e'
|
||||
180: 'd'
|
||||
181: 'u'
|
||||
182: 'm'
|
||||
183: 'p'
|
||||
184: 'e'
|
||||
185: 'm'
|
||||
186: 'i'
|
||||
187: 't'
|
||||
153: 'l'
|
||||
154: 'f'
|
||||
155: 'l'
|
||||
156: 'o'
|
||||
157: 'a'
|
||||
158: 't'
|
||||
159: 'i'
|
||||
160: 'n'
|
||||
161: 't'
|
||||
162: 'm'
|
||||
163: 'a'
|
||||
164: 'p'
|
||||
165: 'n'
|
||||
166: 'u'
|
||||
167: 'm'
|
||||
168: 's'
|
||||
169: 't'
|
||||
170: 'r'
|
||||
171: 'v'
|
||||
172: 'a'
|
||||
173: 'r'
|
||||
174: 'u'
|
||||
175: 'n'
|
||||
176: 's'
|
||||
177: 'e'
|
||||
178: 't'
|
||||
179: 'd'
|
||||
180: 'u'
|
||||
181: 'm'
|
||||
182: 'p'
|
||||
183: 'e'
|
||||
184: 'd'
|
||||
185: 'u'
|
||||
186: 'm'
|
||||
187: 'p'
|
||||
188: 'e'
|
||||
189: 'm'
|
||||
190: 'i'
|
||||
191: 't'
|
||||
192: 'p'
|
||||
193: 'e'
|
||||
194: 'm'
|
||||
195: 'i'
|
||||
196: 't'
|
||||
197: 'f'
|
||||
198: 'e'
|
||||
199: 'p'
|
||||
200: 'r'
|
||||
201: 'i'
|
||||
202: 'n'
|
||||
203: 't'
|
||||
204: 'e'
|
||||
205: 'p'
|
||||
206: 'r'
|
||||
207: 'i'
|
||||
208: 'n'
|
||||
209: 't'
|
||||
210: 'n'
|
||||
211: 'p'
|
||||
212: 'r'
|
||||
213: 'i'
|
||||
192: 'e'
|
||||
193: 'm'
|
||||
194: 'i'
|
||||
195: 't'
|
||||
196: 'p'
|
||||
197: 'e'
|
||||
198: 'm'
|
||||
199: 'i'
|
||||
200: 't'
|
||||
201: 'f'
|
||||
202: 'e'
|
||||
203: 'p'
|
||||
204: 'r'
|
||||
205: 'i'
|
||||
206: 'n'
|
||||
207: 't'
|
||||
208: 'e'
|
||||
209: 'p'
|
||||
210: 'r'
|
||||
211: 'i'
|
||||
212: 'n'
|
||||
213: 't'
|
||||
214: 'n'
|
||||
215: 't'
|
||||
216: 'p'
|
||||
217: 'r'
|
||||
218: 'i'
|
||||
219: 'n'
|
||||
220: 't'
|
||||
221: 'n'
|
||||
222: 't'
|
||||
223: 'e'
|
||||
224: 'e'
|
||||
225: 's'
|
||||
215: 'p'
|
||||
216: 'r'
|
||||
217: 'i'
|
||||
218: 'n'
|
||||
219: 't'
|
||||
220: 'p'
|
||||
221: 'r'
|
||||
222: 'i'
|
||||
223: 'n'
|
||||
224: 't'
|
||||
225: 'n'
|
||||
226: 't'
|
||||
227: 'd'
|
||||
228: 'o'
|
||||
229: 'u'
|
||||
227: 'e'
|
||||
228: 'e'
|
||||
229: 's'
|
||||
230: 't'
|
||||
231: 's'
|
||||
232: 't'
|
||||
233: 'd'
|
||||
234: 'e'
|
||||
235: 'r'
|
||||
236: 'r'
|
||||
237: '$'
|
||||
238: '$'
|
||||
239: '{'
|
||||
240: '}'
|
||||
231: 'd'
|
||||
232: 'o'
|
||||
233: 'u'
|
||||
234: 't'
|
||||
235: 's'
|
||||
236: 't'
|
||||
237: 'd'
|
||||
238: 'e'
|
||||
239: 'r'
|
||||
240: 'r'
|
||||
241: '$'
|
||||
242: '*'
|
||||
243: '@'
|
||||
244: '@'
|
||||
245: '{'
|
||||
246: '}'
|
||||
242: '$'
|
||||
243: '{'
|
||||
244: '}'
|
||||
245: '$'
|
||||
246: '*'
|
||||
247: '@'
|
||||
248: '*'
|
||||
249: 'a'
|
||||
250: 'l'
|
||||
251: 'l'
|
||||
252: '%'
|
||||
253: '%'
|
||||
254: '%'
|
||||
255: 'p'
|
||||
256: 'a'
|
||||
257: 'n'
|
||||
258: 'i'
|
||||
259: 'c'
|
||||
260: '%'
|
||||
261: '%'
|
||||
262: '%'
|
||||
263: ';'
|
||||
264: '{'
|
||||
265: '}'
|
||||
266: '='
|
||||
267: '>'
|
||||
268: '>'
|
||||
269: '>'
|
||||
270: '|'
|
||||
271: ','
|
||||
272: '('
|
||||
273: ')'
|
||||
274: '$'
|
||||
275: '['
|
||||
276: ']'
|
||||
277: '$'
|
||||
278: '['
|
||||
248: '@'
|
||||
249: '{'
|
||||
250: '}'
|
||||
251: '@'
|
||||
252: '*'
|
||||
253: 'a'
|
||||
254: 'l'
|
||||
255: 'l'
|
||||
256: '%'
|
||||
257: '%'
|
||||
258: '%'
|
||||
259: 'p'
|
||||
260: 'a'
|
||||
261: 'n'
|
||||
262: 'i'
|
||||
263: 'c'
|
||||
264: '%'
|
||||
265: '%'
|
||||
266: '%'
|
||||
267: ';'
|
||||
268: '{'
|
||||
269: '}'
|
||||
270: '='
|
||||
271: '>'
|
||||
272: '>'
|
||||
273: '>'
|
||||
274: '|'
|
||||
275: ','
|
||||
276: '('
|
||||
277: ')'
|
||||
278: '$'
|
||||
279: '['
|
||||
280: '$'
|
||||
281: '['
|
||||
280: ']'
|
||||
281: '$'
|
||||
282: '['
|
||||
283: '['
|
||||
284: '@'
|
||||
284: '$'
|
||||
285: '['
|
||||
286: '|'
|
||||
287: '|'
|
||||
288: '='
|
||||
289: '^'
|
||||
290: '^'
|
||||
291: '='
|
||||
292: '&'
|
||||
293: '&'
|
||||
294: '='
|
||||
295: '?'
|
||||
296: '?'
|
||||
297: '='
|
||||
298: '?'
|
||||
286: '['
|
||||
287: '['
|
||||
288: '@'
|
||||
289: '['
|
||||
290: '|'
|
||||
291: '|'
|
||||
292: '='
|
||||
293: '^'
|
||||
294: '^'
|
||||
295: '='
|
||||
296: '&'
|
||||
297: '&'
|
||||
298: '='
|
||||
299: '?'
|
||||
300: '?'
|
||||
301: '='
|
||||
302: '|'
|
||||
303: '='
|
||||
304: '&'
|
||||
302: '?'
|
||||
303: '?'
|
||||
304: '?'
|
||||
305: '='
|
||||
306: '^'
|
||||
306: '|'
|
||||
307: '='
|
||||
308: '<'
|
||||
309: '<'
|
||||
310: '='
|
||||
311: '>'
|
||||
312: '>'
|
||||
313: '='
|
||||
314: '>'
|
||||
308: '&'
|
||||
309: '='
|
||||
310: '^'
|
||||
311: '='
|
||||
312: '<'
|
||||
313: '<'
|
||||
314: '='
|
||||
315: '>'
|
||||
316: '>'
|
||||
317: '='
|
||||
318: '+'
|
||||
319: '='
|
||||
320: '.'
|
||||
318: '>'
|
||||
319: '>'
|
||||
320: '>'
|
||||
321: '='
|
||||
322: '-'
|
||||
322: '+'
|
||||
323: '='
|
||||
324: '*'
|
||||
324: '.'
|
||||
325: '='
|
||||
326: '/'
|
||||
326: '-'
|
||||
327: '='
|
||||
328: '/'
|
||||
329: '/'
|
||||
330: '='
|
||||
331: '%'
|
||||
332: '='
|
||||
333: '*'
|
||||
334: '*'
|
||||
335: '='
|
||||
336: '?'
|
||||
337: ':'
|
||||
338: '|'
|
||||
339: '|'
|
||||
340: '^'
|
||||
341: '^'
|
||||
342: '&'
|
||||
343: '&'
|
||||
344: '?'
|
||||
345: '?'
|
||||
346: '?'
|
||||
347: '?'
|
||||
328: '*'
|
||||
329: '='
|
||||
330: '/'
|
||||
331: '='
|
||||
332: '/'
|
||||
333: '/'
|
||||
334: '='
|
||||
335: '%'
|
||||
336: '='
|
||||
337: '*'
|
||||
338: '*'
|
||||
339: '='
|
||||
340: '?'
|
||||
341: ':'
|
||||
342: '|'
|
||||
343: '|'
|
||||
344: '^'
|
||||
345: '^'
|
||||
346: '&'
|
||||
347: '&'
|
||||
348: '?'
|
||||
349: '='
|
||||
350: '~'
|
||||
351: '!'
|
||||
352: '='
|
||||
353: '~'
|
||||
354: '='
|
||||
355: '='
|
||||
356: '!'
|
||||
357: '='
|
||||
358: '>'
|
||||
349: '?'
|
||||
350: '?'
|
||||
351: '?'
|
||||
352: '?'
|
||||
353: '='
|
||||
354: '~'
|
||||
355: '!'
|
||||
356: '='
|
||||
357: '~'
|
||||
358: '='
|
||||
359: '='
|
||||
360: '<'
|
||||
361: '<'
|
||||
362: '='
|
||||
363: '^'
|
||||
364: '&'
|
||||
360: '!'
|
||||
361: '='
|
||||
362: '>'
|
||||
363: '='
|
||||
364: '<'
|
||||
365: '<'
|
||||
366: '<'
|
||||
367: '>'
|
||||
368: '>'
|
||||
369: '>'
|
||||
370: '+'
|
||||
371: '-'
|
||||
372: '.'
|
||||
373: '+'
|
||||
374: '.'
|
||||
366: '='
|
||||
367: '^'
|
||||
368: '&'
|
||||
369: '<'
|
||||
370: '<'
|
||||
371: '>'
|
||||
372: '>'
|
||||
373: '>'
|
||||
374: '+'
|
||||
375: '-'
|
||||
376: '.'
|
||||
377: '*'
|
||||
378: '/'
|
||||
379: '/'
|
||||
380: '/'
|
||||
381: '%'
|
||||
382: '.'
|
||||
383: '*'
|
||||
384: '.'
|
||||
385: '/'
|
||||
377: '+'
|
||||
378: '.'
|
||||
379: '-'
|
||||
380: '.'
|
||||
381: '*'
|
||||
382: '/'
|
||||
383: '/'
|
||||
384: '/'
|
||||
385: '%'
|
||||
386: '.'
|
||||
387: '/'
|
||||
388: '/'
|
||||
389: '!'
|
||||
390: '~'
|
||||
391: '*'
|
||||
392: '*'
|
||||
393: '['
|
||||
394: '['
|
||||
395: '['
|
||||
396: '['
|
||||
387: '*'
|
||||
388: '.'
|
||||
389: '/'
|
||||
390: '.'
|
||||
391: '/'
|
||||
392: '/'
|
||||
393: '!'
|
||||
394: '~'
|
||||
395: '*'
|
||||
396: '*'
|
||||
397: '['
|
||||
398: '['
|
||||
399: '_'
|
||||
400: '_'
|
||||
401: ' '
|
||||
402: '!'
|
||||
403: '#'
|
||||
404: '$'
|
||||
405: '%'
|
||||
406: '&'
|
||||
407: '''
|
||||
408: '\'
|
||||
409: '('
|
||||
410: ')'
|
||||
411: '*'
|
||||
412: '+'
|
||||
413: ','
|
||||
414: '-'
|
||||
415: '.'
|
||||
416: '/'
|
||||
417: ':'
|
||||
418: ';'
|
||||
419: '<'
|
||||
420: '='
|
||||
421: '>'
|
||||
422: '?'
|
||||
423: '@'
|
||||
424: '['
|
||||
425: ']'
|
||||
426: '^'
|
||||
427: '_'
|
||||
428: '`'
|
||||
429: '{'
|
||||
430: '|'
|
||||
431: '}'
|
||||
432: '~'
|
||||
433: '\'
|
||||
434: '\'
|
||||
435: '\'
|
||||
436: '"'
|
||||
399: '['
|
||||
400: '['
|
||||
401: '['
|
||||
402: '['
|
||||
403: '_'
|
||||
404: '_'
|
||||
405: ' '
|
||||
406: '!'
|
||||
407: '#'
|
||||
408: '$'
|
||||
409: '%'
|
||||
410: '&'
|
||||
411: '''
|
||||
412: '\'
|
||||
413: '('
|
||||
414: ')'
|
||||
415: '*'
|
||||
416: '+'
|
||||
417: ','
|
||||
418: '-'
|
||||
419: '.'
|
||||
420: '/'
|
||||
421: ':'
|
||||
422: ';'
|
||||
423: '<'
|
||||
424: '='
|
||||
425: '>'
|
||||
426: '?'
|
||||
427: '@'
|
||||
428: '['
|
||||
429: ']'
|
||||
430: '^'
|
||||
431: '_'
|
||||
432: '`'
|
||||
433: '{'
|
||||
434: '|'
|
||||
435: '}'
|
||||
436: '~'
|
||||
437: '\'
|
||||
438: '['
|
||||
438: '\'
|
||||
439: '\'
|
||||
440: ']'
|
||||
440: '"'
|
||||
441: '\'
|
||||
442: 'b'
|
||||
442: '['
|
||||
443: '\'
|
||||
444: 'f'
|
||||
444: ']'
|
||||
445: '\'
|
||||
446: 'n'
|
||||
446: 'b'
|
||||
447: '\'
|
||||
448: 'r'
|
||||
448: 'f'
|
||||
449: '\'
|
||||
450: 't'
|
||||
450: 'n'
|
||||
451: '\'
|
||||
452: 'x'
|
||||
452: 'r'
|
||||
453: '\'
|
||||
454: '.'
|
||||
454: 't'
|
||||
455: '\'
|
||||
456: '0'
|
||||
456: 'x'
|
||||
457: '\'
|
||||
458: '1'
|
||||
458: '.'
|
||||
459: '\'
|
||||
460: '2'
|
||||
460: '0'
|
||||
461: '\'
|
||||
462: '3'
|
||||
462: '1'
|
||||
463: '\'
|
||||
464: '4'
|
||||
464: '2'
|
||||
465: '\'
|
||||
466: '5'
|
||||
466: '3'
|
||||
467: '\'
|
||||
468: '6'
|
||||
468: '4'
|
||||
469: '\'
|
||||
470: '7'
|
||||
470: '5'
|
||||
471: '\'
|
||||
472: '8'
|
||||
472: '6'
|
||||
473: '\'
|
||||
474: '9'
|
||||
475: 'e'
|
||||
476: 'E'
|
||||
477: 't'
|
||||
478: 'r'
|
||||
479: 'u'
|
||||
480: 'e'
|
||||
481: 'f'
|
||||
482: 'a'
|
||||
483: 'l'
|
||||
484: 's'
|
||||
485: 'e'
|
||||
486: ' '
|
||||
487: '!'
|
||||
488: '#'
|
||||
489: '$'
|
||||
490: '%'
|
||||
491: '&'
|
||||
492: '''
|
||||
493: '\'
|
||||
494: '('
|
||||
495: ')'
|
||||
496: '*'
|
||||
497: '+'
|
||||
498: ','
|
||||
499: '-'
|
||||
500: '.'
|
||||
501: '/'
|
||||
502: ':'
|
||||
503: ';'
|
||||
504: '<'
|
||||
505: '='
|
||||
506: '>'
|
||||
507: '?'
|
||||
508: '@'
|
||||
509: '['
|
||||
510: ']'
|
||||
511: '^'
|
||||
512: '_'
|
||||
513: '`'
|
||||
514: '|'
|
||||
515: '~'
|
||||
516: '\'
|
||||
517: '{'
|
||||
518: '\'
|
||||
519: '}'
|
||||
520: ' '
|
||||
521: '\t'
|
||||
522: '\n'
|
||||
523: '\r'
|
||||
524: '#'
|
||||
525: '\n'
|
||||
526: 'a'-'z'
|
||||
527: 'A'-'Z'
|
||||
528: '0'-'9'
|
||||
529: '0'-'9'
|
||||
530: 'a'-'f'
|
||||
531: 'A'-'F'
|
||||
532: '0'-'1'
|
||||
533: 'A'-'Z'
|
||||
534: 'a'-'z'
|
||||
535: '0'-'9'
|
||||
536: \u0100-\U0010ffff
|
||||
474: '7'
|
||||
475: '\'
|
||||
476: '8'
|
||||
477: '\'
|
||||
478: '9'
|
||||
479: 'e'
|
||||
480: 'E'
|
||||
481: 't'
|
||||
482: 'r'
|
||||
483: 'u'
|
||||
484: 'e'
|
||||
485: 'f'
|
||||
486: 'a'
|
||||
487: 'l'
|
||||
488: 's'
|
||||
489: 'e'
|
||||
490: ' '
|
||||
491: '!'
|
||||
492: '#'
|
||||
493: '$'
|
||||
494: '%'
|
||||
495: '&'
|
||||
496: '''
|
||||
497: '\'
|
||||
498: '('
|
||||
499: ')'
|
||||
500: '*'
|
||||
501: '+'
|
||||
502: ','
|
||||
503: '-'
|
||||
504: '.'
|
||||
505: '/'
|
||||
506: ':'
|
||||
507: ';'
|
||||
508: '<'
|
||||
509: '='
|
||||
510: '>'
|
||||
511: '?'
|
||||
512: '@'
|
||||
513: '['
|
||||
514: ']'
|
||||
515: '^'
|
||||
516: '_'
|
||||
517: '`'
|
||||
518: '|'
|
||||
519: '~'
|
||||
520: '\'
|
||||
521: '{'
|
||||
522: '\'
|
||||
523: '}'
|
||||
524: ' '
|
||||
525: '\t'
|
||||
526: '\n'
|
||||
527: '\r'
|
||||
528: '#'
|
||||
529: '\n'
|
||||
530: 'a'-'z'
|
||||
531: 'A'-'Z'
|
||||
532: '0'-'9'
|
||||
533: '0'-'9'
|
||||
534: 'a'-'f'
|
||||
535: 'A'-'F'
|
||||
536: '0'-'1'
|
||||
537: 'A'-'Z'
|
||||
538: 'a'-'z'
|
||||
539: '0'-'9'
|
||||
540: \u0100-\U0010ffff
|
||||
541: .
|
||||
541: 'A'-'Z'
|
||||
542: 'a'-'z'
|
||||
543: '0'-'9'
|
||||
544: \u0100-\U0010ffff
|
||||
545: .
|
||||
*/
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -141,6 +141,8 @@ _literal_true : 't' 'r' 'u' 'e' ;
|
|||
_literal_false : 'f' 'a' 'l' 's' 'e';
|
||||
boolean_literal : ( _literal_true | _literal_false );
|
||||
|
||||
null_literal : 'n' 'u' 'l' 'l';
|
||||
|
||||
// ----------------------------------------------------------------
|
||||
// MILLER CONTEXT VARIABLES
|
||||
// ----------------------------------------------------------------
|
||||
|
|
@ -1470,6 +1472,9 @@ MlrvalOrFunction
|
|||
| boolean_literal
|
||||
<< dsl.NewASTNode($0, dsl.NodeTypeBoolLiteral) >>
|
||||
|
||||
| null_literal
|
||||
<< dsl.NewASTNode($0, dsl.NodeTypeNullLiteral) >>
|
||||
|
||||
| const_M_PI
|
||||
<< dsl.NewASTNode(
|
||||
$0,
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -11,9 +11,9 @@ import (
|
|||
)
|
||||
|
||||
const (
|
||||
numProductions = 324
|
||||
numStates = 4267
|
||||
numSymbols = 247
|
||||
numProductions = 325
|
||||
numStates = 4284
|
||||
numSymbols = 248
|
||||
)
|
||||
|
||||
// Stack
|
||||
|
|
|
|||
|
|
@ -2768,23 +2768,17 @@ var productionsTable = ProdTab{
|
|||
},
|
||||
},
|
||||
ProdTabEntry{
|
||||
String: `MlrvalOrFunction : const_M_PI << dsl.NewASTNode(
|
||||
X[0],
|
||||
dsl.NodeTypeConstant,
|
||||
) >>`,
|
||||
String: `MlrvalOrFunction : null_literal << dsl.NewASTNode(X[0], dsl.NodeTypeNullLiteral) >>`,
|
||||
Id: "MlrvalOrFunction",
|
||||
NTType: 60,
|
||||
Index: 213,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNode(
|
||||
X[0],
|
||||
dsl.NodeTypeConstant,
|
||||
)
|
||||
return dsl.NewASTNode(X[0], dsl.NodeTypeNullLiteral)
|
||||
},
|
||||
},
|
||||
ProdTabEntry{
|
||||
String: `MlrvalOrFunction : const_M_E << dsl.NewASTNode(
|
||||
String: `MlrvalOrFunction : const_M_PI << dsl.NewASTNode(
|
||||
X[0],
|
||||
dsl.NodeTypeConstant,
|
||||
) >>`,
|
||||
|
|
@ -2800,11 +2794,27 @@ var productionsTable = ProdTab{
|
|||
},
|
||||
},
|
||||
ProdTabEntry{
|
||||
String: `MlrvalOrFunction : panic << dsl.NewASTNode(X[0], dsl.NodeTypePanic) >>`,
|
||||
String: `MlrvalOrFunction : const_M_E << dsl.NewASTNode(
|
||||
X[0],
|
||||
dsl.NodeTypeConstant,
|
||||
) >>`,
|
||||
Id: "MlrvalOrFunction",
|
||||
NTType: 60,
|
||||
Index: 215,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNode(
|
||||
X[0],
|
||||
dsl.NodeTypeConstant,
|
||||
)
|
||||
},
|
||||
},
|
||||
ProdTabEntry{
|
||||
String: `MlrvalOrFunction : panic << dsl.NewASTNode(X[0], dsl.NodeTypePanic) >>`,
|
||||
Id: "MlrvalOrFunction",
|
||||
NTType: 60,
|
||||
Index: 216,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNode(X[0], dsl.NodeTypePanic)
|
||||
},
|
||||
|
|
@ -2813,7 +2823,7 @@ var productionsTable = ProdTab{
|
|||
String: `MlrvalOrFunction : ArrayLiteral << >>`,
|
||||
Id: "MlrvalOrFunction",
|
||||
NTType: 60,
|
||||
Index: 216,
|
||||
Index: 217,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return X[0], nil
|
||||
|
|
@ -2826,7 +2836,7 @@ var productionsTable = ProdTab{
|
|||
) >>`,
|
||||
Id: "ArrayLiteral",
|
||||
NTType: 61,
|
||||
Index: 217,
|
||||
Index: 218,
|
||||
NumSymbols: 2,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeZary(
|
||||
|
|
@ -2845,7 +2855,7 @@ var productionsTable = ProdTab{
|
|||
) >>`,
|
||||
Id: "ArrayLiteral",
|
||||
NTType: 61,
|
||||
Index: 218,
|
||||
Index: 219,
|
||||
NumSymbols: 3,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.AdoptChildren(
|
||||
|
|
@ -2865,7 +2875,7 @@ var productionsTable = ProdTab{
|
|||
) >>`,
|
||||
Id: "ArrayLiteralElements",
|
||||
NTType: 62,
|
||||
Index: 219,
|
||||
Index: 220,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeUnary(
|
||||
|
|
@ -2883,7 +2893,7 @@ var productionsTable = ProdTab{
|
|||
) >>`,
|
||||
Id: "ArrayLiteralElements",
|
||||
NTType: 62,
|
||||
Index: 220,
|
||||
Index: 221,
|
||||
NumSymbols: 2,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeUnary(
|
||||
|
|
@ -2900,7 +2910,7 @@ var productionsTable = ProdTab{
|
|||
) >>`,
|
||||
Id: "ArrayLiteralElements",
|
||||
NTType: 62,
|
||||
Index: 221,
|
||||
Index: 222,
|
||||
NumSymbols: 3,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.PrependChild(
|
||||
|
|
@ -2913,7 +2923,7 @@ var productionsTable = ProdTab{
|
|||
String: `MlrvalOrFunction : MapLiteral << >>`,
|
||||
Id: "MlrvalOrFunction",
|
||||
NTType: 60,
|
||||
Index: 222,
|
||||
Index: 223,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return X[0], nil
|
||||
|
|
@ -2926,7 +2936,7 @@ var productionsTable = ProdTab{
|
|||
) >>`,
|
||||
Id: "MapLiteral",
|
||||
NTType: 63,
|
||||
Index: 223,
|
||||
Index: 224,
|
||||
NumSymbols: 2,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeZary(
|
||||
|
|
@ -2945,7 +2955,7 @@ var productionsTable = ProdTab{
|
|||
) >>`,
|
||||
Id: "MapLiteral",
|
||||
NTType: 63,
|
||||
Index: 224,
|
||||
Index: 225,
|
||||
NumSymbols: 3,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.AdoptChildren(
|
||||
|
|
@ -2965,7 +2975,7 @@ var productionsTable = ProdTab{
|
|||
) >>`,
|
||||
Id: "MapLiteralKeyValuePairs",
|
||||
NTType: 64,
|
||||
Index: 225,
|
||||
Index: 226,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeUnary(
|
||||
|
|
@ -2983,7 +2993,7 @@ var productionsTable = ProdTab{
|
|||
) >>`,
|
||||
Id: "MapLiteralKeyValuePairs",
|
||||
NTType: 64,
|
||||
Index: 226,
|
||||
Index: 227,
|
||||
NumSymbols: 2,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeUnary(
|
||||
|
|
@ -3000,7 +3010,7 @@ var productionsTable = ProdTab{
|
|||
) >>`,
|
||||
Id: "MapLiteralKeyValuePairs",
|
||||
NTType: 64,
|
||||
Index: 227,
|
||||
Index: 228,
|
||||
NumSymbols: 3,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.PrependChild(
|
||||
|
|
@ -3018,7 +3028,7 @@ var productionsTable = ProdTab{
|
|||
) >>`,
|
||||
Id: "MapLiteralKeyValuePair",
|
||||
NTType: 65,
|
||||
Index: 228,
|
||||
Index: 229,
|
||||
NumSymbols: 3,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeBinary(
|
||||
|
|
@ -3033,7 +3043,7 @@ var productionsTable = ProdTab{
|
|||
String: `MlrvalOrFunction : ContextVariable << >>`,
|
||||
Id: "MlrvalOrFunction",
|
||||
NTType: 60,
|
||||
Index: 229,
|
||||
Index: 230,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return X[0], nil
|
||||
|
|
@ -3043,7 +3053,7 @@ var productionsTable = ProdTab{
|
|||
String: `ContextVariable : ctx_IPS << dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) >>`,
|
||||
Id: "ContextVariable",
|
||||
NTType: 66,
|
||||
Index: 230,
|
||||
Index: 231,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable)
|
||||
|
|
@ -3053,7 +3063,7 @@ var productionsTable = ProdTab{
|
|||
String: `ContextVariable : ctx_IFS << dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) >>`,
|
||||
Id: "ContextVariable",
|
||||
NTType: 66,
|
||||
Index: 231,
|
||||
Index: 232,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable)
|
||||
|
|
@ -3063,7 +3073,7 @@ var productionsTable = ProdTab{
|
|||
String: `ContextVariable : ctx_IRS << dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) >>`,
|
||||
Id: "ContextVariable",
|
||||
NTType: 66,
|
||||
Index: 232,
|
||||
Index: 233,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable)
|
||||
|
|
@ -3073,7 +3083,7 @@ var productionsTable = ProdTab{
|
|||
String: `ContextVariable : ctx_OPS << dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) >>`,
|
||||
Id: "ContextVariable",
|
||||
NTType: 66,
|
||||
Index: 233,
|
||||
Index: 234,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable)
|
||||
|
|
@ -3083,7 +3093,7 @@ var productionsTable = ProdTab{
|
|||
String: `ContextVariable : ctx_OFS << dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) >>`,
|
||||
Id: "ContextVariable",
|
||||
NTType: 66,
|
||||
Index: 234,
|
||||
Index: 235,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable)
|
||||
|
|
@ -3093,7 +3103,7 @@ var productionsTable = ProdTab{
|
|||
String: `ContextVariable : ctx_ORS << dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) >>`,
|
||||
Id: "ContextVariable",
|
||||
NTType: 66,
|
||||
Index: 235,
|
||||
Index: 236,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable)
|
||||
|
|
@ -3103,7 +3113,7 @@ var productionsTable = ProdTab{
|
|||
String: `ContextVariable : ctx_OFLATSEP << dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) >>`,
|
||||
Id: "ContextVariable",
|
||||
NTType: 66,
|
||||
Index: 236,
|
||||
Index: 237,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable)
|
||||
|
|
@ -3113,7 +3123,7 @@ var productionsTable = ProdTab{
|
|||
String: `ContextVariable : ctx_NF << dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) >>`,
|
||||
Id: "ContextVariable",
|
||||
NTType: 66,
|
||||
Index: 237,
|
||||
Index: 238,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable)
|
||||
|
|
@ -3123,7 +3133,7 @@ var productionsTable = ProdTab{
|
|||
String: `ContextVariable : ctx_NR << dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) >>`,
|
||||
Id: "ContextVariable",
|
||||
NTType: 66,
|
||||
Index: 238,
|
||||
Index: 239,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable)
|
||||
|
|
@ -3133,7 +3143,7 @@ var productionsTable = ProdTab{
|
|||
String: `ContextVariable : ctx_FNR << dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) >>`,
|
||||
Id: "ContextVariable",
|
||||
NTType: 66,
|
||||
Index: 239,
|
||||
Index: 240,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable)
|
||||
|
|
@ -3143,7 +3153,7 @@ var productionsTable = ProdTab{
|
|||
String: `ContextVariable : ctx_FILENAME << dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) >>`,
|
||||
Id: "ContextVariable",
|
||||
NTType: 66,
|
||||
Index: 240,
|
||||
Index: 241,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable)
|
||||
|
|
@ -3153,7 +3163,7 @@ var productionsTable = ProdTab{
|
|||
String: `ContextVariable : ctx_FILENUM << dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable) >>`,
|
||||
Id: "ContextVariable",
|
||||
NTType: 66,
|
||||
Index: 241,
|
||||
Index: 242,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNode(X[0], dsl.NodeTypeContextVariable)
|
||||
|
|
@ -3163,7 +3173,7 @@ var productionsTable = ProdTab{
|
|||
String: `MlrvalOrFunction : ENV << >>`,
|
||||
Id: "MlrvalOrFunction",
|
||||
NTType: 60,
|
||||
Index: 242,
|
||||
Index: 243,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return X[0], nil
|
||||
|
|
@ -3177,7 +3187,7 @@ var productionsTable = ProdTab{
|
|||
) >>`,
|
||||
Id: "ENV",
|
||||
NTType: 67,
|
||||
Index: 243,
|
||||
Index: 244,
|
||||
NumSymbols: 4,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeUnary(
|
||||
|
|
@ -3191,7 +3201,7 @@ var productionsTable = ProdTab{
|
|||
String: `MlrvalOrFunction : ArrayOrMapIndexAccess << >>`,
|
||||
Id: "MlrvalOrFunction",
|
||||
NTType: 60,
|
||||
Index: 244,
|
||||
Index: 245,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return X[0], nil
|
||||
|
|
@ -3201,7 +3211,7 @@ var productionsTable = ProdTab{
|
|||
String: `MlrvalOrFunction : ArrayOrMapPositionalNameAccess << >>`,
|
||||
Id: "MlrvalOrFunction",
|
||||
NTType: 60,
|
||||
Index: 245,
|
||||
Index: 246,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return X[0], nil
|
||||
|
|
@ -3211,7 +3221,7 @@ var productionsTable = ProdTab{
|
|||
String: `MlrvalOrFunction : ArrayOrMapPositionalValueAccess << >>`,
|
||||
Id: "MlrvalOrFunction",
|
||||
NTType: 60,
|
||||
Index: 246,
|
||||
Index: 247,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return X[0], nil
|
||||
|
|
@ -3221,7 +3231,7 @@ var productionsTable = ProdTab{
|
|||
String: `MlrvalOrFunction : ArraySliceAccess << >>`,
|
||||
Id: "MlrvalOrFunction",
|
||||
NTType: 60,
|
||||
Index: 247,
|
||||
Index: 248,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return X[0], nil
|
||||
|
|
@ -3236,7 +3246,7 @@ var productionsTable = ProdTab{
|
|||
) >>`,
|
||||
Id: "ArrayOrMapIndexAccess",
|
||||
NTType: 68,
|
||||
Index: 248,
|
||||
Index: 249,
|
||||
NumSymbols: 4,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeBinary(
|
||||
|
|
@ -3256,7 +3266,7 @@ var productionsTable = ProdTab{
|
|||
) >>`,
|
||||
Id: "ArrayOrMapPositionalNameAccess",
|
||||
NTType: 69,
|
||||
Index: 249,
|
||||
Index: 250,
|
||||
NumSymbols: 5,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeBinary(
|
||||
|
|
@ -3276,7 +3286,7 @@ var productionsTable = ProdTab{
|
|||
) >>`,
|
||||
Id: "ArrayOrMapPositionalValueAccess",
|
||||
NTType: 70,
|
||||
Index: 250,
|
||||
Index: 251,
|
||||
NumSymbols: 6,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeBinary(
|
||||
|
|
@ -3297,7 +3307,7 @@ var productionsTable = ProdTab{
|
|||
) >>`,
|
||||
Id: "ArraySliceAccess",
|
||||
NTType: 71,
|
||||
Index: 251,
|
||||
Index: 252,
|
||||
NumSymbols: 6,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeTernary(
|
||||
|
|
@ -3322,7 +3332,7 @@ var productionsTable = ProdTab{
|
|||
) >>`,
|
||||
Id: "ArraySliceAccess",
|
||||
NTType: 71,
|
||||
Index: 252,
|
||||
Index: 253,
|
||||
NumSymbols: 5,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeTernary(
|
||||
|
|
@ -3350,7 +3360,7 @@ var productionsTable = ProdTab{
|
|||
) >>`,
|
||||
Id: "ArraySliceAccess",
|
||||
NTType: 71,
|
||||
Index: 253,
|
||||
Index: 254,
|
||||
NumSymbols: 5,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeTernary(
|
||||
|
|
@ -3381,7 +3391,7 @@ var productionsTable = ProdTab{
|
|||
) >>`,
|
||||
Id: "ArraySliceAccess",
|
||||
NTType: 71,
|
||||
Index: 254,
|
||||
Index: 255,
|
||||
NumSymbols: 4,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeTernary(
|
||||
|
|
@ -3403,7 +3413,7 @@ var productionsTable = ProdTab{
|
|||
String: `MlrvalOrFunction : FunctionCallsite << >>`,
|
||||
Id: "MlrvalOrFunction",
|
||||
NTType: 60,
|
||||
Index: 255,
|
||||
Index: 256,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return X[0], nil
|
||||
|
|
@ -3416,7 +3426,7 @@ var productionsTable = ProdTab{
|
|||
) >>`,
|
||||
Id: "FunctionCallsite",
|
||||
NTType: 72,
|
||||
Index: 256,
|
||||
Index: 257,
|
||||
NumSymbols: 3,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeZary(
|
||||
|
|
@ -3435,7 +3445,7 @@ var productionsTable = ProdTab{
|
|||
) >>`,
|
||||
Id: "FunctionCallsite",
|
||||
NTType: 72,
|
||||
Index: 257,
|
||||
Index: 258,
|
||||
NumSymbols: 4,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.AdoptChildren(
|
||||
|
|
@ -3451,7 +3461,7 @@ var productionsTable = ProdTab{
|
|||
String: `FunctionName : non_sigil_name << >>`,
|
||||
Id: "FunctionName",
|
||||
NTType: 73,
|
||||
Index: 258,
|
||||
Index: 259,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return X[0], nil
|
||||
|
|
@ -3461,7 +3471,7 @@ var productionsTable = ProdTab{
|
|||
String: `FunctionName : int << >>`,
|
||||
Id: "FunctionName",
|
||||
NTType: 73,
|
||||
Index: 259,
|
||||
Index: 260,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return X[0], nil
|
||||
|
|
@ -3471,7 +3481,7 @@ var productionsTable = ProdTab{
|
|||
String: `FunctionName : float << >>`,
|
||||
Id: "FunctionName",
|
||||
NTType: 73,
|
||||
Index: 260,
|
||||
Index: 261,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return X[0], nil
|
||||
|
|
@ -3485,7 +3495,7 @@ var productionsTable = ProdTab{
|
|||
) >>`,
|
||||
Id: "FcnArgs",
|
||||
NTType: 74,
|
||||
Index: 261,
|
||||
Index: 262,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeUnary(
|
||||
|
|
@ -3503,7 +3513,7 @@ var productionsTable = ProdTab{
|
|||
) >>`,
|
||||
Id: "FcnArgs",
|
||||
NTType: 74,
|
||||
Index: 262,
|
||||
Index: 263,
|
||||
NumSymbols: 2,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeUnary(
|
||||
|
|
@ -3520,7 +3530,7 @@ var productionsTable = ProdTab{
|
|||
) >>`,
|
||||
Id: "FcnArgs",
|
||||
NTType: 74,
|
||||
Index: 263,
|
||||
Index: 264,
|
||||
NumSymbols: 3,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.PrependChild(
|
||||
|
|
@ -3536,7 +3546,7 @@ var productionsTable = ProdTab{
|
|||
) >>`,
|
||||
Id: "SubroutineCallsite",
|
||||
NTType: 75,
|
||||
Index: 264,
|
||||
Index: 265,
|
||||
NumSymbols: 4,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeZary(
|
||||
|
|
@ -3555,7 +3565,7 @@ var productionsTable = ProdTab{
|
|||
) >>`,
|
||||
Id: "SubroutineCallsite",
|
||||
NTType: 75,
|
||||
Index: 265,
|
||||
Index: 266,
|
||||
NumSymbols: 5,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.AdoptChildren(
|
||||
|
|
@ -3571,7 +3581,7 @@ var productionsTable = ProdTab{
|
|||
String: `SubroutineName : non_sigil_name << >>`,
|
||||
Id: "SubroutineName",
|
||||
NTType: 76,
|
||||
Index: 266,
|
||||
Index: 267,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return X[0], nil
|
||||
|
|
@ -3581,7 +3591,7 @@ var productionsTable = ProdTab{
|
|||
String: `BracefulStatement : BeginBlock << >>`,
|
||||
Id: "BracefulStatement",
|
||||
NTType: 77,
|
||||
Index: 267,
|
||||
Index: 268,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return X[0], nil
|
||||
|
|
@ -3591,7 +3601,7 @@ var productionsTable = ProdTab{
|
|||
String: `BracefulStatement : EndBlock << >>`,
|
||||
Id: "BracefulStatement",
|
||||
NTType: 77,
|
||||
Index: 268,
|
||||
Index: 269,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return X[0], nil
|
||||
|
|
@ -3601,7 +3611,7 @@ var productionsTable = ProdTab{
|
|||
String: `BracefulStatement : CondBlock << >>`,
|
||||
Id: "BracefulStatement",
|
||||
NTType: 77,
|
||||
Index: 269,
|
||||
Index: 270,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return X[0], nil
|
||||
|
|
@ -3611,7 +3621,7 @@ var productionsTable = ProdTab{
|
|||
String: `BracefulStatement : IfChain << >>`,
|
||||
Id: "BracefulStatement",
|
||||
NTType: 77,
|
||||
Index: 270,
|
||||
Index: 271,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return X[0], nil
|
||||
|
|
@ -3621,7 +3631,7 @@ var productionsTable = ProdTab{
|
|||
String: `BracefulStatement : WhileLoop << >>`,
|
||||
Id: "BracefulStatement",
|
||||
NTType: 77,
|
||||
Index: 271,
|
||||
Index: 272,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return X[0], nil
|
||||
|
|
@ -3631,7 +3641,7 @@ var productionsTable = ProdTab{
|
|||
String: `BracefulStatement : ForLoop << >>`,
|
||||
Id: "BracefulStatement",
|
||||
NTType: 77,
|
||||
Index: 272,
|
||||
Index: 273,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return X[0], nil
|
||||
|
|
@ -3641,7 +3651,7 @@ var productionsTable = ProdTab{
|
|||
String: `BracefulStatement : FunctionDefinition << >>`,
|
||||
Id: "BracefulStatement",
|
||||
NTType: 77,
|
||||
Index: 273,
|
||||
Index: 274,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return X[0], nil
|
||||
|
|
@ -3651,7 +3661,7 @@ var productionsTable = ProdTab{
|
|||
String: `BracefulStatement : SubroutineDefinition << >>`,
|
||||
Id: "BracefulStatement",
|
||||
NTType: 77,
|
||||
Index: 274,
|
||||
Index: 275,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return X[0], nil
|
||||
|
|
@ -3661,7 +3671,7 @@ var productionsTable = ProdTab{
|
|||
String: `BeginBlock : begin StatementBlockInBraces << dsl.NewASTNodeUnary(nil, X[1], dsl.NodeTypeBeginBlock) >>`,
|
||||
Id: "BeginBlock",
|
||||
NTType: 78,
|
||||
Index: 275,
|
||||
Index: 276,
|
||||
NumSymbols: 2,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeUnary(nil, X[1], dsl.NodeTypeBeginBlock)
|
||||
|
|
@ -3671,7 +3681,7 @@ var productionsTable = ProdTab{
|
|||
String: `EndBlock : end StatementBlockInBraces << dsl.NewASTNodeUnary(nil, X[1], dsl.NodeTypeEndBlock) >>`,
|
||||
Id: "EndBlock",
|
||||
NTType: 79,
|
||||
Index: 276,
|
||||
Index: 277,
|
||||
NumSymbols: 2,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeUnary(nil, X[1], dsl.NodeTypeEndBlock)
|
||||
|
|
@ -3681,7 +3691,7 @@ var productionsTable = ProdTab{
|
|||
String: `CondBlock : Rvalue StatementBlockInBraces << dsl.NewASTNodeBinary(nil, X[0], X[1], dsl.NodeTypeCondBlock) >>`,
|
||||
Id: "CondBlock",
|
||||
NTType: 80,
|
||||
Index: 277,
|
||||
Index: 278,
|
||||
NumSymbols: 2,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeBinary(nil, X[0], X[1], dsl.NodeTypeCondBlock)
|
||||
|
|
@ -3691,7 +3701,7 @@ var productionsTable = ProdTab{
|
|||
String: `IfChain : IfElifStar << >>`,
|
||||
Id: "IfChain",
|
||||
NTType: 81,
|
||||
Index: 278,
|
||||
Index: 279,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return X[0], nil
|
||||
|
|
@ -3701,7 +3711,7 @@ var productionsTable = ProdTab{
|
|||
String: `IfChain : IfElifStar ElseBlock << dsl.AppendChild(X[0], X[1]) >>`,
|
||||
Id: "IfChain",
|
||||
NTType: 81,
|
||||
Index: 279,
|
||||
Index: 280,
|
||||
NumSymbols: 2,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.AppendChild(X[0], X[1])
|
||||
|
|
@ -3711,7 +3721,7 @@ var productionsTable = ProdTab{
|
|||
String: `IfElifStar : IfBlock << dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeIfChain) >>`,
|
||||
Id: "IfElifStar",
|
||||
NTType: 82,
|
||||
Index: 280,
|
||||
Index: 281,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeIfChain)
|
||||
|
|
@ -3721,7 +3731,7 @@ var productionsTable = ProdTab{
|
|||
String: `IfElifStar : IfElifStar ElifBlock << dsl.AppendChild(X[0], X[1]) >>`,
|
||||
Id: "IfElifStar",
|
||||
NTType: 82,
|
||||
Index: 281,
|
||||
Index: 282,
|
||||
NumSymbols: 2,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.AppendChild(X[0], X[1])
|
||||
|
|
@ -3731,7 +3741,7 @@ var productionsTable = ProdTab{
|
|||
String: `IfBlock : if "(" Rvalue ")" StatementBlockInBraces << dsl.NewASTNodeBinary(X[0], X[2], X[4], dsl.NodeTypeIfItem) >>`,
|
||||
Id: "IfBlock",
|
||||
NTType: 83,
|
||||
Index: 282,
|
||||
Index: 283,
|
||||
NumSymbols: 5,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeBinary(X[0], X[2], X[4], dsl.NodeTypeIfItem)
|
||||
|
|
@ -3741,7 +3751,7 @@ var productionsTable = ProdTab{
|
|||
String: `ElifBlock : elif "(" Rvalue ")" StatementBlockInBraces << dsl.NewASTNodeBinary(X[0], X[2], X[4], dsl.NodeTypeIfItem) >>`,
|
||||
Id: "ElifBlock",
|
||||
NTType: 84,
|
||||
Index: 283,
|
||||
Index: 284,
|
||||
NumSymbols: 5,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeBinary(X[0], X[2], X[4], dsl.NodeTypeIfItem)
|
||||
|
|
@ -3751,7 +3761,7 @@ var productionsTable = ProdTab{
|
|||
String: `ElseBlock : else StatementBlockInBraces << dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeIfItem) >>`,
|
||||
Id: "ElseBlock",
|
||||
NTType: 85,
|
||||
Index: 284,
|
||||
Index: 285,
|
||||
NumSymbols: 2,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeIfItem)
|
||||
|
|
@ -3761,7 +3771,7 @@ var productionsTable = ProdTab{
|
|||
String: `WhileLoop : while "(" Rvalue ")" StatementBlockInBraces << dsl.NewASTNodeBinary(X[0], X[2], X[4], dsl.NodeTypeWhileLoop) >>`,
|
||||
Id: "WhileLoop",
|
||||
NTType: 86,
|
||||
Index: 285,
|
||||
Index: 286,
|
||||
NumSymbols: 5,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeBinary(X[0], X[2], X[4], dsl.NodeTypeWhileLoop)
|
||||
|
|
@ -3771,7 +3781,7 @@ var productionsTable = ProdTab{
|
|||
String: `DoWhileLoop : do StatementBlockInBraces while "(" Rvalue ")" << dsl.NewASTNodeBinary(X[0], X[1], X[4], dsl.NodeTypeDoWhileLoop) >>`,
|
||||
Id: "DoWhileLoop",
|
||||
NTType: 87,
|
||||
Index: 286,
|
||||
Index: 287,
|
||||
NumSymbols: 6,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeBinary(X[0], X[1], X[4], dsl.NodeTypeDoWhileLoop)
|
||||
|
|
@ -3781,7 +3791,7 @@ var productionsTable = ProdTab{
|
|||
String: `ForLoop : ForLoopOneVariable << >>`,
|
||||
Id: "ForLoop",
|
||||
NTType: 88,
|
||||
Index: 287,
|
||||
Index: 288,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return X[0], nil
|
||||
|
|
@ -3791,7 +3801,7 @@ var productionsTable = ProdTab{
|
|||
String: `ForLoop : ForLoopTwoVariable << >>`,
|
||||
Id: "ForLoop",
|
||||
NTType: 88,
|
||||
Index: 288,
|
||||
Index: 289,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return X[0], nil
|
||||
|
|
@ -3801,7 +3811,7 @@ var productionsTable = ProdTab{
|
|||
String: `ForLoop : ForLoopMultivariable << >>`,
|
||||
Id: "ForLoop",
|
||||
NTType: 88,
|
||||
Index: 289,
|
||||
Index: 290,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return X[0], nil
|
||||
|
|
@ -3811,7 +3821,7 @@ var productionsTable = ProdTab{
|
|||
String: `ForLoop : TripleForLoop << >>`,
|
||||
Id: "ForLoop",
|
||||
NTType: 88,
|
||||
Index: 290,
|
||||
Index: 291,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return X[0], nil
|
||||
|
|
@ -3827,7 +3837,7 @@ var productionsTable = ProdTab{
|
|||
); >>`,
|
||||
Id: "ForLoopOneVariable",
|
||||
NTType: 89,
|
||||
Index: 291,
|
||||
Index: 292,
|
||||
NumSymbols: 7,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeTernary(
|
||||
|
|
@ -3850,7 +3860,7 @@ var productionsTable = ProdTab{
|
|||
); >>`,
|
||||
Id: "ForLoopTwoVariable",
|
||||
NTType: 90,
|
||||
Index: 292,
|
||||
Index: 293,
|
||||
NumSymbols: 9,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeQuaternary(
|
||||
|
|
@ -3874,7 +3884,7 @@ var productionsTable = ProdTab{
|
|||
); >>`,
|
||||
Id: "ForLoopMultivariable",
|
||||
NTType: 91,
|
||||
Index: 293,
|
||||
Index: 294,
|
||||
NumSymbols: 11,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeQuaternary(
|
||||
|
|
@ -3896,7 +3906,7 @@ var productionsTable = ProdTab{
|
|||
) >>`,
|
||||
Id: "MultiIndex",
|
||||
NTType: 92,
|
||||
Index: 294,
|
||||
Index: 295,
|
||||
NumSymbols: 3,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeBinary(
|
||||
|
|
@ -3914,7 +3924,7 @@ var productionsTable = ProdTab{
|
|||
) >>`,
|
||||
Id: "MultiIndex",
|
||||
NTType: 92,
|
||||
Index: 295,
|
||||
Index: 296,
|
||||
NumSymbols: 3,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.AppendChild(
|
||||
|
|
@ -3934,7 +3944,7 @@ var productionsTable = ProdTab{
|
|||
); >>`,
|
||||
Id: "TripleForLoop",
|
||||
NTType: 93,
|
||||
Index: 296,
|
||||
Index: 297,
|
||||
NumSymbols: 9,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeQuaternary(
|
||||
|
|
@ -3951,7 +3961,7 @@ var productionsTable = ProdTab{
|
|||
String: `TripleForStart : empty << dsl.NewASTNodeZary(nil, dsl.NodeTypeStatementBlock) >>`,
|
||||
Id: "TripleForStart",
|
||||
NTType: 94,
|
||||
Index: 297,
|
||||
Index: 298,
|
||||
NumSymbols: 0,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeZary(nil, dsl.NodeTypeStatementBlock)
|
||||
|
|
@ -3961,7 +3971,7 @@ var productionsTable = ProdTab{
|
|||
String: `TripleForStart : Assignment << dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeStatementBlock) >>`,
|
||||
Id: "TripleForStart",
|
||||
NTType: 94,
|
||||
Index: 298,
|
||||
Index: 299,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeStatementBlock)
|
||||
|
|
@ -3971,7 +3981,7 @@ var productionsTable = ProdTab{
|
|||
String: `TripleForStart : TripleForStart "," Assignment << dsl.AppendChild(X[0], X[2]) >>`,
|
||||
Id: "TripleForStart",
|
||||
NTType: 94,
|
||||
Index: 299,
|
||||
Index: 300,
|
||||
NumSymbols: 3,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.AppendChild(X[0], X[2])
|
||||
|
|
@ -3981,7 +3991,7 @@ var productionsTable = ProdTab{
|
|||
String: `TripleForContinuation : empty << dsl.NewASTNodeZary(nil, dsl.NodeTypeStatementBlock) >>`,
|
||||
Id: "TripleForContinuation",
|
||||
NTType: 95,
|
||||
Index: 300,
|
||||
Index: 301,
|
||||
NumSymbols: 0,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeZary(nil, dsl.NodeTypeStatementBlock)
|
||||
|
|
@ -3991,7 +4001,7 @@ var productionsTable = ProdTab{
|
|||
String: `TripleForContinuation : TripleForContinuationItem << dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeStatementBlock) >>`,
|
||||
Id: "TripleForContinuation",
|
||||
NTType: 95,
|
||||
Index: 301,
|
||||
Index: 302,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeStatementBlock)
|
||||
|
|
@ -4001,7 +4011,7 @@ var productionsTable = ProdTab{
|
|||
String: `TripleForContinuation : TripleForContinuation "," TripleForContinuationItem << dsl.AppendChild(X[0], X[2]) >>`,
|
||||
Id: "TripleForContinuation",
|
||||
NTType: 95,
|
||||
Index: 302,
|
||||
Index: 303,
|
||||
NumSymbols: 3,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.AppendChild(X[0], X[2])
|
||||
|
|
@ -4011,7 +4021,7 @@ var productionsTable = ProdTab{
|
|||
String: `TripleForContinuationItem : Assignment << >>`,
|
||||
Id: "TripleForContinuationItem",
|
||||
NTType: 96,
|
||||
Index: 303,
|
||||
Index: 304,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return X[0], nil
|
||||
|
|
@ -4021,7 +4031,7 @@ var productionsTable = ProdTab{
|
|||
String: `TripleForContinuationItem : BareBoolean << >>`,
|
||||
Id: "TripleForContinuationItem",
|
||||
NTType: 96,
|
||||
Index: 304,
|
||||
Index: 305,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return X[0], nil
|
||||
|
|
@ -4031,7 +4041,7 @@ var productionsTable = ProdTab{
|
|||
String: `TripleForUpdate : empty << dsl.NewASTNodeZary(nil, dsl.NodeTypeStatementBlock) >>`,
|
||||
Id: "TripleForUpdate",
|
||||
NTType: 97,
|
||||
Index: 305,
|
||||
Index: 306,
|
||||
NumSymbols: 0,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeZary(nil, dsl.NodeTypeStatementBlock)
|
||||
|
|
@ -4041,7 +4051,7 @@ var productionsTable = ProdTab{
|
|||
String: `TripleForUpdate : Assignment << dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeStatementBlock) >>`,
|
||||
Id: "TripleForUpdate",
|
||||
NTType: 97,
|
||||
Index: 306,
|
||||
Index: 307,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeStatementBlock)
|
||||
|
|
@ -4051,7 +4061,7 @@ var productionsTable = ProdTab{
|
|||
String: `TripleForUpdate : TripleForUpdate "," Assignment << dsl.AppendChild(X[0], X[2]) >>`,
|
||||
Id: "TripleForUpdate",
|
||||
NTType: 97,
|
||||
Index: 307,
|
||||
Index: 308,
|
||||
NumSymbols: 3,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.AppendChild(X[0], X[2])
|
||||
|
|
@ -4061,7 +4071,7 @@ var productionsTable = ProdTab{
|
|||
String: `BreakStatement : break << dsl.NewASTNodeZary(X[0], dsl.NodeTypeBreak) >>`,
|
||||
Id: "BreakStatement",
|
||||
NTType: 98,
|
||||
Index: 308,
|
||||
Index: 309,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeZary(X[0], dsl.NodeTypeBreak)
|
||||
|
|
@ -4071,7 +4081,7 @@ var productionsTable = ProdTab{
|
|||
String: `ContinueStatement : continue << dsl.NewASTNodeZary(X[0], dsl.NodeTypeContinue) >>`,
|
||||
Id: "ContinueStatement",
|
||||
NTType: 99,
|
||||
Index: 309,
|
||||
Index: 310,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeZary(X[0], dsl.NodeTypeContinue)
|
||||
|
|
@ -4086,7 +4096,7 @@ var productionsTable = ProdTab{
|
|||
); >>`,
|
||||
Id: "FunctionDefinition",
|
||||
NTType: 100,
|
||||
Index: 310,
|
||||
Index: 311,
|
||||
NumSymbols: 6,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeBinary(
|
||||
|
|
@ -4107,7 +4117,7 @@ var productionsTable = ProdTab{
|
|||
); >>`,
|
||||
Id: "FunctionDefinition",
|
||||
NTType: 100,
|
||||
Index: 311,
|
||||
Index: 312,
|
||||
NumSymbols: 8,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeTernary(
|
||||
|
|
@ -4128,7 +4138,7 @@ var productionsTable = ProdTab{
|
|||
); >>`,
|
||||
Id: "SubroutineDefinition",
|
||||
NTType: 101,
|
||||
Index: 312,
|
||||
Index: 313,
|
||||
NumSymbols: 6,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeBinary(
|
||||
|
|
@ -4143,7 +4153,7 @@ var productionsTable = ProdTab{
|
|||
String: `FuncOrSubrParameterList : empty << dsl.NewASTNodeZary(nil, dsl.NodeTypeParameterList) >>`,
|
||||
Id: "FuncOrSubrParameterList",
|
||||
NTType: 102,
|
||||
Index: 313,
|
||||
Index: 314,
|
||||
NumSymbols: 0,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeZary(nil, dsl.NodeTypeParameterList)
|
||||
|
|
@ -4153,7 +4163,7 @@ var productionsTable = ProdTab{
|
|||
String: `FuncOrSubrParameterList : FuncOrSubrNonEmptyParameterList << dsl.Wrap(X[0]) >>`,
|
||||
Id: "FuncOrSubrParameterList",
|
||||
NTType: 102,
|
||||
Index: 314,
|
||||
Index: 315,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.Wrap(X[0])
|
||||
|
|
@ -4163,7 +4173,7 @@ var productionsTable = ProdTab{
|
|||
String: `FuncOrSubrNonEmptyParameterList : FuncOrSubrParameter << dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeParameterList) >>`,
|
||||
Id: "FuncOrSubrNonEmptyParameterList",
|
||||
NTType: 103,
|
||||
Index: 315,
|
||||
Index: 316,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeParameterList)
|
||||
|
|
@ -4173,7 +4183,7 @@ var productionsTable = ProdTab{
|
|||
String: `FuncOrSubrNonEmptyParameterList : FuncOrSubrParameter "," << dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeParameterList) >>`,
|
||||
Id: "FuncOrSubrNonEmptyParameterList",
|
||||
NTType: 103,
|
||||
Index: 316,
|
||||
Index: 317,
|
||||
NumSymbols: 2,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeUnary(nil, X[0], dsl.NodeTypeParameterList)
|
||||
|
|
@ -4183,7 +4193,7 @@ var productionsTable = ProdTab{
|
|||
String: `FuncOrSubrNonEmptyParameterList : FuncOrSubrParameter "," FuncOrSubrNonEmptyParameterList << dsl.PrependChild(X[2], X[0]) >>`,
|
||||
Id: "FuncOrSubrNonEmptyParameterList",
|
||||
NTType: 103,
|
||||
Index: 317,
|
||||
Index: 318,
|
||||
NumSymbols: 3,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.PrependChild(X[2], X[0])
|
||||
|
|
@ -4194,24 +4204,6 @@ var productionsTable = ProdTab{
|
|||
nil,
|
||||
X[0],
|
||||
dsl.NodeTypeParameter,
|
||||
) >>`,
|
||||
Id: "FuncOrSubrParameter",
|
||||
NTType: 104,
|
||||
Index: 318,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeUnary(
|
||||
nil,
|
||||
X[0],
|
||||
dsl.NodeTypeParameter,
|
||||
)
|
||||
},
|
||||
},
|
||||
ProdTabEntry{
|
||||
String: `FuncOrSubrParameter : TypedFuncOrSubrParameterName << dsl.NewASTNodeUnary(
|
||||
nil,
|
||||
X[0],
|
||||
dsl.NodeTypeParameter,
|
||||
) >>`,
|
||||
Id: "FuncOrSubrParameter",
|
||||
NTType: 104,
|
||||
|
|
@ -4225,11 +4217,29 @@ var productionsTable = ProdTab{
|
|||
)
|
||||
},
|
||||
},
|
||||
ProdTabEntry{
|
||||
String: `FuncOrSubrParameter : TypedFuncOrSubrParameterName << dsl.NewASTNodeUnary(
|
||||
nil,
|
||||
X[0],
|
||||
dsl.NodeTypeParameter,
|
||||
) >>`,
|
||||
Id: "FuncOrSubrParameter",
|
||||
NTType: 104,
|
||||
Index: 320,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeUnary(
|
||||
nil,
|
||||
X[0],
|
||||
dsl.NodeTypeParameter,
|
||||
)
|
||||
},
|
||||
},
|
||||
ProdTabEntry{
|
||||
String: `UntypedFuncOrSubrParameterName : non_sigil_name << dsl.NewASTNode(X[0], dsl.NodeTypeParameterName) >>`,
|
||||
Id: "UntypedFuncOrSubrParameterName",
|
||||
NTType: 105,
|
||||
Index: 320,
|
||||
Index: 321,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNode(X[0], dsl.NodeTypeParameterName)
|
||||
|
|
@ -4239,7 +4249,7 @@ var productionsTable = ProdTab{
|
|||
String: `TypedFuncOrSubrParameterName : Typedecl UntypedFuncOrSubrParameterName << dsl.AppendChild(X[1], X[0]) >>`,
|
||||
Id: "TypedFuncOrSubrParameterName",
|
||||
NTType: 106,
|
||||
Index: 321,
|
||||
Index: 322,
|
||||
NumSymbols: 2,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.AppendChild(X[1], X[0])
|
||||
|
|
@ -4249,7 +4259,7 @@ var productionsTable = ProdTab{
|
|||
String: `ReturnStatement : return Rvalue << dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeReturn) >>`,
|
||||
Id: "ReturnStatement",
|
||||
NTType: 107,
|
||||
Index: 322,
|
||||
Index: 323,
|
||||
NumSymbols: 2,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeUnary(X[0], X[1], dsl.NodeTypeReturn)
|
||||
|
|
@ -4259,7 +4269,7 @@ var productionsTable = ProdTab{
|
|||
String: `ReturnStatement : return << dsl.NewASTNodeZary(X[0], dsl.NodeTypeReturn) >>`,
|
||||
Id: "ReturnStatement",
|
||||
NTType: 107,
|
||||
Index: 323,
|
||||
Index: 324,
|
||||
NumSymbols: 1,
|
||||
ReduceFunc: func(X []Attrib) (Attrib, error) {
|
||||
return dsl.NewASTNodeZary(X[0], dsl.NodeTypeReturn)
|
||||
|
|
|
|||
|
|
@ -223,6 +223,7 @@ var TokMap = TokenMap{
|
|||
"int_literal",
|
||||
"float_literal",
|
||||
"boolean_literal",
|
||||
"null_literal",
|
||||
"const_M_PI",
|
||||
"const_M_E",
|
||||
"panic",
|
||||
|
|
@ -365,39 +366,40 @@ var TokMap = TokenMap{
|
|||
"int_literal": 102,
|
||||
"float_literal": 103,
|
||||
"boolean_literal": 104,
|
||||
"const_M_PI": 105,
|
||||
"const_M_E": 106,
|
||||
"panic": 107,
|
||||
"[": 108,
|
||||
"ctx_IPS": 109,
|
||||
"ctx_IFS": 110,
|
||||
"ctx_IRS": 111,
|
||||
"ctx_OPS": 112,
|
||||
"ctx_OFS": 113,
|
||||
"ctx_ORS": 114,
|
||||
"ctx_OFLATSEP": 115,
|
||||
"ctx_NF": 116,
|
||||
"ctx_NR": 117,
|
||||
"ctx_FNR": 118,
|
||||
"ctx_FILENAME": 119,
|
||||
"ctx_FILENUM": 120,
|
||||
"env": 121,
|
||||
"[[": 122,
|
||||
"[[[": 123,
|
||||
"call": 124,
|
||||
"begin": 125,
|
||||
"end": 126,
|
||||
"if": 127,
|
||||
"elif": 128,
|
||||
"else": 129,
|
||||
"while": 130,
|
||||
"do": 131,
|
||||
"for": 132,
|
||||
"in": 133,
|
||||
"break": 134,
|
||||
"continue": 135,
|
||||
"func": 136,
|
||||
"subr": 137,
|
||||
"return": 138,
|
||||
"null_literal": 105,
|
||||
"const_M_PI": 106,
|
||||
"const_M_E": 107,
|
||||
"panic": 108,
|
||||
"[": 109,
|
||||
"ctx_IPS": 110,
|
||||
"ctx_IFS": 111,
|
||||
"ctx_IRS": 112,
|
||||
"ctx_OPS": 113,
|
||||
"ctx_OFS": 114,
|
||||
"ctx_ORS": 115,
|
||||
"ctx_OFLATSEP": 116,
|
||||
"ctx_NF": 117,
|
||||
"ctx_NR": 118,
|
||||
"ctx_FNR": 119,
|
||||
"ctx_FILENAME": 120,
|
||||
"ctx_FILENUM": 121,
|
||||
"env": 122,
|
||||
"[[": 123,
|
||||
"[[[": 124,
|
||||
"call": 125,
|
||||
"begin": 126,
|
||||
"end": 127,
|
||||
"if": 128,
|
||||
"elif": 129,
|
||||
"else": 130,
|
||||
"while": 131,
|
||||
"do": 132,
|
||||
"for": 133,
|
||||
"in": 134,
|
||||
"break": 135,
|
||||
"continue": 136,
|
||||
"func": 137,
|
||||
"subr": 138,
|
||||
"return": 139,
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -73,32 +73,38 @@ const (
|
|||
// Key not present in input record, e.g. 'foo = $nosuchkey'
|
||||
MT_ABSENT = 1
|
||||
|
||||
// Used only for JSON null, and for 'empty' slots when an array is
|
||||
// auto-extended by assigning to an index having a gap from the last index.
|
||||
// E.g. x=[1,2,3] then x[5]=5; now x[4] is null
|
||||
MT_NULL = 2
|
||||
|
||||
// Key present in input record with empty value, e.g. input data '$x=,$y=2'
|
||||
MT_VOID = 2
|
||||
MT_VOID = 3
|
||||
|
||||
MT_STRING = 3
|
||||
MT_STRING = 4
|
||||
|
||||
MT_INT = 4
|
||||
MT_INT = 5
|
||||
|
||||
MT_FLOAT = 5
|
||||
MT_FLOAT = 6
|
||||
|
||||
MT_BOOL = 6
|
||||
MT_BOOL = 7
|
||||
|
||||
MT_ARRAY = 7
|
||||
MT_ARRAY = 8
|
||||
|
||||
MT_MAP = 8
|
||||
MT_MAP = 9
|
||||
|
||||
// Not a type -- this is a dimension for disposition vectors and
|
||||
// disposition matrices. For example, when we want to add two mlrvals,
|
||||
// instead of if/elsing or switching on the types of both operands, we
|
||||
// instead jump directly to a type-specific function in a matrix of
|
||||
// function pointers which is MT_DIM x MT_DIM.
|
||||
MT_DIM = 9
|
||||
MT_DIM = 10
|
||||
)
|
||||
|
||||
var TYPE_NAMES = [MT_DIM]string{
|
||||
"error",
|
||||
"absent",
|
||||
"null",
|
||||
"empty", // For backward compatiblity with the C impl: this is user-visible
|
||||
"string",
|
||||
"int",
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import (
|
|||
var upos_dispositions = [MT_DIM]UnaryFunc{
|
||||
/*ERROR */ _erro1,
|
||||
/*ABSENT */ _absn1,
|
||||
/*NULL */ _null1,
|
||||
/*VOID */ _void1,
|
||||
/*STRING */ _erro1,
|
||||
/*INT */ _1u___,
|
||||
|
|
@ -37,6 +38,7 @@ func uneg_f_f(input1 *Mlrval) *Mlrval {
|
|||
var uneg_dispositions = [MT_DIM]UnaryFunc{
|
||||
/*ERROR */ _erro1,
|
||||
/*ABSENT */ _absn1,
|
||||
/*NULL */ _null1,
|
||||
/*VOID */ _void1,
|
||||
/*STRING */ _erro1,
|
||||
/*INT */ uneg_i_i,
|
||||
|
|
@ -101,16 +103,17 @@ func plus_f_ff(input1, input2 *Mlrval) *Mlrval {
|
|||
}
|
||||
|
||||
var plus_dispositions = [MT_DIM][MT_DIM]BinaryFunc{
|
||||
// ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _erro, _2___, _2___, _erro, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _void, _erro, plus_n_ii, plus_f_if, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _1___, _void, _erro, plus_f_fi, plus_f_ff, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
// . ERROR ABSENT NULL VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _absn, _erro, _2___, _2___, _erro, _absn, _absn},
|
||||
/*NULL */ {_erro, _absn, _null, _erro, _erro, _2___, _2___, _erro, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, _erro, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _1___, _void, _erro, plus_n_ii, plus_f_if, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _1___, _1___, _void, _erro, plus_f_fi, plus_f_ff, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
}
|
||||
|
||||
func MlrvalBinaryPlus(input1, input2 *Mlrval) *Mlrval {
|
||||
|
|
@ -157,16 +160,17 @@ func minus_f_ff(input1, input2 *Mlrval) *Mlrval {
|
|||
}
|
||||
|
||||
var minus_dispositions = [MT_DIM][MT_DIM]BinaryFunc{
|
||||
// ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _erro, _2___, _2___, _erro, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _void, _erro, minus_n_ii, minus_f_if, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _1___, _void, _erro, minus_f_fi, minus_f_ff, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
// . ERROR ABSENT NULL VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _absn, _erro, _2___, _2___, _erro, _absn, _absn},
|
||||
/*NULL */ {_erro, _absn, _null, _erro, _erro, _2___, _2___, _erro, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, _erro, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _1___, _void, _erro, minus_n_ii, minus_f_if, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _1___, _1___, _void, _erro, minus_f_fi, minus_f_ff, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
}
|
||||
|
||||
func MlrvalBinaryMinus(input1, input2 *Mlrval) *Mlrval {
|
||||
|
|
@ -229,16 +233,17 @@ func times_f_ff(input1, input2 *Mlrval) *Mlrval {
|
|||
}
|
||||
|
||||
var times_dispositions = [MT_DIM][MT_DIM]BinaryFunc{
|
||||
// ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _erro, _2___, _2___, _erro, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _void, _erro, times_n_ii, times_f_if, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _1___, _void, _erro, times_f_fi, times_f_ff, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
// . ERROR ABSENT NULL VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _absn, _erro, _2___, _2___, _erro, _absn, _absn},
|
||||
/*NULL */ {_erro, _absn, _null, _erro, _erro, _2___, _2___, _erro, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, _erro, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _1___, _void, _erro, times_n_ii, times_f_if, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _1___, _1___, _void, _erro, times_f_fi, times_f_ff, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
}
|
||||
|
||||
func MlrvalTimes(input1, input2 *Mlrval) *Mlrval {
|
||||
|
|
@ -298,16 +303,17 @@ func divide_f_ff(input1, input2 *Mlrval) *Mlrval {
|
|||
}
|
||||
|
||||
var divide_dispositions = [MT_DIM][MT_DIM]BinaryFunc{
|
||||
// ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _erro, _i0__, _f0__, _erro, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _void, _erro, divide_n_ii, divide_f_if, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _1___, _void, _erro, divide_f_fi, divide_f_ff, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
// . ERROR ABSENT NULL VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _absn, _erro, _i0__, _f0__, _erro, _absn, _absn},
|
||||
/*NULL */ {_erro, _absn, _erro, _erro, _erro, _i0__, _f0__, _erro, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, _erro, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _1___, _void, _erro, divide_n_ii, divide_f_if, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _1___, _1___, _void, _erro, divide_f_fi, divide_f_ff, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
}
|
||||
|
||||
func MlrvalDivide(input1, input2 *Mlrval) *Mlrval {
|
||||
|
|
@ -357,16 +363,17 @@ func int_divide_f_ff(input1, input2 *Mlrval) *Mlrval {
|
|||
}
|
||||
|
||||
var int_divide_dispositions = [MT_DIM][MT_DIM]BinaryFunc{
|
||||
// ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _erro, _i0__, _f0__, _erro, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _void, _erro, int_divide_n_ii, int_divide_f_if, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _1___, _void, _erro, int_divide_f_fi, int_divide_f_ff, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
// . ERROR ABSENT NULL VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _absn, _erro, _i0__, _f0__, _erro, _absn, _absn},
|
||||
/*NULL */ {_erro, _absn, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, _erro, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _erro, _void, _erro, int_divide_n_ii, int_divide_f_if, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _1___, _erro, _void, _erro, int_divide_f_fi, int_divide_f_ff, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
}
|
||||
|
||||
func MlrvalIntDivide(input1, input2 *Mlrval) *Mlrval {
|
||||
|
|
@ -391,16 +398,17 @@ func dotplus_f_ff(input1, input2 *Mlrval) *Mlrval {
|
|||
}
|
||||
|
||||
var dot_plus_dispositions = [MT_DIM][MT_DIM]BinaryFunc{
|
||||
// ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _erro, _2___, _2___, _erro, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _void, _erro, dotplus_i_ii, dotplus_f_if, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _1___, _void, _erro, dotplus_f_fi, dotplus_f_ff, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
// . ERROR ABSENT NULL VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _absn, _erro, _2___, _2___, _erro, _absn, _absn},
|
||||
/*NULL */ {_erro, _absn, _null, _erro, _erro, _2___, _2___, _erro, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, _erro, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _1___, _void, _erro, dotplus_i_ii, dotplus_f_if, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _1___, _1___, _void, _erro, dotplus_f_fi, dotplus_f_ff, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
}
|
||||
|
||||
func MlrvalDotPlus(input1, input2 *Mlrval) *Mlrval {
|
||||
|
|
@ -425,16 +433,17 @@ func dotminus_f_ff(input1, input2 *Mlrval) *Mlrval {
|
|||
}
|
||||
|
||||
var dotminus_dispositions = [MT_DIM][MT_DIM]BinaryFunc{
|
||||
// ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _erro, _2___, _2___, _erro, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _void, _erro, dotminus_i_ii, dotminus_f_if, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _1___, _void, _erro, dotminus_f_fi, dotminus_f_ff, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
// . ERROR ABSENT NULL VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _absn, _erro, _n2__, _n2__, _erro, _absn, _absn},
|
||||
/*NULL */ {_erro, _absn, _null, _erro, _erro, _n2__, _n2__, _erro, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, _erro, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _1___, _void, _erro, dotminus_i_ii, dotminus_f_if, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _1___, _1___, _void, _erro, dotminus_f_fi, dotminus_f_ff, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
}
|
||||
|
||||
func MlrvalDotMinus(input1, input2 *Mlrval) *Mlrval {
|
||||
|
|
@ -459,16 +468,17 @@ func dottimes_f_ff(input1, input2 *Mlrval) *Mlrval {
|
|||
}
|
||||
|
||||
var dottimes_dispositions = [MT_DIM][MT_DIM]BinaryFunc{
|
||||
// ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _erro, _2___, _2___, _erro, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _void, _erro, dottimes_i_ii, dottimes_f_if, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _1___, _void, _erro, dottimes_f_fi, dottimes_f_ff, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
// . ERROR ABSENT NULL VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _absn, _erro, _2___, _2___, _erro, _absn, _absn},
|
||||
/*NULL */ {_erro, _absn, _erro, _erro, _erro, _2___, _2___, _erro, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, _erro, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _1___, _void, _erro, dottimes_i_ii, dottimes_f_if, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _1___, _1___, _void, _erro, dottimes_f_fi, dottimes_f_ff, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
}
|
||||
|
||||
func MlrvalDotTimes(input1, input2 *Mlrval) *Mlrval {
|
||||
|
|
@ -493,16 +503,17 @@ func dotdivide_f_ff(input1, input2 *Mlrval) *Mlrval {
|
|||
}
|
||||
|
||||
var dotdivide_dispositions = [MT_DIM][MT_DIM]BinaryFunc{
|
||||
// ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _erro, _2___, _2___, _erro, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _void, _erro, dotdivide_i_ii, dotdivide_f_if, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _1___, _void, _erro, dotdivide_f_fi, dotdivide_f_ff, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
// . ERROR ABSENT NULL VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _absn, _erro, _2___, _2___, _erro, _absn, _absn},
|
||||
/*NULL */ {_erro, _absn, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, _erro, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _erro, _void, _erro, dotdivide_i_ii, dotdivide_f_if, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _1___, _erro, _void, _erro, dotdivide_f_fi, dotdivide_f_ff, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
}
|
||||
|
||||
func MlrvalDotDivide(input1, input2 *Mlrval) *Mlrval {
|
||||
|
|
@ -552,16 +563,17 @@ func dotidivide_f_ff(input1, input2 *Mlrval) *Mlrval {
|
|||
}
|
||||
|
||||
var dotidivide_dispositions = [MT_DIM][MT_DIM]BinaryFunc{
|
||||
// ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _erro, _2___, _2___, _erro, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _void, _erro, dotidivide_i_ii, dotidivide_f_if, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _1___, _void, _erro, dotidivide_f_fi, dotidivide_f_ff, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
// . ERROR ABSENT NULL VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _erro, _absn, _erro, _2___, _2___, _erro, _absn, _absn},
|
||||
/*NULL */ {_erro, _absn, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, _erro, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _erro, _void, _erro, dotidivide_i_ii, dotidivide_f_if, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _1___, _erro, _void, _erro, dotidivide_f_fi, dotidivide_f_ff, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
}
|
||||
|
||||
func MlrvalDotIntDivide(input1, input2 *Mlrval) *Mlrval {
|
||||
|
|
@ -614,16 +626,17 @@ func modulus_f_ff(input1, input2 *Mlrval) *Mlrval {
|
|||
}
|
||||
|
||||
var modulus_dispositions = [MT_DIM][MT_DIM]BinaryFunc{
|
||||
// ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _erro, _i0__, _f0__, _erro, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _void, _erro, modulus_i_ii, modulus_f_if, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _1___, _void, _erro, modulus_f_fi, modulus_f_ff, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
// . ERROR ABSENT NULL VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _absn, _erro, _i0__, _f0__, _erro, _absn, _absn},
|
||||
/*NULL */ {_erro, _absn, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, _erro, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _erro, _void, _erro, modulus_i_ii, modulus_f_if, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _1___, _erro, _void, _erro, modulus_f_fi, modulus_f_ff, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
}
|
||||
|
||||
func MlrvalModulus(input1, input2 *Mlrval) *Mlrval {
|
||||
|
|
@ -784,16 +797,17 @@ func min_s_ss(input1, input2 *Mlrval) *Mlrval {
|
|||
}
|
||||
|
||||
var min_dispositions = [MT_DIM][MT_DIM]BinaryFunc{
|
||||
// . ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _2___, _2___, _2___, _2___, _2___, _absn, _absn},
|
||||
/*VOID */ {_erro, _1___, _void, _void, _2___, _2___, _2___, _absn, _absn},
|
||||
/*STRING */ {_erro, _1___, _void, min_s_ss, _2___, _2___, _2___, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _1___, _1___, min_i_ii, min_f_if, _1___, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _1___, _1___, _1___, min_f_fi, min_f_ff, _1___, _absn, _absn},
|
||||
/*BOOL */ {_erro, _1___, _1___, _1___, _2___, _2___, min_b_bb, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
// . ERROR ABSENT NULL VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _null, _2___, _2___, _2___, _2___, _2___, _absn, _absn},
|
||||
/*NULL */ {_erro, _null, _null, _2___, _2___, _2___, _2___, _2___, _absn, _absn},
|
||||
/*VOID */ {_erro, _1___, _1___, _void, _void, _2___, _2___, _2___, _absn, _absn},
|
||||
/*STRING */ {_erro, _1___, _1___, _void, min_s_ss, _2___, _2___, _2___, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _1___, _1___, _1___, min_i_ii, min_f_if, _1___, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _1___, _1___, _1___, _1___, min_f_fi, min_f_ff, _1___, _absn, _absn},
|
||||
/*BOOL */ {_erro, _1___, _1___, _1___, _1___, _2___, _2___, min_b_bb, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
}
|
||||
|
||||
func MlrvalBinaryMin(input1, input2 *Mlrval) *Mlrval {
|
||||
|
|
@ -866,16 +880,17 @@ func max_s_ss(input1, input2 *Mlrval) *Mlrval {
|
|||
}
|
||||
|
||||
var max_dispositions = [MT_DIM][MT_DIM]BinaryFunc{
|
||||
// . ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _2___, _2___, _2___, _2___, _2___, _absn, _absn},
|
||||
/*VOID */ {_erro, _1___, _void, _2___, _1___, _1___, _1___, _absn, _absn},
|
||||
/*STRING */ {_erro, _1___, _1___, max_s_ss, _1___, _1___, _1___, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _2___, _2___, max_i_ii, max_f_if, _2___, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _1___, _2___, _2___, max_f_fi, max_f_ff, _2___, _absn, _absn},
|
||||
/*BOOL */ {_erro, _1___, _2___, _2___, _1___, _1___, max_b_bb, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
// . ERROR ABSENT NULL VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _null, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _2___, _2___, _2___, _2___, _2___, _absn, _absn},
|
||||
/*NULL */ {_null, _absn, _null, _null, _null, _null, _null, _null, _absn, _absn},
|
||||
/*VOID */ {_erro, _1___, _null, _void, _2___, _1___, _1___, _1___, _absn, _absn},
|
||||
/*STRING */ {_erro, _1___, _null, _1___, max_s_ss, _1___, _1___, _1___, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _null, _2___, _2___, max_i_ii, max_f_if, _2___, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _1___, _null, _2___, _2___, max_f_fi, max_f_ff, _2___, _absn, _absn},
|
||||
/*BOOL */ {_erro, _1___, _null, _2___, _2___, _1___, _1___, max_b_bb, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
}
|
||||
|
||||
func MlrvalBinaryMax(input1, input2 *Mlrval) *Mlrval {
|
||||
|
|
|
|||
|
|
@ -91,6 +91,16 @@ func _absn1(input1 *Mlrval) *Mlrval {
|
|||
return MLRVAL_ABSENT
|
||||
}
|
||||
|
||||
// Return zero (unary)
|
||||
func _zero1(input1 *Mlrval) *Mlrval {
|
||||
return MlrvalPointerFromInt(0)
|
||||
}
|
||||
|
||||
// Return null (unary)
|
||||
func _null1(input1 *Mlrval) *Mlrval {
|
||||
return MLRVAL_NULL
|
||||
}
|
||||
|
||||
// Return void (unary)
|
||||
func _void1(input1 *Mlrval) *Mlrval {
|
||||
return MLRVAL_VOID
|
||||
|
|
@ -112,11 +122,21 @@ func _absn(input1, input2 *Mlrval) *Mlrval {
|
|||
return MLRVAL_ABSENT
|
||||
}
|
||||
|
||||
// Return null (binary)
|
||||
func _null(input1, input2 *Mlrval) *Mlrval {
|
||||
return MLRVAL_NULL
|
||||
}
|
||||
|
||||
// Return void (binary)
|
||||
func _void(input1, input2 *Mlrval) *Mlrval {
|
||||
return MLRVAL_VOID
|
||||
}
|
||||
|
||||
// Return 0 (binary)
|
||||
func _zero2(input1 *Mlrval) *Mlrval {
|
||||
return MlrvalPointerFromInt(0)
|
||||
}
|
||||
|
||||
// Return first argument (binary)
|
||||
func _1___(input1, input2 *Mlrval) *Mlrval {
|
||||
return input1
|
||||
|
|
@ -127,6 +147,11 @@ func _2___(input1, input2 *Mlrval) *Mlrval {
|
|||
return input2
|
||||
}
|
||||
|
||||
// Return negative second argument (binary)
|
||||
func _n2__(input1, input2 *Mlrval) *Mlrval {
|
||||
return MlrvalUnaryMinus(input2)
|
||||
}
|
||||
|
||||
// Return first argument, as string (binary)
|
||||
func _s1__(input1, input2 *Mlrval) *Mlrval {
|
||||
return MlrvalPointerFromString(input1.String())
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ func bitwise_not_i_i(input1 *Mlrval) *Mlrval {
|
|||
var bitwise_not_dispositions = [MT_DIM]UnaryFunc{
|
||||
/*ERROR */ _erro1,
|
||||
/*ABSENT */ _absn1,
|
||||
/*NULL */ _null1,
|
||||
/*VOID */ _void1,
|
||||
/*STRING */ _erro1,
|
||||
/*INT */ bitwise_not_i_i,
|
||||
|
|
@ -48,6 +49,7 @@ func bitcount_i_i(input1 *Mlrval) *Mlrval {
|
|||
var bitcount_dispositions = [MT_DIM]UnaryFunc{
|
||||
/*ERROR */ _erro1,
|
||||
/*ABSENT */ _absn1,
|
||||
/*NULL */ _zero1,
|
||||
/*VOID */ _void1,
|
||||
/*STRING */ _erro1,
|
||||
/*INT */ bitcount_i_i,
|
||||
|
|
@ -69,16 +71,17 @@ func bitwise_and_i_ii(input1, input2 *Mlrval) *Mlrval {
|
|||
}
|
||||
|
||||
var bitwise_and_dispositions = [MT_DIM][MT_DIM]BinaryFunc{
|
||||
// ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _erro, _2___, _erro, _erro, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _void, _erro, bitwise_and_i_ii, _erro, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _erro, _void, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
// . ERROR ABSENT NULL VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _absn, _erro, _2___, _erro, _erro, _absn, _absn},
|
||||
/*NULL */ {_erro, _absn, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro},
|
||||
/*VOID */ {_erro, _absn, _erro, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _erro, _void, _erro, bitwise_and_i_ii, _erro, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _erro, _erro, _void, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _erro, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _erro, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
}
|
||||
|
||||
func MlrvalBitwiseAND(input1, input2 *Mlrval) *Mlrval {
|
||||
|
|
@ -93,16 +96,17 @@ func bitwise_or_i_ii(input1, input2 *Mlrval) *Mlrval {
|
|||
}
|
||||
|
||||
var bitwise_or_dispositions = [MT_DIM][MT_DIM]BinaryFunc{
|
||||
// ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _erro, _2___, _erro, _erro, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _void, _erro, bitwise_or_i_ii, _erro, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _erro, _void, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
// . ERROR ABSENT NULL VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _absn, _erro, _2___, _erro, _erro, _absn, _absn},
|
||||
/*NULL */ {_erro, _absn, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro},
|
||||
/*VOID */ {_erro, _absn, _erro, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _erro, _void, _erro, bitwise_or_i_ii, _erro, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _erro, _erro, _void, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _erro, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _erro, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
}
|
||||
|
||||
func MlrvalBitwiseOR(input1, input2 *Mlrval) *Mlrval {
|
||||
|
|
@ -117,16 +121,17 @@ func bitwise_xor_i_ii(input1, input2 *Mlrval) *Mlrval {
|
|||
}
|
||||
|
||||
var bitwise_xor_dispositions = [MT_DIM][MT_DIM]BinaryFunc{
|
||||
// ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _erro, _2___, _erro, _erro, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _void, _erro, bitwise_xor_i_ii, _erro, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _erro, _void, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
// . ERROR ABSENT NULL VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _absn, _erro, _2___, _erro, _erro, _absn, _absn},
|
||||
/*NULL */ {_erro, _absn, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro},
|
||||
/*VOID */ {_erro, _absn, _erro, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _erro, _void, _erro, bitwise_xor_i_ii, _erro, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _erro, _erro, _void, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
}
|
||||
|
||||
func MlrvalBitwiseXOR(input1, input2 *Mlrval) *Mlrval {
|
||||
|
|
@ -141,16 +146,17 @@ func lsh_i_ii(input1, input2 *Mlrval) *Mlrval {
|
|||
}
|
||||
|
||||
var left_shift_dispositions = [MT_DIM][MT_DIM]BinaryFunc{
|
||||
// ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _erro, _2___, _erro, _erro, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _void, _erro, lsh_i_ii, _erro, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _erro, _void, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
// . ERROR ABSENT NULL VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _absn, _erro, _2___, _erro, _erro, _absn, _absn},
|
||||
/*NULL */ {_erro, _absn, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro},
|
||||
/*VOID */ {_erro, _absn, _erro, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _erro, _void, _erro, lsh_i_ii, _erro, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _erro, _erro, _void, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _erro, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _erro, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
}
|
||||
|
||||
func MlrvalLeftShift(input1, input2 *Mlrval) *Mlrval {
|
||||
|
|
@ -165,16 +171,17 @@ func srsh_i_ii(input1, input2 *Mlrval) *Mlrval {
|
|||
}
|
||||
|
||||
var signed_right_shift_dispositions = [MT_DIM][MT_DIM]BinaryFunc{
|
||||
// ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _erro, _2___, _erro, _erro, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _void, _erro, srsh_i_ii, _erro, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _erro, _void, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
// . ERROR ABSENT NULL VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _absn, _erro, _2___, _erro, _erro, _absn, _absn},
|
||||
/*NULL */ {_erro, _absn, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro},
|
||||
/*VOID */ {_erro, _absn, _erro, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _erro, _void, _erro, srsh_i_ii, _erro, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _erro, _erro, _void, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _erro, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _erro, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
}
|
||||
|
||||
func MlrvalSignedRightShift(input1, input2 *Mlrval) *Mlrval {
|
||||
|
|
@ -192,16 +199,17 @@ func ursh_i_ii(input1, input2 *Mlrval) *Mlrval {
|
|||
}
|
||||
|
||||
var unsigned_right_shift_dispositions = [MT_DIM][MT_DIM]BinaryFunc{
|
||||
// ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _erro, _2___, _erro, _erro, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _void, _erro, ursh_i_ii, _erro, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _erro, _void, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
// . ERROR ABSENT NULL VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _absn, _erro, _2___, _erro, _erro, _absn, _absn},
|
||||
/*NULL */ {_erro, _absn, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro},
|
||||
/*VOID */ {_erro, _absn, _erro, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _erro, _void, _erro, ursh_i_ii, _erro, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _erro, _erro, _void, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _erro, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _erro, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
}
|
||||
|
||||
func MlrvalUnsignedRightShift(input1, input2 *Mlrval) *Mlrval {
|
||||
|
|
|
|||
|
|
@ -206,100 +206,94 @@ func ne_b_mm(input1, input2 *Mlrval) *Mlrval {
|
|||
return MlrvalPointerFromBool(!input1.mapval.Equals(input2.mapval))
|
||||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
//var eq_dispositions = [MT_DIM][MT_DIM]BinaryFunc{
|
||||
// // . ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
// /*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro},
|
||||
// /*ABSENT */ {_erro, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
// /*VOID */ {_erro, _absn, eq_b_ss, eq_b_ss, eq_b_sx, eq_b_sx, _fals, _fals, _fals},
|
||||
// /*STRING */ {_erro, _absn, eq_b_ss, eq_b_ss, eq_b_sx, eq_b_sx, _fals, _fals, _fals},
|
||||
// /*INT */ {_erro, _absn, eq_b_xs, eq_b_xs, eq_b_ii, eq_b_if, _fals, _fals, _fals},
|
||||
// /*FLOAT */ {_erro, _absn, eq_b_xs, eq_b_xs, eq_b_fi, eq_b_ff, _fals, _fals, _fals},
|
||||
// /*BOOL */ {_erro, _absn, _fals, _fals, _fals, _fals, eq_b_bb, _fals, _fals},
|
||||
// /*ARRAY */ {_erro, _absn, _fals, _fals, _fals, _fals, _fals, eq_b_aa, _fals},
|
||||
// /*MAP */ {_erro, _absn, _fals, _fals, _fals, _fals, _fals, _fals, eq_b_mm},
|
||||
//}
|
||||
|
||||
// We get a Golang "initialization loop" due to recursive depth computation
|
||||
// if this is defined statically. So, we use a "package init" function.
|
||||
var eq_dispositions = [MT_DIM][MT_DIM]BinaryFunc{}
|
||||
|
||||
func init() {
|
||||
eq_dispositions = [MT_DIM][MT_DIM]BinaryFunc{
|
||||
// . ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, eq_b_ss, eq_b_ss, eq_b_sx, eq_b_sx, _fals, _fals, _fals},
|
||||
/*STRING */ {_erro, _absn, eq_b_ss, eq_b_ss, eq_b_sx, eq_b_sx, _fals, _fals, _fals},
|
||||
/*INT */ {_erro, _absn, eq_b_xs, eq_b_xs, eq_b_ii, eq_b_if, _fals, _fals, _fals},
|
||||
/*FLOAT */ {_erro, _absn, eq_b_xs, eq_b_xs, eq_b_fi, eq_b_ff, _fals, _fals, _fals},
|
||||
/*BOOL */ {_erro, _absn, _fals, _fals, _fals, _fals, eq_b_bb, _fals, _fals},
|
||||
/*ARRAY */ {_erro, _absn, _fals, _fals, _fals, _fals, _fals, eq_b_aa, _fals},
|
||||
/*MAP */ {_erro, _absn, _fals, _fals, _fals, _fals, _fals, _fals, eq_b_mm},
|
||||
// . ERROR ABSENT NULL VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*NULL */ {_erro, _absn, _true, _fals, _fals, _fals, _fals, _fals, _fals, _fals},
|
||||
/*VOID */ {_erro, _absn, _fals, eq_b_ss, eq_b_ss, eq_b_sx, eq_b_sx, _fals, _fals, _fals},
|
||||
/*STRING */ {_erro, _absn, _fals, eq_b_ss, eq_b_ss, eq_b_sx, eq_b_sx, _fals, _fals, _fals},
|
||||
/*INT */ {_erro, _absn, _fals, eq_b_xs, eq_b_xs, eq_b_ii, eq_b_if, _fals, _fals, _fals},
|
||||
/*FLOAT */ {_erro, _absn, _fals, eq_b_xs, eq_b_xs, eq_b_fi, eq_b_ff, _fals, _fals, _fals},
|
||||
/*BOOL */ {_erro, _absn, _fals, _fals, _fals, _fals, _fals, eq_b_bb, _fals, _fals},
|
||||
/*ARRAY */ {_erro, _absn, _fals, _fals, _fals, _fals, _fals, _fals, eq_b_aa, _fals},
|
||||
/*MAP */ {_erro, _absn, _fals, _fals, _fals, _fals, _fals, _fals, _fals, eq_b_mm},
|
||||
}
|
||||
}
|
||||
|
||||
var ne_dispositions = [MT_DIM][MT_DIM]BinaryFunc{
|
||||
// . ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, ne_b_ss, ne_b_ss, ne_b_sx, ne_b_sx, _true, _true, _true},
|
||||
/*STRING */ {_erro, _absn, ne_b_ss, ne_b_ss, ne_b_sx, ne_b_sx, _true, _true, _true},
|
||||
/*INT */ {_erro, _absn, ne_b_xs, ne_b_xs, ne_b_ii, ne_b_if, _true, _true, _true},
|
||||
/*FLOAT */ {_erro, _absn, ne_b_xs, ne_b_xs, ne_b_fi, ne_b_ff, _true, _true, _true},
|
||||
/*BOOL */ {_erro, _absn, _true, _true, _true, _true, ne_b_bb, _true, _true},
|
||||
/*ARRAY */ {_erro, _absn, _true, _true, _true, _true, _true, ne_b_aa, _true},
|
||||
/*MAP */ {_erro, _absn, _true, _true, _true, _true, _true, _true, ne_b_mm},
|
||||
// . ERROR ABSENT NULL VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*NULL */ {_erro, _absn, _fals, _true, _true, _true, _true, _true, _true, _true},
|
||||
/*VOID */ {_erro, _absn, _true, ne_b_ss, ne_b_ss, ne_b_sx, ne_b_sx, _true, _true, _true},
|
||||
/*STRING */ {_erro, _absn, _true, ne_b_ss, ne_b_ss, ne_b_sx, ne_b_sx, _true, _true, _true},
|
||||
/*INT */ {_erro, _absn, _true, ne_b_xs, ne_b_xs, ne_b_ii, ne_b_if, _true, _true, _true},
|
||||
/*FLOAT */ {_erro, _absn, _true, ne_b_xs, ne_b_xs, ne_b_fi, ne_b_ff, _true, _true, _true},
|
||||
/*BOOL */ {_erro, _absn, _true, _true, _true, _true, _true, ne_b_bb, _true, _true},
|
||||
/*ARRAY */ {_erro, _absn, _true, _true, _true, _true, _true, _true, ne_b_aa, _true},
|
||||
/*MAP */ {_erro, _absn, _true, _true, _true, _true, _true, _true, _true, ne_b_mm},
|
||||
}
|
||||
|
||||
var gt_dispositions = [MT_DIM][MT_DIM]BinaryFunc{
|
||||
// . ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, gt_b_ss, gt_b_ss, gt_b_sx, gt_b_sx, _fals, _fals, _fals},
|
||||
/*STRING */ {_erro, _absn, gt_b_ss, gt_b_ss, gt_b_sx, gt_b_sx, _fals, _fals, _fals},
|
||||
/*INT */ {_erro, _absn, gt_b_xs, gt_b_xs, gt_b_ii, gt_b_if, _fals, _fals, _fals},
|
||||
/*FLOAT */ {_erro, _absn, gt_b_xs, gt_b_xs, gt_b_fi, gt_b_ff, _fals, _fals, _fals},
|
||||
/*BOOL */ {_erro, _absn, _fals, _fals, _fals, _fals, gt_b_bb, _fals, _fals},
|
||||
/*ARRAY */ {_erro, _absn, _fals, _fals, _fals, _fals, _fals, _erro, _fals},
|
||||
/*MAP */ {_erro, _absn, _fals, _fals, _fals, _fals, _fals, _fals, _erro},
|
||||
// . ERROR ABSENT NULL VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _fals, _erro, _erro, _erro, _erro, _erro, _erro, _erro},
|
||||
/*ABSENT */ {_erro, _absn, _true, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*NULL */ {_true, _fals, _fals, _true, _true, _true, _true, _true, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, _fals, gt_b_ss, gt_b_ss, gt_b_sx, gt_b_sx, _fals, _fals, _fals},
|
||||
/*STRING */ {_erro, _absn, _fals, gt_b_ss, gt_b_ss, gt_b_sx, gt_b_sx, _fals, _fals, _fals},
|
||||
/*INT */ {_erro, _absn, _fals, gt_b_xs, gt_b_xs, gt_b_ii, gt_b_if, _fals, _fals, _fals},
|
||||
/*FLOAT */ {_erro, _absn, _fals, gt_b_xs, gt_b_xs, gt_b_fi, gt_b_ff, _fals, _fals, _fals},
|
||||
/*BOOL */ {_erro, _absn, _fals, _fals, _fals, _fals, _fals, gt_b_bb, _fals, _fals},
|
||||
/*ARRAY */ {_erro, _absn, _fals, _fals, _fals, _fals, _fals, _fals, _erro, _fals},
|
||||
/*MAP */ {_erro, _absn, _fals, _fals, _fals, _fals, _fals, _fals, _fals, _erro},
|
||||
}
|
||||
|
||||
var ge_dispositions = [MT_DIM][MT_DIM]BinaryFunc{
|
||||
// . ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, ge_b_ss, ge_b_ss, ge_b_sx, ge_b_sx, _fals, _fals, _fals},
|
||||
/*STRING */ {_erro, _absn, ge_b_ss, ge_b_ss, ge_b_sx, ge_b_sx, _fals, _fals, _fals},
|
||||
/*INT */ {_erro, _absn, ge_b_xs, ge_b_xs, ge_b_ii, ge_b_if, _fals, _fals, _fals},
|
||||
/*FLOAT */ {_erro, _absn, ge_b_xs, ge_b_xs, ge_b_fi, ge_b_ff, _fals, _fals, _fals},
|
||||
/*BOOL */ {_erro, _absn, _fals, _fals, _fals, _fals, ge_b_bb, _fals, _fals},
|
||||
/*ARRAY */ {_erro, _absn, _fals, _fals, _fals, _fals, _fals, _erro, _fals},
|
||||
/*MAP */ {_erro, _absn, _fals, _fals, _fals, _fals, _fals, _fals, _erro},
|
||||
// . ERROR ABSENT NULL VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _fals, _erro, _erro, _erro, _erro, _erro, _erro, _erro},
|
||||
/*ABSENT */ {_erro, _absn, _true, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*NULL */ {_true, _fals, _true, _true, _true, _true, _true, _true, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, _fals, ge_b_ss, ge_b_ss, ge_b_sx, ge_b_sx, _fals, _fals, _fals},
|
||||
/*STRING */ {_erro, _absn, _fals, ge_b_ss, ge_b_ss, ge_b_sx, ge_b_sx, _fals, _fals, _fals},
|
||||
/*INT */ {_erro, _absn, _fals, ge_b_xs, ge_b_xs, ge_b_ii, ge_b_if, _fals, _fals, _fals},
|
||||
/*FLOAT */ {_erro, _absn, _fals, ge_b_xs, ge_b_xs, ge_b_fi, ge_b_ff, _fals, _fals, _fals},
|
||||
/*BOOL */ {_erro, _absn, _fals, _fals, _fals, _fals, _fals, ge_b_bb, _fals, _fals},
|
||||
/*ARRAY */ {_erro, _absn, _fals, _fals, _fals, _fals, _fals, _fals, _erro, _fals},
|
||||
/*MAP */ {_erro, _absn, _fals, _fals, _fals, _fals, _fals, _fals, _fals, _erro},
|
||||
}
|
||||
|
||||
var lt_dispositions = [MT_DIM][MT_DIM]BinaryFunc{
|
||||
// . ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, lt_b_ss, lt_b_ss, lt_b_sx, lt_b_sx, _fals, _fals, _fals},
|
||||
/*STRING */ {_erro, _absn, lt_b_ss, lt_b_ss, lt_b_sx, lt_b_sx, _fals, _fals, _fals},
|
||||
/*INT */ {_erro, _absn, lt_b_xs, lt_b_xs, lt_b_ii, lt_b_if, _fals, _fals, _fals},
|
||||
/*FLOAT */ {_erro, _absn, lt_b_xs, lt_b_xs, lt_b_fi, lt_b_ff, _fals, _fals, _fals},
|
||||
/*BOOL */ {_erro, _absn, _fals, _fals, _fals, _fals, lt_b_bb, _fals, _fals},
|
||||
/*ARRAY */ {_erro, _absn, _fals, _fals, _fals, _fals, _fals, _erro, _fals},
|
||||
/*MAP */ {_erro, _absn, _fals, _fals, _fals, _fals, _fals, _fals, _erro},
|
||||
// . ERROR ABSENT NULL VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _true, _erro, _erro, _erro, _erro, _erro, _erro, _erro},
|
||||
/*ABSENT */ {_erro, _absn, _fals, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*NULL */ {_fals, _true, _fals, _fals, _fals, _fals, _fals, _fals, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, _true, lt_b_ss, lt_b_ss, lt_b_sx, lt_b_sx, _fals, _fals, _fals},
|
||||
/*STRING */ {_erro, _absn, _true, lt_b_ss, lt_b_ss, lt_b_sx, lt_b_sx, _fals, _fals, _fals},
|
||||
/*INT */ {_erro, _absn, _true, lt_b_xs, lt_b_xs, lt_b_ii, lt_b_if, _fals, _fals, _fals},
|
||||
/*FLOAT */ {_erro, _absn, _true, lt_b_xs, lt_b_xs, lt_b_fi, lt_b_ff, _fals, _fals, _fals},
|
||||
/*BOOL */ {_erro, _absn, _true, _fals, _fals, _fals, _fals, lt_b_bb, _fals, _fals},
|
||||
/*ARRAY */ {_erro, _absn, _absn, _fals, _fals, _fals, _fals, _fals, _erro, _fals},
|
||||
/*MAP */ {_erro, _absn, _absn, _fals, _fals, _fals, _fals, _fals, _fals, _erro},
|
||||
}
|
||||
|
||||
var le_dispositions = [MT_DIM][MT_DIM]BinaryFunc{
|
||||
// . ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, le_b_ss, le_b_ss, le_b_sx, le_b_sx, _fals, _fals, _fals},
|
||||
/*STRING */ {_erro, _absn, le_b_ss, le_b_ss, le_b_sx, le_b_sx, _fals, _fals, _fals},
|
||||
/*INT */ {_erro, _absn, le_b_xs, le_b_xs, le_b_ii, le_b_if, _fals, _fals, _fals},
|
||||
/*FLOAT */ {_erro, _absn, le_b_xs, le_b_xs, le_b_fi, le_b_ff, _fals, _fals, _fals},
|
||||
/*BOOL */ {_erro, _absn, _fals, _fals, _fals, _fals, le_b_bb, _fals, _fals},
|
||||
/*ARRAY */ {_erro, _absn, _fals, _fals, _fals, _fals, _fals, _erro, _fals},
|
||||
/*MAP */ {_erro, _absn, _fals, _fals, _fals, _fals, _fals, _fals, _erro},
|
||||
// . ERROR ABSENT NULL VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _true, _erro, _erro, _erro, _erro, _erro, _erro, _erro},
|
||||
/*ABSENT */ {_erro, _absn, _fals, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*NULL */ {_fals, _true, _true, _fals, _fals, _fals, _fals, _fals, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, _true, le_b_ss, le_b_ss, le_b_sx, le_b_sx, _fals, _fals, _fals},
|
||||
/*STRING */ {_erro, _absn, _true, le_b_ss, le_b_ss, le_b_sx, le_b_sx, _fals, _fals, _fals},
|
||||
/*INT */ {_erro, _absn, _true, le_b_xs, le_b_xs, le_b_ii, le_b_if, _fals, _fals, _fals},
|
||||
/*FLOAT */ {_erro, _absn, _true, le_b_xs, le_b_xs, le_b_fi, le_b_ff, _fals, _fals, _fals},
|
||||
/*BOOL */ {_erro, _absn, _true, _fals, _fals, _fals, _fals, le_b_bb, _fals, _fals},
|
||||
/*ARRAY */ {_erro, _absn, _absn, _fals, _fals, _fals, _fals, _fals, _erro, _fals},
|
||||
/*MAP */ {_erro, _absn, _absn, _fals, _fals, _fals, _fals, _fals, _fals, _erro},
|
||||
}
|
||||
|
||||
func MlrvalEquals(input1, input2 *Mlrval) *Mlrval {
|
||||
|
|
|
|||
|
|
@ -68,6 +68,7 @@ func init() {
|
|||
depth_dispositions = [MT_DIM]UnaryFunc{
|
||||
/*ERROR */ _erro1,
|
||||
/*ABSENT */ _absn1,
|
||||
/*NULL */ _zero1,
|
||||
/*VOID */ depth_from_scalar,
|
||||
/*STRING */ depth_from_scalar,
|
||||
/*INT */ depth_from_scalar,
|
||||
|
|
@ -132,6 +133,7 @@ func leafcount_from_scalar(input1 *Mlrval) *Mlrval {
|
|||
var leafcount_dispositions = [MT_DIM]UnaryFunc{
|
||||
/*ERROR */ _erro1,
|
||||
/*ABSENT */ _absn1,
|
||||
/*NULL */ _zero1,
|
||||
/*VOID */ leafcount_from_scalar,
|
||||
/*STRING */ leafcount_from_scalar,
|
||||
/*INT */ leafcount_from_scalar,
|
||||
|
|
|
|||
|
|
@ -10,6 +10,11 @@ func _math_unary_absn1(input1 *Mlrval, f mathLibUnaryFunc) *Mlrval {
|
|||
return MLRVAL_ABSENT
|
||||
}
|
||||
|
||||
// Return null (unary math-library func)
|
||||
func _math_unary_null1(input1 *Mlrval, f mathLibUnaryFunc) *Mlrval {
|
||||
return MLRVAL_NULL
|
||||
}
|
||||
|
||||
// Return void (unary math-library func)
|
||||
func _math_unary_void1(input1 *Mlrval, f mathLibUnaryFunc) *Mlrval {
|
||||
return MLRVAL_VOID
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ func math_unary_f_f(input1 *Mlrval, f mathLibUnaryFunc) *Mlrval {
|
|||
var mudispo = [MT_DIM]mathLibUnaryFuncWrapper{
|
||||
/*ERROR */ _math_unary_erro1,
|
||||
/*ABSENT */ _math_unary_absn1,
|
||||
/*NULL */ _math_unary_null1,
|
||||
/*VOID */ _math_unary_void1,
|
||||
/*STRING */ _math_unary_erro1,
|
||||
/*INT */ math_unary_f_i,
|
||||
|
|
@ -78,16 +79,17 @@ func pow_f_ff(input1, input2 *Mlrval) *Mlrval {
|
|||
}
|
||||
|
||||
var pow_dispositions = [MT_DIM][MT_DIM]BinaryFunc{
|
||||
// ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _erro, _i0__, _f0__, _erro, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _void, _erro, pow_f_ii, pow_f_if, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _1___, _void, _erro, pow_f_fi, pow_f_ff, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
// . ERROR ABSENT NULL VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _absn, _erro, _i0__, _f0__, _erro, _absn, _absn},
|
||||
/*NULL */ {_erro, _absn, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro},
|
||||
/*VOID */ {_erro, _absn, _erro, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _erro, _void, _erro, pow_f_ii, pow_f_if, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _1___, _erro, _void, _erro, pow_f_fi, pow_f_ff, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _erro, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _erro, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
}
|
||||
|
||||
func MlrvalPow(input1, input2 *Mlrval) *Mlrval {
|
||||
|
|
@ -109,16 +111,17 @@ func atan2_f_ff(input1, input2 *Mlrval) *Mlrval {
|
|||
}
|
||||
|
||||
var atan2_dispositions = [MT_DIM][MT_DIM]BinaryFunc{
|
||||
// ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _erro, _i0__, _f0__, _erro, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _void, _erro, atan2_f_ii, atan2_f_if, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _1___, _void, _erro, atan2_f_fi, atan2_f_ff, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
// . ERROR ABSENT NULL VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _absn, _erro, _i0__, _f0__, _erro, _absn, _absn},
|
||||
/*NULL */ {_erro, _absn, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro},
|
||||
/*VOID */ {_erro, _absn, _erro, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _erro, _void, _erro, atan2_f_ii, atan2_f_if, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _1___, _erro, _void, _erro, atan2_f_fi, atan2_f_ff, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _erro, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _erro, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
}
|
||||
|
||||
func MlrvalAtan2(input1, input2 *Mlrval) *Mlrval {
|
||||
|
|
@ -144,16 +147,17 @@ func roundm_f_ff(input1, input2 *Mlrval) *Mlrval {
|
|||
}
|
||||
|
||||
var roundm_dispositions = [MT_DIM][MT_DIM]BinaryFunc{
|
||||
// ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _erro, _i0__, _f0__, _erro, _absn, _absn},
|
||||
/*VOID */ {_erro, _absn, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _void, _erro, roundm_f_ii, roundm_f_if, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _1___, _void, _erro, roundm_f_fi, roundm_f_ff, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
// . ERROR ABSENT NULL VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _absn, _absn, _erro, _i0__, _f0__, _erro, _absn, _absn},
|
||||
/*NULL */ {_erro, _absn, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro},
|
||||
/*VOID */ {_erro, _absn, _erro, _void, _erro, _void, _void, _erro, _absn, _absn},
|
||||
/*STRING */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*INT */ {_erro, _1___, _erro, _void, _erro, roundm_f_ii, roundm_f_if, _erro, _absn, _absn},
|
||||
/*FLOAT */ {_erro, _1___, _erro, _void, _erro, roundm_f_fi, roundm_f_ff, _erro, _absn, _absn},
|
||||
/*BOOL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ARRAY */ {_absn, _absn, _erro, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
/*MAP */ {_absn, _absn, _erro, _absn, _absn, _absn, _absn, _absn, _absn, _absn},
|
||||
}
|
||||
|
||||
func MlrvalRoundm(input1, input2 *Mlrval) *Mlrval {
|
||||
|
|
|
|||
|
|
@ -114,24 +114,26 @@ func bbcmp(input1, input2 *Mlrval) int {
|
|||
|
||||
// ----------------------------------------------------------------
|
||||
// Sort rules (same for min, max, and comparator):
|
||||
// * NUMERICS < BOOL < STRINGS < ERROR < ABSENT
|
||||
// * NUMERICS < BOOL < STRINGS < ERROR < NULL < ABSENT
|
||||
// * error == error (singleton type)
|
||||
// * absent == absent (singleton type)
|
||||
// * null == null (singleton type)
|
||||
// * string compares on strings
|
||||
// * numeric compares on numbers
|
||||
// * false < true
|
||||
|
||||
var num_cmp_dispositions = [MT_DIM][MT_DIM]ComparatorFunc{
|
||||
// . ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_zero, _neg1, _pos1, _pos1, _pos1, _pos1, _pos1, _zero, _zero},
|
||||
/*ABSENT */ {_pos1, _zero, _pos1, _pos1, _pos1, _pos1, _pos1, _zero, _zero},
|
||||
/*VOID */ {_neg1, _neg1, _scmp, _scmp, _pos1, _pos1, _pos1, _zero, _zero},
|
||||
/*STRING */ {_neg1, _neg1, _scmp, _scmp, _pos1, _pos1, _pos1, _zero, _zero},
|
||||
/*INT */ {_neg1, _neg1, _neg1, _neg1, iicmp, ifcmp, _neg1, _zero, _zero},
|
||||
/*FLOAT */ {_neg1, _neg1, _neg1, _neg1, ficmp, ffcmp, _neg1, _zero, _zero},
|
||||
/*BOOL */ {_neg1, _neg1, _neg1, _neg1, _pos1, _pos1, bbcmp, _zero, _zero},
|
||||
/*ARRAY */ {_zero, _zero, _zero, _zero, _zero, _zero, _zero, _zero, _zero},
|
||||
/*MAP */ {_zero, _zero, _zero, _zero, _zero, _zero, _zero, _zero, _zero},
|
||||
// . ERROR ABSENT NULL VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_zero, _neg1, _neg1, _pos1, _pos1, _pos1, _pos1, _pos1, _zero, _zero},
|
||||
/*ABSENT */ {_pos1, _zero, _pos1, _pos1, _pos1, _pos1, _pos1, _pos1, _zero, _zero},
|
||||
/*NULL */ {_pos1, _neg1, _zero, _pos1, _pos1, _pos1, _pos1, _pos1, _pos1, _pos1},
|
||||
/*VOID */ {_neg1, _neg1, _neg1, _scmp, _scmp, _pos1, _pos1, _pos1, _zero, _zero},
|
||||
/*STRING */ {_neg1, _neg1, _neg1, _scmp, _scmp, _pos1, _pos1, _pos1, _zero, _zero},
|
||||
/*INT */ {_neg1, _neg1, _neg1, _neg1, _neg1, iicmp, ifcmp, _neg1, _zero, _zero},
|
||||
/*FLOAT */ {_neg1, _neg1, _neg1, _neg1, _neg1, ficmp, ffcmp, _neg1, _zero, _zero},
|
||||
/*BOOL */ {_neg1, _neg1, _neg1, _neg1, _neg1, _pos1, _pos1, bbcmp, _zero, _zero},
|
||||
/*ARRAY */ {_zero, _zero, _neg1, _zero, _zero, _zero, _zero, _zero, _zero, _zero},
|
||||
/*MAP */ {_zero, _zero, _neg1, _zero, _zero, _zero, _zero, _zero, _zero, _zero},
|
||||
}
|
||||
|
||||
func NumericAscendingComparator(input1 *Mlrval, input2 *Mlrval) int {
|
||||
|
|
|
|||
|
|
@ -43,16 +43,17 @@ func dot_s_xx(input1, input2 *Mlrval) *Mlrval {
|
|||
}
|
||||
|
||||
var dot_dispositions = [MT_DIM][MT_DIM]BinaryFunc{
|
||||
// . ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _void, _2___, _s2__, _s2__, _s2__, _absn, _absn},
|
||||
/*VOID */ {_erro, _void, _void, _2___, _s2__, _s2__, _s2__, _absn, _absn},
|
||||
/*STRING */ {_erro, _1___, _1___, dot_s_xx, dot_s_xx, dot_s_xx, dot_s_xx, dot_s_xx, dot_s_xx},
|
||||
/*INT */ {_erro, _s1__, _s1__, dot_s_xx, dot_s_xx, dot_s_xx, dot_s_xx, dot_s_xx, dot_s_xx},
|
||||
/*FLOAT */ {_erro, _s1__, _s1__, dot_s_xx, dot_s_xx, dot_s_xx, dot_s_xx, dot_s_xx, dot_s_xx},
|
||||
/*BOOL */ {_erro, _s1__, _s1__, dot_s_xx, dot_s_xx, dot_s_xx, dot_s_xx, dot_s_xx, dot_s_xx},
|
||||
/*ARRAY */ {_absn, _absn, _absn, dot_s_xx, dot_s_xx, dot_s_xx, dot_s_xx, dot_s_xx, dot_s_xx},
|
||||
/*MAP */ {_absn, _absn, _absn, dot_s_xx, dot_s_xx, dot_s_xx, dot_s_xx, dot_s_xx, dot_s_xx},
|
||||
// . ERROR ABSENT NULL VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _absn, _absn},
|
||||
/*ABSENT */ {_erro, _absn, _null, _void, _2___, _s2__, _s2__, _s2__, _absn, _absn},
|
||||
/*NULL */ {_erro, _null, _null, _void, _2___, _s2__, _s2__, _s2__, _absn, _absn},
|
||||
/*VOID */ {_erro, _void, _void, _void, _2___, _s2__, _s2__, _s2__, _absn, _absn},
|
||||
/*STRING */ {_erro, _1___, _1___, _1___, dot_s_xx, dot_s_xx, dot_s_xx, dot_s_xx, dot_s_xx, dot_s_xx},
|
||||
/*INT */ {_erro, _s1__, _1___, _s1__, dot_s_xx, dot_s_xx, dot_s_xx, dot_s_xx, dot_s_xx, dot_s_xx},
|
||||
/*FLOAT */ {_erro, _s1__, _1___, _s1__, dot_s_xx, dot_s_xx, dot_s_xx, dot_s_xx, dot_s_xx, dot_s_xx},
|
||||
/*BOOL */ {_erro, _s1__, _1___, _s1__, dot_s_xx, dot_s_xx, dot_s_xx, dot_s_xx, dot_s_xx, dot_s_xx},
|
||||
/*ARRAY */ {_absn, _absn, _absn, _absn, dot_s_xx, dot_s_xx, dot_s_xx, dot_s_xx, dot_s_xx, dot_s_xx},
|
||||
/*MAP */ {_absn, _absn, _absn, _absn, dot_s_xx, dot_s_xx, dot_s_xx, dot_s_xx, dot_s_xx, dot_s_xx},
|
||||
}
|
||||
|
||||
func MlrvalDot(input1, input2 *Mlrval) *Mlrval {
|
||||
|
|
@ -315,16 +316,17 @@ func fmtnum_bs(input1, input2 *Mlrval) *Mlrval {
|
|||
}
|
||||
|
||||
var fmtnum_dispositions = [MT_DIM][MT_DIM]BinaryFunc{
|
||||
// . ERROR ABSENT VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro},
|
||||
/*ABSENT */ {_erro, _absn, _erro, _absn, _erro, _erro, _erro, _erro, _erro},
|
||||
/*VOID */ {_erro, _absn, _erro, _erro, _erro, _erro, _erro, _erro, _erro},
|
||||
/*STRING */ {_erro, _absn, _erro, _erro, _erro, _erro, _erro, _erro, _erro},
|
||||
/*INT */ {_erro, _absn, _erro, fmtnum_is, _erro, _erro, _erro, _erro, _erro},
|
||||
/*FLOAT */ {_erro, _absn, _erro, fmtnum_fs, _erro, _erro, _erro, _erro, _erro},
|
||||
/*BOOL */ {_erro, _absn, _erro, fmtnum_bs, _erro, _erro, _erro, _erro, _erro},
|
||||
/*ARRAY */ {_erro, _absn, _erro, _erro, _erro, _erro, _erro, _erro, _erro},
|
||||
/*MAP */ {_erro, _absn, _erro, _erro, _erro, _erro, _erro, _erro, _erro},
|
||||
// . ERROR ABSENT NULL VOID STRING INT FLOAT BOOL ARRAY MAP
|
||||
/*ERROR */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro},
|
||||
/*ABSENT */ {_erro, _absn, _erro, _erro, _absn, _erro, _erro, _erro, _erro, _erro},
|
||||
/*NULL */ {_erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro},
|
||||
/*VOID */ {_erro, _absn, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro},
|
||||
/*STRING */ {_erro, _absn, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro},
|
||||
/*INT */ {_erro, _absn, _erro, _erro, fmtnum_is, _erro, _erro, _erro, _erro, _erro},
|
||||
/*FLOAT */ {_erro, _absn, _erro, _erro, fmtnum_fs, _erro, _erro, _erro, _erro, _erro},
|
||||
/*BOOL */ {_erro, _absn, _erro, _erro, fmtnum_bs, _erro, _erro, _erro, _erro, _erro},
|
||||
/*ARRAY */ {_erro, _absn, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro},
|
||||
/*MAP */ {_erro, _absn, _erro, _erro, _erro, _erro, _erro, _erro, _erro, _erro},
|
||||
}
|
||||
|
||||
func MlrvalFmtNum(input1, input2 *Mlrval) *Mlrval {
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ func bool_to_int(input1 *Mlrval) *Mlrval {
|
|||
var to_int_dispositions = [MT_DIM]UnaryFunc{
|
||||
/*ERROR */ _erro1,
|
||||
/*ABSENT */ _absn1,
|
||||
/*NULL */ _null1,
|
||||
/*VOID */ _void1,
|
||||
/*STRING */ string_to_int,
|
||||
/*INT */ _1u___,
|
||||
|
|
@ -75,6 +76,7 @@ func bool_to_float(input1 *Mlrval) *Mlrval {
|
|||
var to_float_dispositions = [MT_DIM]UnaryFunc{
|
||||
/*ERROR */ _erro1,
|
||||
/*ABSENT */ _absn1,
|
||||
/*NULL */ _null1,
|
||||
/*VOID */ _void1,
|
||||
/*STRING */ string_to_float,
|
||||
/*INT */ int_to_float,
|
||||
|
|
@ -109,6 +111,7 @@ func float_to_bool(input1 *Mlrval) *Mlrval {
|
|||
var to_boolean_dispositions = [MT_DIM]UnaryFunc{
|
||||
/*ERROR */ _erro1,
|
||||
/*ABSENT */ _absn1,
|
||||
/*NULL */ _null1,
|
||||
/*VOID */ _void1,
|
||||
/*STRING */ string_to_boolean,
|
||||
/*INT */ int_to_bool,
|
||||
|
|
|
|||
|
|
@ -134,7 +134,7 @@ func MlrvalDecodeFromJSON(decoder *json.Decoder) (
|
|||
delimiter, isDelim := startToken.(json.Delim)
|
||||
if !isDelim {
|
||||
if startToken == nil {
|
||||
return MLRVAL_VOID, false, nil
|
||||
return MLRVAL_NULL, false, nil
|
||||
}
|
||||
|
||||
sval, ok := startToken.(string)
|
||||
|
|
@ -279,6 +279,9 @@ func (this *Mlrval) marshalJSONAux(
|
|||
case MT_ABSENT:
|
||||
return this.marshalJSONAbsent()
|
||||
break
|
||||
case MT_NULL:
|
||||
return this.marshalJSONNull()
|
||||
break
|
||||
case MT_VOID:
|
||||
return this.marshalJSONVoid()
|
||||
break
|
||||
|
|
@ -331,6 +334,12 @@ func (this *Mlrval) marshalJSONAbsent() ([]byte, error) {
|
|||
)
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------
|
||||
func (this *Mlrval) marshalJSONNull() ([]byte, error) {
|
||||
lib.InternalCodingErrorIf(this.mvtype != MT_NULL)
|
||||
return []byte("null"), nil
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------
|
||||
func (this *Mlrval) marshalJSONVoid() ([]byte, error) {
|
||||
lib.InternalCodingErrorIf(this.mvtype != MT_VOID)
|
||||
|
|
|
|||
|
|
@ -15,12 +15,14 @@ import (
|
|||
|
||||
var value_MLRVAL_ERROR = mlrvalFromError()
|
||||
var value_MLRVAL_ABSENT = mlrvalFromAbsent()
|
||||
var value_MLRVAL_NULL = mlrvalFromNull()
|
||||
var value_MLRVAL_VOID = mlrvalFromVoid()
|
||||
var value_MLRVAL_TRUE = mlrvalFromTrue()
|
||||
var value_MLRVAL_FALSE = mlrvalFromFalse()
|
||||
|
||||
var MLRVAL_ERROR = &value_MLRVAL_ERROR
|
||||
var MLRVAL_ABSENT = &value_MLRVAL_ABSENT
|
||||
var MLRVAL_NULL = &value_MLRVAL_NULL
|
||||
var MLRVAL_VOID = &value_MLRVAL_VOID
|
||||
var MLRVAL_TRUE = &value_MLRVAL_TRUE
|
||||
var MLRVAL_FALSE = &value_MLRVAL_FALSE
|
||||
|
|
@ -222,6 +224,19 @@ func mlrvalFromAbsent() Mlrval {
|
|||
}
|
||||
}
|
||||
|
||||
func mlrvalFromNull() Mlrval {
|
||||
return Mlrval{
|
||||
mvtype: MT_NULL,
|
||||
printrep: "null",
|
||||
printrepValid: true,
|
||||
intval: 0,
|
||||
floatval: 0.0,
|
||||
boolval: false,
|
||||
arrayval: nil,
|
||||
mapval: nil,
|
||||
}
|
||||
}
|
||||
|
||||
func mlrvalFromVoid() Mlrval {
|
||||
return Mlrval{
|
||||
mvtype: MT_VOID,
|
||||
|
|
@ -366,8 +381,8 @@ func LengthenMlrvalArray(array *[]Mlrval, newLength64 int) {
|
|||
if newLength <= cap(*array) {
|
||||
newArray := (*array)[:newLength]
|
||||
for zindex := len(*array); zindex < newLength; zindex++ {
|
||||
// TODO: comment why not MT_ABSENT
|
||||
newArray[zindex] = MlrvalFromString("")
|
||||
// TODO: comment why not MT_ABSENT or MT_VOID
|
||||
newArray[zindex] = *MLRVAL_NULL
|
||||
}
|
||||
*array = newArray
|
||||
} else {
|
||||
|
|
@ -377,7 +392,8 @@ func LengthenMlrvalArray(array *[]Mlrval, newLength64 int) {
|
|||
newArray[zindex] = (*array)[zindex]
|
||||
}
|
||||
for zindex = len(*array); zindex < newLength; zindex++ {
|
||||
newArray[zindex] = MlrvalFromString("")
|
||||
// TODO: comment why not MT_ABSENT or MT_VOID
|
||||
newArray[zindex] = *MLRVAL_NULL
|
||||
}
|
||||
*array = newArray
|
||||
}
|
||||
|
|
|
|||
38
go/todo.txt
38
go/todo.txt
|
|
@ -6,22 +6,6 @@ TOP OF LIST:
|
|||
o profile mlr --j2x cat mappings.json
|
||||
o golang static-analysis tool -- ?
|
||||
|
||||
* 2121 case:
|
||||
o ../c/mlr --from s put '$z=1+""'
|
||||
o ../go/mlr --from s put '$z=1+""'
|
||||
o array auto-extend:
|
||||
- fill with absent is not ok
|
||||
> Miller internal coding error: absent-values should not have been assigned
|
||||
> cmt mlrval_new.go
|
||||
- fill with empty results in these situations :(
|
||||
> https://miller.readthedocs.io/en/latest/reference.html#null-data-empty-and-absent
|
||||
"Empty values are explicit in the data so they should explicitly affect
|
||||
accumulations: mlr put '@sum += $x' should accumulate numeric x values
|
||||
into the sum but an empty x, when encountered in the input data stream,
|
||||
should make the sum non-numeric."
|
||||
- fill with ... use JSON_NULL here?
|
||||
o needs doc-ent for JSON_NULL -- only for JSON user data only only ... except for this
|
||||
|
||||
* blockers:
|
||||
o repifs, for nidx & pprint both
|
||||
o --d2n commawrong
|
||||
|
|
@ -66,8 +50,6 @@ TOP OF LIST:
|
|||
* cases/dsl-min-max-types: cmp-matrices need to be fixed to follow the advertised rule for mixed types
|
||||
NUMERICS < BOOL < VOID < STRING
|
||||
|
||||
? blocker? json null
|
||||
|
||||
* blocker: smart fmtnum
|
||||
- poor-person's initial version: lld/llx -> d/x; lf/le/lg -> f/e/g ...
|
||||
- fmtnum
|
||||
|
|
@ -246,14 +228,6 @@ emitp/emitf:
|
|||
|
||||
* stats1: actualize -S and -F -- ?
|
||||
|
||||
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
! JSON null needs to be passed through as-is ... somehow ... new mlrval type??
|
||||
o https://stedolan.github.io/jq/manual/#Builtinoperatorsandfunctions
|
||||
o "null can be added to any value, and returns the other value unchanged."
|
||||
o "the length of null is 0"
|
||||
o note json types: string, number, boolean, null, object, array.
|
||||
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
! smart fmtnum w/ state-machine on chars, and casts, etc -- decouple from raw sprintf
|
||||
o use:
|
||||
|
|
@ -630,3 +604,15 @@ i https://en.wikipedia.org/wiki/Delimiter#Delimiter_collision
|
|||
* doc for DSL hostname/os/version functions
|
||||
? ENV as entire string-string map at RHS/LHS -- ?
|
||||
* mongo examples to doc :D
|
||||
* doc for array auto-extend:
|
||||
- fill with absent is not ok
|
||||
> Miller internal coding error: absent-values should not have been assigned
|
||||
> cmt mlrval_new.go
|
||||
- fill with empty results in these situations :(
|
||||
> https://miller.readthedocs.io/en/latest/reference.html#null-data-empty-and-absent
|
||||
"Empty values are explicit in the data so they should explicitly affect
|
||||
accumulations: mlr put '@sum += $x' should accumulate numeric x values
|
||||
into the sum but an empty x, when encountered in the input data stream,
|
||||
should make the sum non-numeric."
|
||||
- use JSON null here
|
||||
- needs doc-ent for JSON_NULL -- only for JSON user data only only ... except for this
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue