spot
1.2.4
|
Classes | |
class | spot::ltl::ltl_file |
Read LTL formulae from a file, one by one. More... | |
class | spot::ltl::random_formula |
Base class for random formula generators. More... | |
class | spot::ltl::random_ltl |
Generate random LTL formulae. More... | |
class | spot::ltl::random_boolean |
Generate random Boolean formulae. More... | |
class | spot::ltl::random_sere |
Generate random SERE. More... | |
class | spot::ltl::random_psl |
Generate random PSL formulae. More... | |
Typedefs | |
typedef std::pair< std::string, std::string > | spot::eltl::spair |
typedef std::pair < spot::location, spair > | spot::eltl::parse_error |
A parse diagnostic <location, <file, message>>. More... | |
typedef std::list< parse_error > | spot::eltl::parse_error_list |
A list of parser diagnostics, as filled by parse. More... | |
typedef std::pair< location, std::string > | spot::ltl::parse_error |
A parse diagnostic with its location. More... | |
typedef std::list< parse_error > | spot::ltl::parse_error_list |
A list of parser diagnostics, as filled by parse. More... | |
Functions | |
SPOT_API const formula * | spot::eltl::parse_file (const std::string &filename, parse_error_list &error_list, environment &env=default_environment::instance(), bool debug=false) |
Build a formula from a text file. More... | |
SPOT_API const formula * | spot::eltl::parse_string (const std::string &eltl_string, parse_error_list &error_list, environment &env=default_environment::instance(), bool debug=false) |
Build a formula from an ELTL string. More... | |
SPOT_API bool | spot::eltl::format_parse_errors (std::ostream &os, parse_error_list &error_list) |
Format diagnostics produced by spot::eltl::parse. More... | |
SPOT_API const formula * | spot::ltl::parse (const std::string <l_string, parse_error_list &error_list, environment &env=default_environment::instance(), bool debug=false, bool lenient=false) |
Build a formula from an LTL string. More... | |
SPOT_API const formula * | spot::ltl::parse_boolean (const std::string <l_string, parse_error_list &error_list, environment &env=default_environment::instance(), bool debug=false, bool lenient=false) |
Build a Boolean formula from a string. More... | |
SPOT_API const formula * | spot::ltl::parse_lbt (const std::string <l_string, parse_error_list &error_list, environment &env=default_environment::instance(), bool debug=false) |
Build a formula from an LTL string in LBT's format. More... | |
SPOT_API const formula * | spot::ltl::parse_sere (const std::string &sere_string, parse_error_list &error_list, environment &env=default_environment::instance(), bool debug=false, bool lenient=false) |
Build a formula from a string representing a SERE. More... | |
SPOT_API bool | spot::ltl::format_parse_errors (std::ostream &os, const std::string &input_string, const parse_error_list &error_list) |
Format diagnostics produced by spot::ltl::parse or spot::ltl::ratexp. More... | |
SPOT_API void | spot::ltl::fix_utf8_locations (const std::string &input_string, parse_error_list &error_list) |
Fix location of diagnostics assuming the input is utf8. More... | |
SPOT_API std::ostream & | spot::ltl::dotty (std::ostream &os, const formula *f) |
Write a formula tree using dot's syntax. More... | |
SPOT_API std::ostream & | spot::ltl::dump (std::ostream &os, const formula *f) |
Dump a formula tree. More... | |
SPOT_API std::ostream & | spot::ltl::to_lbt_string (const formula *f, std::ostream &os) |
Output an LTL formula as a string in LBT's format. More... | |
SPOT_API std::string | spot::ltl::to_lbt_string (const formula *f) |
Output an LTL formula as a string in LBT's format. More... | |
SPOT_API std::ostream & | spot::ltl::to_string (const formula *f, std::ostream &os, bool full_parent=false, bool ratexp=false) |
Output a formula as a string which is parsable unless the formula contains automaton operators (used in ELTL formulae). More... | |
SPOT_API std::string | spot::ltl::to_string (const formula *f, bool full_parent=false, bool ratexp=false) |
Output a formula as a string which is parsable unless the formula contains automaton operators (used in ELTL formulae). More... | |
SPOT_API std::ostream & | spot::ltl::to_utf8_string (const formula *f, std::ostream &os, bool full_parent=false, bool ratexp=false) |
Output a formula as an utf8 string which is parsable unless the formula contains automaton operators (used in ELTL formulae). More... | |
SPOT_API std::string | spot::ltl::to_utf8_string (const formula *f, bool full_parent=false, bool ratexp=false) |
Output a formula as an utf8 string which is parsable unless the formula contains automaton operators (used in ELTL formulae). More... | |
SPOT_API std::ostream & | spot::ltl::to_spin_string (const formula *f, std::ostream &os, bool full_parent=false) |
Output a formula as a string parsable by Spin. More... | |
SPOT_API std::string | spot::ltl::to_spin_string (const formula *f, bool full_parent=false) |
Convert a formula into a string parsable by Spin. More... | |
SPOT_API std::ostream & | spot::ltl::to_wring_string (const formula *f, std::ostream &os) |
Output a formula as a string parsable by Wring. More... | |
SPOT_API std::string | spot::ltl::to_wring_string (const formula *f) |
Convert a formula into a string parsable by Wring. More... | |
SPOT_API std::ostream & | spot::ltl::to_latex_string (const formula *f, std::ostream &os, bool full_parent=false, bool ratexp=false) |
Output a formula as an LaTeX string which is parsable unless the formula contains automaton operators (used in ELTL formulae). More... | |
SPOT_API std::string | spot::ltl::to_latex_string (const formula *f, bool full_parent=false, bool ratexp=false) |
Output a formula as a LaTeX string which is parsable unless the formula contains automaton operators (used in ELTL formulae). More... | |
typedef std::pair<location, std::string> spot::ltl::parse_error |
A parse diagnostic with its location.
typedef std::pair<spot::location, spair> spot::eltl::parse_error |
A parse diagnostic <location, <file, message>>.
typedef std::list<parse_error> spot::ltl::parse_error_list |
A list of parser diagnostics, as filled by parse.
typedef std::list<parse_error> spot::eltl::parse_error_list |
A list of parser diagnostics, as filled by parse.
SPOT_API std::ostream& spot::ltl::dotty | ( | std::ostream & | os, |
const formula * | f | ||
) |
Write a formula tree using dot's syntax.
os | The stream where it should be output. |
f | The formula to translate. |
dot
is part of the GraphViz package http://www.research.att.com/sw/tools/graphviz/
SPOT_API std::ostream& spot::ltl::dump | ( | std::ostream & | os, |
const formula * | f | ||
) |
Dump a formula tree.
os | The stream where it should be output. |
f | The formula to dump. |
This is useful to display a formula when debugging.
SPOT_API void spot::ltl::fix_utf8_locations | ( | const std::string & | input_string, |
parse_error_list & | error_list | ||
) |
Fix location of diagnostics assuming the input is utf8.
The spot::ltl::parse() and spot::ltl::parse_sere() function return a parse_error_list that contain locations specified at the byte level. Although these parser recognize some utf8 characters they only work byte by byte and will report positions by counting byte.
This function fixes the positions returned by the parser to look correct when the string is interpreted as a utf8-encoded string.
It is invalid to call this function on a string that is not valid utf8.
You should NOT call this function before calling spot::ltl::format_parse_errors() because it is already called inside if needed. You may need this function only if you want to write your own error reporting code.
input_string | The string that were parsed. |
error_list | The error list filled by spot::ltl::parse or spot::ltl::parse_sere while parsing input_string. |
SPOT_API bool spot::eltl::format_parse_errors | ( | std::ostream & | os, |
parse_error_list & | error_list | ||
) |
Format diagnostics produced by spot::eltl::parse.
os | Where diagnostics should be output. |
error_list | The error list filled by spot::eltl::parse while parsing eltl_string. |
true
iff any diagnostic was output. SPOT_API bool spot::ltl::format_parse_errors | ( | std::ostream & | os, |
const std::string & | input_string, | ||
const parse_error_list & | error_list | ||
) |
Format diagnostics produced by spot::ltl::parse or spot::ltl::ratexp.
If the string is utf8 encoded, spot::ltl::fix_utf8_locations() will be used to report correct utf8 locations (assuming the output is utf8 aware). Nonetheless, the supplied error_list will not be modified.
os | Where diagnostics should be output. |
input_string | The string that were parsed. |
error_list | The error list filled by spot::ltl::parse or spot::ltl::parse_sere while parsing input_string. |
true
iff any diagnostic was output. SPOT_API const formula* spot::ltl::parse | ( | const std::string & | ltl_string, |
parse_error_list & | error_list, | ||
environment & | env = default_environment::instance() , |
||
bool | debug = false , |
||
bool | lenient = false |
||
) |
Build a formula from an LTL string.
ltl_string | The string to parse. |
error_list | A list that will be filled with parse errors that occured during parsing. |
env | The environment into which parsing should take place. |
debug | When true, causes the parser to trace its execution. |
lenient | When true, parenthesized blocks that cannot be parsed as subformulas will be considered as atomic propositions. |
Note that the parser usually tries to recover from errors. It can return a non zero value even if it encountered error during the parsing of ltl_string. If you want to make sure ltl_string was parsed succesfully, check error_list for emptiness.
SPOT_API const formula* spot::ltl::parse_boolean | ( | const std::string & | ltl_string, |
parse_error_list & | error_list, | ||
environment & | env = default_environment::instance() , |
||
bool | debug = false , |
||
bool | lenient = false |
||
) |
Build a Boolean formula from a string.
ltl_string | The string to parse. |
error_list | A list that will be filled with parse errors that occured during parsing. |
env | The environment into which parsing should take place. |
debug | When true, causes the parser to trace its execution. |
lenient | When true, parenthesized blocks that cannot be parsed as subformulas will be considered as atomic propositions. |
Note that the parser usually tries to recover from errors. It can return a non zero value even if it encountered error during the parsing of ltl_string. If you want to make sure ltl_string was parsed succesfully, check error_list for emptiness.
SPOT_API const formula* spot::eltl::parse_file | ( | const std::string & | filename, |
parse_error_list & | error_list, | ||
environment & | env = default_environment::instance() , |
||
bool | debug = false |
||
) |
Build a formula from a text file.
filename | The name of the file to parse. |
error_list | A list that will be filled with parse errors that occured during parsing. |
env | The environment into which parsing should take place. |
debug | When true, causes the parser to trace its execution. |
SPOT_API const formula* spot::ltl::parse_lbt | ( | const std::string & | ltl_string, |
parse_error_list & | error_list, | ||
environment & | env = default_environment::instance() , |
||
bool | debug = false |
||
) |
Build a formula from an LTL string in LBT's format.
ltl_string | The string to parse. |
error_list | A list that will be filled with parse errors that occured during parsing. |
env | The environment into which parsing should take place. |
debug | When true, causes the parser to trace its execution. |
Note that the parser usually tries to recover from errors. It can return an non zero value even if it encountered error during the parsing of ltl_string. If you want to make sure ltl_string was parsed succesfully, check error_list for emptiness.
The LBT syntax, also used by the lbtt and scheck tools, is extended to support W, and M operators (as done in lbtt), and double-quoted atomic propositions that do not start with 'p'.
SPOT_API const formula* spot::ltl::parse_sere | ( | const std::string & | sere_string, |
parse_error_list & | error_list, | ||
environment & | env = default_environment::instance() , |
||
bool | debug = false , |
||
bool | lenient = false |
||
) |
Build a formula from a string representing a SERE.
sere_string | The string to parse. |
error_list | A list that will be filled with parse errors that occured during parsing. |
env | The environment into which parsing should take place. |
debug | When true, causes the parser to trace its execution. |
lenient | When true, parenthesized blocks that cannot be parsed as subformulas will be considered as atomic propositions. |
Note that the parser usually tries to recover from errors. It can return an non zero value even if it encountered error during the parsing of ltl_string. If you want to make sure ltl_string was parsed succesfully, check error_list for emptiness.
SPOT_API const formula* spot::eltl::parse_string | ( | const std::string & | eltl_string, |
parse_error_list & | error_list, | ||
environment & | env = default_environment::instance() , |
||
bool | debug = false |
||
) |
Build a formula from an ELTL string.
eltl_string | The string to parse. |
error_list | A list that will be filled with parse errors that occured during parsing. |
env | The environment into which parsing should take place. |
debug | When true, causes the parser to trace its execution. |
SPOT_API std::ostream& spot::ltl::to_latex_string | ( | const formula * | f, |
std::ostream & | os, | ||
bool | full_parent = false , |
||
bool | ratexp = false |
||
) |
Output a formula as an LaTeX string which is parsable unless the formula contains automaton operators (used in ELTL formulae).
f | The formula to translate. |
os | The stream where it should be output. |
full_parent | Whether or not the string should by fully parenthesized. |
ratexp | Whether we are printing a SERE. |
SPOT_API std::string spot::ltl::to_latex_string | ( | const formula * | f, |
bool | full_parent = false , |
||
bool | ratexp = false |
||
) |
Output a formula as a LaTeX string which is parsable unless the formula contains automaton operators (used in ELTL formulae).
f | The formula to translate. |
full_parent | Whether or not the string should by fully parenthesized. |
ratexp | Whether we are printing a SERE. |
SPOT_API std::ostream& spot::ltl::to_lbt_string | ( | const formula * | f, |
std::ostream & | os | ||
) |
Output an LTL formula as a string in LBT's format.
The formula must be an LTL formula (ELTL and PSL operators are not supported). The M and W operator will be output as-is, because this is accepted by LBTT, however if you plan to use the output with other tools, you should probably rewrite these two operators using unabbreviate_wm().
f | The formula to translate. |
os | The stream where it should be output. |
SPOT_API std::string spot::ltl::to_lbt_string | ( | const formula * | f) |
Output an LTL formula as a string in LBT's format.
The formula must be an LTL formula (ELTL and PSL operators are not supported). The M and W operator will be output as-is, because this is accepted by LBTT, however if you plan to use the output with other tools, you should probably rewrite these two operators using unabbreviate_wm().
f | The formula to translate. |
SPOT_API std::ostream& spot::ltl::to_spin_string | ( | const formula * | f, |
std::ostream & | os, | ||
bool | full_parent = false |
||
) |
Output a formula as a string parsable by Spin.
f | The formula to translate. |
os | The stream where it should be output. |
full_parent | Whether or not the string should by fully parenthesized. |
SPOT_API std::string spot::ltl::to_spin_string | ( | const formula * | f, |
bool | full_parent = false |
||
) |
Convert a formula into a string parsable by Spin.
f | The formula to translate. |
full_parent | Whether or not the string should by fully parenthesized. |
SPOT_API std::ostream& spot::ltl::to_string | ( | const formula * | f, |
std::ostream & | os, | ||
bool | full_parent = false , |
||
bool | ratexp = false |
||
) |
Output a formula as a string which is parsable unless the formula contains automaton operators (used in ELTL formulae).
f | The formula to translate. |
os | The stream where it should be output. |
full_parent | Whether or not the string should by fully parenthesized. |
ratexp | Whether we are printing a SERE. |
SPOT_API std::string spot::ltl::to_string | ( | const formula * | f, |
bool | full_parent = false , |
||
bool | ratexp = false |
||
) |
Output a formula as a string which is parsable unless the formula contains automaton operators (used in ELTL formulae).
f | The formula to translate. |
full_parent | Whether or not the string should by fully parenthesized. |
ratexp | Whether we are printing a SERE. |
SPOT_API std::ostream& spot::ltl::to_utf8_string | ( | const formula * | f, |
std::ostream & | os, | ||
bool | full_parent = false , |
||
bool | ratexp = false |
||
) |
Output a formula as an utf8 string which is parsable unless the formula contains automaton operators (used in ELTL formulae).
f | The formula to translate. |
os | The stream where it should be output. |
full_parent | Whether or not the string should by fully parenthesized. |
ratexp | Whether we are printing a SERE. |
SPOT_API std::string spot::ltl::to_utf8_string | ( | const formula * | f, |
bool | full_parent = false , |
||
bool | ratexp = false |
||
) |
Output a formula as an utf8 string which is parsable unless the formula contains automaton operators (used in ELTL formulae).
f | The formula to translate. |
full_parent | Whether or not the string should by fully parenthesized. |
ratexp | Whether we are printing a SERE. |
SPOT_API std::ostream& spot::ltl::to_wring_string | ( | const formula * | f, |
std::ostream & | os | ||
) |
Output a formula as a string parsable by Wring.
f | The formula to translate. |
os | The stream where it should be output. |
SPOT_API std::string spot::ltl::to_wring_string | ( | const formula * | f) |
Convert a formula into a string parsable by Wring.
f | The formula to translate. |