[mlir][affinexpr] add parseAffineExpr to parser API
authorAart Bik <ajcbik@google.com>
Fri, 30 Jun 2023 03:13:33 +0000 (20:13 -0700)
committerAart Bik <ajcbik@google.com>
Fri, 30 Jun 2023 06:44:04 +0000 (23:44 -0700)
commit9b3a080328370f0257bde2528b9c0b1616c2d98b
tree37d0491bd6b5e4a3bce6816e07002505182d6499
parent0a7ff0960e33b6b27961afa5cbb7dd9eb4f1a283
[mlir][affinexpr] add parseAffineExpr to parser API

Similar to AffineMap and IntegerSet parsing, this change makes the more fine-grained AffineExpr available for general parsing, using a preset symbol set to recognize variables.

Motivation:
The AffineExpr parser will be used by the new sparse tensor encoding surface syntax. Originally, we planned to duplicate the affine parser completely, but that would be a terrible waste of a good thing. With this minor API change, we prepare the way for the sparse tensor dialect (and others) to reuse the AffineExpr parser outside the context of a more restricted AffineMap parser.

Reviewed By: Peiming

Differential Revision: https://reviews.llvm.org/D154177
mlir/include/mlir/IR/OpImplementation.h
mlir/lib/AsmParser/AffineParser.cpp
mlir/lib/AsmParser/AsmParserImpl.h
mlir/lib/AsmParser/Parser.h