Lines Matching refs:OS
31 static raw_ostream &write_cstring(raw_ostream &OS, llvm::StringRef Str) { in write_cstring() argument
32 OS << '"'; in write_cstring()
33 OS.write_escaped(Str); in write_cstring()
34 OS << '"'; in write_cstring()
35 return OS; in write_cstring()
56 static void emitNameUsingSpelling(raw_ostream &OS, const Record &R) { in emitNameUsingSpelling() argument
58 OS << "&"; in emitNameUsingSpelling()
59 write_cstring(OS, StringRef(getOptionSpelling(R, PrefixLength))); in emitNameUsingSpelling()
60 OS << "[" << PrefixLength << "]"; in emitNameUsingSpelling()
107 void emit(raw_ostream &OS) const { in emit()
108 write_cstring(OS, StringRef(getOptionSpelling(R))); in emit()
109 OS << ", "; in emit()
110 OS << ShouldParse; in emit()
111 OS << ", "; in emit()
112 OS << ShouldAlwaysEmit; in emit()
113 OS << ", "; in emit()
114 OS << KeyPath; in emit()
115 OS << ", "; in emit()
116 emitScopedNormalizedValue(OS, DefaultValue); in emit()
117 OS << ", "; in emit()
118 OS << ImpliedCheck; in emit()
119 OS << ", "; in emit()
120 emitScopedNormalizedValue(OS, ImpliedValue); in emit()
121 OS << ", "; in emit()
122 OS << Normalizer; in emit()
123 OS << ", "; in emit()
124 OS << Denormalizer; in emit()
125 OS << ", "; in emit()
126 OS << ValueMerger; in emit()
127 OS << ", "; in emit()
128 OS << ValueExtractor; in emit()
129 OS << ", "; in emit()
130 OS << TableIndex; in emit()
133 Optional<StringRef> emitValueTable(raw_ostream &OS) const { in emitValueTable()
136 OS << "static const SimpleEnumValue " << ValueTableName << "[] = {\n"; in emitValueTable()
138 OS << "{"; in emitValueTable()
139 write_cstring(OS, Values[I]); in emitValueTable()
140 OS << ","; in emitValueTable()
141 OS << "static_cast<unsigned>("; in emitValueTable()
142 emitScopedNormalizedValue(OS, NormalizedValues[I]); in emitValueTable()
143 OS << ")},"; in emitValueTable()
145 OS << "};\n"; in emitValueTable()
150 void emitScopedNormalizedValue(raw_ostream &OS, in emitScopedNormalizedValue() argument
153 OS << NormalizedValuesScope << "::"; in emitScopedNormalizedValue()
154 OS << NormalizedValue; in emitScopedNormalizedValue()
216 void EmitOptParser(RecordKeeper &Records, raw_ostream &OS) { in EmitOptParser() argument
222 emitSourceFileHeader("Option Parsing Definitions", OS); in EmitOptParser()
242 OS << "/////////\n"; in EmitOptParser()
243 OS << "// Prefixes\n\n"; in EmitOptParser()
244 OS << "#ifdef PREFIX\n"; in EmitOptParser()
245 OS << "#define COMMA ,\n"; in EmitOptParser()
247 OS << "PREFIX("; in EmitOptParser()
250 OS << Prefix.second; in EmitOptParser()
253 OS << ", {"; in EmitOptParser()
255 OS << "\"" << PrefixKey << "\" COMMA "; in EmitOptParser()
256 OS << "nullptr})\n"; in EmitOptParser()
258 OS << "#undef COMMA\n"; in EmitOptParser()
259 OS << "#endif // PREFIX\n\n"; in EmitOptParser()
261 OS << "/////////\n"; in EmitOptParser()
262 OS << "// Groups\n\n"; in EmitOptParser()
263 OS << "#ifdef OPTION\n"; in EmitOptParser()
266 OS << "OPTION("; in EmitOptParser()
269 OS << "nullptr"; in EmitOptParser()
272 OS << ", \"" << R.getValueAsString("Name") << '"'; in EmitOptParser()
275 OS << ", " << getOptionName(R); in EmitOptParser()
278 OS << ", Group"; in EmitOptParser()
281 OS << ", "; in EmitOptParser()
283 OS << getOptionName(*DI->getDef()); in EmitOptParser()
285 OS << "INVALID"; in EmitOptParser()
288 OS << ", INVALID, nullptr, 0, 0"; in EmitOptParser()
292 OS << ",\n"; in EmitOptParser()
293 OS << " "; in EmitOptParser()
294 write_cstring(OS, R.getValueAsString("HelpText")); in EmitOptParser()
296 OS << ", nullptr"; in EmitOptParser()
299 OS << ", nullptr"; in EmitOptParser()
302 OS << ", nullptr)\n"; in EmitOptParser()
304 OS << "\n"; in EmitOptParser()
306 OS << "//////////\n"; in EmitOptParser()
307 OS << "// Options\n\n"; in EmitOptParser()
309 auto WriteOptRecordFields = [&](raw_ostream &OS, const Record &R) { in EmitOptParser() argument
312 OS << Prefixes[PrefixKeyT(RPrefixes.begin(), RPrefixes.end())] << ", "; in EmitOptParser()
315 emitNameUsingSpelling(OS, R); in EmitOptParser()
318 OS << ", " << getOptionName(R); in EmitOptParser()
321 OS << ", " << R.getValueAsDef("Kind")->getValueAsString("Name"); in EmitOptParser()
324 OS << ", "; in EmitOptParser()
328 OS << getOptionName(*DI->getDef()); in EmitOptParser()
330 OS << "INVALID"; in EmitOptParser()
333 OS << ", "; in EmitOptParser()
335 OS << getOptionName(*DI->getDef()); in EmitOptParser()
337 OS << "INVALID"; in EmitOptParser()
343 OS << ", "; in EmitOptParser()
346 OS << "nullptr"; in EmitOptParser()
348 OS << "\""; in EmitOptParser()
350 OS << AliasArg << "\\0"; in EmitOptParser()
351 OS << "\""; in EmitOptParser()
355 OS << ", "; in EmitOptParser()
359 OS << (NumFlags++ ? " | " : "") << cast<DefInit>(I)->getDef()->getName(); in EmitOptParser()
362 OS << (NumFlags++ ? " | " : "") in EmitOptParser()
366 OS << '0'; in EmitOptParser()
369 OS << ", " << R.getValueAsInt("NumArgs"); in EmitOptParser()
373 OS << ",\n"; in EmitOptParser()
374 OS << " "; in EmitOptParser()
375 write_cstring(OS, R.getValueAsString("HelpText")); in EmitOptParser()
377 OS << ", nullptr"; in EmitOptParser()
380 OS << ", "; in EmitOptParser()
382 write_cstring(OS, R.getValueAsString("MetaVarName")); in EmitOptParser()
384 OS << "nullptr"; in EmitOptParser()
387 OS << ", "; in EmitOptParser()
389 write_cstring(OS, R.getValueAsString("Values")); in EmitOptParser()
391 OS << "nullptr"; in EmitOptParser()
402 OS << "OPTION("; in EmitOptParser()
403 WriteOptRecordFields(OS, R); in EmitOptParser()
404 OS << ")\n"; in EmitOptParser()
408 OS << "#endif // OPTION\n"; in EmitOptParser()
432 OS << "#ifdef " << MI.getMacroName() << "\n"; in EmitOptParser()
433 OS << MI.getMacroName() << "("; in EmitOptParser()
434 WriteOptRecordFields(OS, MI.R); in EmitOptParser()
435 OS << ", "; in EmitOptParser()
436 MI.emit(OS); in EmitOptParser()
437 OS << ")\n"; in EmitOptParser()
438 OS << "#endif // " << MI.getMacroName() << "\n"; in EmitOptParser()
441 OS << "\n"; in EmitOptParser()
442 OS << "#ifdef SIMPLE_ENUM_VALUE_TABLE"; in EmitOptParser()
443 OS << "\n"; in EmitOptParser()
444 OS << MarshallingInfo::ValueTablePreamble; in EmitOptParser()
447 if (auto MaybeValueTableName = MI.emitValueTable(OS)) in EmitOptParser()
450 OS << MarshallingInfo::ValueTablesDecl << "{"; in EmitOptParser()
452 OS << "{" << ValueTableName << ", sizeof(" << ValueTableName in EmitOptParser()
455 OS << "};\n"; in EmitOptParser()
456 OS << "static const unsigned SimpleEnumValueTablesSize = " in EmitOptParser()
459 OS << "#endif // SIMPLE_ENUM_VALUE_TABLE\n"; in EmitOptParser()
460 OS << "\n"; in EmitOptParser()
462 OS << "\n"; in EmitOptParser()
463 OS << "#ifdef OPTTABLE_ARG_INIT\n"; in EmitOptParser()
464 OS << "//////////\n"; in EmitOptParser()
465 OS << "// Option Values\n\n"; in EmitOptParser()
469 OS << "{\n"; in EmitOptParser()
470 OS << "bool ValuesWereAdded;\n"; in EmitOptParser()
471 OS << R.getValueAsString("ValuesCode"); in EmitOptParser()
472 OS << "\n"; in EmitOptParser()
474 OS << "ValuesWereAdded = Opt.addValues("; in EmitOptParser()
477 write_cstring(OS, S); in EmitOptParser()
478 OS << ", Values);\n"; in EmitOptParser()
479 OS << "(void)ValuesWereAdded;\n"; in EmitOptParser()
480 OS << "assert(ValuesWereAdded && \"Couldn't add values to " in EmitOptParser()
483 OS << "}\n"; in EmitOptParser()
485 OS << "\n"; in EmitOptParser()
486 OS << "#endif // OPTTABLE_ARG_INIT\n"; in EmitOptParser()