diff --git a/lib/lexer.js b/lib/lexer.js index e7f4fc27..377d1273 100644 --- a/lib/lexer.js +++ b/lib/lexer.js @@ -580,7 +580,7 @@ INTERPOLATION = /^\$([a-zA-Z_@]\w*(\.\w+)*)/; OPERATOR = /^(-[\-=>]?|\+[+=]?|[*&|\/%=<>:!?]+)([ \t]*)/; WHITESPACE = /^([ \t]+)/; - COMMENT = /^(\s*#{3}(?!#)[ \t]*\n+([\s\S]*?)[ \t]*\n+[ \t]*#{3}|(\s*#[^\n]*)+)/; + COMMENT = /^(\s*#{3}(?!#)[ \t]*\n+([\s\S]*?)[ \t]*\n+[ \t]*#{3}|(\s*#(?!##[^#])[^\n]*)+)/; CODE = /^((-|=)>)/; MULTI_DENT = /^((\n([ \t]*))+)(\.)?/; LAST_DENTS = /\n([ \t]*)/g; diff --git a/src/lexer.coffee b/src/lexer.coffee index 2244b762..d1e5d2a3 100644 --- a/src/lexer.coffee +++ b/src/lexer.coffee @@ -511,7 +511,7 @@ HEREDOC : /^("{6}|'{6}|"{3}\n?([\s\S]*?)\n?([ \t]*)"{3}|'{3}\n?([\s\S]*?)\ INTERPOLATION : /^\$([a-zA-Z_@]\w*(\.\w+)*)/ OPERATOR : /^(-[\-=>]?|\+[+=]?|[*&|\/%=<>:!?]+)([ \t]*)/ WHITESPACE : /^([ \t]+)/ -COMMENT : /^(\s*#{3}(?!#)[ \t]*\n+([\s\S]*?)[ \t]*\n+[ \t]*#{3}|(\s*#[^\n]*)+)/ +COMMENT : /^(\s*#{3}(?!#)[ \t]*\n+([\s\S]*?)[ \t]*\n+[ \t]*#{3}|(\s*#(?!##[^#])[^\n]*)+)/ CODE : /^((-|=)>)/ MULTI_DENT : /^((\n([ \t]*))+)(\.)?/ LAST_DENTS : /\n([ \t]*)/g diff --git a/test/test_comments.coffee b/test/test_comments.coffee index a1e54249..27e6afa8 100644 --- a/test/test_comments.coffee +++ b/test/test_comments.coffee @@ -1,3 +1,10 @@ +# comment before a ... + +### +... block comment. +### + + # comment func: -> # comment