Skip to content

Proper type analysis for caseInsensitive #514

@pdubroy

Description

@pdubroy

(Initial discussion in #509)

Currently we require that the parameter to caseInsensitive is a terminal expression. We could relax this to allow anything that can be statically proven to always be a terminal expression, e.g.:

G {
  start = foo<"blah"> foo<"another">
  foo<x> = bar<x>
  bar<y> = caseInsensitive<y>
}

We should make sure the check also accounts for inheritance — for example, if we create the following subgrammar:

G2 {
  start := foo<"blah">
}

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions