php8.1: added intersection types support (#29)

This commit is contained in:
Makhnev Petr
2022-06-26 03:31:29 +03:00
committed by GitHub
parent 7f6cd25376
commit e16671724e
21 changed files with 22940 additions and 22127 deletions

View File

@@ -15,6 +15,7 @@ type Visitor interface {
Argument(n *Argument)
MatchArm(n *MatchArm)
Union(n *Union)
Intersection(n *Intersection)
Attribute(n *Attribute)
AttributeGroup(n *AttributeGroup)

View File

@@ -50,6 +50,21 @@ func (n *Union) GetPosition() *position.Position {
return n.Position
}
// Intersection node is Expr&Expr1&...
type Intersection struct {
Position *position.Position
Types []Vertex
SeparatorTkns []*token.Token
}
func (n *Intersection) Accept(v Visitor) {
v.Intersection(n)
}
func (n *Intersection) GetPosition() *position.Position {
return n.Position
}
// Parameter node
type Parameter struct {
Position *position.Position