def-gthill / lexurgy

A high-powered sound change applier
GNU General Public License v3.0
46 stars 5 forks source link

intermediate romanizer doesn't show unless dummy rule is present #57

Closed AdamantConlanger closed 2 years ago

AdamantConlanger commented 2 years ago

minimal example:

# the romanizer that doesn't always function
romanizer-intermediate:
  i => o # to distinguish the stages

# leaving this dummy rule commented completely skips the previous romanizer
#dummy-rule:
#  unchanged # doesn't have to be empty

# any propagating deferred rule
dummy-prop-def propagate defer:
  unchanged # doesn't have to be empty

# the final romanizer
romanizer:
  a => o # to distinguish the stages

input: tati

If you leave the dummy rule commented, only the final romanizer takes any effect at all (even in traced view). Uncommenting the rule reintroduces the intermediate stage.

def-gthill commented 2 years ago

Gaah, all those "rules between rules" interact in really gnarly ways. Not surprised another corner case slipped through!

def-gthill commented 2 years ago

Fixed in commit 1d2a098438283e0041642a09db493fcf6c4d37e2