Thanks Ryan!

There's all sorts of nice goodies in that library, like
current-atomic-rewriters and friends.

David

Den ons. 24. feb. 2021 kl. 11.29 skrev Ryan Culpepper <
[email protected]>:

> The `binary-rw` function from unstable/gui/redex library has some support
> for optionally parenthesizing its arguments.
>
> Ryan
>
>
> On Wed, Feb 24, 2021 at 11:07 AM David Thrane Christiansen <
> [email protected]> wrote:
>
>> Hello all,
>>
>> I'm working on coding up a little language model in Redex, and I'd like
>> to get it to render things in the form that my colleagues are used to. This
>> means some infix operators as well as dealing with parenthesizing based on
>> operator precedence.
>>
>> Here's a boiled-down sample of what I'm up to:
>>
>> #lang racket
>>
>> (require redex pict)
>>
>> (define-language L
>>   (C success (then C C) (or C C)))
>>
>> (with-compound-rewriters
>>   (['or (match-lambda [(list _ _ x y _) (list "" x " or " y "")])]
>>    ['then (match-lambda [(list _ _ x y _) (list "" x " then " y "")])])
>>   (vl-append
>>    20
>>    (render-language L)
>>    (render-term L (then (or success success) success))))
>>
>> I've attached the result. The resulting rendering of L looks appropriate,
>> but the nesting of then and or in the rendered term does not indicate the
>> nesting. I'd like to be able to specify precedence and associativity and
>> have parentheses inserted appropriately; failing that, a reasonable backup
>> would be parenthesizing sub-expressions that are not atomic.
>>
>> Can anyone point me at the right resource to use to figure out how to do
>> this?
>>
>> Thank you!
>>
>> David
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Racket Users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/racket-users/CAF_itEtHuJP6i%3DR3_ggKTn1%3DRDmswZfCiFMYJqBwcHqpXB7fpw%40mail.gmail.com
>> <https://groups.google.com/d/msgid/racket-users/CAF_itEtHuJP6i%3DR3_ggKTn1%3DRDmswZfCiFMYJqBwcHqpXB7fpw%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/CAF_itEt9JUSZBUZ_09keQmXpUo0HJbYahN4dXD%2Bjp8jp9A2cXw%40mail.gmail.com.

Reply via email to