359 Commits

Author SHA1 Message Date
ConnorSkees
9c690140ec allow non-ascii characters in idents 2020-03-30 01:24:50 -04:00
ConnorSkees
1e5dc99793 Revert "properly handle unicode characters in identifiers"
This reverts commit dea0610f9b12a8531ae63eee993c0c6d6546bb72.

This was not properly tested, and results in a number of breakages.
2020-03-30 01:00:17 -04:00
ConnorSkees
dea0610f9b properly handle unicode characters in identifiers 2020-03-30 00:55:14 -04:00
ConnorSkees
6608fe3f2f allow negative numbers multiplication 2020-03-30 00:38:46 -04:00
ConnorSkees
5bbf10b05f allow idents to begin with hyphen 2020-03-29 22:17:56 -04:00
ConnorSkees
07505399da remove the lexer 2020-03-29 19:42:27 -04:00
ConnorSkees
f15ab57573 refactor @if/@else if/@else 2020-03-24 22:13:38 -04:00
ConnorSkees
6d2d9bcb4a escape all symbols and whitespace 2020-03-24 13:36:39 -04:00
ConnorSkees
c29088b558 allow trailing commas 2020-03-24 00:17:18 -04:00
ConnorSkees
0ded248e1e allow comma separated bracketed list in function args 2020-03-23 23:52:15 -04:00
ConnorSkees
430747d06b handle empty bracketed lists 2020-03-23 23:19:13 -04:00
ConnorSkees
dc0d7c4e89 properly emit more variants of character escape 2020-03-23 22:26:52 -04:00
ConnorSkees
981bf27cb8 properly parse and emit bracketed lists 2020-03-23 19:56:24 -04:00
ConnorSkees
4b529a1236 proper error messages in (mixin|function)-exists 2020-03-23 15:22:16 -04:00
ConnorSkees
e6f2c26bc6 type-of(!important) returns 'string' 2020-03-23 15:13:19 -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
0be8828bf0 make better use of num traits 2020-03-22 22:28:54 -04:00
ConnorSkees
0e0b01f595 unquoted, empty strings are null 2020-03-22 18:36:21 -04:00
ConnorSkees
f9730b9ec5 HACK: somewhat handle unicode escapes 2020-03-22 13:45:41 -04:00
ConnorSkees
90fb2e6112 reduce usage of std::process::exit 2020-03-21 14:33:27 -04:00
ConnorSkees
7d12bc8142 implement unary ops + and - 2020-03-21 12:14:02 -04:00
ConnorSkees
e746bc7bda Allow utf-8 characters in idents 2020-03-20 23:53:26 -04:00
ConnorSkees
a64dcaf394 properly bubble up parsing errors 2020-03-20 23:34:23 -04:00
ConnorSkees
1a481000b6 better error message for missing closing paren 2020-03-20 23:21:40 -04:00
ConnorSkees
87462490ac Handle empty lists () 2020-03-20 20:01:57 -04:00
ConnorSkees
dd1c1e5b06 implement builtin function nth 2020-03-20 12:09:08 -04:00
ConnorSkees
fb84361fae parse comma separated lists (somewhat) properly 2020-03-20 10:59:16 -04:00
ConnorSkees
8a811dae9e Properly parse spaced lists 2020-03-19 21:40:36 -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
9bbdf762ce clippy 2020-03-18 20:11:14 -04:00
ConnorSkees
103781e420 ident equality ignores quotekind 2020-03-18 17:23:38 -04:00
ConnorSkees
9630343676 Implement modulo 2020-03-18 11:39:58 -04:00
ConnorSkees
0fe97993f4 Properly handle trailing zeroes
This fixes an edge case in which there were trailing zeros that resulted
from the decimal having a non-zero part outside the precision range.

E.g. if precision were 10, `0.00000000000000000001` would be printed as `0.0000000000`.

This issue occured often when doing unit conversions between cm and in
(and similarly between dpcm and dpi).
2020-03-18 10:34:17 -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
061694bd63 Initial implementation of !global (some issues remain) 2020-03-17 20:13:53 -04:00
ConnorSkees
d560f13289 Refactor how numbers are printed 2020-03-17 12:47:27 -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
d7b22a41a6 Properly handle & in most contexts 2020-03-01 12:03:14 -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
b62b9240c0 Exit with error 2020-02-29 20:02:58 -05:00
ConnorSkees
4e7cf277e1 Improve binary op error messages 2020-02-29 20:01:43 -05:00