fix conversion when there are multiple wrylies in a speech

This commit is contained in:
2021-12-14 14:45:40 -07:00
parent ccb6e23cb6
commit a9d89839a1

View File

@@ -9,11 +9,11 @@
?(whenLet [(Some name) (stream.takeUntilAndDrop " (O.P.")] ?(whenLet [(Some name) (stream.takeUntilAndDrop " (O.P.")]
(and (isUpperCase name) {(stream.dropWhitespace) !(stream.isEmpty)})) (and (isUpperCase name) {(stream.dropWhitespace) !(stream.isEmpty)}))
->stream ->stream
(let [name (whenLet [(Some name) (stream.takeUntilAndDrop "(O.P.")] name) (let [name (whenLet [(Some name) (stream.takeUntilAndDrop " (O.P.")] name)
&mut output ""] &mut output ""]
(stream.takeLine) (stream.takeLine)
(loop (loop
(let [wryly (ifLet [(Some w) (stream.takeBetween "(" ")")] w "") (let [wryly (ifLet [(Some w) (stream.takeBetween "(" ")\n")] w "")
line (ifLet [(Some l) (stream.takeLine)] (l.trim) (break))] line (ifLet [(Some l) (stream.takeLine)] (l.trim) (break))]
(when line (when line
(+= output "ONPHONESPEECH \"${name}\" \"${wryly}\" ##\"${line}\"##\n")))) (+= output "ONPHONESPEECH \"${name}\" \"${wryly}\" ##\"${line}\"##\n"))))
@@ -28,7 +28,7 @@
(let [name (whenLet [(Some name) (stream.takeLine)] name) (let [name (whenLet [(Some name) (stream.takeLine)] name)
&mut output ""] &mut output ""]
(loop (loop
(let [wryly (ifLet [(Some w) (stream.takeBetween "(" ")")] w "") (let [wryly (ifLet [(Some w) (stream.takeBetween "(" ")\n")] w "")
line (ifLet [(Some l) (stream.takeLine)] (l.trim) (break))] line (ifLet [(Some l) (stream.takeLine)] (l.trim) (break))]
(when line (when line
(+= output "NORMALSPEECH \"${name}\" \"${wryly}\" ##\"${line}\"##\n")))) (+= output "NORMALSPEECH \"${name}\" \"${wryly}\" ##\"${line}\"##\n"))))