45 const static char32_t orders[];
72 void parse_(
const std::u32string&);
77 bool unwind_(
unsigned int tolevel,
unsigned int bracketgoal=0,
bool usebracket=
true)
const;
81 void bracket_strings_(
char32_t cb, std::u32string& obrack, std::u32string& cbrack)
const;
88 bool is_digits_(
const std::u32string& str)
const;
@ tok_wedge
Definition PreProcessor.hh:27
@ tok_unequals
Definition PreProcessor.hh:27
@ tok_pow
Definition PreProcessor.hh:27
@ tok_arrow
Definition PreProcessor.hh:27
@ tok_sequence
Definition PreProcessor.hh:27
@ tok_siblings
Definition PreProcessor.hh:27
@ tok_set_option
Definition PreProcessor.hh:27
@ tok_declare
Definition PreProcessor.hh:27
std::ostream & operator<<(std::ostream &, const preprocessor &)
Definition PreProcessor.cc:67
std::istream & operator>>(std::istream &, preprocessor &)
Definition PreProcessor.cc:55
Definition PreProcessor.hh:101
std::vector< std::u32string > parts
Definition PreProcessor.hh:109
bool head_is_generated
Definition PreProcessor.hh:106
bool is_index
Definition PreProcessor.hh:111
unsigned int bracket
Definition PreProcessor.hh:110
unsigned int order
Definition PreProcessor.hh:108
std::u32string accu
Definition PreProcessor.hh:107
void erase()
Definition PreProcessor.cc:496
accu_t()
Definition PreProcessor.cc:491
Preprocessing class which takes infix mathematical notation with all sorts of maths shortcuts and tra...
Definition PreProcessor.hh:36
static const char32_t open_brackets[]
Definition PreProcessor.hh:52
bool verbatim_
Definition PreProcessor.hh:74
bool unwind_(unsigned int tolevel, unsigned int bracketgoal=0, bool usebracket=true) const
Definition PreProcessor.cc:342
void strip_outer_brackets() const
Definition PreProcessor.cc:505
friend std::ostream & operator<<(std::ostream &, const preprocessor &)
Definition PreProcessor.cc:67
preprocessor()
Definition PreProcessor.cc:79
void parse_(const std::u32string &)
Definition PreProcessor.cc:520
unsigned int is_bracket_(char32_t c) const
Definition PreProcessor.cc:167
unsigned int current_bracket_(bool deep=false) const
Definition PreProcessor.cc:118
static const char32_t orders[]
Definition PreProcessor.hh:39
void bracket_strings_(char32_t cb, std::u32string &obrack, std::u32string &cbrack) const
Definition PreProcessor.cc:324
bool eat_initial_whitespace_
Definition PreProcessor.hh:76
friend std::istream & operator>>(std::istream &, preprocessor &)
Definition PreProcessor.cc:55
unsigned int cur_pos
Definition PreProcessor.hh:93
bool is_infix_operator_(char32_t c) const
Definition PreProcessor.cc:89
bool is_digits_(const std::u32string &str) const
Definition PreProcessor.cc:141
bool is_already_bracketed_(const std::u32string &str) const
Definition PreProcessor.cc:174
std::vector< accu_t > accus
Definition PreProcessor.hh:114
accu_t cur
Definition PreProcessor.hh:113
void erase()
Definition PreProcessor.cc:511
std::u32string cur_str
Definition PreProcessor.hh:94
unsigned int is_closing_bracket_(char32_t c) const
Definition PreProcessor.cc:149
bool next_is_product_
Definition PreProcessor.hh:75
bool is_link_(char32_t c) const
Definition PreProcessor.cc:84
static const char32_t close_brackets[]
Definition PreProcessor.hh:53
static const char32_t *const order_names[]
Definition PreProcessor.hh:44
void parse_internal_()
Definition PreProcessor.cc:540
bool default_is_product_() const
Definition PreProcessor.cc:131
unsigned int is_opening_bracket_(char32_t c) const
Definition PreProcessor.cc:158
void print_stack() const
Definition PreProcessor.cc:96
char32_t get_token_(char32_t prev_token)
Definition PreProcessor.cc:183
void show_and_throw_(const std::string &str) const
Definition PreProcessor.cc:526
order_labels
Definition PreProcessor.hh:47
@ order_wedge
Definition PreProcessor.hh:51
@ order_colon
Definition PreProcessor.hh:62
@ order_prod
Definition PreProcessor.hh:50
@ order_unequals
Definition PreProcessor.hh:56
@ order_less_than
Definition PreProcessor.hh:57
@ order_set_option
Definition PreProcessor.hh:61
@ order_arrow
Definition PreProcessor.hh:60
@ order_equals
Definition PreProcessor.hh:55
@ order_pow
Definition PreProcessor.hh:48
@ order_conditions
Definition PreProcessor.hh:59
@ order_comma
Definition PreProcessor.hh:63
@ order_plus
Definition PreProcessor.hh:53
@ order_factorial
Definition PreProcessor.hh:47
@ order_greater_than
Definition PreProcessor.hh:58
@ order_tilde
Definition PreProcessor.hh:64
@ order_frac
Definition PreProcessor.hh:49
@ order_minus
Definition PreProcessor.hh:52
@ order_dot
Definition PreProcessor.hh:54