You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Based on the discussion in #502, we need to extend the Rascal syntax to permit qualified names in the symbol that types a concrete syntax fragment or ConcreteHole.
It concerns the following syntax rules:
lexical Concrete
= typed: "(" LAYOUTLIST l1 Sym symbol LAYOUTLIST l2 ")" LAYOUTLIST l3 "`" ConcretePart* parts "`";
syntax ConcreteHole
= \one: "\<" Sym symbol Name name "\>"
;
The text was updated successfully, but these errors were encountered:
It would be consistent if we can qualify nonterminals as well, but for this case it wouldn't help to solve #502? The symbol in the concrete pattern is guaranteed to be a nonterminal and nonterminals are merged automatically if multiple definitions come in scope.
That's actually a good point -- it doesn't really address #502 but it does address the more general problem of disambiguating type names. We do have a similar issue there -- if we have both a concrete and an abstract version of the same name, their unqualified forms are not brought into scope, meaning that the qualified versions have to be used -- see #493 for this. There are options there as well, since we may be able to automatically disambiguate in cases such as "used inside a concrete syntax pattern".
Based on the discussion in #502, we need to extend the Rascal syntax to permit qualified names in the symbol that types a concrete syntax fragment or ConcreteHole.
It concerns the following syntax rules:
The text was updated successfully, but these errors were encountered: