29 while(std::getline(
hdr, line))
44 const std::ostringstream &s,
48 std::istringstream in(s.str());
54 ansi_c_parser.ts_18661_3_Floatn_types =
config.
ansi_c.ts_18661_3_Floatn_types;
55 ansi_c_parser.__float128_is_keyword =
config.
ansi_c.__float128_is_keyword;
59 ansi_c_parser.cpp98=
false;
60 ansi_c_parser.cpp11=
false;
61 ansi_c_parser.c17 =
false;
62 ansi_c_parser.c23 =
false;
67 if(ansi_c_parser.parse())
75 ansi_c_parser.parse_tree,
84 symbol_tablet::symbolst::const_iterator
s_it=
85 new_symbol_table.
symbols.find(identifier);
90 message.
error() <<
"failed to produce built-in symbol '" << identifier
106 bool support_float16_type,
113 std::ostringstream s;
121 return convert(identifier, s, symbol_table,
mh);
127 return convert(identifier, s, symbol_table,
mh);
134 return convert(identifier, s, symbol_table,
mh);
141 return convert(identifier, s, symbol_table,
mh);
151 return convert(identifier, s, symbol_table,
mh);
154 return convert(identifier, s, symbol_table,
mh);
157 return convert(identifier, s, symbol_table,
mh);
160 return convert(identifier, s, symbol_table,
mh);
163 return convert(identifier, s, symbol_table,
mh);
166 return convert(identifier, s, symbol_table,
mh);
169 return convert(identifier, s, symbol_table,
mh);
176 return convert(identifier, s, symbol_table,
mh);
179 return convert(identifier, s, symbol_table,
mh);
182 return convert(identifier, s, symbol_table,
mh);
185 return convert(identifier, s, symbol_table,
mh);
188 return convert(identifier, s, symbol_table,
mh);
191 return convert(identifier, s, symbol_table,
mh);
194 return convert(identifier, s, symbol_table,
mh);
197 return convert(identifier, s, symbol_table,
mh);
200 return convert(identifier, s, symbol_table,
mh);
208 return convert(identifier, s, symbol_table,
mh);
218 return convert(identifier, s, symbol_table,
mh);
225 return convert(identifier, s, symbol_table,
mh);
const char gcc_builtin_headers_ia32_7[]
const char cprover_builtin_headers[]
const char gcc_builtin_headers_ia32[]
const char gcc_builtin_headers_ia32_2[]
const char gcc_builtin_headers_ia32_5[]
const char gcc_builtin_headers_ubsan[]
void ansi_c_internal_additions(std::string &code, bool support_float16_type)
const char windows_builtin_headers[]
const char gcc_builtin_headers_ia32_8[]
const char gcc_builtin_headers_mem_string[]
const char gcc_builtin_headers_ia32_4[]
const char gcc_builtin_headers_generic[]
const char gcc_builtin_headers_tm[]
const char gcc_builtin_headers_ia32_9[]
const char cw_builtin_headers[]
const char gcc_builtin_headers_math[]
const char gcc_builtin_headers_arm[]
const char gcc_builtin_headers_ia32_6[]
const char gcc_builtin_headers_mips[]
const char clang_builtin_headers[]
const char arm_builtin_headers[]
const char gcc_builtin_headers_omp[]
const char gcc_builtin_headers_ia32_3[]
const char gcc_builtin_headers_power[]
void ansi_c_scanner_init(ansi_c_parsert &)
bool ansi_c_typecheck(ansi_c_parse_treet &ansi_c_parse_tree, symbol_table_baset &symbol_table, const std::string &module, message_handlert &message_handler)
ANSI-C Language Type Checking.
static bool convert(const irep_idt &identifier, const std::ostringstream &s, symbol_table_baset &symbol_table, message_handlert &message_handler)
bool builtin_factory(const irep_idt &identifier, bool support_float16_type, symbol_table_baset &symbol_table, message_handlert &mh)
Check whether given identifier is a compiler built-in.
static bool find_pattern(const std::string &pattern, const char *header_file, std::ostream &out)
ait supplies three of the four components needed: an abstract interpreter (in this case handling func...
struct configt::ansi_ct ansi_c
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
Class that provides messages with a built-in verbosity 'level'.
The symbol table base class interface.
const symbolst & symbols
Read-only field, used to look up symbols given their names.
bool add(const symbolt &symbol)
Add a new symbol to the symbol table.
bool has_prefix(const std::string &s, const std::string &prefix)
const std::string & id2string(const irep_idt &d)
std::string strip_string(const std::string &s)
Remove all whitespace characters from either end of a string.