* 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>
64 lines
1.8 KiB
C#
64 lines
1.8 KiB
C#
using System;
|
||
using System.IO;
|
||
using System.Text;
|
||
using System.Reflection;
|
||
using PascalABCCompiler;
|
||
using PascalABCCompiler.SyntaxTree;
|
||
using PascalABCCompiler.Parsers;
|
||
using PascalABCCompiler.Errors;
|
||
using System.Collections.Generic;
|
||
using GPPGParserScanner;
|
||
|
||
namespace PascalABCCompiler.KuMir00Parser
|
||
{
|
||
public class KuMir00LanguageParser : BaseParser
|
||
{
|
||
public KuMir00LanguageParser()
|
||
: base("KuMir00", "0.1", "(c) ZM, 2010", true, new string[] { ".alg00" })
|
||
{
|
||
}
|
||
|
||
public override syntax_tree_node BuildTreeInNormalMode(string FileName, string Text)
|
||
{
|
||
PT.Errors = Errors;
|
||
PT.CurrentFileName = FileName;
|
||
|
||
Scanner scanner = new Scanner();
|
||
scanner.SetSource(Text, 0);
|
||
|
||
GPPGParser parser = new GPPGParser(scanner);
|
||
|
||
parser._units.Add(new GPPGParser.unit_data());
|
||
parser.unit_number++;
|
||
|
||
if (!parser.Parse())
|
||
if (Errors.Count == 0)
|
||
PT.AddError("Неопознанная синтаксическая ошибка!", null);
|
||
|
||
return parser.root;
|
||
}
|
||
|
||
public override syntax_tree_node BuildTreeInExprMode(string FileName, string Text)
|
||
{
|
||
PT.Errors = Errors;
|
||
PT.CurrentFileName = FileName;
|
||
|
||
Scanner scanner = new Scanner();
|
||
|
||
Text = String.Concat((char)1, Text);
|
||
scanner.SetSource(Text, 0);
|
||
|
||
GPPGParser parser = new GPPGParser(scanner);
|
||
|
||
parser._units.Add(new GPPGParser.unit_data());
|
||
parser.unit_number++;
|
||
|
||
if (!parser.Parse())
|
||
if (Errors.Count == 0)
|
||
PT.AddError("Не разобрали выражение", null);
|
||
|
||
return parser.root;
|
||
}
|
||
}
|
||
}
|