/Users/buildslave/jenkins/workspace/clang-stage2-coverage-R/llvm/lib/MC/MCParser/MCAsmLexer.cpp
Line | Count | Source (jump to first uncovered line) |
1 | | //===- MCAsmLexer.cpp - Abstract Asm Lexer Interface ----------------------===// |
2 | | // |
3 | | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
4 | | // See https://llvm.org/LICENSE.txt for license information. |
5 | | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
6 | | // |
7 | | //===----------------------------------------------------------------------===// |
8 | | |
9 | | #include "llvm/MC/MCParser/MCAsmLexer.h" |
10 | | #include "llvm/ADT/StringRef.h" |
11 | | #include "llvm/Support/SMLoc.h" |
12 | | #include "llvm/Support/Debug.h" |
13 | | #include "llvm/Support/raw_ostream.h" |
14 | | |
15 | | using namespace llvm; |
16 | | |
17 | 18.4k | MCAsmLexer::MCAsmLexer() { |
18 | 18.4k | CurTok.emplace_back(AsmToken::Space, StringRef()); |
19 | 18.4k | } |
20 | | |
21 | 18.4k | MCAsmLexer::~MCAsmLexer() = default; |
22 | | |
23 | 5.05M | SMLoc MCAsmLexer::getLoc() const { |
24 | 5.05M | return SMLoc::getFromPointer(TokStart); |
25 | 5.05M | } |
26 | | |
27 | 18.7M | SMLoc AsmToken::getLoc() const { |
28 | 18.7M | return SMLoc::getFromPointer(Str.data()); |
29 | 18.7M | } |
30 | | |
31 | 2.45M | SMLoc AsmToken::getEndLoc() const { |
32 | 2.45M | return SMLoc::getFromPointer(Str.data() + Str.size()); |
33 | 2.45M | } |
34 | | |
35 | 256 | SMRange AsmToken::getLocRange() const { |
36 | 256 | return SMRange(getLoc(), getEndLoc()); |
37 | 256 | } |
38 | | |
39 | 4 | void AsmToken::dump(raw_ostream &OS) const { |
40 | 4 | switch (Kind) { |
41 | 4 | case AsmToken::Error: |
42 | 0 | OS << "error"; |
43 | 0 | break; |
44 | 4 | case AsmToken::Identifier: |
45 | 2 | OS << "identifier: " << getString(); |
46 | 2 | break; |
47 | 4 | case AsmToken::Integer: |
48 | 0 | OS << "int: " << getString(); |
49 | 0 | break; |
50 | 4 | case AsmToken::Real: |
51 | 0 | OS << "real: " << getString(); |
52 | 0 | break; |
53 | 4 | case AsmToken::String: |
54 | 0 | OS << "string: " << getString(); |
55 | 0 | break; |
56 | 4 | |
57 | 4 | case AsmToken::Amp: OS << "Amp"; break0 ; |
58 | 4 | case AsmToken::AmpAmp: OS << "AmpAmp"; break0 ; |
59 | 4 | case AsmToken::At: OS << "At"; break0 ; |
60 | 4 | case AsmToken::BackSlash: OS << "BackSlash"; break0 ; |
61 | 4 | case AsmToken::BigNum: OS << "BigNum"; break0 ; |
62 | 4 | case AsmToken::Caret: OS << "Caret"; break0 ; |
63 | 4 | case AsmToken::Colon: OS << "Colon"; break0 ; |
64 | 4 | case AsmToken::Comma: OS << "Comma"; break0 ; |
65 | 4 | case AsmToken::Comment: OS << "Comment"; break0 ; |
66 | 4 | case AsmToken::Dollar: OS << "Dollar"; break0 ; |
67 | 4 | case AsmToken::Dot: OS << "Dot"; break0 ; |
68 | 4 | case AsmToken::EndOfStatement: OS << "EndOfStatement"; break2 ; |
69 | 4 | case AsmToken::Eof: OS << "Eof"; break0 ; |
70 | 4 | case AsmToken::Equal: OS << "Equal"; break0 ; |
71 | 4 | case AsmToken::EqualEqual: OS << "EqualEqual"; break0 ; |
72 | 4 | case AsmToken::Exclaim: OS << "Exclaim"; break0 ; |
73 | 4 | case AsmToken::ExclaimEqual: OS << "ExclaimEqual"; break0 ; |
74 | 4 | case AsmToken::Greater: OS << "Greater"; break0 ; |
75 | 4 | case AsmToken::GreaterEqual: OS << "GreaterEqual"; break0 ; |
76 | 4 | case AsmToken::GreaterGreater: OS << "GreaterGreater"; break0 ; |
77 | 4 | case AsmToken::Hash: OS << "Hash"; break0 ; |
78 | 4 | case AsmToken::HashDirective: OS << "HashDirective"; break0 ; |
79 | 4 | case AsmToken::LBrac: OS << "LBrac"; break0 ; |
80 | 4 | case AsmToken::LCurly: OS << "LCurly"; break0 ; |
81 | 4 | case AsmToken::LParen: OS << "LParen"; break0 ; |
82 | 4 | case AsmToken::Less: OS << "Less"; break0 ; |
83 | 4 | case AsmToken::LessEqual: OS << "LessEqual"; break0 ; |
84 | 4 | case AsmToken::LessGreater: OS << "LessGreater"; break0 ; |
85 | 4 | case AsmToken::LessLess: OS << "LessLess"; break0 ; |
86 | 4 | case AsmToken::Minus: OS << "Minus"; break0 ; |
87 | 4 | case AsmToken::MinusGreater: OS << "MinusGreater"; break0 ; |
88 | 4 | case AsmToken::Percent: OS << "Percent"; break0 ; |
89 | 4 | case AsmToken::Pipe: OS << "Pipe"; break0 ; |
90 | 4 | case AsmToken::PipePipe: OS << "PipePipe"; break0 ; |
91 | 4 | case AsmToken::Plus: OS << "Plus"; break0 ; |
92 | 4 | case AsmToken::RBrac: OS << "RBrac"; break0 ; |
93 | 4 | case AsmToken::RCurly: OS << "RCurly"; break0 ; |
94 | 4 | case AsmToken::RParen: OS << "RParen"; break0 ; |
95 | 4 | case AsmToken::Slash: OS << "Slash"; break0 ; |
96 | 4 | case AsmToken::Space: OS << "Space"; break0 ; |
97 | 4 | case AsmToken::Star: OS << "Star"; break0 ; |
98 | 4 | case AsmToken::Tilde: OS << "Tilde"; break0 ; |
99 | 4 | case AsmToken::PercentCall16: OS << "PercentCall16"; break0 ; |
100 | 4 | case AsmToken::PercentCall_Hi: OS << "PercentCall_Hi"; break0 ; |
101 | 4 | case AsmToken::PercentCall_Lo: OS << "PercentCall_Lo"; break0 ; |
102 | 4 | case AsmToken::PercentDtprel_Hi: OS << "PercentDtprel_Hi"; break0 ; |
103 | 4 | case AsmToken::PercentDtprel_Lo: OS << "PercentDtprel_Lo"; break0 ; |
104 | 4 | case AsmToken::PercentGot: OS << "PercentGot"; break0 ; |
105 | 4 | case AsmToken::PercentGot_Disp: OS << "PercentGot_Disp"; break0 ; |
106 | 4 | case AsmToken::PercentGot_Hi: OS << "PercentGot_Hi"; break0 ; |
107 | 4 | case AsmToken::PercentGot_Lo: OS << "PercentGot_Lo"; break0 ; |
108 | 4 | case AsmToken::PercentGot_Ofst: OS << "PercentGot_Ofst"; break0 ; |
109 | 4 | case AsmToken::PercentGot_Page: OS << "PercentGot_Page"; break0 ; |
110 | 4 | case AsmToken::PercentGottprel: OS << "PercentGottprel"; break0 ; |
111 | 4 | case AsmToken::PercentGp_Rel: OS << "PercentGp_Rel"; break0 ; |
112 | 4 | case AsmToken::PercentHi: OS << "PercentHi"; break0 ; |
113 | 4 | case AsmToken::PercentHigher: OS << "PercentHigher"; break0 ; |
114 | 4 | case AsmToken::PercentHighest: OS << "PercentHighest"; break0 ; |
115 | 4 | case AsmToken::PercentLo: OS << "PercentLo"; break0 ; |
116 | 4 | case AsmToken::PercentNeg: OS << "PercentNeg"; break0 ; |
117 | 4 | case AsmToken::PercentPcrel_Hi: OS << "PercentPcrel_Hi"; break0 ; |
118 | 4 | case AsmToken::PercentPcrel_Lo: OS << "PercentPcrel_Lo"; break0 ; |
119 | 4 | case AsmToken::PercentTlsgd: OS << "PercentTlsgd"; break0 ; |
120 | 4 | case AsmToken::PercentTlsldm: OS << "PercentTlsldm"; break0 ; |
121 | 4 | case AsmToken::PercentTprel_Hi: OS << "PercentTprel_Hi"; break0 ; |
122 | 4 | case AsmToken::PercentTprel_Lo: OS << "PercentTprel_Lo"; break0 ; |
123 | 4 | } |
124 | 4 | |
125 | 4 | // Print the token string. |
126 | 4 | OS << " (\""; |
127 | 4 | OS.write_escaped(getString()); |
128 | 4 | OS << "\")"; |
129 | 4 | } |