54 Commits

Author SHA1 Message Date
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
ConnorSkees
844b506872 Value operations can fail 2020-02-17 10:27:04 -05:00
ConnorSkees
f8a09bec6e Initial implementation of Div for Value::Dimension 2020-02-14 08:15:19 -05:00
ConnorSkees
4c70b84ed7 Calls to undefined functions should be treated as idents 2020-02-09 20:26:14 -05:00
ConnorSkees
7fcfeee97e clippy 2020-02-09 19:07:44 -05:00
ConnorSkees
0ec2c46744 rustfmt 2020-02-09 18:28:24 -05:00
ConnorSkees
405a1c2d42 Implement mul and div for Value and builtin function percentage() 2020-02-09 16:05:07 -05:00