/llvm-project/clang/lib/Tooling/Syntax/ |
H A D | Nodes.cpp | 13 raw_ostream &syntax::operator<<(raw_ostream &OS, NodeKind K) { in operator <<() 23 raw_ostream &syntax::operator<<(raw_ostream &OS, NodeRole R) { in operator <<() 25 case syntax::NodeRole::Detached: in operator <<() 27 case syntax::NodeRole::Unknown: in operator <<() 29 case syntax::NodeRole::OpenParen: in operator <<() 31 case syntax::NodeRole::CloseParen: in operator <<() 33 case syntax::NodeRole::IntroducerKeyword: in operator <<() 35 case syntax::NodeRole::LiteralToken: in operator <<() 37 case syntax::NodeRole::ArrowToken: in operator <<() 39 case syntax::NodeRole::ExternKeyword: in operator <<() [all …]
|
H A D | Synthesis.cpp | 18 class clang::syntax::FactoryImpl { 20 static void setCanModify(syntax::Node *N) { N->CanModify = true; } in setCanModify() 22 static void prependChildLowLevel(syntax::Tree *T, syntax::Node *Child, in prependChildLowLevel() 23 syntax::NodeRole R) { in prependChildLowLevel() 26 static void appendChildLowLevel(syntax::Tree *T, syntax::Node *Child, in appendChildLowLevel() 27 syntax::NodeRole R) { in appendChildLowLevel() 40 syntax::Leaf *clang::syntax::createLeaf(syntax::Arena &A, in createLeaf() 50 auto *Leaf = new (A.getAllocator()) syntax::Leaf( in createLeaf() 52 syntax::FactoryImpl::setCanModify(Leaf); in createLeaf() 57 syntax::Leaf *clang::syntax::createLeaf(syntax::Arena &A, in createLeaf() [all …]
|
H A D | BuildTree.cpp | 164 static syntax::NodeKind getOperatorNodeKind(const CXXOperatorCallExpr &E) { in getOperatorNodeKind() 197 return syntax::NodeKind::BinaryOperatorExpression; in getOperatorNodeKind() 200 return syntax::NodeKind::PrefixUnaryOperatorExpression; in getOperatorNodeKind() 206 return syntax::NodeKind::PrefixUnaryOperatorExpression; in getOperatorNodeKind() 208 return syntax::NodeKind::PostfixUnaryOperatorExpression; in getOperatorNodeKind() 219 return syntax::NodeKind::PrefixUnaryOperatorExpression; in getOperatorNodeKind() 221 return syntax::NodeKind::BinaryOperatorExpression; in getOperatorNodeKind() 225 return syntax::NodeKind::BinaryOperatorExpression; in getOperatorNodeKind() 234 return syntax::NodeKind::UnknownExpression; in getOperatorNodeKind() 236 return syntax::NodeKind::CallExpression; in getOperatorNodeKind() [all …]
|
H A D | Tree.cpp | 19 static void traverse(const syntax::Node *N, in traverse() 20 llvm::function_ref<void(const syntax::Node *)> Visit) { in traverse() 21 if (auto *T = dyn_cast<syntax::Tree>(N)) { in traverse() 22 for (const syntax::Node &C : T->getChildren()) in traverse() 27 static void traverse(syntax::Node *N, in traverse() 28 llvm::function_ref<void(syntax::Node *)> Visit) { in traverse() 29 traverse(static_cast<const syntax::Node *>(N), [&](const syntax::Node *N) { in traverse() 30 Visit(const_cast<syntax::Node *>(N)); in traverse() 35 syntax::Leaf::Leaf(syntax::TokenManager::Key K) : Node(NodeKind::Leaf), K(K) {} in Leaf() 37 syntax::Node::Node(NodeKind Kind) in Node() [all …]
|
H A D | ComputeReplacements.cpp | 18 using ProcessTokensFn = llvm::function_ref<void(llvm::ArrayRef<syntax::Token>, 21 void enumerateTokenSpans(const syntax::Tree *Root, in enumerateTokenSpans() 22 const syntax::TokenBufferTokenManager &STM, in enumerateTokenSpans() 25 Enumerator(const syntax::TokenBufferTokenManager &STM, in enumerateTokenSpans() 30 void run(const syntax::Tree *Root) { in enumerateTokenSpans() 38 void process(const syntax::Node *N) { in enumerateTokenSpans() 39 if (auto *T = dyn_cast<syntax::Tree>(N)) { in enumerateTokenSpans() 46 auto *L = cast<syntax::Leaf>(N); in enumerateTokenSpans() 62 const syntax::TokenBufferTokenManager &STM; in enumerateTokenSpans() 63 const syntax::Token *SpanBegin; in enumerateTokenSpans() [all …]
|
H A D | Tokens.cpp | 35 using namespace clang::syntax; 39 llvm::ArrayRef<syntax::Token> 40 getTokensCovering(llvm::ArrayRef<syntax::Token> Toks, SourceRange R, in getTokensCovering() 44 const syntax::Token *Begin = in getTokensCovering() 45 llvm::partition_point(Toks, [&](const syntax::Token &T) { in getTokensCovering() 48 const syntax::Token *End = in getTokensCovering() 49 llvm::partition_point(Toks, [&](const syntax::Token &T) { in getTokensCovering() 143 syntax::Token::Token(SourceLocation Location, unsigned Length, in Token() 149 syntax::Token::Token(const clang::Token &T) in Token() 154 llvm::StringRef syntax::Token::text(const SourceManager &SM) const { in text() [all …]
|
H A D | Mutations.cpp | 27 class syntax::MutationsImpl { 30 static void addAfter(syntax::Node *Anchor, syntax::Node *New, NodeRole Role) { in addAfter() 48 static void replace(syntax::Node *Old, syntax::Node *New) { in replace() 65 static void remove(syntax::Node *N) { in remove() 79 void syntax::removeStatement(syntax::Arena &A, TokenBufferTokenManager &TBTM, in removeStatement() 80 syntax::Statement *S) { in removeStatement()
|
H A D | TokenBufferTokenManager.cpp | 12 namespace syntax { namespace 13 constexpr llvm::StringLiteral syntax::TokenBufferTokenManager::Kind; 15 std::pair<FileID, ArrayRef<syntax::Token>> 16 syntax::TokenBufferTokenManager::lexBuffer( in lexBuffer()
|
/llvm-project/clang/unittests/Tooling/Syntax/ |
H A D | TreeTestBase.cpp | 9 // This file provides the test infrastructure for syntax trees. 35 using namespace clang::syntax; 38 ArrayRef<syntax::Token> tokens(syntax::Node *N, in tokens() 41 if (auto *L = dyn_cast<syntax::Leaf>(N)) in tokens() 43 auto *T = cast<syntax::Tree>(N); in tokens() 49 std::vector<TestClangConfig> clang::syntax::allTestClangConfigs() { in allTestClangConfigs() 69 syntax::TranslationUnit * in buildTree() 75 BuildSyntaxTree(syntax::TranslationUnit *&Root, in buildTree() 76 std::unique_ptr<syntax in buildTree() [all...] |
H A D | TreeTest.cpp | 18 using namespace clang::syntax; 32 return clang::syntax::createTree(*Arena, ChildrenWithRoles, in createTree() 137 auto *Tree = syntax::createTree(*Arena, in TEST_F() 157 static_assert(std::is_same_v<decltype(*It), syntax::Node &>, "mutable range"); in TEST_F() 158 static_assert(std::is_same_v<decltype(*CIt), const syntax::Node &>, in TEST_F() 238 auto *List = dyn_cast<syntax::List>(syntax::createTree( in TEST_P() 259 auto *List = dyn_cast<syntax::List>(syntax::createTree( in TEST_P() 279 auto *List = dyn_cast<syntax in TEST_P() [all...] |
H A D | TreeTestBase.h | 30 namespace syntax { 40 syntax::Node *nodeByRange(llvm::Annotations::Range R, syntax::Node *Root); 54 std::unique_ptr<syntax::TokenBuffer> TB; 55 std::unique_ptr<syntax::TokenBufferTokenManager> TM; 56 std::unique_ptr<syntax::Arena> Arena;
|
H A D | TokensTest.cpp | 51 using namespace clang::syntax; 73 IsExpansion(Matcher<llvm::ArrayRef<syntax::Token>> Spelled, in IsExpansion() 74 Matcher<llvm::ArrayRef<syntax::Token>> Expanded) { in IsExpansion() 163 std::vector<syntax::Token> tokenize(llvm::StringRef Text) { in tokenize() 169 return syntax::tokenize(FID, *SourceMgr, LangOptions()); in tokenize() 170 return syntax::tokenize( in tokenize() 171 syntax::FileRange(FID, Annot.range().Begin, Annot.range().End), in tokenize() 176 Matcher<syntax::Token> HasText(std::string Text) const { in HasText() 179 Matcher<syntax::Token> RangeIs(llvm::Annotations::Range R) const { in RangeIs() 212 llvm::ArrayRef<syntax::Token> [all …]
|
H A D | MutationsTest.cpp | 9 // This file tests mutation API for syntax trees. 18 using namespace clang::syntax; 33 auto Replacements = syntax::computeReplacements(*TM, *Root); in CheckTransformation() 48 auto *S = cast<syntax::Statement>(nodeByRange(Input.range(), Root)); in __anonb432754e0202() 50 syntax::removeStatement(*Arena, *TM, S); in __anonb432754e0202()
|
/llvm-project/clang/include/clang/Tooling/Syntax/ |
H A D | Tokens.h | 46 namespace syntax { 133 static FileRange range(const SourceManager &SM, const syntax::Token &First, 134 const syntax::Token &Last); 190 llvm::ArrayRef<syntax::Token> expandedTokens() const { in expandedTokens() 201 llvm::ArrayRef<syntax::Token> expandedTokens(SourceRange R) const; 231 std::optional<llvm::ArrayRef<syntax::Token>> 232 spelledForExpanded(llvm::ArrayRef<syntax::Token> Expanded) const; 261 llvm::SmallVector<llvm::ArrayRef<syntax::Token>, 1> 262 expandedForSpelled(llvm::ArrayRef<syntax::Token> Spelled) const; 274 llvm::ArrayRef<syntax::Token> Spelled; [all …]
|
H A D | BuildTree.h | 20 namespace syntax { 25 syntax::TranslationUnit * 33 syntax::Leaf *createLeaf(syntax::Arena &A, TokenBufferTokenManager &TBTM, 38 syntax::Leaf *createLeaf(syntax::Arena &A, TokenBufferTokenManager &TBTM, 44 syntax::Tree * 45 createTree(syntax::Arena &A, 46 ArrayRef<std::pair<syntax::Node *, syntax::NodeRole>> Children, 47 syntax::NodeKind K); 50 syntax::EmptyStatement *createEmptyStatement(syntax::Arena &A, 59 syntax::Node *deepCopyExpandingMacros(syntax::Arena &A, [all …]
|
H A D | Mutations.h | 20 namespace syntax { 25 const syntax::TranslationUnit &TU); 33 void removeStatement(syntax::Arena &A, TokenBufferTokenManager &TBTM, 34 syntax::Statement *S);
|
H A D | Syntax.td | 1 //===- Syntax.td - TableGen metamodel for syntax::Node hierarchy ----------===// 9 // The tree representation of the is C++ syntax is quite regular. 11 // There are 4 archetypes of nodes in the syntax tree: 12 // - Leaves, owning exactly one token. (syntax::Leaf) 16 // - Lists, with children in alternating Element/Delimiter roles. (syntax::List) 37 // Defs derived from NodeType correspond to syntax tree node types. 38 // NodeType is also a syntax constraint: one node of this type. 68 Syntax syntax = syntax_;
|
/llvm-project/llvm/utils/vim/syntax/ |
H A D | mir.vim | 1 " Vim syntax file 7 syntax clear 14 " MIR is embedded in a yaml container, so we load all of the yaml syntax. 15 runtime! syntax/yaml.vim 20 syntax include @LLVM syntax/llvm.vim 22 syntax region llvm start=/\(^---\s*|\)\@<=/ end=/\(^\.\.\.\)\@=/ contains=@LLVM 25 syntax include @MIR syntax/machine-ir.vim 26 syntax region mir start=/\(^body:\s*|\)\@<=/ end=/\(^[^[:space:]]\)\@=/ contains=@MIR
|
/llvm-project/clang-tools-extra/clangd/ |
H A D | SemanticSelection.cpp | 62 extractFoldingRange(const syntax::Node *Node, in extractFoldingRange() 63 const syntax::TokenBufferTokenManager &TM) { in extractFoldingRange() 64 if (const auto *Stmt = dyn_cast<syntax::CompoundStatement>(Node)) { in extractFoldingRange() 65 const auto *LBrace = cast_or_null<syntax::Leaf>( in extractFoldingRange() 66 Stmt->findChild(syntax::NodeRole::OpenParen)); in extractFoldingRange() 70 const auto *RBrace = cast_or_null<syntax::Leaf>( in extractFoldingRange() 71 Stmt->findChild(syntax::NodeRole::CloseParen)); in extractFoldingRange() 91 collectFoldingRanges(const syntax::Node *Root, in collectFoldingRanges() 92 const syntax::TokenBufferTokenManager &TM) { in collectFoldingRanges() 93 std::queue<const syntax in collectFoldingRanges() [all...] |
H A D | Selection.cpp | 194 bool shouldIgnore(const syntax::Token &Tok) { in shouldIgnore() 250 SelectionTester(const syntax::TokenBuffer &Buf, FileID SelFile, in SelectionTester() 257 const syntax::Token *SelFirst = in SelectionTester() 258 llvm::partition_point(AllSpelledTokens, [&](const syntax::Token &Tok) { in SelectionTester() 261 const syntax::Token *SelLimit = std::partition_point( in SelectionTester() 262 SelFirst, AllSpelledTokens.end(), [&](const syntax::Token &Tok) { in SelectionTester() 268 for (const syntax::TokenBuffer::Expansion &X : in SelectionTester() 271 for (const syntax::Token &Tok : X.Spelled) { in SelectionTester() 295 test(llvm::ArrayRef<syntax::Token> ExpandedTokens) const { in test() 327 auto Batch = ExpandedTokens.take_while([&](const syntax::Token &T) { in test() [all …]
|
/llvm-project/clang-tools-extra/clangd/refactor/tweaks/ |
H A D | ExpandMacro.cpp | 43 syntax::TokenBuffer::Expansion Expansion; 50 static const syntax::Token * in REGISTER_TWEAK() 52 llvm::ArrayRef<syntax::Token> Spelled, in REGISTER_TWEAK() 55 auto *It = llvm::partition_point(Spelled, [&](const syntax::Token &T) { in REGISTER_TWEAK() 66 static const syntax::Token * 67 findIdentifierUnderCursor(const syntax::TokenBuffer &Tokens, in findIdentifierUnderCursor() 112 for (const syntax::Token &T : Expansion.Expanded) { in apply()
|
/llvm-project/llvm/docs/HistoricalNotes/ |
H A D | 2001-02-06-TypeNotationDebateResp1.txt | 13 and him that the C declarator syntax is difficult and confusing. 16 conclusion I do: that you have to go with familiar syntax over logical 17 syntax because familiarity is such a strong force: 32 particular problem is inherently difficult. Your syntax for the above 34 thinking about it. Honestly, I don't find it much easier than the C syntax. 39 the old array syntax: 42 introduce, no matter how logical it is. Introducing a new syntax that may 50 The syntax programmers are used to out of years of experience or a new 51 syntax that they have never seen that has a more logical structure. I think 57 P.S. Also, while I agree that most your syntax is more logical, there is
|
H A D | 2001-02-06-TypeNotationDebateResp4.txt | 2 > conclusion I do: that you have to go with familiar syntax over logical 3 > syntax because familiarity is such a strong force: 13 that a new person would have to learn the new, different, syntax 25 > particular problem is inherently difficult. Your syntax for the above 27 > thinking about it. Honestly, I don't find it much easier than the C syntax. 35 declare these pointers, and the syntax is inconsistent with the method 36 declaration and calling syntax. 45 > And the old array syntax: 50 Erm... excuse me but how is this the "old array syntax"? If you are 63 > Introducing a new syntax that may [all …]
|
/llvm-project/clang-tools-extra/docs/clang-tidy/checks/readability/ |
H A D | misplaced-array-index.rst | 6 This check warns for unusual array index syntax. 8 The following code has unusual array index syntax: 24 The check warns about such unusual syntax for readability reasons: 25 * There are programmers that are not familiar with this unusual syntax.
|
/llvm-project/llvm/utils/vim/ |
H A D | vimrc | 34 au BufRead,BufNewFile * syntax match LongLine /\%>80v.\+/ 35 au InsertEnter * syntax match WhitespaceEOL /\s\+\%#\@<!$/ 36 au InsertLeave * syntax match WhitespaceEOL /\s\+$/ 56 " Highlight syntax in programming languages 57 syntax on 76 " Enable syntax highlighting for LLVM files. To use, copy 77 " utils/vim/syntax/llvm.vim to ~/.vim/syntax . 82 " Enable syntax highlighting for tablegen files. To use, copy 83 " utils/vim/syntax/tablegen.vim to ~/.vim/syntax . 88 " Enable syntax highlighting for reStructuredText files. To use, copy [all …]
|