mirror of
https://github.com/polserver/polserver
synced 2026-08-13 08:23:08 -04:00
46 lines
1.5 KiB
C++
46 lines
1.5 KiB
C++
#ifndef POLSERVER_SIMPLESTATEMENTBUILDER_H
|
|
#define POLSERVER_SIMPLESTATEMENTBUILDER_H
|
|
|
|
#include "bscript/compiler/astbuilder/ExpressionBuilder.h"
|
|
|
|
namespace Pol::Bscript::Compiler
|
|
{
|
|
class ConstDeclaration;
|
|
class EnumDeclaration;
|
|
class JumpStatement;
|
|
class ReturnStatement;
|
|
class Statement;
|
|
|
|
class SimpleStatementBuilder : public ExpressionBuilder
|
|
{
|
|
public:
|
|
SimpleStatementBuilder( const SourceFileIdentifier&, BuilderWorkspace& );
|
|
|
|
void add_intrusive_debug_marker( antlr4::ParserRuleContext*,
|
|
std::vector<std::unique_ptr<Statement>>& );
|
|
|
|
void add_var_statements( EscriptGrammar::EscriptParser::VarStatementContext*,
|
|
std::vector<std::unique_ptr<Statement>>& );
|
|
|
|
std::unique_ptr<JumpStatement> break_statement(
|
|
EscriptGrammar::EscriptParser::BreakStatementContext* );
|
|
|
|
std::unique_ptr<ConstDeclaration> const_declaration(
|
|
EscriptGrammar::EscriptParser::ConstStatementContext* );
|
|
|
|
std::unique_ptr<JumpStatement> continue_statement(
|
|
EscriptGrammar::EscriptParser::ContinueStatementContext* ctx );
|
|
|
|
std::unique_ptr<EnumDeclaration> enum_declaration(
|
|
EscriptGrammar::EscriptParser::EnumStatementContext* );
|
|
|
|
std::unique_ptr<Expression> variable_initializer(
|
|
EscriptGrammar::EscriptParser::VariableDeclarationInitializerContext* );
|
|
|
|
std::unique_ptr<ReturnStatement> return_statement(
|
|
EscriptGrammar::EscriptParser::ReturnStatementContext* );
|
|
};
|
|
|
|
} // namespace Pol::Bscript::Compiler
|
|
|
|
#endif // POLSERVER_STATEMENTBUILDER_H
|