-
-
Notifications
You must be signed in to change notification settings - Fork 18
Open
Labels
C-diagnosticsWarnings and errors reported by PomskyWarnings and errors reported by PomskyC-languageIssues regarding Pomsky's syntaxIssues regarding Pomsky's syntaxbugSomething isn't workingSomething isn't workinggood first issueGood for newcomersGood for newcomers
Description
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.
Metadata
Metadata
Assignees
Labels
C-diagnosticsWarnings and errors reported by PomskyWarnings and errors reported by PomskyC-languageIssues regarding Pomsky's syntaxIssues regarding Pomsky's syntaxbugSomething isn't workingSomething isn't workinggood first issueGood for newcomersGood for newcomers