aboutsummaryrefslogtreecommitdiff
path: root/nomsu.peg
diff options
context:
space:
mode:
authorBruce Hill <bitbucket@bruce-hill.com>2018-07-10 17:10:37 -0700
committerBruce Hill <bitbucket@bruce-hill.com>2018-07-10 17:10:59 -0700
commit3fd5687370c3ef28c1878a79f0b4173e7212795f (patch)
tree25282d62a576a65e930fd47459d9c9ce05109f90 /nomsu.peg
parent77a551099a1d7c1d45036bf14301f7841ee8b8ca (diff)
Fixed up line numbers for generated code.
Diffstat (limited to 'nomsu.peg')
-rw-r--r--nomsu.peg22
1 files changed, 11 insertions, 11 deletions
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) |}