Lines Matching refs:OS
30 static raw_ostream &write_cstring(raw_ostream &OS, llvm::StringRef Str) { in write_cstring() argument
31 OS << '"'; in write_cstring()
32 OS.write_escaped(Str); in write_cstring()
33 OS << '"'; in write_cstring()
34 return OS; in write_cstring()
55 static void emitNameUsingSpelling(raw_ostream &OS, const Record &R) { in emitNameUsingSpelling() argument
57 OS << "&"; in emitNameUsingSpelling()
58 write_cstring(OS, StringRef(getOptionSpelling(R, PrefixLength))); in emitNameUsingSpelling()
59 OS << "[" << PrefixLength << "]"; in emitNameUsingSpelling()
106 void emit(raw_ostream &OS) const { in emit()
107 write_cstring(OS, StringRef(getOptionSpelling(R))); in emit()
108 OS << ", "; in emit()
109 OS << ShouldParse; in emit()
110 OS << ", "; in emit()
111 OS << ShouldAlwaysEmit; in emit()
112 OS << ", "; in emit()
113 OS << KeyPath; in emit()
114 OS << ", "; in emit()
115 emitScopedNormalizedValue(OS, DefaultValue); in emit()
116 OS << ", "; in emit()
117 OS << ImpliedCheck; in emit()
118 OS << ", "; in emit()
119 emitScopedNormalizedValue(OS, ImpliedValue); in emit()
120 OS << ", "; in emit()
121 OS << Normalizer; in emit()
122 OS << ", "; in emit()
123 OS << Denormalizer; in emit()
124 OS << ", "; in emit()
125 OS << ValueMerger; in emit()
126 OS << ", "; in emit()
127 OS << ValueExtractor; in emit()
128 OS << ", "; in emit()
129 OS << TableIndex; in emit()
132 Optional<StringRef> emitValueTable(raw_ostream &OS) const { in emitValueTable()
135 OS << "static const SimpleEnumValue " << ValueTableName << "[] = {\n"; in emitValueTable()
137 OS << "{"; in emitValueTable()
138 write_cstring(OS, Values[I]); in emitValueTable()
139 OS << ","; in emitValueTable()
140 OS << "static_cast<unsigned>("; in emitValueTable()
141 emitScopedNormalizedValue(OS, NormalizedValues[I]); in emitValueTable()
142 OS << ")},"; in emitValueTable()
144 OS << "};\n"; in emitValueTable()
149 void emitScopedNormalizedValue(raw_ostream &OS, in emitScopedNormalizedValue() argument
152 OS << NormalizedValuesScope << "::"; in emitScopedNormalizedValue()
153 OS << NormalizedValue; in emitScopedNormalizedValue()
215 void EmitOptParser(RecordKeeper &Records, raw_ostream &OS) { in EmitOptParser() argument
221 emitSourceFileHeader("Option Parsing Definitions", OS); in EmitOptParser()
241 OS << "/////////\n"; in EmitOptParser()
242 OS << "// Prefixes\n\n"; in EmitOptParser()
243 OS << "#ifdef PREFIX\n"; in EmitOptParser()
244 OS << "#define COMMA ,\n"; in EmitOptParser()
246 OS << "PREFIX("; in EmitOptParser()
249 OS << Prefix.second; in EmitOptParser()
252 OS << ", {"; in EmitOptParser()
254 OS << "\"" << PrefixKey << "\" COMMA "; in EmitOptParser()
255 OS << "nullptr})\n"; in EmitOptParser()
257 OS << "#undef COMMA\n"; in EmitOptParser()
258 OS << "#endif // PREFIX\n\n"; in EmitOptParser()
260 OS << "/////////\n"; in EmitOptParser()
261 OS << "// Groups\n\n"; in EmitOptParser()
262 OS << "#ifdef OPTION\n"; in EmitOptParser()
265 OS << "OPTION("; in EmitOptParser()
268 OS << "nullptr"; in EmitOptParser()
271 OS << ", \"" << R.getValueAsString("Name") << '"'; in EmitOptParser()
274 OS << ", " << getOptionName(R); in EmitOptParser()
277 OS << ", Group"; in EmitOptParser()
280 OS << ", "; in EmitOptParser()
282 OS << getOptionName(*DI->getDef()); in EmitOptParser()
284 OS << "INVALID"; in EmitOptParser()
287 OS << ", INVALID, nullptr, 0, 0"; in EmitOptParser()
291 OS << ",\n"; in EmitOptParser()
292 OS << " "; in EmitOptParser()
293 write_cstring(OS, R.getValueAsString("HelpText")); in EmitOptParser()
295 OS << ", nullptr"; in EmitOptParser()
298 OS << ", nullptr"; in EmitOptParser()
301 OS << ", nullptr)\n"; in EmitOptParser()
303 OS << "\n"; in EmitOptParser()
305 OS << "//////////\n"; in EmitOptParser()
306 OS << "// Options\n\n"; in EmitOptParser()
308 auto WriteOptRecordFields = [&](raw_ostream &OS, const Record &R) { in EmitOptParser() argument
311 OS << Prefixes[PrefixKeyT(RPrefixes.begin(), RPrefixes.end())] << ", "; in EmitOptParser()
314 emitNameUsingSpelling(OS, R); in EmitOptParser()
317 OS << ", " << getOptionName(R); in EmitOptParser()
320 OS << ", " << R.getValueAsDef("Kind")->getValueAsString("Name"); in EmitOptParser()
323 OS << ", "; in EmitOptParser()
327 OS << getOptionName(*DI->getDef()); in EmitOptParser()
329 OS << "INVALID"; in EmitOptParser()
332 OS << ", "; in EmitOptParser()
334 OS << getOptionName(*DI->getDef()); in EmitOptParser()
336 OS << "INVALID"; in EmitOptParser()
342 OS << ", "; in EmitOptParser()
345 OS << "nullptr"; in EmitOptParser()
347 OS << "\""; in EmitOptParser()
349 OS << AliasArg << "\\0"; in EmitOptParser()
350 OS << "\""; in EmitOptParser()
354 OS << ", "; in EmitOptParser()
358 OS << (NumFlags++ ? " | " : "") << cast<DefInit>(I)->getDef()->getName(); in EmitOptParser()
361 OS << (NumFlags++ ? " | " : "") in EmitOptParser()
365 OS << '0'; in EmitOptParser()
368 OS << ", " << R.getValueAsInt("NumArgs"); in EmitOptParser()
372 OS << ",\n"; in EmitOptParser()
373 OS << " "; in EmitOptParser()
374 write_cstring(OS, R.getValueAsString("HelpText")); in EmitOptParser()
376 OS << ", nullptr"; in EmitOptParser()
379 OS << ", "; in EmitOptParser()
381 write_cstring(OS, R.getValueAsString("MetaVarName")); in EmitOptParser()
383 OS << "nullptr"; in EmitOptParser()
386 OS << ", "; in EmitOptParser()
388 write_cstring(OS, R.getValueAsString("Values")); in EmitOptParser()
390 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 " << MI.getMacroName() << "\n"; in EmitOptParser()
432 OS << MI.getMacroName() << "("; 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 // " << MI.getMacroName() << "\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()
468 OS << "{\n"; in EmitOptParser()
469 OS << "bool ValuesWereAdded;\n"; in EmitOptParser()
470 OS << R.getValueAsString("ValuesCode"); in EmitOptParser()
471 OS << "\n"; in EmitOptParser()
473 OS << "ValuesWereAdded = Opt.addValues("; in EmitOptParser()
476 write_cstring(OS, S); in EmitOptParser()
477 OS << ", Values);\n"; in EmitOptParser()
478 OS << "(void)ValuesWereAdded;\n"; in EmitOptParser()
479 OS << "assert(ValuesWereAdded && \"Couldn't add values to " in EmitOptParser()
482 OS << "}\n"; in EmitOptParser()
484 OS << "\n"; in EmitOptParser()
485 OS << "#endif // OPTTABLE_ARG_INIT\n"; in EmitOptParser()