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()
57 static void emitNameUsingSpelling(raw_ostream &OS, const Record &R) { in emitNameUsingSpelling() argument
59 OS << "&"; in emitNameUsingSpelling()
60 write_cstring(OS, StringRef(getOptionSpelling(R, PrefixLength))); in emitNameUsingSpelling()
61 OS << "[" << PrefixLength << "]"; in emitNameUsingSpelling()
102 void emit(raw_ostream &OS) const { in emit()
103 write_cstring(OS, StringRef(getOptionSpelling(R))); in emit()
104 OS << ", "; in emit()
105 OS << ShouldAlwaysEmit; in emit()
106 OS << ", "; in emit()
107 OS << KeyPath; in emit()
108 OS << ", "; in emit()
109 emitScopedNormalizedValue(OS, DefaultValue); in emit()
110 OS << ", "; in emit()
111 OS << ImpliedCheck; in emit()
112 OS << ", "; in emit()
113 emitScopedNormalizedValue(OS, ImpliedValue); in emit()
114 OS << ", "; in emit()
115 OS << Normalizer; in emit()
116 OS << ", "; in emit()
117 OS << Denormalizer; in emit()
118 OS << ", "; in emit()
119 OS << ValueMerger; in emit()
120 OS << ", "; in emit()
121 OS << ValueExtractor; in emit()
122 OS << ", "; in emit()
123 OS << TableIndex; in emit()
126 Optional<StringRef> emitValueTable(raw_ostream &OS) const { in emitValueTable()
129 OS << "static const SimpleEnumValue " << ValueTableName << "[] = {\n"; in emitValueTable()
131 OS << "{"; in emitValueTable()
132 write_cstring(OS, Values[I]); in emitValueTable()
133 OS << ","; in emitValueTable()
134 OS << "static_cast<unsigned>("; in emitValueTable()
135 emitScopedNormalizedValue(OS, NormalizedValues[I]); in emitValueTable()
136 OS << ")},"; in emitValueTable()
138 OS << "};\n"; in emitValueTable()
143 void emitScopedNormalizedValue(raw_ostream &OS, in emitScopedNormalizedValue() argument
146 OS << NormalizedValuesScope << "::"; in emitScopedNormalizedValue()
147 OS << NormalizedValue; in emitScopedNormalizedValue()
207 void EmitOptParser(RecordKeeper &Records, raw_ostream &OS) { in EmitOptParser() argument
213 emitSourceFileHeader("Option Parsing Definitions", OS); in EmitOptParser()
234 OS << "/////////\n"; in EmitOptParser()
235 OS << "// Prefixes\n\n"; in EmitOptParser()
236 OS << "#ifdef PREFIX\n"; in EmitOptParser()
237 OS << "#define COMMA ,\n"; in EmitOptParser()
240 OS << "PREFIX("; in EmitOptParser()
243 OS << I->second; in EmitOptParser()
246 OS << ", {"; in EmitOptParser()
249 OS << "\"" << *PI << "\" COMMA "; in EmitOptParser()
251 OS << "nullptr})\n"; in EmitOptParser()
253 OS << "#undef COMMA\n"; in EmitOptParser()
254 OS << "#endif // PREFIX\n\n"; in EmitOptParser()
256 OS << "/////////\n"; in EmitOptParser()
257 OS << "// Groups\n\n"; in EmitOptParser()
258 OS << "#ifdef OPTION\n"; in EmitOptParser()
263 OS << "OPTION("; in EmitOptParser()
266 OS << "nullptr"; in EmitOptParser()
269 OS << ", \"" << R.getValueAsString("Name") << '"'; in EmitOptParser()
272 OS << ", " << getOptionName(R); in EmitOptParser()
275 OS << ", Group"; in EmitOptParser()
278 OS << ", "; in EmitOptParser()
280 OS << getOptionName(*DI->getDef()); in EmitOptParser()
282 OS << "INVALID"; in EmitOptParser()
285 OS << ", INVALID, nullptr, 0, 0"; in EmitOptParser()
289 OS << ",\n"; in EmitOptParser()
290 OS << " "; in EmitOptParser()
291 write_cstring(OS, R.getValueAsString("HelpText")); in EmitOptParser()
293 OS << ", nullptr"; in EmitOptParser()
296 OS << ", nullptr"; in EmitOptParser()
299 OS << ", nullptr)\n"; in EmitOptParser()
301 OS << "\n"; in EmitOptParser()
303 OS << "//////////\n"; in EmitOptParser()
304 OS << "// Options\n\n"; in EmitOptParser()
306 auto WriteOptRecordFields = [&](raw_ostream &OS, const Record &R) { in EmitOptParser() argument
309 OS << Prefixes[PrefixKeyT(prf.begin(), prf.end())] << ", "; in EmitOptParser()
312 emitNameUsingSpelling(OS, R); in EmitOptParser()
315 OS << ", " << getOptionName(R); in EmitOptParser()
318 OS << ", " << R.getValueAsDef("Kind")->getValueAsString("Name"); in EmitOptParser()
321 OS << ", "; in EmitOptParser()
325 OS << getOptionName(*DI->getDef()); in EmitOptParser()
327 OS << "INVALID"; in EmitOptParser()
330 OS << ", "; in EmitOptParser()
332 OS << getOptionName(*DI->getDef()); in EmitOptParser()
334 OS << "INVALID"; in EmitOptParser()
340 OS << ", "; in EmitOptParser()
343 OS << "nullptr"; in EmitOptParser()
345 OS << "\""; in EmitOptParser()
347 OS << AliasArgs[i] << "\\0"; in EmitOptParser()
348 OS << "\""; in EmitOptParser()
352 OS << ", "; in EmitOptParser()
356 OS << (NumFlags++ ? " | " : "") << cast<DefInit>(I)->getDef()->getName(); in EmitOptParser()
359 OS << (NumFlags++ ? " | " : "") in EmitOptParser()
363 OS << '0'; in EmitOptParser()
366 OS << ", " << R.getValueAsInt("NumArgs"); in EmitOptParser()
370 OS << ",\n"; in EmitOptParser()
371 OS << " "; in EmitOptParser()
372 write_cstring(OS, R.getValueAsString("HelpText")); in EmitOptParser()
374 OS << ", nullptr"; in EmitOptParser()
377 OS << ", "; in EmitOptParser()
379 write_cstring(OS, R.getValueAsString("MetaVarName")); in EmitOptParser()
381 OS << "nullptr"; in EmitOptParser()
384 OS << ", "; in EmitOptParser()
386 write_cstring(OS, R.getValueAsString("Values")); in EmitOptParser()
388 OS << "nullptr"; in EmitOptParser()
401 OS << "OPTION("; in EmitOptParser()
402 WriteOptRecordFields(OS, R); in EmitOptParser()
403 OS << ")\n"; in EmitOptParser()
407 OS << "#endif // OPTION\n"; in EmitOptParser()
431 OS << "#ifdef " << MarshallingInfo::MacroName << "\n"; in EmitOptParser()
432 OS << MarshallingInfo::MacroName << "("; in EmitOptParser()
433 WriteOptRecordFields(OS, MI.R); in EmitOptParser()
434 OS << ", "; in EmitOptParser()
435 MI.emit(OS); in EmitOptParser()
436 OS << ")\n"; in EmitOptParser()
437 OS << "#endif // " << MarshallingInfo::MacroName << "\n"; in EmitOptParser()
440 OS << "\n"; in EmitOptParser()
441 OS << "#ifdef SIMPLE_ENUM_VALUE_TABLE"; in EmitOptParser()
442 OS << "\n"; in EmitOptParser()
443 OS << MarshallingInfo::ValueTablePreamble; in EmitOptParser()
446 if (auto MaybeValueTableName = MI.emitValueTable(OS)) in EmitOptParser()
449 OS << MarshallingInfo::ValueTablesDecl << "{"; in EmitOptParser()
451 OS << "{" << ValueTableName << ", sizeof(" << ValueTableName in EmitOptParser()
454 OS << "};\n"; in EmitOptParser()
455 OS << "static const unsigned SimpleEnumValueTablesSize = " in EmitOptParser()
458 OS << "#endif // SIMPLE_ENUM_VALUE_TABLE\n"; in EmitOptParser()
459 OS << "\n"; in EmitOptParser()
461 OS << "\n"; in EmitOptParser()
462 OS << "#ifdef OPTTABLE_ARG_INIT\n"; in EmitOptParser()
463 OS << "//////////\n"; in EmitOptParser()
464 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()