1#ifndef CPROVER_STD_CODE_H
2#define CPROVER_STD_CODE_H
26 return get(
"statement");
39 return static_cast<const codet &
>(expr);
45 return static_cast<codet &
>(expr);
300 return static_cast<const codet &
>(
op1());
310 return static_cast<const codet &
>(
op2());
338class code_switcht :
public codet
341 inline code_switcht() : codet(
"switch")
346 inline const exprt &
value()
const
351 inline exprt &
value()
356 inline const codet &
body()
const
363 return static_cast<codet &
>(
op1());
367static inline const code_switcht &to_code_switch(
const codet &code)
370 return static_cast<const code_switcht &
>(code);
373static inline code_switcht &to_code_switch(
codet &code)
376 return static_cast<code_switcht &
>(code);
381class code_whilet :
public codet
384 inline code_whilet() : codet(
"while")
389 inline const exprt &
cond()
const
399 inline const codet &
body()
const
406 return static_cast<codet &
>(
op1());
410static inline const code_whilet &to_code_while(
const codet &code)
413 return static_cast<const code_whilet &
>(code);
416static inline code_whilet &to_code_while(
codet &code)
419 return static_cast<code_whilet &
>(code);
424class code_dowhilet :
public codet
427 inline code_dowhilet() : codet(
"dowhile")
432 inline const exprt &
cond()
const
442 inline const codet &
body()
const
449 return static_cast<codet &
>(
op1());
453static inline const code_dowhilet &to_code_dowhile(
const codet &code)
456 return static_cast<const code_dowhilet &
>(code);
459static inline code_dowhilet &to_code_dowhile(
codet &code)
462 return static_cast<code_dowhilet &
>(code);
467class code_fort :
public codet
470 inline code_fort() : codet(
"for")
476 inline const exprt &init()
const
486 inline const exprt &
cond()
const
496 inline const exprt &iter()
const
506 inline const codet &
body()
const
513 return static_cast<codet &
>(
op3());
517static inline const code_fort &to_code_for(
const codet &code)
520 return static_cast<const code_fort &
>(code);
523static inline code_fort &to_code_for(
codet &code)
526 return static_cast<code_fort &
>(code);
531class code_gotot :
public codet
534 inline code_gotot() : codet(
"goto")
538 explicit inline code_gotot(
const irep_idt &
label) : codet(
"goto")
540 set_destination(
label);
543 void set_destination(
const irep_idt &
label)
548 const irep_idt &get_destination()
const
550 return get(
"destination");
554static inline const code_gotot &to_code_goto(
const codet &code)
557 return static_cast<const code_gotot &
>(code);
560static inline code_gotot &to_code_goto(
codet &code)
563 return static_cast<code_gotot &
>(code);
580 op2().
id(
"arguments");
681 return static_cast<const codet &
>(
op0());
718 :
codet(
"switch_case")
746 return static_cast<const exprt &
>(
find(
"case_range_hi"));
751 return static_cast<exprt &
>(
add(
"case_range_hi"));
761 return static_cast<const codet &
>(
op1());
862 :
exprt(
"sideeffect", _type)
869 return get(
"statement");
880 assert(expr.
id() ==
"sideeffect");
886 assert(expr.
id() ==
"sideeffect");
910 op1().
id(
"arguments");
917 op1().
id(
"arguments");
944 assert(expr.
id() ==
"sideeffect");
945 assert(expr.
statement() ==
"function_call");
952 assert(expr.
id() ==
"sideeffect");
953 assert(expr.
statement() ==
"function_call");
Definition std_code.h:243
const exprt & assertion() const
Definition std_code.h:255
code_assertt(const exprt &expr)
Definition std_code.h:250
exprt & assertion()
Definition std_code.h:260
code_assertt()
Definition std_code.h:245
exprt & rhs()
Definition std_code.h:94
const exprt & rhs() const
Definition std_code.h:104
code_assignt(const exprt &lhs, const exprt &rhs)
Definition std_code.h:84
code_assignt()
Definition std_code.h:79
exprt & lhs()
Definition std_code.h:89
const exprt & lhs() const
Definition std_code.h:99
Definition std_code.h:207
code_assumet(const exprt &expr)
Definition std_code.h:214
code_assumet()
Definition std_code.h:209
exprt & assumption()
Definition std_code.h:224
const exprt & assumption() const
Definition std_code.h:219
code_blockt()
Definition std_code.h:51
Definition std_code.h:778
code_breakt()
Definition std_code.h:780
Definition std_code.h:798
code_continuet()
Definition std_code.h:800
A removal of a local variable.
Definition std_code.h:176
exprt & symbol()
Definition std_code.h:183
code_deadt(const exprt &symbol)
Definition std_code.h:178
const exprt & symbol() const
Definition std_code.h:188
Definition std_code.h:123
code_declt(const exprt &lhs, const exprt &rhs)
Definition std_code.h:135
code_declt(const exprt &lhs)
Definition std_code.h:130
code_declt()
Definition std_code.h:125
const exprt & rhs() const
Definition std_code.h:155
exprt & rhs()
Definition std_code.h:145
const exprt & lhs() const
Definition std_code.h:150
exprt & lhs()
Definition std_code.h:140
Definition std_code.h:818
exprt & expression()
Definition std_code.h:835
code_expressiont()
Definition std_code.h:820
code_expressiont(const exprt &expr)
Definition std_code.h:825
const exprt & expression() const
Definition std_code.h:830
A `switch' instruction */ class code_switcht : public codet { public: inline code_switcht() : codet("...
Definition std_code.h:574
const argumentst & arguments() const
Definition std_code.h:610
exprt & function()
Definition std_code.h:593
exprt & lhs()
Definition std_code.h:583
code_function_callt()
Definition std_code.h:576
const exprt & lhs() const
Definition std_code.h:588
argumentst & arguments()
Definition std_code.h:605
exprt::operandst argumentst
Definition std_code.h:603
const exprt & function() const
Definition std_code.h:598
Definition std_code.h:279
const exprt & cond() const
Definition std_code.h:288
codet & then_case()
Definition std_code.h:313
const codet & else_case() const
Definition std_code.h:308
const codet & then_case() const
Definition std_code.h:298
codet & else_case()
Definition std_code.h:318
code_ifthenelset()
Definition std_code.h:281
exprt & cond()
Definition std_code.h:293
bool has_else_case() const
Definition std_code.h:303
Definition std_code.h:667
const irep_idt & get_label() const
Definition std_code.h:684
const codet & code() const
Definition std_code.h:679
codet & code()
Definition std_code.h:674
void set_label(const irep_idt &label)
Definition std_code.h:689
code_labelt()
Definition std_code.h:669
Definition std_code.h:630
code_returnt()
Definition std_code.h:632
exprt & return_value()
Definition std_code.h:643
const exprt & return_value() const
Definition std_code.h:638
bool has_return_value() const
Definition std_code.h:648
code_skipt()
Definition std_code.h:71
A switch-case.
Definition std_code.h:710
const exprt & case_range_hi() const
Upper bound of a GNU case range case lo ... hi:; nil otherwise.
Definition std_code.h:744
exprt & case_op()
Definition std_code.h:738
code_switch_caset()
Definition std_code.h:712
const exprt & case_op() const
Definition std_code.h:733
exprt & case_range_hi()
Definition std_code.h:749
const codet & code() const
Definition std_code.h:759
codet & code()
Definition std_code.h:754
void set_default(bool value)
Definition std_code.h:728
bool is_default() const
Definition std_code.h:723
code_switch_caset(const exprt &_case_op, const codet &_code)
Definition std_code.h:717
codet()
Definition std_code.h:10
codet(const irep_idt &statement)
Definition std_code.h:14
codet & first_statement()
Definition std_code.cpp:18
codet & last_statement()
Definition std_code.cpp:48
const irep_idt & get_statement() const
Definition std_code.h:24
void set_statement(const irep_idt &statement)
Definition std_code.h:19
class code_blockt & make_block()
Definition std_code.cpp:3
exprt & op3()
Definition expr.h:104
std::vector< exprt > operandst
Definition expr.h:39
void copy_to_operands(const exprt &expr)
Definition expr.cpp:41
exprt & op0()
Definition expr.h:77
exprt & op1()
Definition expr.h:82
operandst & operands()
Definition expr.h:57
exprt & op2()
Definition expr.h:93
const irep_idt & value() const
Definition expr.h:67
const irep_idt & statement() const
Definition irep.h:177
const irept & find(const irep_idt &name) const
Definition irep.cpp:167
const irep_idt & get(const irep_idt &name) const
Definition irep.cpp:127
bool dfault() const
Definition irep.h:528
void set(const irep_idt &name, const irep_idt &value)
Definition irep.h:141
bool is_code() const
Definition irep.h:1133
bool is_not_nil() const
Definition irep.h:50
typet & type()
Definition irep.h:153
void make_nil()
Definition irep.h:1236
const irep_idt & id() const
Definition irep.h:109
irept & add(const irep_idt &name)
Definition irep.cpp:179
const irept & body() const
Definition irep.h:352
void label(const irep_idt &val)
Definition irep.h:948
Definition std_code.h:905
exprt & function()
Definition std_code.h:920
side_effect_expr_function_callt(const typet &_type)
Definition std_code.h:913
const exprt::operandst & arguments() const
Definition std_code.h:935
exprt::operandst & arguments()
Definition std_code.h:930
const exprt & function() const
Definition std_code.h:925
side_effect_expr_function_callt()
Definition std_code.h:907
side_effect_expr_nondett(const typet &t)
Definition std_code.h:897
side_effect_expr_nondett()
Definition std_code.h:893
Definition std_code.h:854
side_effect_exprt(const irep_idt &statement, const typet &_type)
Definition std_code.h:861
void set_statement(const irep_idt &statement)
Definition std_code.h:872
const irep_idt & get_statement() const
Definition std_code.h:867
side_effect_exprt(const irep_idt &statement)
Definition std_code.h:856
pthread_cond_t cond
Definition cuda.h:50
static const std::string & label(const GNode &g)
Definition plcopen_xml_parser.cpp:498
side_effect_exprt & to_side_effect_expr(exprt &expr)
Definition std_code.h:878
const code_breakt & to_code_break(const codet &code)
Definition std_code.h:785
const code_assertt & to_code_assert(const codet &code)
Definition std_code.h:266
const code_function_callt & to_code_function_call(const codet &code)
Definition std_code.h:617
side_effect_expr_function_callt & to_side_effect_expr_function_call(exprt &expr)
Definition std_code.h:942
const code_assumet & to_code_assume(const codet &code)
Definition std_code.h:230
const codet & to_code(const exprt &expr)
Definition std_code.h:36
const code_assignt & to_code_assign(const codet &code)
Definition std_code.h:110
const code_labelt & to_code_label(const codet &code)
Definition std_code.h:695
const code_blockt & to_code_block(const codet &code)
Definition std_code.h:56
const code_ifthenelset & to_code_ifthenelse(const codet &code)
Definition std_code.h:324
const code_declt & to_code_decl(const codet &code)
Definition std_code.h:161
const code_returnt & to_code_return(const codet &code)
Definition std_code.h:654
static const code_switch_caset & to_code_switch_case(const codet &code)
Definition std_code.h:765
code_expressiont & to_code_expression(codet &code)
Definition std_code.h:841
const code_deadt & to_code_dead(const codet &code)
Definition std_code.h:194
const code_continuet & to_code_continue(const codet &code)
Definition std_code.h:805