Skip to content

Commit 197914b

Browse files
committed
nicer syntax error messages for newlines and indentation
1 parent 8dfbd1a commit 197914b

1 file changed

Lines changed: 7 additions & 1 deletion

File tree

lib/coffee_script/parse_error.rb

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ module CoffeeScript
55
# line-number aware.
66
class ParseError < Racc::ParseError
77

8+
TOKEN_MAP = {
9+
'INDENT' => 'indent',
10+
'OUTDENT' => 'outdent',
11+
"\n" => 'newline'
12+
}
13+
814
def initialize(token_id, value, stack)
915
@token_id, @value, @stack = token_id, value, stack
1016
end
@@ -13,7 +19,7 @@ def message
1319
line = @value.respond_to?(:line) ? @value.line : "END"
1420
line_part = "line #{line}:"
1521
id_part = @token_id != @value.inspect ? ", unexpected #{@token_id.to_s.downcase}" : ""
16-
val_part = ['INDENT', 'OUTDENT'].include?(@token_id) ? '' : " for '#{@value.to_s}'"
22+
val_part = " for #{TOKEN_MAP[@value.to_s] || "'#{@value}'"}"
1723
"#{line_part} syntax error#{val_part}#{id_part}"
1824
end
1925
alias_method :inspect, :message

0 commit comments

Comments
 (0)