Castle: The best Real-Time/Embedded/HighTech language EVER. Attempt 2
Revision | f32427fe9de5e0d987ce2218a3b2a671974bdb9d (tree) |
---|---|
Time | 2024-05-29 23:09:35 |
Author | Albert Mietus < albert AT mietus DOT nl > |
Commiter | Albert Mietus < albert AT mietus DOT nl > |
@@ -6,45 +6,45 @@ | ||
6 | 6 | |
7 | 7 | class _operator(AIGR): pass |
8 | 8 | |
9 | -class _LeftAssociative(_operator) : "Left associative operators" | |
10 | -class Times(_LeftAssociative) : '*' | |
11 | -class Div(_LeftAssociative) : '/' | |
12 | -class Modulo(_LeftAssociative) : '%' | |
13 | -class Add(_LeftAssociative) : '+' | |
14 | -class Sub(_LeftAssociative) : '-' | |
15 | -#class MatrixMult(_LeftAssociative) : '@' # Probably NOT needed | |
16 | - | |
17 | -class _RightAssociative(_operator) : "Right associative operators" | |
18 | -class Power(_RightAssociative) : '**' | |
9 | +class _LeftAssociative(_operator) : """Left associative operators""" | |
10 | +class Times(_LeftAssociative) : '''*''' | |
11 | +class Div(_LeftAssociative) : '''/''' | |
12 | +class Modulo(_LeftAssociative) : '''%''' | |
13 | +class Add(_LeftAssociative) : '''+''' | |
14 | +class Sub(_LeftAssociative) : '''-''' | |
15 | +#class MatrixMult(_LeftAssociative) : '''@''' # Probably NOT needed | |
19 | 16 | |
20 | -class _compare_op(_operator) : "Compare 2 or more values --The expression can be cascaded `1<2<3`, always resulting in True/False" | |
21 | -class Equal(_compare_op) : '==' | |
22 | -class NotEqual(_compare_op) : '!=' | |
23 | -#class Unequal(_compare_op) : '<>' # Probably NOT needed | |
24 | -class Less(_compare_op) : '<' | |
25 | -class LessEqual(_compare_op) : '<=' | |
26 | -class Greater(_compare_op) : '>' | |
27 | -class GreaterEqual(_compare_op) : '>=' | |
28 | -class Is(_compare_op) : 'is' | |
29 | -class IsNot(_compare_op) : 'is not' | |
30 | -class In(_compare_op) : 'in' | |
31 | -class NotIn(_compare_op) : 'not in' | |
17 | +class _RightAssociative(_operator) : """Right associative operators""" | |
18 | +class Power(_RightAssociative) : '''**''' | |
32 | 19 | |
33 | -class _boolean_op(_operator) : "Operate on boolean values" | |
34 | -class _ShortCircuit(_operator) : "Operators, that stop when the result is fixed -- resulting in the 'last' value" | |
20 | +class _compare_op(_operator) : """Compare 2 or more values --The expression can be cascaded `1<2<3`, always resulting in True/False""" | |
21 | +class Equal(_compare_op) : '''==''' | |
22 | +class NotEqual(_compare_op) : '''!=''' | |
23 | +#class Unequal(_compare_op) : '''<>''' # Probably NOT needed | |
24 | +class Less(_compare_op) : '''<''' | |
25 | +class LessEqual(_compare_op) : '''<=''' | |
26 | +class Greater(_compare_op) : '''>''' | |
27 | +class GreaterEqual(_compare_op) : '''>=''' | |
28 | +class Is(_compare_op) : '''is''' | |
29 | +class IsNot(_compare_op) : '''is not''' | |
30 | +class In(_compare_op) : '''in''' | |
31 | +class NotIn(_compare_op) : '''not in''' | |
32 | + | |
33 | +class _boolean_op(_operator) : """Operate on boolean values""" | |
34 | +class _ShortCircuit(_operator) : """Operators, that stop when the result is fixed -- resulting in the 'last' value""" | |
35 | 35 | class _bool_SC_op(_boolean_op, _ShortCircuit): pass |
36 | -class And(_bool_SC_op) : 'and' | |
37 | -class Nand(_bool_SC_op) : 'nand' | |
38 | -class Or(_bool_SC_op) : 'or' | |
39 | -class Nor(_bool_SC_op) : 'nor' | |
36 | +class And(_bool_SC_op) : '''and''' | |
37 | +class Nand(_bool_SC_op) : '''nand''' | |
38 | +class Or(_bool_SC_op) : '''or''' | |
39 | +class Nor(_bool_SC_op) : '''nor''' | |
40 | 40 | #XOR/XNOR can not Short Circuit |
41 | -class Xor(_boolean_op) : 'xor' | |
42 | -class Xnor(_boolean_op) : 'xnor' | |
41 | +class Xor(_boolean_op) : '''xor''' | |
42 | +class Xnor(_boolean_op) : '''xnor''' | |
43 | 43 | |
44 | 44 | |
45 | -class _unart_op(_operator): "Operates on only one value" | |
46 | -class Not(_unart_op, _boolean_op) : 'not' #Unary not -- always True/False | |
47 | -class Negative(_unart_op) : '- (unary)' | |
48 | -class Positive(_unart_op) : '+ (unary)' | |
45 | +class _unart_op(_operator) : """Operates on only one value""" | |
46 | +class Not(_unart_op, _boolean_op) : '''not''' #Unary not -- always True/False | |
47 | +class Negative(_unart_op) : '''- (unary)''' | |
48 | +class Positive(_unart_op) : '''+ (unary)''' | |
49 | 49 | |
50 | 50 |