* s.ToLines RenameDirectory * Исправление ToLines * Убрал из грамматики узлы await - случайно оставались * Sync `.ToLines` with `System.IO.StringReader` (#3154) * 3.9.0.3494 * add tests * #3152 * #3152 * Don't skip PCU errors in `CompileAllUnits` * fix #3155 * Create the array types outside of any unit/scope * Add `use` test * RobotField - try в блоке создания * Исправлена Range(a, b, step: real) LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность Для этого исправлен FlattenElement FlattenOutput применяется автоматически - его теперь не надо вызывать явно TaskLoops поправлен и упрощен в соответствии с CheckOutput * Поправлен LightPT Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas * fix `GetReferenceFileName` dll copy (#3173) * Исправление зависимостей проектов (#3174) * Add workflow to build each project separately * Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser` 06e595 * Make IDE's depend on `PABCNETC` It's launched as a separate process from IDE * Revert pascal language moving to language plugins (#3175) * Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core * Rename PascalLanguage project to PascalABCLanguageInfo * Fix pascal dll loading * Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas * Поправил в трех проектах пути к bin LightPT - Read...(prompt) - больше комбинаций Loop_If_2_Sum в Tasks1Loops.pas * #3172 * 3.9.0.3500 Хороший коммит ) * Remove extra tests * Fix dependencies in Compiler project * LightPT - убрал CheckOutputNew TasksArr.pas, TasksStr.pas - правки * #3164 * Убрали зависимость компилятора от парсера Паскаля --------- Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru> Co-authored-by: Sun Serega <sunserega2@gmail.com> Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
58 lines
2.6 KiB
C#
58 lines
2.6 KiB
C#
// Copyright (c) Ivan Bondarev, Stanislav Mikhalkovich (for details please see \doc\copyright.txt)
|
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
|
|
|
using System.Collections.Generic;
|
|
using Languages.Facade;
|
|
using PascalABCCompiler;
|
|
using PascalABCCompiler.SyntaxTreeConverters;
|
|
using PascalABCCompiler.SystemLibrary;
|
|
using PascalABCCompiler.TreeConverter;
|
|
|
|
namespace Languages.Pascal
|
|
{
|
|
public class PascalABCLanguage : BaseLanguage
|
|
{
|
|
|
|
public PascalABCLanguage() : base(
|
|
name: StringConstants.pascalLanguageName,
|
|
version: "1.2",
|
|
copyright: "Copyright © 2005-2024 by Ivan Bondarev, Stanislav Mikhalkovich",
|
|
|
|
parser: new Frontend.Wrapping.PascalABCNewLanguageParser(),
|
|
docParser: new Frontend.Documentation.PascalDocTagsLanguageParser(),
|
|
|
|
syntaxTreeConverters: new List<ISyntaxTreeConverter>() { new Frontend.Converters.StandardSyntaxTreeConverter(), new SyntaxSemanticVisitors.LambdaAnyConverter() },
|
|
syntaxTreeToSemanticTreeConverter: new syntax_tree_visitor(),
|
|
|
|
filesExtensions: new string[] { StringConstants.pascalSourceFileExtension },
|
|
caseSensitive: false,
|
|
systemUnitNames: StringConstants.pascalDefaultStandardModules
|
|
) { }
|
|
|
|
|
|
public override void SetSemanticConstants()
|
|
{
|
|
SemanticRulesConstants.ClassBaseType = SystemLibrary.object_type;
|
|
SemanticRulesConstants.StructBaseType = SystemLibrary.value_type;
|
|
SemanticRulesConstants.AddResultVariable = true;
|
|
SemanticRulesConstants.ZeroBasedStrings = false;
|
|
SemanticRulesConstants.FastStrings = false;
|
|
SemanticRulesConstants.InitStringAsEmptyString = true;
|
|
SemanticRulesConstants.UseDivisionAssignmentOperatorsForIntegerTypes = false;
|
|
SemanticRulesConstants.ManyVariablesOneInitializator = false;
|
|
SemanticRulesConstants.OrderIndependedMethodNames = true;
|
|
SemanticRulesConstants.OrderIndependedFunctionNames = false;
|
|
SemanticRulesConstants.OrderIndependedTypeNames = false;
|
|
SemanticRulesConstants.EnableExitProcedure = true;
|
|
SemanticRulesConstants.StrongPointersTypeCheckForDotNet = true;
|
|
SemanticRulesConstants.AllowChangeLoopVariable = false;
|
|
SemanticRulesConstants.AllowGlobalVisibilityForPABCDll = true;
|
|
}
|
|
|
|
public override void SetSyntaxTreeToSemanticTreeConverter()
|
|
{
|
|
SyntaxTreeToSemanticTreeConverter = new syntax_tree_visitor();
|
|
}
|
|
}
|
|
}
|