diff options
author | Nathan Sidwell <nathan@acm.org> | 2022-01-27 13:23:16 -0800 |
---|---|---|
committer | Nathan Sidwell <nathan@acm.org> | 2022-03-01 04:44:56 -0800 |
commit | 7f89fa32e8e9251b0b780009c340bc0d8f4d2e88 (patch) | |
tree | 8a8f587d65eaefd41e1f29a3089dba0e21185f2f /clang/lib/Lex/ModuleMap.cpp | |
parent | f570da28e6b573c55ef467575a545fa78af6ac10 (diff) | |
download | llvm-7f89fa32e8e9251b0b780009c340bc0d8f4d2e88.zip llvm-7f89fa32e8e9251b0b780009c340bc0d8f4d2e88.tar.gz llvm-7f89fa32e8e9251b0b780009c340bc0d8f4d2e88.tar.bz2 |
[demangler][NFC] Tabularize operator name parsing
We need to parse operator names in 3 places -- expressions, names &
fold expressions. Currently we have 3 separate pieces to do this, and a FIXME.
The operator name and expression parsing are implemented as
handwritten two-character nested switches, the fold expression is a
sequence of string comparisons.
This adds a new OperatorInfo class to encode the operator info
(encoding, kind, name), and has a table that it can binary search.
From that each of the above 3 uses are altered to use the new scheme.
Existing tests cover parsing operator encodings.
Reviewed By: ChuanqiXu
Differential Revision: https://reviews.llvm.org/D119467
Diffstat (limited to 'clang/lib/Lex/ModuleMap.cpp')
0 files changed, 0 insertions, 0 deletions