Natalie Weizenbaum
f460ebb2a9
Parse functions -> constructors
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
1987d0b055
Add unique-id().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
af4234aedd
Add call().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
ad1bbcc9bc
Add comparable().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
69b61b1dc9
Fix unit stuff.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
4a42f948f9
Add unit(), unitless().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
138bb6bace
Add type-of.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
0b7a448d76
Add function-exists(), mixin-exists().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
a9122ad162
Add variable-exists(), global-variable-exists().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
8455903435
Add feature-exists().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
44d9ee54a9
Add selector-parse().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
534ac2e511
Add simple-selectors().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
046e17da17
Add is-superselector().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
754b1895ac
Add selector-unify().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
a993a7667e
Add selector-replace().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
63ec19f469
Fix a formatting nit.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
f449fa0a98
Fix another extend bug.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
6fc656d260
Fix an extend bug.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
54f4a23d99
Add selector-extend().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
4a4cc3c277
Add selector-append().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
29ff1887a8
Add selector-nest().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
a5c1021035
Tweak function headers.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
5800b9358f
Add map-has-key() and keywords().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
643771349f
Add map-keys(), map-values().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
7ece4671fc
Add map-remove().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
3421172bcb
Add map-get(), map-merge().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
216ffece4b
Fix some map/list equivalence stuff.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
f3a4b07212
Fix fuzzyHashCode() to always return an int.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
6a949b027a
Add index(), list-separator(), is-bracketed().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
6debf1e39a
Add zip().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
f7fbbb075a
Add append().
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
4c9751fbb4
Add join().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
582afa3a20
Add set-nth().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
7418b78902
Add nth().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
d316f828fa
Add length().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
816e32f08b
Add Environment.defineFunction().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
158ac11d43
Add TODOs for persistent data structures.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
8f9d2d3207
Add random().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
aed2a99234
Add max() and min().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
0bf39726a3
Add round(), ceil(), floor(), abs().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
b0a675ab14
Add percentage().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
e1a6178ced
Add to-upper-case() and to-lower-case().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
8d5228b368
Add str-slice().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
ff2d9f89e9
Add str-index().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
8fd5818977
Add str-insert().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
41eec3c779
Add str-length().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
b8d89ad80d
Add quoted(), unquoted().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
fb045bb955
Add ie-hex-str().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
7e0f642cd1
Use fuzzy rounding for consistency with Ruby Sass.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
4ff89b1aff
Add change-color().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
3cbbe101f1
Add scale-color().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
fc4e6afad8
Add adjust-color().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
8b8f6bfbee
Add opacify() et al
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
04b012befe
Add opacity().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
09a8198a01
Add alpha().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
f499f31b64
Add grayscale(), complement(), invert().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
5873083110
Add lighten(), darken(), saturate(), desaturate().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
d2591122db
Add adjust-hue().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
b529ac643c
Add hsla(), hue(), saturation(), and lightness().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
30df7507c8
Add hsl().
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
dd85c34ae2
Use fuzzy comparisons for number operations.
...
Also implement ==, which apparently didn't exist for numbers yet.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
dbd55e16d8
Add red(), green(), and blue().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
048d7cff33
Add mix().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
227329f9c3
Add rgba().
...
This also adds built-in function overloading. This adds some extra
layers to the default function-call logic which could be avoided by
handling overloading purely in the callbacks of functions that require
it, but it's not clear how to share logic gracefully between the perform
visitor and function helpers.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
5cc5bf1914
Add rgb().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
dd8a0efd66
Add an ArgumentList class.
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
Natalie Weizenbaum
3329ba80b8
Re-add CssValue.toString().
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
af61587807
Better known identifier parsing.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
913e81faaa
Remove fixed TODOs.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
bde9c353f5
Further improve list serialization.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
ee7c3e5c3c
Support expression &.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
db0cea9870
Fix some bugs with combinators.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
5e23c99b22
Get rid of more redundant toString() definitions.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
53635def75
Fix map serialization.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
232ee90b4d
Fix parenthesis parsing.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
efd336dd20
Support null.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
1832879845
Support @each
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
e873242ac4
Support @while
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
80f0afb484
Support @for.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
202fcad40f
Name all at-rules *Rule.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
f85b21a3c3
Support @error
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
69aabed63d
Support @warn
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
da1cef3f6f
Move advanced list paren logic to serializer.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
7a5029b5ae
Support @debug.
2016-09-30 12:41:41 -07:00