Warning, /webapps/ocs-webserver/library/lessphp/tests/inputs/math.less is written in an unsupported language. File is not indexed.
0001 0002 .unary { 0003 // all operators are parsable as unary operators, anything 0004 // but - throws an error right now though, 0005 0006 // this gives two numbers 0007 sub: 10 -5; 0008 // add: 10 +5; // error 0009 // div: 10 /5; // error 0010 // mul: 10 *5; // error 0011 } 0012 0013 .spaces { 0014 // we can make the parser do math by leaving out the 0015 // space after the first value, or putting spaces on both sides 0016 0017 sub1: 10-5; 0018 sub2: 10 - 5; 0019 0020 add1: 10+5; 0021 add2: 10 + 5; 0022 0023 // div: 10/5; // this wont work, read on 0024 div: 10 / 5; 0025 0026 mul1: 10*5; 0027 mul2: 10 * 5; 0028 } 0029 0030 // these properties have divison not in parenthases 0031 .supress-division { 0032 border-radius: 10px / 10px; 0033 border-radius: 10px/12px; 0034 border-radius: hello (10px/10px) world; 0035 @x: 10px; 0036 font: @x/30 sans-serif; 0037 font: 10px / 20px sans-serif; 0038 font: 10px/22px sans-serif; 0039 border-radius:0 15px 15px 15px / 0 50% 50% 50%; 0040 } 0041 0042 0043 .parens { 0044 // if you are unsure, then just wrap the expression in parentheses and it will 0045 // always evaluate. 0046 0047 // notice we no longer have unary operators, and these will evaluate 0048 sub: (10 -5); 0049 add: (10 +5); 0050 div1: (10 /5); 0051 div2: (10/5); // no longer interpreted as the shorthand 0052 mul: (10 *5); 0053 } 0054 0055 .keyword-names { 0056 // watch out when doing math with keywords, - is a valid keyword character 0057 @a: 100; 0058 @b: 25; 0059 @a-: "hello"; 0060 height: @a-@b; // here we get "hello" 25, not 75 0061 } 0062 0063 0064 .negation { 0065 neg1: -(1px); 0066 neg2: 0-(1px); 0067 0068 @something: 10; 0069 neg3: -@something; 0070 } 0071 0072 0073 // and now here are the tests 0074 0075 .test { 0076 single1: (5); 0077 single2: 5+(5); 0078 single3: (5)+((5)); 0079 0080 parens: (5 +(5)) -2; 0081 // parens: ((5 +(5)) -2); // FAILS - fixme 0082 0083 math1: (5 + 5)*(2 / 1); 0084 math2: (5+5)*(2/1); 0085 0086 complex1: 2 * (4 * (2 + (1 + 6))) - 1; 0087 complex2: ((2+3)*(2+3) / (9-4)) + 1; 0088 complex3: (2px + 4px) 1em 2px 2; 0089 0090 @var: (2 * 2); 0091 var1: (2 * @var) 4 4 (@var * 1px); 0092 var2: (@var * @var) * 6; 0093 var3: 4 * (5 + 5) / 2 - (@var * 2); 0094 0095 complex4: (7 * 7) + (8 * 8); 0096 } 0097 0098 .percents { 0099 p1: 100 * 10%; 0100 p2: 10% * 100; 0101 p3: 10% * 10%; 0102 0103 p4: 100px * 10%; // lessjs makes this px 0104 p5: 10% * 100px; // lessjs makes this % 0105 0106 p6: 20% + 10%; 0107 p7: 20% - 10%; 0108 0109 p8: 20% / 10%; 0110 } 0111 0112 .misc { 0113 x: 10px * 4em; 0114 y: 10 * 4em; 0115 } 0116 0117 0118 .cond { 0119 c1: 10 < 10; 0120 c2: 10 >= 10; 0121 } 0122