Skip to content

Commit 6a47161

Browse files
authored
[clang-format] Support of TableGen value annotations. (#80299)
This implements the annotation of the values in TableGen. The main changes are, - parseTableGenValue(), the simplified parser method for the syntax of values. - modified consumeToken() to parseTableGenValue in 'if', 'assert' and after '='. - modified parseParens() to call parseTableGenValue inside. - modified parseSquare() to to call parseTableGenValue inside, with skipping separator tokens. - modified parseAngle() to call parseTableGenValue inside, with skipping separator tokens.
1 parent 50ed98f commit 6a47161

File tree

5 files changed

+369
-9
lines changed

5 files changed

+369
-9
lines changed

clang/lib/Format/FormatToken.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,17 @@ namespace format {
150150
TYPE(StructuredBindingLSquare) \
151151
TYPE(TableGenBangOperator) \
152152
TYPE(TableGenCondOperator) \
153+
TYPE(TableGenCondOperatorColon) \
154+
TYPE(TableGenCondOperatorComma) \
155+
TYPE(TableGenDAGArgCloser) \
156+
TYPE(TableGenDAGArgListColon) \
157+
TYPE(TableGenDAGArgListComma) \
158+
TYPE(TableGenDAGArgOpener) \
159+
TYPE(TableGenListCloser) \
160+
TYPE(TableGenListOpener) \
153161
TYPE(TableGenMultiLineString) \
162+
TYPE(TableGenTrailingPasteOperator) \
163+
TYPE(TableGenValueSuffix) \
154164
TYPE(TemplateCloser) \
155165
TYPE(TemplateOpener) \
156166
TYPE(TemplateString) \

clang/lib/Format/FormatTokenLexer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -812,7 +812,7 @@ void FormatTokenLexer::handleTableGenMultilineString() {
812812
auto CloseOffset = Lex->getBuffer().find("}]", OpenOffset);
813813
if (CloseOffset == StringRef::npos)
814814
return;
815-
auto Text = Lex->getBuffer().substr(OpenOffset, CloseOffset + 2);
815+
auto Text = Lex->getBuffer().substr(OpenOffset, CloseOffset - OpenOffset + 2);
816816
MultiLineString->TokenText = Text;
817817
resetLexer(SourceMgr.getFileOffset(
818818
Lex->getSourceLocation(Lex->getBufferLocation() - 2 + Text.size())));

0 commit comments

Comments
 (0)