2 #ifndef HOBBES_PARSE_TERMINAL_HPP_INCLUDED 3 #define HOBBES_PARSE_TERMINAL_HPP_INCLUDED 21 virtual void show(std::ostream&)
const = 0;
37 void show(std::ostream&)
const;
48 symbol(
const std::string& sname);
49 const std::string& name()
const;
50 void show(std::ostream&
out)
const;
62 void show(std::ostream&)
const;
75 inline prec() : level(0), asc(assoc::
non) { }
Definition: terminal.H:71
assoc::pref asc
Definition: terminal.H:79
std::vector< terminal * > terminals
Definition: terminal.H:28
virtual PatternPtr matchPattern() const =0
prec()
Definition: terminal.H:75
unsigned int nat
Definition: data.H:20
Definition: terminal.H:19
Definition: terminal.H:74
virtual ExprPtr matchRefExpr() const =0
std::string sname
Definition: terminal.H:55
virtual void show(std::ostream &) const =0
std::shared_ptr< Expr > ExprPtr
Definition: expr.H:58
prec(nat level, assoc::pref asc)
Definition: terminal.H:76
#define out
Definition: netio.H:19
Definition: terminal.H:71
std::map< terminal *, prec > precedence
Definition: terminal.H:82
Definition: terminal.H:59
char x
Definition: terminal.H:42
pref
Definition: terminal.H:71
nat level
Definition: terminal.H:78
Definition: terminal.H:46
Definition: terminal.H:71
std::shared_ptr< Pattern > PatternPtr
Definition: pattern.H:18
std::set< terminal * > terminalset
Definition: terminal.H:29
Definition: terminal.H:32