           self.relations.append(relation)
         }
 
-        continue
-      }
-
       // Assignment
-      if let assignment = attr.as(PrecedenceGroupAssignmentSyntax.self) {
+      case .precedenceGroupAssignment(let assignment):
         self.assignment = assignment.flag.text == "true"
-        continue
-      }
 
       // Associativity
-      if let associativity = attr.as(PrecedenceGroupAssociativitySyntax.self) {
+      case .precedenceGroupAssociativity(let associativity):
         switch associativity.value.text {
         case "left":
           self.associativity = .left

        default:
          break
        }
      }
    }
  }

  init(from syntax: OperatorDeclSyntax) {
    self.syntax = syntax

    kind = syntax.modifiers?.compactMap {
      OperatorKind(rawValue: $0.name.text)
    }.first ?? .infix

    name = syntax.identifier.text

