Skip to content

Forward references aren't validated #84

@Aloso

Description

@Aloso

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

No one assigned

    Labels

    C-diagnosticsWarnings and errors reported by PomskyC-languageIssues regarding Pomsky's syntaxbugSomething isn't workinggood first issueGood for newcomers

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions