35 Commits

Author SHA1 Message Date
ConnorSkees
76b2685894 Lex and parse named colors 2020-02-07 00:10:43 -05:00
ConnorSkees
89060a0e83 Implement ident substraction 2020-02-02 14:46:58 -05:00
ConnorSkees
3b3de2d83b Cleanups to make compiler happy 2020-02-01 19:39:20 -05:00
ConnorSkees
d464124ae0 Handle !default 2020-01-29 21:02:32 -05:00
ConnorSkees
ae708091a6 Allow numbers in variable names 2020-01-27 17:21:18 -05:00
ConnorSkees
15edae53d6 Lex attributes in a much more robust way :) 2020-01-26 19:07:24 -05:00
ConnorSkees
a8ebc91702 Normalize newlines in comments 2020-01-26 16:50:08 -05:00
ConnorSkees
357647b19c rustfmt 2020-01-26 15:26:45 -05:00
ConnorSkees
63dd66f0f7 Handle arbitrary attribute modifiers (kinda) 2020-01-26 12:23:21 -05:00
ConnorSkees
65030eb7ea Handle uppercase I in attribute selectors 2020-01-26 11:47:00 -05:00
ConnorSkees
53988b377c Refactor AtRuleKind into separate file 2020-01-25 12:43:07 -05:00
ConnorSkees
dc82d999e9 Lex % as symbol rather than unit 2020-01-22 00:40:32 -05:00
ConnorSkees
d85f9d32f6 Make @import tests work 2020-01-20 16:00:37 -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
5b631fb588 don't count chars in comment 2020-01-17 10:38:59 -05:00
ConnorSkees
64c6a35add Refactor to static functions rather than methods for reusability 2020-01-17 08:14:10 -05:00
ConnorSkees
cbef775ef4 Consolidate tests to be on CSS output rather than internal representation 2020-01-14 20:23:05 -05:00
ConnorSkees
2439579d20 Initial implementation of @include and mixin eval 2020-01-12 19:56:58 -05:00
ConnorSkees
77d5c8ea2e Lex interpolations 2020-01-12 10:52:51 -05:00
ConnorSkees
fd423ce300 Initial implementation of @debug and @warn 2020-01-11 20:41:36 -05:00
ConnorSkees
c73be13024 Handle pseudo selectors with arguments 2020-01-11 19:16:59 -05:00
ConnorSkees
ebfeb35341 Refactor Selector to be Vec rather than recursive enum
The initial implementation of Selector was a recursive
enum with boxed variants. This new implementation is linear
and relies on only one level of indirection.
2020-01-11 14:51:31 -05:00
ConnorSkees
a3ecfbbf3e Preserve toplevel multiline comments and add tests for them 2020-01-08 20:39:05 -05:00
ConnorSkees
fb877fa524 Preserve multiline comments in lexer 2020-01-07 19:58:13 -05:00
ConnorSkees
8320c3de77 Implement basic at rule parsing and @error 2020-01-07 18:37:28 -05:00
ConnorSkees
bcfd809c92 Fix bug where the entire iterator would be eaten by a comment 2020-01-06 18:45:41 -05:00
ConnorSkees
adc94ffaa5 Lex tokens starting with ! (!important and !=) 2020-01-06 00:39:49 -05:00
ConnorSkees
61a6b5eeeb Refactor handling of styles to handle spaces and quotes 2020-01-05 20:51:14 -05:00
ConnorSkees
e3aae97767 Accept _ and - in identifiers 2020-01-05 20:26:47 -05:00
ConnorSkees
31fd8f8127 Stop infinite loop when lexing variables 2020-01-05 19:10:43 -05:00
ConnorSkees
3d0ae02b0a clippy & rustfmt 2020-01-05 12:52:50 -05:00
ConnorSkees
e5f70e0a7a Handle single and multi line comments 2020-01-05 12:22:38 -05:00
ConnorSkees
f4278a29b7 Implement lexing, basic parsing, and pretty printing 2020-01-04 22:55:04 -05:00