From 3fd5687370c3ef28c1878a79f0b4173e7212795f Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Tue, 10 Jul 2018 17:10:37 -0700 Subject: Fixed up line numbers for generated code. --- nomsu.peg | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'nomsu.peg') diff --git a/nomsu.peg b/nomsu.peg index 2497e7c..8b4d9ec 100644 --- a/nomsu.peg +++ b/nomsu.peg @@ -85,15 +85,6 @@ inline_text (Text): (({} (eol->'Line ended before finding a closing double quotation mark') %userdata) => error) /(({} ([^%nl]*->'Unexpected character while parsing Text') %userdata) => error) )) - --- Have to use "%indent" instead of "indent" etc. to avoid messing up text lines that start with "#" -indented_text (Text): - '".."' eol %nl {| - {~ (%nl*) (%indent -> "") ~} - ({~ - (("\\" -> "\") / (("\" nodent "..") -> "")/ (%nl+ {~ %nodent -> "" ~}) / [^%nl\] / (!text_interpolation "\"))+ - ~} / text_interpolation)* - |} (((!.) %dedent) / (&(%nl %dedent)) / (({} (non_dedent_error -> "Unexpected character while parsing Text") %userdata) => error)) inline_text_interpolation: "\" ( variable / inline_list / inline_dict / inline_text @@ -105,9 +96,18 @@ inline_text_interpolation: / (({} ([^%nl]* -> 'Unexpected character while parsing Text interpolation') %userdata) => error)) ) ) + +-- Have to use "%indent" instead of "indent" etc. to avoid messing up text lines that start with "#" +indented_text (Text): + '".."' eol %nl {| + {~ (%nl*) (%indent -> "") ~} + (indented_plain_text / text_interpolation / {~ ("\" nodent "..") -> "" ~} / {~ %nl+ (%nodent -> "") ~})* + |} (((!.) %dedent) / (&(%nl %dedent)) / (({} (non_dedent_error -> "Unexpected character while parsing Text") %userdata) => error)) +indented_plain_text (Text): + {| ({~ "\\" -> "\" ~} / {[^%nl\]+} / {!(text_interpolation / "\" nodent "..") "\"})+ + {~ (%nl+ (%nodent -> "")) / (("\" nodent "..") -> "") ~}* |} text_interpolation: - inline_text_interpolation / - ("\" indented_expression nodent "..") + inline_text_interpolation / ("\" indented_expression nodent "..") number (Number): {| (("-"? (([0-9]+ "." [0-9]+) / ("." [0-9]+) / ([0-9]+)))-> tonumber) |} -- cgit v1.2.3