pascalabcnet/SyntaxVisitors/TeacherControl/TeacherControl.cs
Mikhalkovich Stanislav 9951c8fb29 XLSX исправленный
pt4pabc.dll с информацией о выполнении
LightPT - изменения
2022-07-19 15:33:13 +03:00

52 lines
2.1 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using PascalABCCompiler.SyntaxTree;
namespace SyntaxVisitors
{
public class TeacherControlConverter : WalkingVisitorNew
{
public static TeacherControlConverter New
{
get { return new TeacherControlConverter(); }
}
public string Name { get => "TeacherContolConverter"; }
public syntax_tree_node Convert(syntax_tree_node root)
{
try
{
var program = root as program_module;
if (program == null) // если это не главная программа, то не преобразовывать
return root;
var FileName = program.file_name;
var fi = new System.IO.FileInfo(FileName);
var SourceFileDirectory = fi.DirectoryName;
var FullLightPTName = System.IO.Path.Combine(SourceFileDirectory, "lightpt.dat");
if (!System.IO.File.Exists(FullLightPTName))
return root;
if (program.used_units == null)
program.used_units = new uses_list();
// Добавляем в начало, а секции инициализации вызываются последними
// Проверять, какой CurrentIOSystem подключен, и если не стандартный, то не подключать Light
// Пробуем добавить последними, тогда секции инициализации LightPT вызываются первыми,
// что переключает ввод на LightPT,
// а секции финализации - последними (хорошо)
program.used_units.Add(new unit_or_namespace("LightPT", null));
program.used_units.Add(new unit_or_namespace("Tasks", null));
}
catch
{
}
return root;
}
}
}