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::istream & operator>>(std::istream &, preprocessor &)
Definition: PreProcessor.cc:55
std::ostream & operator<<(std::ostream &, const preprocessor &)
Definition: PreProcessor.cc:67
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:98
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::istream & operator>>(std::istream &, preprocessor &)
Definition: PreProcessor.cc:55
preprocessor()
Definition: PreProcessor.cc:79
friend std::ostream & operator<<(std::ostream &, const preprocessor &)
Definition: PreProcessor.cc:67
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:45
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
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:99
static const char32_t *const order_names[]
Definition: PreProcessor.hh:70
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