polserver/pol-core/bscript/compiler/astbuilder/TreeBuilder.h
Eric Swanson ed218a967f
Add AST builder stubs (#230)
* Add astbuilder/TreeBuilder

* Add astbuilder/ValueBuilder

* Add astbuilder/ExpressionBuilder

* Add astbuilder/ SimpleStatementBuilder

* Add astbuilder/CompoundStatementBuilder

* Add ModuleDeclarationBuilder

* Add ProgramBuilder

* Add UserFunctionBuilder
2020-08-18 12:07:51 +02:00

43 lines
818 B
C++

#ifndef POLSERVER_TREEBUILDER_H
#define POLSERVER_TREEBUILDER_H
#include <memory>
#include <string>
#include <vector>
namespace antlr4
{
class ParserRuleContext;
namespace tree
{
class TerminalNode;
}
}
namespace Pol::Bscript::Compiler
{
class Report;
class SourceLocation;
class SourceFileIdentifier;
class BuilderWorkspace;
class TreeBuilder
{
public:
TreeBuilder( const SourceFileIdentifier&, BuilderWorkspace& );
SourceLocation location_for( antlr4::ParserRuleContext& ) const;
SourceLocation location_for( antlr4::tree::TerminalNode& ) const;
std::string text( antlr4::tree::TerminalNode* );
protected:
Report& report;
const SourceFileIdentifier& source_file_identifier;
BuilderWorkspace& workspace;
};
} // namespace Pol::Bscript::Compiler
#endif // POLSERVER_TREEBUILDER_H