60 Commits

Author SHA1 Message Date
ConnorSkees
bb53aaab8a replace std::borrow::Cow with beef::Cow 2020-05-25 13:09:20 -04:00
ConnorSkees
ec83a9dff7 clippy 2020-05-24 17:41:24 -04:00
ConnorSkees
812e9fec9c rustfmt 2020-05-24 13:50:45 -04:00
ConnorSkees
2aaaf59e4f make division with number as lhs more robust 2020-05-24 08:17:08 -04:00
ConnorSkees
2a79fa2a40 implement some of the more esoteric binary ops
addition, subtraction, and multiplication of functions and maps, along
with correct error messages and tests
2020-05-22 23:30:48 -04:00
ConnorSkees
80e32b4290 emit proper error for map as lhs of addition 2020-05-22 20:34:41 -04:00
ConnorSkees
283a2097ff rename Value::Ident to Value::String 2020-05-22 14:35:41 -04:00
ConnorSkees
969726eb30 Revert string interning
There existed issues related to multithreaded tests that are difficult
to resolve. In the future interning may be reimplemented but in a more
limited capacity.

The motivation behind interning *values* was that it appeared checking
for named colors was responsible for much of the time lost when parsing
unquoted strings. If interning were to be reimplemented, it may make
sense to limit it solely to identifiers and style properties.
2020-05-22 14:20:31 -04:00
ConnorSkees
b15740976c remove superfluous allocations when resolving idents 2020-05-22 13:49:19 -04:00
ConnorSkees
5bed62c404 keywords are thread_local 2020-05-22 13:47:48 -04:00
ConnorSkees
9a6c8ce019 add string interning
this seems to improve performance by ~20% as well as significantly
decrease memory usage
2020-05-21 22:46:40 -04:00
ConnorSkees
4ee82e66be refactor comparison ops to src/value/ops.rs 2020-05-16 22:45:32 -04:00
ConnorSkees
01858ff543 use static strings inside unit conversion table 2020-05-06 11:55:49 -04:00
ConnorSkees
26df276266 Value::to_css_string returns a Cow<'static, str> 2020-05-05 11:08:34 -04:00
ConnorSkees
3805eaab2b clippy 2020-04-21 18:22:26 -04:00
ConnorSkees
b6cf00c87b addition between number and unary ops 2020-04-20 02:16:22 -04:00
ConnorSkees
23390238b9 implement addition between num + bool 2020-04-20 02:13:28 -04:00
ConnorSkees
759e5fdfef simplify ident addition/subtraction 2020-04-18 13:44:11 -04:00
ConnorSkees
52c6ed0b64 remove QuoteKind::Single variant 2020-04-18 13:19:30 -04:00
ConnorSkees
62f9f7da4f integrate error handling with codemap 2020-04-12 19:37:12 -04:00
ConnorSkees
d550615957 implement order of operations 2020-04-05 17:34:30 -04:00
ConnorSkees
3f98d1abca initial implementation of get-function() 2020-04-03 21:38:34 -04:00
ConnorSkees
39031aefff initial implementation of varargs 2020-04-02 13:33:26 -04:00
ConnorSkees
d48560781c unquoted plus quoted is unquoted 2020-04-01 21:43:58 -04:00
ConnorSkees
07c8f7b2a9 remove leftover dbg! 2020-04-01 15:49:49 -04:00
ConnorSkees
6df6bcf1da refactor value parsing 2020-04-01 15:32:52 -04:00
ConnorSkees
08f7dba00d implement integer division to an extent 2020-03-31 02:31:14 -04:00
ConnorSkees
8a600a4f07 implement number minus ident 2020-03-31 01:52:52 -04:00
ConnorSkees
beff60ad31 clippy 2020-03-30 17:06:23 -04:00
ConnorSkees
eb478b632d initial implementation of maps 2020-03-30 15:44:06 -04:00
ConnorSkees
6608fe3f2f allow negative numbers multiplication 2020-03-30 00:38:46 -04:00
ConnorSkees
f4f9a79b2b handle large integers in builtin string functions 2020-03-23 14:03:47 -04:00
ConnorSkees
98a99684b7 refactor quote normalization 2020-03-23 12:12:08 -04:00
ConnorSkees
7d12bc8142 implement unary ops + and - 2020-03-21 12:14:02 -04:00
ConnorSkees
dcb712e3d4 Refactor unit conversions into separate file 2020-03-19 16:24:31 -04:00
ConnorSkees
0ad5e554b3 Add and subtract lists 2020-03-19 14:20:16 -04:00
ConnorSkees
d470074611 Improve chaining ops 2020-03-19 08:36:11 -04:00
ConnorSkees
9630343676 Implement modulo 2020-03-18 11:39:58 -04:00
ConnorSkees
efaa33088b Implement unit conversions in numeric subtraction 2020-03-18 10:14:35 -04:00
ConnorSkees
b3b5163113 Implement unit conversions in numeric addition 2020-03-18 10:08:40 -04:00
ConnorSkees
3b5dd73a65 Support arbitrary amount of numbers multiplied together 2020-03-17 10:06:24 -04:00
ConnorSkees
f57b08069d Handle unit multiplication 2020-03-16 21:29:00 -04:00
ConnorSkees
84e402023a @content boilerplate 2020-03-01 17:06:55 -05:00
ConnorSkees
3181d58441 refactor and cleaning 2020-03-01 14:53:52 -05:00
ConnorSkees
14eb173c56 Refactor unknown at rule parsing to separate file 2020-03-01 08:02:59 -05:00
ConnorSkees
286f67b984 ident addition chaining 2020-03-01 07:42:12 -05:00
ConnorSkees
547ac7415a Improve color ops error messages 2020-02-29 20:14:51 -05:00
ConnorSkees
4e7cf277e1 Improve binary op error messages 2020-02-29 20:01:43 -05:00
ConnorSkees
a4cd8ae02c rustfmt 2020-02-22 11:59:33 -05:00
ConnorSkees
fa665ae55f color addition is undefined 2020-02-17 10:39:32 -05:00