pascalabcnet/SyntaxVisitors/Async/MainVisitor.cs
Kalsash 6de1848ec9
Async await fix (#3146)
* Добавил комментарии для async/await

* source_context fix

* ReplaceVarNames fix

* Parametrs fix

* async_defs fix

---------

Co-authored-by: Aleksandr Kalinin <akalinin@sfedu.ru>
2024-06-12 16:14:38 +03:00

32 lines
864 B
C#

using PascalABCCompiler.SyntaxTree;
namespace SyntaxVisitors.Async
{
internal class MainVisitor :BaseChangeVisitor
{
// Визитор, который проверяет, есть ли хоть
// один await в асинхронном методе
public static bool HasAwait = false;
public static MainVisitor New
{
get { return new MainVisitor(); }
}
public static void Accept(statement_list st)
{
New.ProcessNode(st);
}
public static void Accept(procedure_definition pd)
{
New.ProcessNode(pd);
}
public override void visit(await_node_statement ans)
{
HasAwait = true;
}
public override void visit(await_node aw)
{
HasAwait = true;
}
}
}