SyntaxTreeConvertersController.cs
This commit is contained in:
parent
2eb2a93bce
commit
79b0430b2d
|
|
@ -1,6 +1,7 @@
|
|||
// Copyright (c) Ivan Bondarev, Stanislav Mihalkovich (for details please see \doc\copyright.txt)
|
||||
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.IO;
|
||||
|
|
@ -42,7 +43,9 @@ namespace PascalABCCompiler.SyntaxTreeConverters
|
|||
private void AddConverters(string DirectoryName)
|
||||
{
|
||||
DirectoryInfo di = new DirectoryInfo(DirectoryName);
|
||||
FileInfo[] dllfiles = di.GetFiles("*ConversionSyntax.dll");
|
||||
List<FileInfo> dllfiles = di.GetFiles("*ConversionSyntax.dll").ToList();
|
||||
dllfiles.Add(new FileInfo("SyntaxTreeConverters.dll"));
|
||||
|
||||
System.Reflection.Assembly assembly = null;
|
||||
ISyntaxTreeConverter Converter;
|
||||
foreach (FileInfo fi in dllfiles)
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ internal static class RevisionClass
|
|||
public const string Major = "3";
|
||||
public const string Minor = "1";
|
||||
public const string Build = "0";
|
||||
public const string Revision = "1231";
|
||||
public const string Revision = "1232";
|
||||
|
||||
public const string MainVersion = Major + "." + Minor;
|
||||
public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
%COREVERSION%=0
|
||||
%REVISION%=1231
|
||||
%MINOR%=1
|
||||
%REVISION%=1232
|
||||
%COREVERSION%=0
|
||||
%MAJOR%=3
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -1 +1 @@
|
|||
!define VERSION '3.1.0.1231'
|
||||
!define VERSION '3.1.0.1232'
|
||||
|
|
|
|||
76
SyntaxTreeConverters/SampleSyntaxTreeConverter.cs
Normal file
76
SyntaxTreeConverters/SampleSyntaxTreeConverter.cs
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.IO;
|
||||
using PascalABCCompiler.SyntaxTree;
|
||||
|
||||
namespace PascalABCCompiler.SyntaxTreeConverters
|
||||
{
|
||||
public class SampleVisitor: BaseEnterExitVisitor
|
||||
{
|
||||
int Tabs = -2;
|
||||
System.IO.StreamWriter fs;
|
||||
public SampleVisitor()
|
||||
{
|
||||
fs = File.CreateText("d:\\logSampleVisitor.log");
|
||||
}
|
||||
|
||||
public string TabString
|
||||
{
|
||||
get
|
||||
{
|
||||
return new string(' ', Tabs);
|
||||
}
|
||||
}
|
||||
public override void Enter(syntax_tree_node st)
|
||||
{
|
||||
Tabs += 2;
|
||||
fs.Write(TabString);
|
||||
}
|
||||
public override void Exit(syntax_tree_node st)
|
||||
{
|
||||
Tabs -= 2;
|
||||
if (st.GetType()==typeof(program_module))
|
||||
fs.Close();
|
||||
}
|
||||
public override void DefaultVisit(syntax_tree_node n)
|
||||
{
|
||||
fs.WriteLine(n.GetType().Name);
|
||||
base.DefaultVisit(n);
|
||||
}
|
||||
public override void visit(ident id)
|
||||
{
|
||||
fs.WriteLine(id.name);
|
||||
}
|
||||
public override void visit(int32_const i)
|
||||
{
|
||||
fs.WriteLine(i.val);
|
||||
}
|
||||
public override void visit(token_info n)
|
||||
{
|
||||
fs.WriteLine(n.text);
|
||||
}
|
||||
public override void visit(bin_expr n)
|
||||
{
|
||||
fs.WriteLine(n.GetType().Name + " " + n.operation_type);
|
||||
base.DefaultVisit(n);
|
||||
}
|
||||
}
|
||||
|
||||
public class SampleSyntaxTreeConverter: ISyntaxTreeConverter
|
||||
{
|
||||
public string Name { get; set; }
|
||||
public string Version { get; set; }
|
||||
public string Description { get; set; }
|
||||
public string Copyright { get; set; }
|
||||
public ConverterType ConverterType { get; set; }
|
||||
public ExecutionOrder ExecutionOrder { get; set; }
|
||||
public syntax_tree_node Convert(syntax_tree_node root)
|
||||
{
|
||||
//var v = new SampleVisitor();
|
||||
//v.ProcessNode(root);
|
||||
return root;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -7,8 +7,8 @@
|
|||
<ProjectGuid>{F10A5330-DCF4-4533-877C-7B1B1BE23884}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>SyntaxTreeChanger</RootNamespace>
|
||||
<AssemblyName>SyntaxTreeChanger</AssemblyName>
|
||||
<RootNamespace>SyntaxTreeConverter</RootNamespace>
|
||||
<AssemblyName>SyntaxTreeConverters</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
</PropertyGroup>
|
||||
|
|
@ -36,6 +36,7 @@
|
|||
<ItemGroup>
|
||||
<Compile Include="ISyntaxTreeConverter.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="SampleSyntaxTreeConverter.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Errors\Errors.csproj">
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -25,7 +25,7 @@ CLASS_CAN_NOT_BE_DEFINED_IN_TYPE_OR_FUNCTION=Класс не может быть
|
|||
ONLY_ONE_PARAMETER_NAME_WITH_DEFAULT_VALUE_ALLOWED=Допустим только один параметр со значением по умолчанию
|
||||
NEED_DEFAULT_VALUE_FOR_PARAMETER=Этому параметру необходимо значение по умолчанию
|
||||
DUPLICATE_ATTRIBUTE_APPLICATION=Двухкратное применение атрибута
|
||||
VAR_PARAMETER_CAN_NOT_HAVE_DEFAULT_VALUE=Параметер, передаваемый по ссылке, не может иметь значение по умолчанию
|
||||
VAR_PARAMETER_CAN_NOT_HAVE_DEFAULT_VALUE=Параметр, передаваемый по ссылке, не может иметь значение по умолчанию
|
||||
DUPLICATE_FUNCTION_DEFINITION=Повторное объявление подпрограммы
|
||||
THIS_EXPRESSION_CAN_NOT_BE_PASSED_BY_ADDRESS=Данный объект не может быть передан как var-параметр
|
||||
MEMBER_{0}_IS_NOT_DECLARED_IN_TYPE_{1}={0} не объявлен в типе {1}
|
||||
|
|
@ -83,7 +83,7 @@ EXPECTED_DELEGATE=Ожидалось имя процедуры или функц
|
|||
EXPECTED_STATIC_METHOD=Ожидался классовый метод
|
||||
EXPECTED_NON_STATIC_METHOD=Ожидался экземплярный метод
|
||||
CAN_NOT_EXPLICITLY_CONVERT_TYPE_{0}_TO_TYPE_{1}=Невозможно явно преобразовать тип {0} к типу {1}
|
||||
ONLY_ONE_PARAMETER_OF_TYPE_CONVERSION_ALLOWED=У операции преобразования типов допустим только один параметер
|
||||
ONLY_ONE_PARAMETER_OF_TYPE_CONVERSION_ALLOWED=У операции преобразования типов допустим только один параметр
|
||||
REAL_TYPE_IN_DOUBLE_COLON_EXPRESSION_EXPECTED=Данный формат вывода может быть применен только к вещественному типу
|
||||
ONLY_ONE_PARAMS_PARAMETER_ALLOWED=Допустим только один параметр с ключевым словом params
|
||||
ONLY_UNSIZED_ARRAY_PARAMS_PARAMETER_ALLOWED=Только динамический массив может описываться с ключевым словом params
|
||||
|
|
|
|||
Loading…
Reference in a new issue