62 Commits

Author SHA1 Message Date
ConnorSkees
076ee7ca4e remove redundant clone of identifier 2020-05-23 13:53:24 -04:00
ConnorSkees
33c5acc35f use Identifier for FuncArg 2020-05-22 22:43:29 -04:00
ConnorSkees
2102781f62 create structure for identifiers
it looks like rustfmt also updated during this commit, so there are some
formatting changes
2020-05-22 18:21:18 -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
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
09e6568c39 update rustfmt 2020-05-16 16:56:17 -04:00
ConnorSkees
edb9dde259 simplify Display on QuoteKind 2020-05-06 12:07:27 -04:00
ConnorSkees
769b7628d8 refactor QualifiedName into common 2020-04-26 23:52:32 -04:00
ConnorSkees
6fca360b81 remove superfluous impl of Display for ListSeparator 2020-04-26 23:03:30 -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
dd4a48165a clippy 2020-04-01 18:09:58 -04:00
ConnorSkees
f46d53d3cc implement keyword operators 2020-04-01 17:40:35 -04:00
ConnorSkees
6df6bcf1da refactor value parsing 2020-04-01 15:32:52 -04:00
ConnorSkees
08dcf0fae7 remove unused symbol and whitespace structs 2020-03-30 10:47:19 -04:00
ConnorSkees
07505399da remove the lexer 2020-03-29 19:42:27 -04:00
ConnorSkees
981bf27cb8 properly parse and emit bracketed lists 2020-03-23 19:56:24 -04:00
ConnorSkees
98a99684b7 refactor quote normalization 2020-03-23 12:12:08 -04:00
ConnorSkees
1127897bd8 rustfmt 2020-03-22 00:56:41 -04:00
ConnorSkees
5914a07d22 handle backticks and control characters 2020-03-21 17:29:12 -04:00
ConnorSkees
284bc8ea6d Implement builtin function list-separator() 2020-03-20 12:32:33 -04:00
ConnorSkees
061694bd63 Initial implementation of !global (some issues remain) 2020-03-17 20:13:53 -04:00
ConnorSkees
3181d58441 refactor and cleaning 2020-03-01 14:53:52 -05:00
ConnorSkees
7d39b0c86a Evaluate binary ops when inserting variables 2020-02-29 20:09:41 -05:00
ConnorSkees
b85b122e3d Preserve case of keywords from, to, and through 2020-02-29 12:11:40 -05:00
ConnorSkees
1b79127cc5 Initial implementation of @for 2020-02-29 11:46:48 -05:00
ConnorSkees
8619f88806 Remove unused QuoteKind impl 2020-02-28 00:41:14 -05:00
ConnorSkees
eab0049566 Use SassError in more places 2020-02-17 09:22:41 -05:00
ConnorSkees
e7de93bd38 Proper error message for undefined variables 2020-02-17 07:55:03 -05:00
ConnorSkees
4c70b84ed7 Calls to undefined functions should be treated as idents 2020-02-09 20:26:14 -05:00
ConnorSkees
44d257494a Properly print decimal numbers 2020-02-08 18:43:18 -05:00
ConnorSkees
fa582b3316 Treat - and _ as the same in identifiers 2020-02-08 17:26:01 -05:00
ConnorSkees
6471ce8f29 Refactor value 2020-02-08 16:08:54 -05:00
ConnorSkees
89060a0e83 Implement ident substraction 2020-02-02 14:46:58 -05:00
ConnorSkees
d464124ae0 Handle !default 2020-01-29 21:02:32 -05:00
ConnorSkees
7fa0ee885e Refactor QuoteKind to common.rs 2020-01-26 16:23:37 -05:00
ConnorSkees
8756adaaaf Truncate keywords (some of them probably shouldn't be keywords) 2020-01-26 12:34:04 -05:00
ConnorSkees
709ed5c6b5 Handle variables as parameters to function calls 2020-01-26 09:13:39 -05:00
ConnorSkees
b482a26934 Refactor AtRule parsing 2020-01-25 13:07:55 -05:00
ConnorSkees
6271da50eb Add functions to scope 2020-01-25 12:47:38 -05:00
ConnorSkees
53988b377c Refactor AtRuleKind into separate file 2020-01-25 12:43:07 -05:00
ConnorSkees
b0447ddc69 Add + - * / % ops 2020-01-25 09:56:27 -05:00
ConnorSkees
efe056d3c7 Create AtRuleKind::Else variant 2020-01-20 18:21:07 -05:00
ConnorSkees
25b4bebdf8 Make everything private except StyleSheet 2020-01-20 13:15:47 -05:00
ConnorSkees
0824a019c2 Properly lex ?, |, \f, and = 2020-01-20 11:39:05 -05:00
ConnorSkees
33244c34d7 Rename AtRule enum to AtRuleKind 2020-01-20 08:36:06 -05:00
ConnorSkees
b28295d2b1 Refactor mixin parsing into mixin.rs 2020-01-18 19:54:47 -05:00
ConnorSkees
99dfcb6756 Use Self:: for matching 2020-01-18 19:11:19 -05:00
ConnorSkees
b05301f442 MVP of mixin args 2020-01-17 14:44:55 -05:00