003 File Manager
Current Path:
/usr/src/contrib/llvm-project/clang/lib/Basic
usr
/
src
/
contrib
/
llvm-project
/
clang
/
lib
/
Basic
/
📁
..
📄
Attributes.cpp
(4.35 KB)
📄
Builtins.cpp
(7.39 KB)
📄
CharInfo.cpp
(4.03 KB)
📄
CodeGenOptions.cpp
(997 B)
📄
Cuda.cpp
(5.85 KB)
📄
Diagnostic.cpp
(41.13 KB)
📄
DiagnosticIDs.cpp
(25.94 KB)
📄
DiagnosticOptions.cpp
(837 B)
📄
ExpressionTraits.cpp
(1.21 KB)
📄
FileManager.cpp
(21.8 KB)
📄
FileSystemStatCache.cpp
(4.45 KB)
📄
FixedPoint.cpp
(13.51 KB)
📄
IdentifierTable.cpp
(23.6 KB)
📄
LangOptions.cpp
(2.36 KB)
📄
LangStandards.cpp
(1.56 KB)
📄
Module.cpp
(20.64 KB)
📄
ObjCRuntime.cpp
(3 KB)
📄
OpenMPKinds.cpp
(25.62 KB)
📄
OperatorPrecedence.cpp
(2.77 KB)
📄
SanitizerBlacklist.cpp
(2.35 KB)
📄
SanitizerSpecialCaseList.cpp
(2.22 KB)
📄
Sanitizers.cpp
(2.07 KB)
📄
SourceLocation.cpp
(7.15 KB)
📄
SourceManager.cpp
(85.48 KB)
📄
Stack.cpp
(2.41 KB)
📄
TargetInfo.cpp
(27.2 KB)
📁
Targets
📄
Targets.cpp
(24.48 KB)
📄
Targets.h
(1.73 KB)
📄
TokenKinds.cpp
(1.69 KB)
📄
TypeTraits.cpp
(2.85 KB)
📄
Version.cpp
(2.86 KB)
📄
Warnings.cpp
(8.62 KB)
📄
XRayInstr.cpp
(1.21 KB)
📄
XRayLists.cpp
(3.31 KB)
Editing: OperatorPrecedence.cpp
//===--- OperatorPrecedence.cpp ---------------------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// /// /// \file /// Defines and computes precedence levels for binary/ternary operators. /// //===----------------------------------------------------------------------===// #include "clang/Basic/OperatorPrecedence.h" namespace clang { prec::Level getBinOpPrecedence(tok::TokenKind Kind, bool GreaterThanIsOperator, bool CPlusPlus11) { switch (Kind) { case tok::greater: // C++ [temp.names]p3: // [...] When parsing a template-argument-list, the first // non-nested > is taken as the ending delimiter rather than a // greater-than operator. [...] if (GreaterThanIsOperator) return prec::Relational; return prec::Unknown; case tok::greatergreater: // C++11 [temp.names]p3: // // [...] Similarly, the first non-nested >> is treated as two // consecutive but distinct > tokens, the first of which is // taken as the end of the template-argument-list and completes // the template-id. [...] if (GreaterThanIsOperator || !CPlusPlus11) return prec::Shift; return prec::Unknown; default: return prec::Unknown; case tok::comma: return prec::Comma; case tok::equal: case tok::starequal: case tok::slashequal: case tok::percentequal: case tok::plusequal: case tok::minusequal: case tok::lesslessequal: case tok::greatergreaterequal: case tok::ampequal: case tok::caretequal: case tok::pipeequal: return prec::Assignment; case tok::question: return prec::Conditional; case tok::pipepipe: return prec::LogicalOr; case tok::caretcaret: case tok::ampamp: return prec::LogicalAnd; case tok::pipe: return prec::InclusiveOr; case tok::caret: return prec::ExclusiveOr; case tok::amp: return prec::And; case tok::exclaimequal: case tok::equalequal: return prec::Equality; case tok::lessequal: case tok::less: case tok::greaterequal: return prec::Relational; case tok::spaceship: return prec::Spaceship; case tok::lessless: return prec::Shift; case tok::plus: case tok::minus: return prec::Additive; case tok::percent: case tok::slash: case tok::star: return prec::Multiplicative; case tok::periodstar: case tok::arrowstar: return prec::PointerToMember; } } } // namespace clang
Upload File
Create Folder