From 73a0777705cdf780a449f3dc4fa92938e279b75a Mon Sep 17 00:00:00 2001 From: Jeremy Ashkenas Date: Thu, 24 Dec 2009 14:51:53 -0800 Subject: [PATCH] outdent lexing is correct now, I think --- lib/coffee_script/lexer.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/coffee_script/lexer.rb b/lib/coffee_script/lexer.rb index bb25ed07..aeb266d4 100644 --- a/lib/coffee_script/lexer.rb +++ b/lib/coffee_script/lexer.rb @@ -122,6 +122,7 @@ module CoffeeScript @i += comment.length end + # Record tokens for indentation differing from the previous line. def indent_token return false unless indent = @chunk[INDENT, 1] size = indent.size @@ -132,8 +133,8 @@ module CoffeeScript @indents << @indent else tag = :OUTDENT - @indents.pop - @indent = @indents.first || 0 + @indents.pop while @indents.last && ((@indents.last || 0) > size) + @indent = @indents.last || 0 end @i += (size + 1) token(tag, size)