pascalabcnet/SyntaxVisitors/Async/MainVisitor.cs

32 lines
864 B
C#
Raw Permalink Normal View History

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