#include "model/terminal_rules/[[[$terminal]]].h" [[[ if ($return_type ne 'string' || defined $nonpointer_return_type && $nonpointer_return_type ne 'string') { $OUT .= "#include "; } ]]] #include #include using namespace std; // --------------------------------------------------------------------------- const bool [[[$terminal]]]::Check_For_String() { if (!Is_Valid()) return false; m_string_count++; if (m_string_count > [[[$size]]]) return false; switch (m_string_count) { [[[ for (my $i = 1; $i-1 < $size; $i++) { $OUT .=<<"EOF"; case $i : { return_value = $strings[$i-1]; break; } EOF } ]]] } strings.clear(); [[[ if ($return_type ne 'string' || defined $nonpointer_return_type && $nonpointer_return_type ne 'string') { $OUT .= <& [[[$terminal]]]::Get_String() const { assert(m_string_count <= [[[$size]]]); return strings; } // --------------------------------------------------------------------------- [[[ if (defined $nonpointer_return_type) { $OUT .= <