nw::script::AstLocator

struct AstLocator : public nw::script::BaseVisitor

Public Functions

inline AstLocator(Nss *parent, String symbol, size_t line, size_t character)
inline Symbol locate_in_dependencies(const String &needle, bool is_type = false)
inline virtual void visit(Ast *script)
inline virtual void visit(FunctionDecl *decl)
inline virtual void visit(FunctionDefinition *decl)
inline virtual void visit(StructDecl *decl)
inline virtual void visit(VarDecl *decl)
inline virtual void visit(AssignExpression *expr)
inline virtual void visit(BinaryExpression *expr)
inline virtual void visit(CallExpression *expr)
inline virtual void visit(ComparisonExpression *expr)
inline virtual void visit(ConditionalExpression *expr)
inline virtual void visit(DotExpression *expr)
inline virtual void visit(EmptyExpression*)
inline virtual void visit(GroupingExpression *expr)
inline virtual void visit(LiteralExpression*)
inline virtual void visit(LiteralVectorExpression*)
inline virtual void visit(LogicalExpression *expr)
inline virtual void visit(PostfixExpression *expr)
inline virtual void visit(UnaryExpression *expr)
inline virtual void visit(VariableExpression *expr)
inline virtual void visit(BlockStatement *stmt)
inline virtual void visit(DeclList *stmt)
inline virtual void visit(DoStatement *stmt)
inline virtual void visit(EmptyStatement*)
inline virtual void visit(ExprStatement *stmt)
inline virtual void visit(IfStatement *stmt)
inline virtual void visit(ForStatement *stmt)
inline virtual void visit(JumpStatement *stmt)
inline virtual void visit(LabelStatement *stmt)
inline virtual void visit(SwitchStatement *stmt)
inline virtual void visit(WhileStatement *stmt)

Public Members

const Nss *parent_ = nullptr
String symbol_
SourcePosition pos_
bool in_func_decl_ = false
bool in_struct_decl_ = false
bool found_ = false
Symbol result_
const Declaration *last_seen_decl = nullptr
const DotExpression *dot = nullptr
const CallExpression *call = nullptr
size_t active_param = 0