mirror of
https://github.com/johnkerl/miller.git
synced 2026-08-04 05:23:20 +00:00
Disposition matrices/vectors for null type
This commit is contained in:
parent
d388699ddd
commit
9a26302e1e
3 changed files with 80 additions and 62 deletions
|
|
@ -91,6 +91,11 @@ 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
|
||||
|
|
@ -127,6 +132,11 @@ 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
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ func init() {
|
|||
depth_dispositions = [MT_DIM]UnaryFunc{
|
||||
/*ERROR */ _erro1,
|
||||
/*ABSENT */ _absn1,
|
||||
/*NULL */ _zero,
|
||||
/*NULL */ _zero1,
|
||||
/*VOID */ depth_from_scalar,
|
||||
/*STRING */ depth_from_scalar,
|
||||
/*INT */ depth_from_scalar,
|
||||
|
|
@ -133,7 +133,7 @@ func leafcount_from_scalar(input1 *Mlrval) *Mlrval {
|
|||
var leafcount_dispositions = [MT_DIM]UnaryFunc{
|
||||
/*ERROR */ _erro1,
|
||||
/*ABSENT */ _absn1,
|
||||
/*NULL */ _zero,
|
||||
/*NULL */ _zero1,
|
||||
/*VOID */ leafcount_from_scalar,
|
||||
/*STRING */ leafcount_from_scalar,
|
||||
/*INT */ leafcount_from_scalar,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue