cprover
smt2_parsert Class Reference

#include <smt2_parser.h>

Inheritance diagram for smt2_parsert:
[legend]
Collaboration diagram for smt2_parsert:
[legend]

Classes

struct  idt
 

Public Types

using id_mapt = std::map< irep_idt, idt >
 
- Public Types inherited from messaget
enum  message_levelt {
  M_ERROR =1, M_WARNING =2, M_RESULT =4, M_STATUS =6,
  M_STATISTICS =8, M_PROGRESS =9, M_DEBUG =10
}
 

Public Member Functions

 smt2_parsert (std::istream &_in)
 
bool parse () override
 
- Public Member Functions inherited from smt2_tokenizert
 smt2_tokenizert (std::istream &_in)
 
 operator bool ()
 
- Public Member Functions inherited from parsert
virtual void clear ()
 
 parsert ()
 
virtual ~parsert ()
 
bool read (char &ch)
 
bool eof ()
 
void parse_error (const std::string &message, const std::string &before)
 
void inc_line_no ()
 
void set_line_no (unsigned _line_no)
 
void set_file (const irep_idt &file)
 
irep_idt get_file () const
 
unsigned get_line_no () const
 
unsigned get_column () const
 
void set_column (unsigned _column)
 
void set_source_location (exprt &e)
 
void set_function (const irep_idt &function)
 
void advance_column (unsigned token_width)
 
- Public Member Functions inherited from messaget
virtual void set_message_handler (message_handlert &_message_handler)
 
message_handlertget_message_handler ()
 
 messaget ()
 
 messaget (const messaget &other)
 
messagetoperator= (const messaget &other)
 
 messaget (message_handlert &_message_handler)
 
virtual ~messaget ()
 
mstreamtget_mstream (unsigned message_level) const
 
mstreamterror () const
 
mstreamtwarning () const
 
mstreamtresult () const
 
mstreamtstatus () const
 
mstreamtstatistics () const
 
mstreamtprogress () const
 
mstreamtdebug () const
 
void conditional_output (mstreamt &mstream, const std::function< void(mstreamt &)> &output_generator) const
 Generate output to mstream using output_generator if the configured verbosity is at least as high as that of mstream. More...
 

Public Attributes

id_mapt id_map
 
- Public Attributes inherited from parsert
std::istream * in
 
std::string this_line
 
std::string last_line
 
std::vector< exprtstack
 

Protected Types

using renaming_mapt = std::map< irep_idt, irep_idt >
 
using renaming_counterst = std::map< irep_idt, unsigned >
 
- Protected Types inherited from smt2_tokenizert
using tokent = enum { NONE, END_OF_FILE, ERROR, STRING_LITERAL, NUMERAL, SYMBOL, OPEN, CLOSE }
 

Protected Member Functions

void command_sequence ()
 
virtual void command (const std::string &)
 
irep_idt get_fresh_id (const irep_idt &)
 
irep_idt rename_id (const irep_idt &) const
 
void ignore_command ()
 
exprt expression ()
 
exprt function_application ()
 
typet sort ()
 
exprt::operandst operands ()
 
typet function_signature_declaration ()
 
typet function_signature_definition ()
 
exprt multi_ary (irep_idt, const exprt::operandst &)
 
exprt binary_predicate (irep_idt, const exprt::operandst &)
 
exprt binary (irep_idt, const exprt::operandst &)
 
exprt unary (irep_idt, const exprt::operandst &)
 
exprt let_expression ()
 
exprt quantifier_expression (irep_idt)
 
exprt function_application (const irep_idt &identifier, const exprt::operandst &op)
 
exprt::operandst cast_bv_to_signed (const exprt::operandst &)
 Apply typecast to signedbv to expressions in vector. More...
 
exprt cast_bv_to_unsigned (const exprt &)
 Apply typecast to unsignedbv to given expression. More...
 
- Protected Member Functions inherited from smt2_tokenizert
tokent next_token ()
 
tokent peek ()
 
mstreamterror ()
 

Protected Attributes

bool exit
 
renaming_mapt renaming_map
 
renaming_counterst renaming_counters
 
- Protected Attributes inherited from smt2_tokenizert
std::string buffer
 
bool ok
 
bool peeked
 
tokent token
 
- Protected Attributes inherited from parsert
source_locationt source_location
 
unsigned line_no
 
unsigned previous_line_no
 
unsigned column
 
- Protected Attributes inherited from messaget
message_handlertmessage_handler
 
mstreamt mstream
 

Additional Inherited Members

- Static Public Member Functions inherited from messaget
static unsigned eval_verbosity (const std::string &user_input, const message_levelt default_verbosity, message_handlert &dest)
 Parse a (user-)provided string as a verbosity level and set it as the verbosity of dest. More...
 
static mstreamteom (mstreamt &m)
 
static mstreamtendl (mstreamt &m)
 

Detailed Description

Definition at line 18 of file smt2_parser.h.

Member Typedef Documentation

◆ id_mapt

using smt2_parsert::id_mapt = std::map<irep_idt, idt>

Definition at line 43 of file smt2_parser.h.

◆ renaming_counterst

using smt2_parsert::renaming_counterst = std::map<irep_idt, unsigned>
protected

Definition at line 55 of file smt2_parser.h.

◆ renaming_mapt

using smt2_parsert::renaming_mapt = std::map<irep_idt, irep_idt>
protected

Definition at line 53 of file smt2_parser.h.

Constructor & Destructor Documentation

◆ smt2_parsert()

smt2_parsert::smt2_parsert ( std::istream &  _in)
inlineexplicit

Definition at line 21 of file smt2_parser.h.

Member Function Documentation

◆ binary()

exprt smt2_parsert::binary ( irep_idt  id,
const exprt::operandst op 
)
protected

Definition at line 414 of file smt2_parser.cpp.

References messaget::eom(), and smt2_tokenizert::error().

Referenced by function_application().

◆ binary_predicate()

exprt smt2_parsert::binary_predicate ( irep_idt  id,
const exprt::operandst op 
)
protected

Definition at line 381 of file smt2_parser.cpp.

References messaget::eom(), and smt2_tokenizert::error().

Referenced by function_application().

◆ cast_bv_to_signed()

exprt::operandst smt2_parsert::cast_bv_to_signed ( const exprt::operandst op)
protected

Apply typecast to signedbv to expressions in vector.

Definition at line 316 of file smt2_parser.cpp.

References messaget::eom(), smt2_tokenizert::error(), messaget::result(), and to_unsignedbv_type().

Referenced by function_application().

◆ cast_bv_to_unsigned()

exprt smt2_parsert::cast_bv_to_unsigned ( const exprt expr)
protected

Apply typecast to unsignedbv to given expression.

Definition at line 339 of file smt2_parser.cpp.

References messaget::eom(), smt2_tokenizert::error(), irept::id(), to_signedbv_type(), and exprt::type().

Referenced by function_application().

◆ command()

void smt2_parsert::command ( const std::string &  c)
protectedvirtual

◆ command_sequence()

void smt2_parsert::command_sequence ( )
protected

◆ expression()

◆ function_application() [1/2]

◆ function_application() [2/2]

exprt smt2_parsert::function_application ( const irep_idt identifier,
const exprt::operandst op 
)
protected

Definition at line 282 of file smt2_parser.cpp.

References messaget::eom(), smt2_tokenizert::error(), id_map, and messaget::result().

◆ function_signature_declaration()

typet smt2_parsert::function_signature_declaration ( )
protected

◆ function_signature_definition()

◆ get_fresh_id()

irep_idt smt2_parsert::get_fresh_id ( const irep_idt id)
protected

Definition at line 94 of file smt2_parser.cpp.

References id2string(), id_map, renaming_counters, renaming_map, and to_string().

Referenced by let_expression().

◆ ignore_command()

void smt2_parsert::ignore_command ( )
protected

◆ let_expression()

◆ multi_ary()

exprt smt2_parsert::multi_ary ( irep_idt  id,
const exprt::operandst op 
)
protected

Definition at line 354 of file smt2_parser.cpp.

References messaget::eom(), smt2_tokenizert::error(), and messaget::result().

Referenced by function_application().

◆ operands()

exprt::operandst smt2_parsert::operands ( )
protected

◆ parse()

bool smt2_parsert::parse ( )
inlineoverridevirtual

Implements parsert.

Definition at line 27 of file smt2_parser.h.

References command_sequence(), and smt2_tokenizert::ok.

Referenced by solver().

◆ quantifier_expression()

◆ rename_id()

irep_idt smt2_parsert::rename_id ( const irep_idt id) const
protected

Definition at line 114 of file smt2_parser.cpp.

References renaming_map.

Referenced by expression(), and function_application().

◆ sort()

◆ unary()

exprt smt2_parsert::unary ( irep_idt  id,
const exprt::operandst op 
)
protected

Definition at line 403 of file smt2_parser.cpp.

References messaget::eom(), and smt2_tokenizert::error().

Referenced by function_application().

Member Data Documentation

◆ exit

bool smt2_parsert::exit
protected

Definition at line 47 of file smt2_parser.h.

Referenced by smt2_solvert::command(), command(), and command_sequence().

◆ id_map

◆ renaming_counters

renaming_counterst smt2_parsert::renaming_counters
protected

Definition at line 56 of file smt2_parser.h.

Referenced by get_fresh_id().

◆ renaming_map

renaming_mapt smt2_parsert::renaming_map
protected

Definition at line 54 of file smt2_parser.h.

Referenced by get_fresh_id(), let_expression(), and rename_id().


The documentation for this class was generated from the following files: