Skip to content

Forward references aren't validated #84

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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