From 47db74229deaf281ad02c8305c4e4d4c8dbd3d7d Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Thu, 19 Jul 2018 20:41:31 -0700 Subject: Fixed some bugs in trailing_line_len() and refactored tree_to_nomsu into separate inline/not-inline functions. --- parser.moon | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'parser.moon') diff --git a/parser.moon b/parser.moon index 993fd54..1998ae2 100644 --- a/parser.moon +++ b/parser.moon @@ -144,4 +144,11 @@ Parser.is_operator = (s)-> Parser.is_identifier = (s)-> return not not (NOMSU_DEFS.ident_char^1 * -1)\match(s) +inline_escaper = re.compile "{~ (%utf8_char / ('\\' -> '\\\\') / [ -~] / ('\n' -> '\\n') / ('\t' -> '\\t') / ('\b' -> '\\b') / ('\a' -> '\\a') / ('\v' -> '\\v') / ('\f' -> '\\f') / ('\r' -> '\\r') / ('\"' -> '\\\"') / (. -> escape))* ~}", {utf8_char: NOMSU_DEFS.utf8_char, escape:(=> ("\\%03d")\format(@byte!))} +Parser.inline_escape = (s)-> + return inline_escaper\match(s) +escaper = re.compile "{~ (%utf8_char / ('\\' -> '\\\\') / [\n\r\t -~] / (. -> escape))* ~}", {utf8_char: NOMSU_DEFS.utf8_char, escape:(=> ("\\%03d")\format(@byte!))} +Parser.escape = (s)-> + return escaper\match(s) + return Parser -- cgit v1.2.3