Commit Graph

167 Commits

Author SHA1 Message Date
Jeremy Ashkenas
adca8183de adding splats to function definitions 2009-12-31 17:50:12 -05:00
Jeremy Ashkenas
c187f2160f expressions nested in expressions made for some indentation issues -- statements are now responsible for their own leading indentation 2009-12-31 16:50:46 -05:00
Jeremy Ashkenas
9f6233473e enabling multi-line array and object comprehensions 2009-12-31 16:09:27 -05:00
Jeremy Ashkenas
f7e49eaae4 using push for comprehension results so that it works with object keys, and adding a test for object comprehensions 2009-12-31 15:03:32 -05:00
Jeremy Ashkenas
3042a50f87 adding weepy's suggestion to use (for .. in) for array comprehensions, which means that they're now object comprehensions as well 2009-12-31 14:52:14 -05:00
Jeremy Ashkenas
c8e820e851 done commenting the rewriter 2009-12-31 13:45:07 -05:00
Jeremy Ashkenas
66f92e770d 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
f3472b7437 making assignment token detection a regex like all the others 2009-12-31 13:26:38 -05:00
Jeremy Ashkenas
fdf2a76c53 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
34bf4ce325 making all functions named functions, if children of an immediate assignment 2009-12-30 23:13:22 -05:00
Jeremy Ashkenas
4251aa30c6 adding proper auto-newline escaping 2009-12-30 22:49:25 -05:00
Jeremy Ashkenas
3ad9316fd0 allowing any manner of indentation in the comments, by adjusting them in the lexer 2009-12-30 22:24:40 -05:00
Jeremy Ashkenas
e4ae324e8f don't print the confusing indentation numbers when raising ParseErrors for indentation 2009-12-30 21:57:03 -05:00
Jeremy Ashkenas
3f27b0ff72 the underscore example parses now -- added line number information to parenthetical nodes 2009-12-30 21:44:51 -05:00
Jeremy Ashkenas
71cf6ab031 moving the newline escaping detection up higher so indents don't overrule it 2009-12-30 21:41:01 -05:00
Jeremy Ashkenas
f3e9a18c3c lex indents with higher precedence than comments 2009-12-30 21:20:30 -05:00
Jeremy Ashkenas
62725c5a52 more fiddling with the lexer -- the indentation is super fragile 2009-12-30 21:11:54 -05:00
Jeremy Ashkenas
cc66b31e69 rolling back MULTI_DENT regex 2009-12-30 20:41:32 -05:00
Jeremy Ashkenas
199d314903 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
f2a805db24 fixed up the comment/assignment interleaving in nodes.rb 2009-12-30 20:24:24 -05:00
Jeremy Ashkenas
b7e29aac4d 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
2ee04b8421 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
65ce74fbcb big milestone. examples/code.coffee now compiles correctly under the new whitespace regime 2009-12-30 18:59:33 -05:00
Jeremy Ashkenas
4b520d04e3 balancing parens closing single-line blocks 2009-12-30 18:52:03 -05:00
Jeremy Ashkenas
7e58d1d914 adding ')' as a SINGLE_CLOSER, although it's probably unsafe 2009-12-30 18:09:43 -05:00
Jeremy Ashkenas
4097a81456 parser and test tweaks for whitespace -- tests are coming along 2009-12-30 17:58:27 -05:00
Jeremy Ashkenas
c4413b933b removed the final shift/reduce errors -- back to zero for the first time in a long time 2009-12-30 17:45:47 -05:00
Jeremy Ashkenas
e3da53e3df special case for 'else if' in the lexer 2009-12-30 17:41:14 -05:00
Jeremy Ashkenas
675a5f5d7c 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
02c19b3170 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
96859e749b fixing up narwhal integration (again) 2009-12-30 15:05:05 -05:00
Jeremy Ashkenas
622ddea343 fixin up narwhal factory and adding more implicit blocks to the lexer 2009-12-30 14:32:59 -05:00
Jeremy Ashkenas
8e8efe4288 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
df5c5d9fe2 merged in master branch again 2009-12-30 13:38:50 -05:00
Jeremy Ashkenas
cf7ce8a1af fixing the double-printing bug with coffee -r 2009-12-30 13:34:25 -05:00
Jeremy Ashkenas
893908b8fe removing dots from whitespace examples 2009-12-30 00:22:27 -05:00
Jeremy Ashkenas
bc0214730a 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
57d0f25054 implementing kamatsu's debt-based lexer for closing delimiters 2009-12-29 22:24:52 -05:00
Jeremy Ashkenas
f456d1b78e whitespace parser down to 4 shift/reduce errors -- good enough for me 2009-12-29 21:46:15 -05:00
Jeremy Ashkenas
332f499c31 put the commas on the outside of expression closers 2009-12-29 20:39:51 -05:00
Jeremy Ashkenas
92cdeb093e don't break trailing commas with rewrite_closing_parens 2009-12-29 10:20:18 -05:00
Jeremy Ashkenas
5c7dee556a changing array comprehension filters from 'where' to 'when' to mirror case/when 2009-12-29 09:55:37 -05:00
Jeremy Ashkenas
8c6e5d0b37 allowing indentation in object and array literals 2009-12-29 09:25:56 -05:00
Jeremy Ashkenas
1128beb49b still some kinks to work out -- mid-expression blocks 2009-12-29 09:18:41 -05:00
Jeremy Ashkenas
0963eea60e 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
c1cdedd260 moving along with whitespace 2009-12-28 23:08:02 -05:00
Jeremy Ashkenas
3b0b93ec06 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
9c2f66ff13 got lexer balancing parens, indent/outdents, brackets, and curlies 2009-12-28 21:02:40 -05:00
Jeremy Ashkenas
1b688d7077 merging in master 2009-12-28 20:06:23 -05:00
Jeremy Ashkenas
e227a3bc69 fixing relative path for execution tests 2009-12-28 16:23:48 -05:00