Commit Graph

81 Commits

Author SHA1 Message Date
Jeremy Ashkenas
ba3c5298f7 adding a block test and using PARAM_SPLAT to remove the last shift/reduce conflict 2010-01-03 10:46:37 -05:00
Jeremy Ashkenas
3489eec6ee commenting the lexer a bit more 2010-01-01 12:11:35 -05:00
Jeremy Ashkenas
2f69bc1708 expanding the list of tokens that regexes may not follow, according to the Mozilla JS 2.0 docs 2010-01-01 12:08:36 -05:00
Jeremy Ashkenas
0f81dbe913 adding steps to range comprehensions 2010-01-01 11:54:59 -05:00
Jeremy Ashkenas
caf9d627cb allowing expressions within range literals 2010-01-01 10:15:22 -05:00
Jeremy Ashkenas
ad5b5fa458 fixing the regex lexer to make it less agressive when we know it can't possibly be a regex 2010-01-01 09:49:18 -05:00
Jeremy Ashkenas
409283a30f adding splats as arguments to function calls 2009-12-31 19:52:13 -05:00
Jeremy Ashkenas
1d2bb3b2be adding splats to function definitions 2009-12-31 17:50:12 -05:00
Jeremy Ashkenas
edf1fc769f detailed scan_tokens so that the calling function can indicate the number of spaces to move forward (or backward) in the token stream 2009-12-31 13:43:24 -05:00
Jeremy Ashkenas
2231d67cef making assignment token detection a regex like all the others 2009-12-31 13:26:38 -05:00
Jeremy Ashkenas
a376e7f4a3 pulled out all token-stream-rewriting logic into the CoffeeScript::Rewriter -- let the lexer be simpleminded 2009-12-31 13:22:33 -05:00
Jeremy Ashkenas
8762162dff adding proper auto-newline escaping 2009-12-30 22:49:25 -05:00
Jeremy Ashkenas
a6539a030c allowing any manner of indentation in the comments, by adjusting them in the lexer 2009-12-30 22:24:40 -05:00
Jeremy Ashkenas
774e3d3e31 moving the newline escaping detection up higher so indents don't overrule it 2009-12-30 21:41:01 -05:00
Jeremy Ashkenas
cae0b1a038 lex indents with higher precedence than comments 2009-12-30 21:20:30 -05:00
Jeremy Ashkenas
fd83759ef4 more fiddling with the lexer -- the indentation is super fragile 2009-12-30 21:11:54 -05:00
Jeremy Ashkenas
49714656e1 rolling back MULTI_DENT regex 2009-12-30 20:41:32 -05:00
Jeremy Ashkenas
d43d491561 regex cleanup -- eliminating some lookahead because Ruby regexps blow chunks (stackoverflows) when you look (ahead) at them funny. 2009-12-30 20:36:47 -05:00
Jeremy Ashkenas
5c7b77aa4d rewrote 'rewrite_closing_parens' with an explicit loop -- there was a bug when adding to @tokens in the middle of scan_tokens' while loop -- consider scan_tokens to be on probation until further notice 2009-12-30 20:12:30 -05:00
Jeremy Ashkenas
dc821f2e4c be more vigorous about removing mid-expression newlines, 'when' closes implicit blocks, a better comment-detecting regex lexer that doesn't eat outdents 2009-12-30 19:26:37 -05:00
Jeremy Ashkenas
e6cd32f2fc balancing parens closing single-line blocks 2009-12-30 18:52:03 -05:00
Jeremy Ashkenas
5659d1bd49 adding ')' as a SINGLE_CLOSER, although it's probably unsafe 2009-12-30 18:09:43 -05:00
Jeremy Ashkenas
9a7c075e06 parser and test tweaks for whitespace -- tests are coming along 2009-12-30 17:58:27 -05:00
Jeremy Ashkenas
d528db76e6 special case for 'else if' in the lexer 2009-12-30 17:41:14 -05:00
Jeremy Ashkenas
9a946d2ac5 execution tests still pass -- more lexer block insertion and 2 shift/reduces in the grammar now 2009-12-30 15:52:07 -05:00
Jeremy Ashkenas
c822f96145 patching up the lexer and adding a test with trailing whitespace (it was too string for trailing whitespace before) 2009-12-30 15:10:47 -05:00
Jeremy Ashkenas
f93e552cb3 fixin up narwhal factory and adding more implicit blocks to the lexer 2009-12-30 14:32:59 -05:00
Jeremy Ashkenas
ea58be2838 patched up lexer to add indentation to single-line flavors of statements -- let's expand this idea 2009-12-30 13:58:00 -05:00
Jeremy Ashkenas
dd3c9abe15 touch-ups cleanups to the lexer and rebuilding the narwhal libs from whitespace'd versions 2009-12-29 23:01:08 -05:00
Jeremy Ashkenas
d3ab60df78 implementing kamatsu's debt-based lexer for closing delimiters 2009-12-29 22:24:52 -05:00
Jeremy Ashkenas
fd357871f2 put the commas on the outside of expression closers 2009-12-29 20:39:51 -05:00
Jeremy Ashkenas
f5aafc6591 don't break trailing commas with rewrite_closing_parens 2009-12-29 10:20:18 -05:00
Jeremy Ashkenas
ae112d6087 changing array comprehension filters from 'where' to 'when' to mirror case/when 2009-12-29 09:55:37 -05:00
Jeremy Ashkenas
a3129e05ae allowing indentation in object and array literals 2009-12-29 09:25:56 -05:00
Jeremy Ashkenas
f44443b58a still some kinks to work out -- mid-expression blocks 2009-12-29 09:18:41 -05:00
Jeremy Ashkenas
3fbb870d01 using 'where' for array comprehension filtering, after kamatsu's suggestion -- execution tests pass now with significant whitespace 2009-12-29 08:52:26 -05:00
Jeremy Ashkenas
ddd52a1845 first draft of kamatsu's rewrite rules -- finally got whitespace to be flexible enough, I think. 2009-12-28 21:07:47 -05:00
Jeremy Ashkenas
50bdd2668c got lexer balancing parens, indent/outdents, brackets, and curlies 2009-12-28 21:02:40 -05:00
Jeremy Ashkenas
bb84a982ce merging in master 2009-12-28 20:06:23 -05:00
Jeremy Ashkenas
eeef8d3612 got negative ranges working with (much, much) uglier compiled code 2009-12-26 20:35:43 -08:00
Jeremy Ashkenas
b4250c0f02 that's it for now for significant whitespace -- I really just can't make flexible enough 2009-12-26 19:29:59 -08:00
Jeremy Ashkenas
cc0c92d20d smarter but uglier lexer -- now handles most significant whitespace cases. Clean it up though... (newlines after outdents) 2009-12-26 13:22:53 -08:00
Jeremy Ashkenas
191875a85b got a lexer working along the lines of what kamatsu proposes 2009-12-26 10:59:47 -08:00
Jeremy Ashkenas
556f8cb68a little more progress on whitespace 2009-12-26 10:49:11 -08:00
Jeremy Ashkenas
5bed5646be merging in master 2009-12-26 09:59:06 -08:00
Jeremy Ashkenas
08dddb27a0 adding newline escaping, with tests 2009-12-26 09:29:03 -08:00
Jeremy Ashkenas
1ba7c77136 reorganizing test fixtures and adding range literals for array slices 2009-12-25 16:20:28 -08:00
Jeremy Ashkenas
4b5db1181c make equals signs full equals of colons -- you can use them inside of object literals now too 2009-12-25 13:21:17 -08:00
Jeremy Ashkenas
985e0a080b trading aint for isnt -- let's be serious 2009-12-24 17:21:20 -08:00
Jeremy Ashkenas
1c83e68292 got extends back in the language -- use it together with super 2009-12-24 16:49:23 -08:00