Commit Graph

124 Commits

Author SHA1 Message Date
Natalie Weizenbaum
845c1b8d8d Add missing scanner.expectDone() calls. 2016-10-30 14:54:09 -07:00
Natalie Weizenbaum
c9bbcbda3a Fix initial media query parsing. 2016-10-30 14:53:58 -07:00
Natalie Weizenbaum
e28b399c0b Fix an indented syntax parsing bug. 2016-10-30 13:06:23 -07:00
Natalie Weizenbaum
bc5852f64d Support multiple @import arguments. 2016-10-29 10:58:56 -07:00
Natalie Weizenbaum
9edb2bb447 Fix a selector parsing bug. 2016-10-29 10:55:10 -07:00
Natalie Weizenbaum
868286911b Reparse media queries at perform-time. 2016-10-28 16:55:56 -07:00
Natalie Weizenbaum
6f6eb79dae Fix "2n of .foo" parsing. 2016-10-28 15:36:30 -07:00
Natalie Weizenbaum
d0771e7fab Parse progid expressions like Ruby Sass. 2016-10-28 14:20:19 -07:00
Natalie Weizenbaum
324e2c6375 Fix comma-separated keyframe selectors. 2016-10-28 13:59:58 -07:00
Natalie Weizenbaum
be8b26191d Support import clauses. 2016-10-23 17:01:21 -07:00
Natalie Weizenbaum
e615c5d15f Require semicolons between childless statements. 2016-10-22 01:00:04 -07:00
Natalie Weizenbaum
a3142d526e Support reference combinators. 2016-10-21 21:21:30 -07:00
Natalie Weizenbaum
18cc8d3f66 Support keyframes. 2016-10-20 23:07:35 -07:00
Natalie Weizenbaum
271f899d3b Support slash numbers in lists. 2016-10-20 17:50:02 -07:00
Natalie Weizenbaum
40ca7ee0f9 Fix MixinRule.hasContent. 2016-10-20 15:24:04 -07:00
Natalie Weizenbaum
7b4d26cc5a Properly parse indented-syntax empty selectors.
Also warn about them.
2016-10-20 14:35:45 -07:00
Natalie Weizenbaum
0d56c6fce2 Work around an analyzer error. 2016-10-19 23:09:51 -07:00
Natalie Weizenbaum
3e2f202dee Properly parse 1px-2px. 2016-10-19 22:54:47 -07:00
Natalie Weizenbaum
e61862a715 Support !important. 2016-10-19 21:46:53 -07:00
Natalie Weizenbaum
9b05b1c24e Allow @at-root with selectors. 2016-10-19 21:17:57 -07:00
Natalie Weizenbaum
3941e4debd Allow declarations in @at-root. 2016-10-19 20:44:53 -07:00
Natalie Weizenbaum
7a29fa5c55 Parse namespaced universal selectors. 2016-10-18 23:13:32 -07:00
Natalie Weizenbaum
021299b9f2 Allow plain imports in control directives. 2016-10-18 23:11:02 -07:00
Natalie Weizenbaum
f476747e43 Fix valueless attribute selectors. 2016-10-18 23:06:35 -07:00
Natalie Weizenbaum
a2497adda2 Fix parenthesis detection. 2016-10-18 23:03:09 -07:00
Natalie Weizenbaum
bd042460f7 Fix trailing selector commas. 2016-10-18 22:20:50 -07:00
Natalie Weizenbaum
f71ff95cb4 Fix !global parsing. 2016-10-18 22:00:44 -07:00
Natalie Weizenbaum
4befdfff42 Consume whitespace after SCSS comments. 2016-10-18 18:17:27 -07:00
Natalie Weizenbaum
84e4cb25b8 Properly parse or. 2016-10-18 17:57:25 -07:00
Natalie Weizenbaum
75229d525d Properly parse -#{}. 2016-10-18 17:51:17 -07:00
Natalie Weizenbaum
965e553fa9 Fix if() parsing. 2016-10-18 17:48:48 -07:00
Natalie Weizenbaum
794bdee476 Allow functions named after constants. 2016-10-18 16:36:10 -07:00
Natalie Weizenbaum
c8f0126f0b Support explicit @charset. 2016-10-18 16:22:42 -07:00
Natalie Weizenbaum
0f6f44f939 Fix parsing of binary -. 2016-10-18 15:52:54 -07:00
Natalie Weizenbaum
e7024437d8 Use Ruby Sass string semantics. 2016-10-18 15:17:46 -07:00
Natalie Weizenbaum
8969fc75f2 Store numbers' original values. 2016-10-17 16:50:43 -07:00
Natalie Weizenbaum
441ca87f37 Way more API docs. 2016-10-15 02:57:29 -07:00
Natalie Weizenbaum
d5f9ce4ed0 A few API docs. 2016-10-12 12:27:28 -07:00
Natalie Weizenbaum
8136c16cab A few more API docs. 2016-10-11 00:27:19 -07:00
Natalie Weizenbaum
4c418603e0 API docs for days. 2016-10-09 23:51:20 -07:00
Natalie Weizenbaum
3e10e24341 Even more API docs. 2016-10-09 20:57:28 -07:00
Natalie Weizenbaum
3a0c5ce09c More API docs. 2016-10-09 16:36:36 -07:00
Natalie Weizenbaum
2289901df8 Support url() imports. 2016-10-07 14:05:54 -07:00
Natalie Weizenbaum
c42afb4f16 Support url() in static declaration values. 2016-10-07 14:05:29 -07:00
Natalie Weizenbaum
970c63ba41 Support url() in (interpolated) generic values. 2016-10-07 14:05:29 -07:00
Natalie Weizenbaum
ae9d4e312f Support url() expressions. 2016-10-07 14:05:29 -07:00
Natalie Weizenbaum
0e8c548955 Properly wrap URI parse errors. 2016-10-07 14:05:29 -07:00
Natalie Weizenbaum
6c36a01d89 Support @else. 2016-10-07 14:05:29 -07:00
Natalie Weizenbaum
89e095d2c2 Add a bunch of API docs. 2016-09-30 18:42:41 -07:00
Natalie Weizenbaum
a6065fb4ab Reformat runtime parse errors. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
10ece577c3 Parse colors. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
e07ae949a1 Error for duplicate arguments. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
01915c3fa8 Tweak TODO. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
f7c9ccc9ba Support special functions. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
99c83a5834 Partial selector newline support.
In particular, newlines in selectors lists are now preserved during
parent selector resolution and emitted by the serializer. The output
matches Ruby Sass, but I'm not sure it's actually the best possible.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
25c16b975e Fix a parser bug. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
4289011a84 Parse em properly. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
b47067ea4e Add if(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
534ac2e511 Add simple-selectors(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
29ff1887a8 Add selector-nest(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
10d7da9d73 isBracketed -> hasBrackets
This is consistent with SassString.hasQuotes.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
84d1339043 Parse function declaration parameters. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
e4e445b8d4 Fix argument parsing. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
8bbaf46fe6 Use the tuple package. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
c9af638f54 Support for units 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
bacc1c4529 Unify strings and identifiers.
The separation makes sense conceptually, but it would make string
functions a lot harder to write.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
9ac48fbc05 Add support for binary operations. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
7fb7804a52 Refactor list parsing.
Moving all list parsing into a single method with a giant switch will
make it possible to parse binary operations there in the future.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
33f56f31ff _spaceListOrValue -> _spaceListOrExpression 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
bcaaa1103f UnaryOperatorExpression -> UnaryOperationExpression 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
5d71ac78b9 Indented syntax parser. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
bca0907897 ignoreComments() -> whitespace() 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
aab7c741c7 Refactor comment statement parsing. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
3a2b7ca9df Split the parser up.
There are now separate parsers for selectors and at-root queries, since
those are parsed independently of the main stylesheet. The Parser class
contains utilities that are useful across different parsers.
2016-09-30 12:41:41 -07:00