![]() |
HAL
|
Classes | |
struct | ParserContext |
'ParserContext' refers to the data structure that stores parser results. More... | |
Variables | |
ParserContext | parser_context |
const auto | NameAction = [](const auto& ctx) { parser_context.current_name = _attr(ctx); } |
const auto | SortAction = [](const auto& ctx) { parser_context.current_size = boost::fusion::at_c<0>(_attr(ctx)); } |
const auto | BinaryValueAction = [](const auto& ctx) { parser_context.current_value = "0b" + _attr(ctx); } |
const auto | HexValueAction = [](const auto& ctx) { parser_context.current_value = "0x" + _attr(ctx); } |
const auto | SignalAssigmentAction |
const auto | NameRule = (+x3::char_("0-9a-zA-Z_"))[NameAction] |
const auto | SortRule = (x3::lit("(_ BitVec ") >> +x3::digit >> x3::lit(")"))[SortAction] |
const auto | BinaryValueRule = (x3::lit("#b") >> +x3::char_("0-1"))[BinaryValueAction] |
const auto | HexValueRule = (x3::lit("#x") >> +x3::xdigit)[HexValueAction] |
const auto | ValueRule = BinaryValueRule | HexValueRule |
const auto | SignalAssignmentRule = (x3::lit("(define-fun") >> NameRule >> x3::lit("()") >> SortRule >> ValueRule >> x3::lit(")"))[SignalAssigmentAction] |
const auto | BOOLECTOR_MODEL_GRAMMAR = +(x3::lit("(model") >> +SignalAssignmentRule >> x3::lit(")")) |
const auto | Z3_MODEL_GRAMMAR = (x3::lit("(") >> (+SignalAssignmentRule) >> x3::lit(")")) | +(x3::lit("(model") >> +SignalAssignmentRule >> x3::lit(")")) |
const auto hal::SMT::ModelParser::BinaryValueAction = [](const auto& ctx) { parser_context.current_value = "0b" + _attr(ctx); } |
const auto hal::SMT::ModelParser::BinaryValueRule = (x3::lit("#b") >> +x3::char_("0-1"))[BinaryValueAction] |
const auto hal::SMT::ModelParser::BOOLECTOR_MODEL_GRAMMAR = +(x3::lit("(model") >> +SignalAssignmentRule >> x3::lit(")")) |
Definition at line 81 of file types.cpp.
Referenced by hal::SMT::Model::parse().
const auto hal::SMT::ModelParser::HexValueAction = [](const auto& ctx) { parser_context.current_value = "0x" + _attr(ctx); } |
const auto hal::SMT::ModelParser::HexValueRule = (x3::lit("#x") >> +x3::xdigit)[HexValueAction] |
const auto hal::SMT::ModelParser::NameAction = [](const auto& ctx) { parser_context.current_name = _attr(ctx); } |
const auto hal::SMT::ModelParser::NameRule = (+x3::char_("0-9a-zA-Z_"))[NameAction] |
ParserContext hal::SMT::ModelParser::parser_context |
Definition at line 31 of file types.cpp.
Referenced by hal::SMT::Model::parse().
const auto hal::SMT::ModelParser::SignalAssigmentAction |
const auto hal::SMT::ModelParser::SignalAssignmentRule = (x3::lit("(define-fun") >> NameRule >> x3::lit("()") >> SortRule >> ValueRule >> x3::lit(")"))[SignalAssigmentAction] |
const auto hal::SMT::ModelParser::SortAction = [](const auto& ctx) { parser_context.current_size = boost::fusion::at_c<0>(_attr(ctx)); } |
const auto hal::SMT::ModelParser::SortRule = (x3::lit("(_ BitVec ") >> +x3::digit >> x3::lit(")"))[SortAction] |
const auto hal::SMT::ModelParser::ValueRule = BinaryValueRule | HexValueRule |
const auto hal::SMT::ModelParser::Z3_MODEL_GRAMMAR = (x3::lit("(") >> (+SignalAssignmentRule) >> x3::lit(")")) | +(x3::lit("(model") >> +SignalAssignmentRule >> x3::lit(")")) |
Definition at line 86 of file types.cpp.
Referenced by hal::SMT::Model::parse().