pomsky icon indicating copy to clipboard operation
pomsky copied to clipboard

Forward references aren't validated

Open Aloso opened this issue 2 years ago • 0 comments

Forward references can only appear within a repeated group that also contains the group the reference refers to. For example:

:first( :second( ::third ) :third() )+

This is ok because both the reference ::third and the referenced group :third() are within the first group, which is repeated.

Describe the bug

Pomsky does not check that forward references fulfill the above criteria. Ruby allows forward references, but fails to compile when they're invalid, so this should be validated by Pomsky as well.

To Reproduce

Compile one of these with Pomsky using the Ruby flavor:

:first( :second( ::third ) :third() ) # no repetition

::third :first( :second() :third() ) # no common parent group

then try to compile the result with Ruby.

Expected behavior

Since Ruby doesn't accept invalid forward references, Pomsky shouldn't either.

Aloso avatar Mar 17 '23 00:03 Aloso