Hash :
b5ad083c
Author :
Thomas de Grivel
Date :
2023-09-07T12:22:55
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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
%{module: C3.Facts.Dump,
version: 1}
add {C3, :is_a, :module}
add {C3, :symbol, C3.!}
add {C3, :symbol, C3.&&}
add {C3, :symbol, C3.*}
add {C3, :symbol, C3.+}
add {C3, :symbol, C3.-}
add {C3, :symbol, C3./}
add {C3, :symbol, C3.<=}
add {C3, :symbol, C3.<}
add {C3, :symbol, C3.=}
add {C3, :symbol, C3.==}
add {C3, :symbol, C3.>=}
add {C3, :symbol, C3.>}
add {C3, :symbol, C3._"()"}
add {C3, :symbol, C3.break}
add {C3, :symbol, C3.first}
add {C3, :symbol, C3.xor}
add {C3, :symbol, C3.||}
replace {C3.+, :arity, 2}
replace {C3.+, :cfn, cfn :tag "tag_add" (:tag, :tag, :&result)}
add {C3.+, :is_a, :operator}
replace {C3.+, :operator_precedence, 1}
replace {C3.+, :operator_associativity, :left}
replace {C3.-, :arity, 2}
replace {C3.-, :cfn, cfn :tag "tag_sub" (:tag, :tag, :&result)}
add {C3.-, :is_a, :operator}
replace {C3.-, :operator_precedence, 1}
replace {C3.-, :operator_associativity, :left}
replace {C3.*, :arity, 2}
replace {C3.*, :cfn, cfn :tag "tag_mul" (:tag, :tag, :&result)}
add {C3.*, :is_a, :operator}
replace {C3.*, :operator_precedence, 2}
replace {C3.*, :operator_associativity, :left}
replace {C3./, :arity, 2}
replace {C3./, :cfn, cfn :tag "tag_div" (:tag, :tag, :&result)}
add {C3./, :is_a, :operator}
replace {C3./, :operator_precedence, 2}
replace {C3./, :operator_associativity, :left}
replace {C3.<, :arity, 2}
replace {C3.<, :cfn, cfn :bool "tag_lt" (:tag, :tag)}
add {C3.<, :is_a, :operator}
replace {C3.<, :operator_precedence, 3}
replace {C3.<, :operator_associativity, :left}
replace {C3.<=, :arity, 2}
replace {C3.<=, :cfn, cfn :bool "tag_lte" (:tag, :tag)}
add {C3.<=, :is_a, :operator}
replace {C3.<=, :operator_precedence, 3}
replace {C3.<=, :operator_associativity, :left}
replace {C3.=, :arity, 2}
replace {C3.=, :cfn, cfn :tag "tag_equal" (:tag, :tag, :&result)}
add {C3.=, :is_a, :operator}
add {C3.=, :is_a, :special_operator}
replace {C3.=, :operator_precedence, 5}
replace {C3.=, :operator_associativity, :left}
replace {C3.==, :arity, 2}
replace {C3.==, :cfn, cfn :bool "tag_eq" (:tag, :tag)}
add {C3.==, :is_a, :operator}
replace {C3.==, :operator_precedence, 3}
replace {C3.==, :operator_associativity, :left}
replace {C3.>=, :arity, 2}
replace {C3.>=, :cfn, cfn :bool "tag_gte" (:tag, :tag)}
add {C3.>=, :is_a, :operator}
replace {C3.>=, :operator_precedence, 3}
replace {C3.>=, :operator_associativity, :left}
replace {C3.>, :arity, 2}
replace {C3.>, :cfn, cfn :bool "tag_gt" (:tag, :tag)}
add {C3.>, :is_a, :operator}
replace {C3.>, :operator_precedence, 3}
replace {C3.>, :operator_associativity, :left}
replace {C3.!, :arity, 1}
replace {C3.!, :cfn, cfn :bool "tag_not" (:tag)}
add {C3.!, :is_a, :operator}
replace {C3._"()", :arity, 1}
replace {C3._"()", :cfn, cfn :tag "tag_paren" (:tag, :&result)}
add {C3._"()", :is_a, :operator}
replace {C3.&&, :arity, 2}
replace {C3.&&, :cfn, cfn :bool "tag_and" (:tag, :tag)}
add {C3.&&, :is_a, :operator}
replace {C3.&&, :operator_precedence, 4}
replace {C3.&&, :operator_associativity, :left}
replace {C3.||, :arity, 2}
replace {C3.||, :cfn, cfn :bool "tag_or" (:tag, :tag)}
add {C3.||, :is_a, :operator}
replace {C3.||, :operator_precedence, 4}
replace {C3.||, :operator_associativity, :left}
replace {C3.xor, :arity, 2}
replace {C3.xor, :cfn, cfn :bool "tag_xor" (:tag, :tag)}
add {C3.xor, :is_a, :operator}
replace {C3.xor, :operator_precedence, 4}
replace {C3.xor, :operator_associativity, :left}
replace {C3.break, :cfn, cfn :void "c3_break" ()}
replace {C3.first, :fn, fn {
((a | _b)) { a }
({a, _b}) { a }
({a, _b, _c}) { a }
({a, _b, _c, _d}) { a }
}}