15 #ifndef Om_Language_Consumer_
23 #ifndef Om_Macro_Precompilation_
33 Om::Language::Consumer
37 inline Type_::~Consumer() {}
43 inline void Type_::Parse(Reader & theReader) {
53 Reader theOperandReader(theCodePointSource);
54 this->ParseQuotedElements(theOperandReader);
64 TheSeparator theSeparator(theReader);
65 this->TakeElement(theSeparator);
70 TheOperator theOperator(theReader);
71 this->TakeElement(theOperator);
78 inline void Type_::ParseElements(Reader &) {
80 throw std::logic_error(
"Pure virtual function called.");
83 inline void Type_::ParseQuotedElements(Reader &) {
85 throw std::logic_error(
"Pure virtual function called.");
88 inline void Type_::TakeElement(Operand &) {
90 throw std::logic_error(
"Pure virtual function called.");
93 inline void Type_::TakeElement(Null &) {}
95 inline void Type_::TakeElement(Null
const &) {}
97 inline void Type_::TakeElement(Operand
const &) {
99 throw std::logic_error(
"Pure virtual function called.");
102 inline void Type_::TakeElement(Operator &) {
104 throw std::logic_error(
"Pure virtual function called.");
107 inline void Type_::TakeElement(Operator
const &) {
109 throw std::logic_error(
"Pure virtual function called.");
112 inline void Type_::TakeElement(Separator &) {
114 throw std::logic_error(
"Pure virtual function called.");
117 inline void Type_::TakeElement(Separator
const &) {
119 throw std::logic_error(
"Pure virtual function called.");
122 inline void Type_::TakeElements(Producer &) {
124 throw std::logic_error(
"Pure virtual function called.");
127 inline void Type_::TakeElements(Producer
const &) {
129 throw std::logic_error(
"Pure virtual function called.");
132 inline void Type_::TakeQuotedElements(Producer &) {
134 throw std::logic_error(
"Pure virtual function called.");
137 inline void Type_::TakeQuotedElements(Producer
const &) {
139 throw std::logic_error(
"Pure virtual function called.");
Any object that items can be pulled from.
#define Om_Language_Symbol_SeparatorSymbol_GetCases_()
Generates switch cases for each Om::Language::Symbol::SeparatorSymbol.