polserver/lib/Parser/EscriptGrammar/EscriptParserBaseVisitor.h
Kevin Eady 686090d950
Introduce DAP Debugger (#608)
* Add cppdap debugger library and simple server (#508)

* Add cppdap library

* Add cppdap server

* fixup cmake scripts for windows

* Enable caching of cppdap on GitHub actions

* Fix CMake for cppdap target

* Wait 1s for session close before thread ends

* Address review comments
- Remove unnecessary use of wait_for
- Fix wait_for method

* Do not use SocketClientThread for cppdap clients

* Address review comments
- Cleanup object ownership

* Add authorization and event handling (#510)

* Add authorization and event handling [WIP]

* Use std::weak_ptr; Only allow one debugger conn

* Only attach debugger if dbg file exists

* Cleanup weak_ptr; Fix listeners; Add handler stubs

* Address review comments
- PolLock on uoexec and weakptr access
- Use make_shared when creating client thread

* Add ExecutorDebugListener on_destroy callback

* Use cppdap sockets instead of clib sockets

* Update cppdap repository to 2703cf4

* Implement server address binding

* Update cppdap repository to eeca5ce

* Fix warnings

* Use weak_from_this

* Fix stalled executors on disconnect

* Fix stalled executors on re-attach

* Clear uoexec weakptr on all debugger detaches

* Move server to gamestate

* move DapDebugServer into Network namespace

* move DapDebugServer into GameState for storage

* Move DapDebugServer into NetworkManager

* Fix missing memory include

* Add more events (#513)

* Add more events

* Implement dbg_step_out

* Fix breakpoint clearing

* Add even more events (#515)

* add launch request

* Add custom `processes` command

* fixup loop

* Refactoring to move handlers to member functions

* Add VariablesRequest and ScopesRequest

* use std::varaint for Handles

* add pollocks

* refactor Handles to new file

* move custom messages to proto.h

* move clientthread

* some formatting / cleanup

* Add missing PolLock

* move dap variables creation to Handles

* appobj members

* rename ClientThread to DebugClientThread

* rename LaunchRequest args to arg

* Fix compiler error on size_t

* Add support for EvaluateRequest and SetVariableRequest (#519)

* Update grammar for evaluateUnit

* Cleanup various compiler code

* Add support for EvaluateRequest
Only supports values, variables, element access, member access

* Add report clearing to reinitialize state

* Add support for SetVariableRequest

* Fix CI build errors

* Move ExpressionEvaluator to Bscript

* Fix formatting

* Fix include

* Refactor global and frame variable references

* Encapsulate Executor debugging environment; Fix step over (#524)

* Fix step over

* Some cleanup of executor
- Remove unused debug states
- Rename members for consistency

* move debugging environment to new class

* Move instruction inspection to class

* Cleanup slashes on Windows; Add Executor state to processes response (#527)

* Fix backspaces in script names on Windows

* Fix compilation warnings with data loss

* Use boost::icontains for string comparison

* Add Executor state to processes response

* Updates for libfmt

* Fix tests; Fix cppdap build for Mac universal binary (#607)

* fix tests

* fix cppdap build for mac universal binary

* Update cppdap to 2a4c7cf

* Add tests; Modify launch behavior to not stop at entry (redo) (#609)

* Remove unused setExceptionBreakpoints handler

* Add debugger tests

* Launching a script should not set attaching state

* Add launch tests

* Do not check for connection in debugger tests

* Rename `program` to `script` in protocol structs

* Fix launch stopAtEntry; quote string var values

* Fix compilation error on Windows

* Add configfiles doc entry

* Various fixes for finishing touches; Add core-changes (#610)

* switch cmake projects

* simple docs

* cmake move make_directory

* Fix launch request with relative, absolute, package paths

* make relative paths as absolute in source request

* Add true, false, uninit to ExpressionEvaluator

* Re-add setExceptionBreakpoints to avoid unhandled message errors

* Better debug thread logging with instance numbers

* launched scripts should terminate on disconnect (according to DAP spec)

* Properly handle exited event in client thread

* Add core-changes

* Address Discord comments
- Mention vscode-escript in core-changes
- Re-add "cppdap already built" in cmake

* change cmake escriptgrammarlib visibility to public
2024-01-28 09:49:55 +01:00

341 lines
11 KiB
C++

// Generated from EscriptParser.g4 by ANTLR 4.13.1
#pragma once
#include "antlr4-runtime.h"
#include "EscriptParserVisitor.h"
namespace EscriptGrammar {
/**
* This class provides an empty implementation of EscriptParserVisitor, which can be
* extended to create a visitor which only needs to handle a subset of the available methods.
*/
class EscriptParserBaseVisitor : public EscriptParserVisitor {
public:
virtual std::any visitCompilationUnit(EscriptParser::CompilationUnitContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitModuleUnit(EscriptParser::ModuleUnitContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitEvaluateUnit(EscriptParser::EvaluateUnitContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitModuleDeclarationStatement(EscriptParser::ModuleDeclarationStatementContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitModuleFunctionDeclaration(EscriptParser::ModuleFunctionDeclarationContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitModuleFunctionParameterList(EscriptParser::ModuleFunctionParameterListContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitModuleFunctionParameter(EscriptParser::ModuleFunctionParameterContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitTopLevelDeclaration(EscriptParser::TopLevelDeclarationContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitFunctionDeclaration(EscriptParser::FunctionDeclarationContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitStringIdentifier(EscriptParser::StringIdentifierContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitUseDeclaration(EscriptParser::UseDeclarationContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitIncludeDeclaration(EscriptParser::IncludeDeclarationContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitProgramDeclaration(EscriptParser::ProgramDeclarationContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitStatement(EscriptParser::StatementContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitStatementLabel(EscriptParser::StatementLabelContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitIfStatement(EscriptParser::IfStatementContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitGotoStatement(EscriptParser::GotoStatementContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitReturnStatement(EscriptParser::ReturnStatementContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitConstStatement(EscriptParser::ConstStatementContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitVarStatement(EscriptParser::VarStatementContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitDoStatement(EscriptParser::DoStatementContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitWhileStatement(EscriptParser::WhileStatementContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitExitStatement(EscriptParser::ExitStatementContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitBreakStatement(EscriptParser::BreakStatementContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitContinueStatement(EscriptParser::ContinueStatementContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitForStatement(EscriptParser::ForStatementContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitForeachIterableExpression(EscriptParser::ForeachIterableExpressionContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitForeachStatement(EscriptParser::ForeachStatementContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitRepeatStatement(EscriptParser::RepeatStatementContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitCaseStatement(EscriptParser::CaseStatementContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitEnumStatement(EscriptParser::EnumStatementContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitBlock(EscriptParser::BlockContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitVariableDeclarationInitializer(EscriptParser::VariableDeclarationInitializerContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitEnumList(EscriptParser::EnumListContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitEnumListEntry(EscriptParser::EnumListEntryContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitSwitchBlockStatementGroup(EscriptParser::SwitchBlockStatementGroupContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitSwitchLabel(EscriptParser::SwitchLabelContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitForGroup(EscriptParser::ForGroupContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitBasicForStatement(EscriptParser::BasicForStatementContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitCstyleForStatement(EscriptParser::CstyleForStatementContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitIdentifierList(EscriptParser::IdentifierListContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitVariableDeclarationList(EscriptParser::VariableDeclarationListContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitConstantDeclaration(EscriptParser::ConstantDeclarationContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitVariableDeclaration(EscriptParser::VariableDeclarationContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitProgramParameters(EscriptParser::ProgramParametersContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitProgramParameterList(EscriptParser::ProgramParameterListContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitProgramParameter(EscriptParser::ProgramParameterContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitFunctionParameters(EscriptParser::FunctionParametersContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitFunctionParameterList(EscriptParser::FunctionParameterListContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitFunctionParameter(EscriptParser::FunctionParameterContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitScopedFunctionCall(EscriptParser::ScopedFunctionCallContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitFunctionReference(EscriptParser::FunctionReferenceContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitExpression(EscriptParser::ExpressionContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitPrimary(EscriptParser::PrimaryContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitExplicitArrayInitializer(EscriptParser::ExplicitArrayInitializerContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitExplicitStructInitializer(EscriptParser::ExplicitStructInitializerContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitExplicitDictInitializer(EscriptParser::ExplicitDictInitializerContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitExplicitErrorInitializer(EscriptParser::ExplicitErrorInitializerContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitBareArrayInitializer(EscriptParser::BareArrayInitializerContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitParExpression(EscriptParser::ParExpressionContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitExpressionList(EscriptParser::ExpressionListContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitExpressionSuffix(EscriptParser::ExpressionSuffixContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitIndexingSuffix(EscriptParser::IndexingSuffixContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitNavigationSuffix(EscriptParser::NavigationSuffixContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitMethodCallSuffix(EscriptParser::MethodCallSuffixContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitFunctionCall(EscriptParser::FunctionCallContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitStructInitializerExpression(EscriptParser::StructInitializerExpressionContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitStructInitializerExpressionList(EscriptParser::StructInitializerExpressionListContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitStructInitializer(EscriptParser::StructInitializerContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitDictInitializerExpression(EscriptParser::DictInitializerExpressionContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitDictInitializerExpressionList(EscriptParser::DictInitializerExpressionListContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitDictInitializer(EscriptParser::DictInitializerContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitArrayInitializer(EscriptParser::ArrayInitializerContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitLiteral(EscriptParser::LiteralContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitInterpolatedString(EscriptParser::InterpolatedStringContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitInterpolatedStringPart(EscriptParser::InterpolatedStringPartContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitIntegerLiteral(EscriptParser::IntegerLiteralContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitFloatLiteral(EscriptParser::FloatLiteralContext *ctx) override {
return visitChildren(ctx);
}
virtual std::any visitBoolLiteral(EscriptParser::BoolLiteralContext *ctx) override {
return visitChildren(ctx);
}
};
} // namespace EscriptGrammar