1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
object {
block_map "equality" {
labels = ["operator"]
object {
attr "exactly" { type = bool }
attr "not" { type = bool }
attr "type_mismatch_number" { type = bool }
attr "type_mismatch_bool" { type = bool }
}
}
block_map "inequality" {
labels = ["operator"]
object {
attr "lt" { type = bool }
attr "gt" { type = bool }
attr "eq" { type = bool }
}
}
block "arithmetic" {
object {
attr "add" { type = any }
attr "add_big" { type = any }
attr "sub" { type = any }
attr "sub_neg" { type = any }
attr "mul" { type = any }
attr "div" { type = any }
attr "mod" { type = any }
attr "mod_frac" { type = any }
}
}
block_map "logical_binary" {
labels = ["operator"]
object {
attr "tt" { type = bool }
attr "ft" { type = bool }
attr "tf" { type = bool }
attr "ff" { type = bool }
}
}
block_map "logical_unary" {
labels = ["operator"]
object {
attr "t" { type = bool }
attr "f" { type = bool }
}
}
block "conditional" {
object {
attr "t" { type = any }
attr "f" { type = any }
}
}
}
|