2016-05-19 02:14:06 +03:00
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
|
|
|
|
|
|
using PascalABCCompiler.SyntaxTree;
|
|
|
|
|
|
|
|
|
|
|
|
using SyntaxVisitors;
|
|
|
|
|
|
|
|
|
|
|
|
using PascalABCCompiler.SyntaxTreeConverters;
|
|
|
|
|
|
|
|
|
|
|
|
namespace YieldDesugarSyntaxTreeConverter
|
|
|
|
|
|
{
|
2017-01-12 15:42:16 +03:00
|
|
|
|
// Он перестал быть нужен, поскольку код YieldDesugarSyntaxTreeConverter.Convert был явно добавлен в StandardSyntaxTreeConverter.Convert
|
|
|
|
|
|
// Со временем этот проект надо исключить из решения, а YieldConversionSyntax.dll - исключить из инсталлята
|
2016-05-19 02:14:06 +03:00
|
|
|
|
public class YieldDesugarSyntaxTreeConverter : ISyntaxTreeConverter
|
|
|
|
|
|
{
|
2016-08-07 14:14:08 +03:00
|
|
|
|
public string Name { get; } = "YieldDesugar";
|
2016-07-18 15:58:32 +03:00
|
|
|
|
public syntax_tree_node Convert(syntax_tree_node root)
|
2016-05-19 02:14:06 +03:00
|
|
|
|
{
|
2016-07-17 20:09:53 +03:00
|
|
|
|
root.visit(new MarkMethodHasYieldAndCheckSomeErrorsVisitor());
|
2016-08-20 11:55:59 +03:00
|
|
|
|
ProcessYieldCapturedVarsVisitor.New.ProcessNode(root);
|
2016-06-11 13:25:29 +03:00
|
|
|
|
|
2016-07-08 23:20:56 +03:00
|
|
|
|
#if DEBUG
|
2016-07-19 23:07:47 +03:00
|
|
|
|
try
|
|
|
|
|
|
{
|
2017-04-28 22:41:40 +03:00
|
|
|
|
//root.visit(new SimplePrettyPrinterVisitor(@"d:\\zzz3.txt"));
|
2016-07-19 23:07:47 +03:00
|
|
|
|
}
|
|
|
|
|
|
catch
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2016-07-08 23:20:56 +03:00
|
|
|
|
#endif
|
2016-06-11 13:25:29 +03:00
|
|
|
|
|
2016-05-19 02:14:06 +03:00
|
|
|
|
return root;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|