Cadabra
Computer algebra system for field theory problems
DisplayTerminal.hh
Go to the documentation of this file.
1 
2 #pragma once
3 
4 #include "Props.hh"
5 #include "Storage.hh"
6 #include "DisplayBase.hh"
7 #include <ostream>
8 #include <map>
9 #include <string>
10 
11 typedef uint32_t kunichar;
12 
13 namespace cadabra {
14 
25 
26  class DisplayTerminal : public DisplayBase {
27  public:
28  DisplayTerminal(const Kernel&, const Ex&, bool use_unicode = true);
29 
30  protected:
32 
33  virtual void dispatch(std::ostream&, Ex::iterator) override;
34  virtual bool needs_brackets(Ex::iterator it) override;
35 
36  private:
37  void print_multiplier(std::ostream&, Ex::iterator, int mult=1);
40  void print_parent_rel(std::ostream&, str_node::parent_rel_t, bool first);
41  void print_children(std::ostream&, Ex::iterator, int skip=0);
42 
44 
50 
51  void print_productlike(std::ostream&, Ex::iterator, const std::string& inbetween);
52  void print_sumlike(std::ostream&, Ex::iterator);
53  void print_fraclike(std::ostream&, Ex::iterator);
54  void print_commalike(std::ostream&, Ex::iterator);
55  void print_arrowlike(std::ostream&, Ex::iterator);
56  void print_dot(std::ostream&, Ex::iterator);
57  void print_powlike(std::ostream&, Ex::iterator);
58  void print_intlike(std::ostream&, Ex::iterator);
59  void print_conditional(std::ostream&, Ex::iterator);
60  void print_relation(std::ostream&, Ex::iterator);
61  void print_equalitylike(std::ostream&, Ex::iterator);
62  void print_commutator(std::ostream& str, Ex::iterator it, bool comm);
63  void print_components(std::ostream&, Ex::iterator);
64  void print_dots(std::ostream&, Ex::iterator);
65  void print_other(std::ostream&, Ex::iterator);
66 
67  bool children_have_brackets(Ex::iterator ch) const;
68 
69  std::map<std::string, std::string> symmap, greekmap;
70  };
71 
72  const char *unichar(kunichar c);
73 
74  }
cadabra::DisplayTerminal::print_arrowlike
void print_arrowlike(std::ostream &, Ex::iterator)
Definition: DisplayTerminal.cc:380
cadabra::DisplayTerminal::print_dot
void print_dot(std::ostream &, Ex::iterator)
Definition: DisplayTerminal.cc:392
cadabra::DisplayTerminal::print_opening_bracket
void print_opening_bracket(std::ostream &, str_node::bracket_t, str_node::parent_rel_t)
Definition: DisplayTerminal.cc:268
cadabra::DisplayTerminal::print_multiplier
void print_multiplier(std::ostream &, Ex::iterator, int mult=1)
Definition: DisplayTerminal.cc:207
cadabra::Kernel
Definition: Kernel.hh:15
cadabra::DisplayTerminal::print_closing_bracket
void print_closing_bracket(std::ostream &, str_node::bracket_t, str_node::parent_rel_t)
Definition: DisplayTerminal.cc:293
cadabra::DisplayTerminal::needs_brackets
virtual bool needs_brackets(Ex::iterator it) override
Determine if a node needs extra brackets around it.
Definition: DisplayTerminal.cc:80
cadabra::DisplayTerminal::print_parent_rel
void print_parent_rel(std::ostream &, str_node::parent_rel_t, bool first)
Definition: DisplayTerminal.cc:318
cadabra::DisplayTerminal::DisplayTerminal
DisplayTerminal(const Kernel &, const Ex &, bool use_unicode=true)
Definition: DisplayTerminal.cc:8
cadabra::DisplayTerminal::print_relation
void print_relation(std::ostream &, Ex::iterator)
Definition: DisplayTerminal.cc:526
cadabra::DisplayTerminal::print_dots
void print_dots(std::ostream &, Ex::iterator)
Definition: DisplayTerminal.cc:629
kunichar
uint32_t kunichar
Definition: DisplayTerminal.hh:11
cadabra::DisplayTerminal::print_sumlike
void print_sumlike(std::ostream &, Ex::iterator)
Definition: DisplayTerminal.cc:475
cadabra::unichar
const char * unichar(kunichar c)
Definition: DisplayTeX.cc:1018
Storage.hh
cadabra::DisplayTerminal::print_commutator
void print_commutator(std::ostream &str, Ex::iterator it, bool comm)
Definition: DisplayTerminal.cc:565
cadabra::DisplayTerminal::symmap
std::map< std::string, std::string > symmap
Definition: DisplayTerminal.hh:69
cadabra::DisplayTerminal::greekmap
std::map< std::string, std::string > greekmap
Definition: DisplayTerminal.hh:69
cadabra::DisplayTerminal::print_conditional
void print_conditional(std::ostream &, Ex::iterator)
Definition: DisplayTerminal.cc:517
cadabra::DisplayTerminal::print_intlike
void print_intlike(std::ostream &, Ex::iterator)
Definition: DisplayTerminal.cc:536
cadabra::DisplayTerminal::children_have_brackets
bool children_have_brackets(Ex::iterator ch) const
Definition: DisplayTerminal.cc:620
kunichar
uint32_t kunichar
Definition: DisplayMMA.hh:9
Props.hh
DisplayBase.hh
cadabra::DisplayTerminal::print_children
void print_children(std::ostream &, Ex::iterator, int skip=0)
Definition: DisplayTerminal.cc:146
cadabra::DisplayTerminal::print_equalitylike
void print_equalitylike(std::ostream &, Ex::iterator)
Definition: DisplayTerminal.cc:554
cadabra
Functions to handle the exchange properties of two or more symbols in a product.
Definition: Adjform.cc:83
cadabra::Ex
Definition: Storage.hh:141
cadabra::str_node::bracket_t
bracket_t
Definition: Storage.hh:58
cadabra::DisplayTerminal::print_fraclike
void print_fraclike(std::ostream &, Ex::iterator)
Definition: DisplayTerminal.cc:404
cadabra::DisplayTerminal
Definition: DisplayTerminal.hh:26
cadabra::DisplayTerminal::print_commalike
void print_commalike(std::ostream &, Ex::iterator)
Definition: DisplayTerminal.cc:364
cadabra::DisplayTerminal::print_powlike
void print_powlike(std::ostream &, Ex::iterator)
Definition: DisplayTerminal.cc:496
cadabra::DisplayTerminal::use_unicode
bool use_unicode
Definition: DisplayTerminal.hh:31
cadabra::DisplayTerminal::bracket_level
int bracket_level
Definition: DisplayTerminal.hh:43
cadabra::DisplayBase
Definition: DisplayBase.hh:19
cadabra::DisplayTerminal::print_components
void print_components(std::ostream &, Ex::iterator)
Definition: DisplayTerminal.cc:581
cadabra::DisplayTerminal::dispatch
virtual void dispatch(std::ostream &, Ex::iterator) override
Definition: DisplayTerminal.cc:342
cadabra::str_node::parent_rel_t
parent_rel_t
Child nodes are related to their parent node by a so-called parent relation, which can be one of thes...
Definition: Storage.hh:62
cadabra::DisplayTerminal::print_other
void print_other(std::ostream &, Ex::iterator)
Definition: DisplayTerminal.cc:634
cadabra::DisplayTerminal::print_productlike
void print_productlike(std::ostream &, Ex::iterator, const std::string &inbetween)
Printing members for various standard constructions, e.g.
Definition: DisplayTerminal.cc:432