From 69cd524afcaece1d4f6ee116679007b2f0ec5fe3 Mon Sep 17 00:00:00 2001 From: asagi4 <130366179+asagi4@users.noreply.github.com> Date: Wed, 22 Nov 2023 02:22:18 +0200 Subject: [PATCH] Fixing --- utils/default_functions.txt | 37 +++++++++++++++++++++++-------------- utils/parse.py | 2 +- utils/wildcards.py | 2 +- 3 files changed, 25 insertions(+), 16 deletions(-) diff --git a/utils/default_functions.txt b/utils/default_functions.txt index 0da1e26..d4d5bfa 100644 --- a/utils/default_functions.txt +++ b/utils/default_functions.txt @@ -1,4 +1,17 @@ -def $descseq($expr; $var; $sw; $ew; $start; $step) { +$if($p, $t, $f) = { + $('$t' if $p else '$f') +} + +$comment($x) = {} + +$float($v) = { $(round($v, 2)) } + +$rec($exp, $v) = { + $x = $float($v) + $if($x <= 0,done,$exp $quote($rec($exp, $($x - 1)))) +} + +$descseq($expr, $var, $sw, $ew, $start, $step) = { [SEQ<%- for step in steps(0, $sw - $ew, $step) -%> <%- set $var = round($sw - step, 2) -%> <%- if $var >= $ew -%> @@ -8,7 +21,7 @@ def $descseq($expr; $var; $sw; $ew; $start; $step) { <%- set $var = $ew -%>:$expr:1] } -def $ascseq($expr; $var; $sw; $ew; $start; $step) { +$ascseq($expr, $var, $sw, $ew, $start, $step) = { [SEQ<%- for step in steps(0, round($ew - $sw, 2), $step) -%> <%- set $var = round($sw+step, 2) -%> <%- if $var < $ew -%> @@ -18,21 +31,17 @@ def $ascseq($expr; $var; $sw; $ew; $start; $step) { <%- set $var = $ew -%>:$expr:1] } -def $warmlora($lora; $e; $start; $step) { - var $x = >; $y = $eval($e - $start) - $ascseq($x; x; 0; $y; $step; $step) +$warmlora($lora, $e, $start, $step) = { + $x = >; $y = $($e - $start) + $ascseq($x, x, 0, $y, $step, $step) } -def $coollora($lora; $start; $step) { - var $x = > - $descseq($x; x; $start; 0; 0; $step) +$coollora($lora, $start, $step) = { + $x = > + $descseq($x, x, $start, 0, 0, $step) } -def $rectmask($x; $y; $size) { - MASK($x <= $x + $size =>, $y <= $y + $size =>) -} +$rectmask($x, $y, $size) = { + MASK($x "<=" $x + $size "=>", $y "<=" $y + $size "=>") -# Evaluates expression as Jinja2 immediately -defj $eval($x) { - <= $x => } diff --git a/utils/parse.py b/utils/parse.py index 05baba1..b83df1b 100644 --- a/utils/parse.py +++ b/utils/parse.py @@ -35,7 +35,7 @@ var.5: "$" "{" NAME "}" | "$" NAME NAME: /[a-z]+/ argument_spec.10: "(" _WS? var? (_WS? _SEP _WS? var)* ")" argument_list.10: "(" _WS? expr? (_WS? _SEP expr _WS?)*")" -function_body.20: "{" expr* "}" +function_body.20: "{" (definition | expr)* "}" _SEP.1: "," _TERM.10: ";" | NEWLINE STRING.0: /[^"$(){},;\n]+/ diff --git a/utils/wildcards.py b/utils/wildcards.py index 6ce0ebe..f4f39e2 100644 --- a/utils/wildcards.py +++ b/utils/wildcards.py @@ -124,7 +124,7 @@ class MUSimpleWildcard: text = extra_pnginfo[CLASS_NAME][unique_id] log.info("MUSimpleWildcard using prompt: %s", text) ctx = read_preamble() - newtext = parse(text, ctx) + newtext, _ = parse(text, ctx) if newtext != text: log.info("MUSimpleWildcard result:\n%s", newtext) return (newtext,)