File tree Expand file tree Collapse file tree 2 files changed +30
-0
lines changed Expand file tree Collapse file tree 2 files changed +30
-0
lines changed Original file line number Diff line number Diff line change @@ -89,6 +89,18 @@ extension OperatorTable {
89
89
return infixOperators [ operatorName]
90
90
}
91
91
92
+ /// Returns the ``Operator`` corresponding to the given prefix operator, or
93
+ /// `nil` if it is not defined in the operator table.
94
+ public func prefixOperator( named operatorName: OperatorName ) -> Operator ? {
95
+ return prefixOperators [ operatorName]
96
+ }
97
+
98
+ /// Returns the ``Operator`` corresponding to the given prefix operator, or
99
+ /// `nil` if it is not defined in the operator table.
100
+ public func postfixOperator( named operatorName: OperatorName ) -> Operator ? {
101
+ return postfixOperators [ operatorName]
102
+ }
103
+
92
104
/// Look for the precedence group corresponding to the given operator.
93
105
func lookupOperatorPrecedenceGroupName(
94
106
_ operatorName: OperatorName ,
Original file line number Diff line number Diff line change @@ -405,4 +405,22 @@ public class OperatorPrecedenceTests: XCTestCase {
405
405
}
406
406
XCTAssertNil ( opPrecedence. infixOperator ( named: " ^*^ " ) )
407
407
}
408
+
409
+ func testUnaryOperatorLookup( ) throws {
410
+ let opPrecedence = OperatorTable . standardOperators
411
+ do {
412
+ let op = try XCTUnwrap ( opPrecedence. prefixOperator ( named: " - " ) )
413
+ XCTAssertEqual ( op. kind, . prefix)
414
+ XCTAssertEqual ( op. name, " - " )
415
+ XCTAssertNil ( op. precedenceGroup)
416
+ }
417
+
418
+ do {
419
+ let op = try XCTUnwrap ( opPrecedence. postfixOperator ( named: " ... " ) )
420
+ XCTAssertEqual ( op. kind, . postfix)
421
+ XCTAssertEqual ( op. name, " ... " )
422
+ XCTAssertNil ( op. precedenceGroup)
423
+ }
424
+
425
+ }
408
426
}
You can’t perform that action at this time.
0 commit comments