From e8ea5e907ca1fb359d5dd342e505a78bab42d879 Mon Sep 17 00:00:00 2001 From: Joel Grunbaum <joelgrun@gmail.com> Date: Thu, 12 Aug 2021 10:14:58 +0000 Subject: [PATCH] Renamed tester to fit with parser naming --- ast.cpp | 333 ++++++++++++++++++++++-------------------------------- 1 files changed, 137 insertions(+), 196 deletions(-) diff --git a/ast.cpp b/ast.cpp index 64fa1ad..4f7d694 100644 --- a/ast.cpp +++ b/ast.cpp @@ -1,250 +1,191 @@ -#include <vector> -#include <string> #include "ast.h" +#include <string> +#include <vector> -MathInline::MathInline(std::string *e) { - expr = e; -} -MathInline::~MathInline() { - delete expr; -} -std::string* MathInline::get_expr() { - return expr; -} -void* MathInline::visit(ast_visitor *v) { - return v->visit_MathInline(this); -} +MathInline::MathInline(std::string e) { expr = e; } +std::string MathInline::get_expr() { return expr; } +void *MathInline::visit(ast_visitor *v) { return v->visit_MathInline(this); } -Link::Link(std::string *l, std::string *t) { +Link::Link(std::string l, std::string t) +{ link = l; text = t; } -Link::~Link() { - delete link; - delete text; -} -std::string* Link::get_link() { - return link; -} -std::string* Link::get_text() { - return text; -} -void* Link::visit(ast_visitor *v) { - return v->visit_Link(this); -} -Text::Text(std::string tt) { - t=tt; -} -std::string* Text::get_text() { - return &t; -} -void* Text::visit(ast_visitor *v) { - return v->visit_Text(this); -} +std::string Link::get_link() { return link; } +std::string Link::get_text() { return text; } +void *Link::visit(ast_visitor *v) { return v->visit_Link(this); } +Text::Text(std::string tt) { t = tt; } +std::string Text::get_text() { return t; } +void *Text::visit(ast_visitor *v) { return v->visit_Text(this); } +Format_Bold::Format_Bold(Format *ff) { f = ff; } +Format_Bold::~Format_Bold() { delete f; } +Format *Format_Bold::get_f() { return f; } +void *Format_Bold::visit(ast_visitor *v) { return v->visit_Format_Bold(this); } +Format_Italic::Format_Italic(Format *ff) { f = ff; } +Format_Italic::~Format_Italic() { delete f; } +Format *Format_Italic::get_f() { return f; } -Format_Bold::Format_Bold(Format* ff) { - f=ff; -} -Format_Bold::~Format_Bold() { - delete f; -} -Format* Format_Bold::get_f() { - return f; -} -void* Format_Bold::visit(ast_visitor *v) { - return v->visit_Format_Bold(this); -} - -Format_Italic::Format_Italic(Format* ff) { - f=ff; -} -Format_Italic::~Format_Italic() { - delete f; -} -Format* Format_Italic::get_f() { - return f; -} -void* Format_Italic::visit(ast_visitor *v) { +void *Format_Italic::visit(ast_visitor *v) +{ return v->visit_Format_Italic(this); } -Format_Verbatim::Format_Verbatim(Format* ff) { - f=ff; -} -Format_Verbatim::~Format_Verbatim() { - delete f; -} -Format* Format_Verbatim::get_f() { - return f; -} -void* Format_Verbatim::visit(ast_visitor *v) { +Format_Verbatim::Format_Verbatim(Format *ff) { f = ff; } +Format_Verbatim::~Format_Verbatim() { delete f; } +Format *Format_Verbatim::get_f() { return f; } + +void *Format_Verbatim::visit(ast_visitor *v) +{ return v->visit_Format_Verbatim(this); } -Heading::Heading(int l, std::vector<Word*> w) { +Format_Underline::Format_Underline(Format *ff) { f = ff; } +Format_Underline::~Format_Underline() { delete f; } +Format *Format_Underline::get_f() { return f; } + +void *Format_Underline::visit(ast_visitor *v) +{ + return v->visit_Format_Underline(this); +} + +Format_Strikethrough::Format_Strikethrough(Format *ff) { f = ff; } +Format_Strikethrough::~Format_Strikethrough() { delete f; } +Format *Format_Strikethrough::get_f() { return f; } + +void *Format_Strikethrough::visit(ast_visitor *v) +{ + return v->visit_Format_Strikethrough(this); +} + +Heading::Heading(int l, Line_Word *w) +{ level = l; words = w; } -Heading::~Heading() { - for (std::vector<Word*>::size_type i = 0; i < words.size(); i++) { - delete words[i]; - } - words.clear(); -} -int Heading::get_level() { - return level; -} -std::vector<Word*>* Heading::get_words() { - return &words; -} -void* Heading::visit(ast_visitor *v) { - return v->visit_Heading(this); -} -List::List(int l, int n, std::vector<Word*> w) { +Heading::~Heading() { delete words; } +int Heading::get_level() { return level; } +Line_Word *Heading::get_words() { return words; } +void *Heading::visit(ast_visitor *v) { return v->visit_Heading(this); } + +List::List(int l, int n, Line_Word *w) +{ level = l; number = n; words = w; } -List::~List() { - for (std::vector<Word*>::size_type i = 0; i < words.size(); i++) { + +List::~List() { delete words; } +int List::get_level() { return level; } +int List::get_number() { return number; } +Line_Word *List::get_words() { return words; } +void *List::visit(ast_visitor *v) { return v->visit_List(this); } +MathDisp::MathDisp(std::string e) { expr = e; } +std::string MathDisp::get_expr() { return expr; } +void *MathDisp::visit(ast_visitor *v) { return v->visit_MathDisp(this); } + +Line_Word::~Line_Word() +{ + for (std::vector<Word *>::size_type i = 0; i < words.size(); i++) { delete words[i]; } words.clear(); } -int List::get_level() { - return level; -} -int List::get_number() { - return number; -} -std::vector<Word*>* List::get_words() { - return &words; -} -void* List::visit(ast_visitor *v) { - return v->visit_List(this); -} -MathDisp::MathDisp(std::string *e) { - expr = e; -} -MathDisp::~MathDisp() { - delete expr; -} -std::string* MathDisp::get_expr() { - return expr; -} -void* MathDisp::visit(ast_visitor *v) { - return v->visit_MathDisp(this); -} - -Line_Word::~Line_Word() { - for (std::vector<Word*>::size_type i = 0; i < words.size(); i++) { - delete words[i]; - } - words.clear(); -} -int Line_Word::add_word(Word *w) { +int Line_Word::add_word(Word *w) +{ words.push_back(w); return 0; } -std::vector<Word*>* Line_Word::get_words() { - return &words; -} -void* Line_Word::visit(ast_visitor *v) { - return v->visit_Line_Word(this); -} -Block_Table::~Block_Table() { - for (std::vector<std::vector<Line_Word*>>::size_type i = 0; i < table.size(); i++) { - for (std::vector<Line_Word*>::size_type j = 0; j < table[i].size(); j++) { - delete table[i][j]; +std::vector<Word *> *Line_Word::get_words() { return &words; } +void *Line_Word::visit(ast_visitor *v) { return v->visit_Line_Word(this); } + +Block_Table::~Block_Table() +{ + for (std::vector<std::vector<Line_Word *> *>::size_type i = 0; + i < table.size(); i++) { + std::vector<Line_Word *> *t = table[i]; + for (std::vector<Line_Word *>::size_type j = 0; j < t->size(); + j++) { + delete (*t)[j]; } - table[i].clear(); + t->clear(); + delete t; } table.clear(); } -std::vector<std::vector<Line_Word*>> Block_Table::get_table() { - return table; + +std::vector<std::vector<Line_Word *> *> *Block_Table::get_table() +{ + return &table; } -int Block_Table::add_row(std::vector<Line_Word*> row) { + +int Block_Table::add_row(std::vector<Line_Word *> *row) +{ table.push_back(row); return 0; } -void* Block_Table::visit(ast_visitor *v) { - return v->visit_Block_Table(this); -} -Block_Code::Block_Code(std::string *l) { - lang = l; - c = new std::string(); -} -Block_Code::~Block_Code() { - delete c; - delete lang; -} -int Block_Code::add_line(std::string *add) { - *c = *c + *add + "\n"; - return 0; -} -std::string* Block_Code::get_lang() { - return lang; -} -std::string* Block_Code::get_code() { - return c; -} -void* Block_Code::visit(ast_visitor *v) { - return v->visit_Block_Code(this); -} - -Block_Line::~Block_Line() { - for (std::vector<Line*>::size_type i = 0; i < lines.size(); i++) { - delete lines[i]; +std::vector<Line_Word *> * +Block_Table::get_row(std::vector<Line_Word *>::size_type i) +{ + if (i < table.size()) { + return table[i]; + } else { + return NULL; } - lines.clear(); -} -std::vector<Line*>* Block_Line::get_lines() { - return &lines; -} -int Block_Line::add_line(Line* l) { - lines.push_back(l); - return 0; -} -void* Block_Line::visit(ast_visitor *v) { - return v->visit_Block_Line(this); } -Document::Document(std::string *t, std::string *a, std::string *d) { +void *Block_Table::visit(ast_visitor *v) { return v->visit_Block_Table(this); } + +Block_Code::Block_Code(std::string l) +{ + lang = l; + c = ""; +} + +int Block_Code::add_line(std::string add) +{ + c = c + add + "\n"; + return 0; +} + +std::string Block_Code::get_lang() { return lang; } +std::string Block_Code::get_code() { return c; } +void *Block_Code::visit(ast_visitor *v) { return v->visit_Block_Code(this); } + +Block_Word::Block_Word(Line_Word *lw) { words = lw; } +Block_Word::~Block_Word() { delete words; } +int Block_Word::add_word(Word *w) { return words->add_word(w); } +Line_Word *Block_Word::get_words() { return words; } +void *Block_Word::visit(ast_visitor *v) { return v->visit_Block_Word(this); } + +Document::Document(std::string t, std::string a, std::string d) +{ title = t; author = a; date = d; } -Document::~Document() { - for (std::vector<Block*>::size_type i = 0; i < blocks.size(); i++) { + +Document::~Document() +{ + for (std::vector<Block *>::size_type i = 0; i < blocks.size(); i++) { delete blocks[i]; } blocks.clear(); - delete title; - delete author; - delete date; } -std::string* Document::get_title() { - return title; -} -std::string* Document::get_author() { - return author; -} -std::string* Document::get_date() { - return date; -} -std::vector<Block*>* Document::get_blocks() { - return &blocks; -} -int Document::add_block(Block *b) { + +std::string Document::get_title() { return title; } +std::string Document::get_author() { return author; } +std::string Document::get_date() { return date; } +std::vector<Block *> *Document::get_blocks() { return &blocks; } + +int Document::add_block(Block *b) +{ blocks.push_back(b); return 0; } -void* Document::visit(ast_visitor *v) { - return v->visit_Document(this); -} + +void *Document::visit(ast_visitor *v) { return v->visit_Document(this); } -- Gitblit v1.10.0