mjplusplus
v0.4.1
|
#include <ClassDeclaration.hpp>
Public Member Functions | |
ClassDeclaration (shptr< Ident > class_name, shptr< vec< shptr< ClassMember >>> members) | |
virtual void | toString (std::ostream &out, unsigned int indent, bool=false) const |
bool | collectDefinitions (semantic::SemanticAnalysis &sa, shptr< semantic::symbol::SymbolTable > symbolTable) const |
void | analyze (semantic::SemanticAnalysis &sa) const |
std::string | getName () const |
shptr< Ident > | getIdent () const |
virtual void | accept (ASTVisitor &visitor) const |
shptr< vec< shptr< ClassMember > > > | getMembers () const |
ast::ClassDeclaration::ClassDeclaration | ( | shptr< Ident > | class_name, |
shptr< vec< shptr< ClassMember >>> | members | ||
) |
|
virtual |
Reimplemented from ast::Node.
void ast::ClassDeclaration::analyze | ( | semantic::SemanticAnalysis & | sa | ) | const |
bool ast::ClassDeclaration::collectDefinitions | ( | semantic::SemanticAnalysis & | sa, |
shptr< semantic::symbol::SymbolTable > | symbolTable | ||
) | const |
shptr< vec< shptr< ClassMember > > > ast::ClassDeclaration::getMembers | ( | ) | const |
std::string ast::ClassDeclaration::getName | ( | ) | const |
|
virtual |
writes a representation of the Node to out, including all children. special invokes "special" behavior for certain nodes MethodDeclaration: print static keyword Block & If: skip indentation Expression: don't print surrounding parens in addition Block doesn't print newline after trailing } if ~indent is passed instead of indent
Implements ast::Node.