diff options
| author | Bruce Hill <bitbucket@bruce-hill.com> | 2018-07-10 17:10:37 -0700 |
|---|---|---|
| committer | Bruce Hill <bitbucket@bruce-hill.com> | 2018-07-10 17:10:59 -0700 |
| commit | 3fd5687370c3ef28c1878a79f0b4173e7212795f (patch) | |
| tree | 25282d62a576a65e930fd47459d9c9ce05109f90 /nomsu.peg | |
| parent | 77a551099a1d7c1d45036bf14301f7841ee8b8ca (diff) | |
Fixed up line numbers for generated code.
Diffstat (limited to 'nomsu.peg')
| -rw-r--r-- | nomsu.peg | 22 |
1 files changed, 11 insertions, 11 deletions
@@ -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) |} |
