diff --git a/Canon.Console/Canon.Console.csproj b/Canon.Console/Canon.Console.csproj
index b6bc82e..64963c3 100644
--- a/Canon.Console/Canon.Console.csproj
+++ b/Canon.Console/Canon.Console.csproj
@@ -13,4 +13,9 @@
+
+
+
+
+
diff --git a/Canon.Console/Compiler.cs b/Canon.Console/Compiler.cs
deleted file mode 100644
index 2cd1139..0000000
--- a/Canon.Console/Compiler.cs
+++ /dev/null
@@ -1,53 +0,0 @@
-namespace Canon.Console;
-
-public class Compiler
-{
- private readonly Dictionary _options = [];
- private readonly FileInfo _sourceFile;
-
- public Compiler(string[] args)
- {
- if (args.Length < 2)
- {
- throw new ArgumentException("Please provide pascal file name with option '-i' at least!");
- }
-
- for (int i = 0; i < args.Length; i += 2)
- {
- _options.Add(args[i], args[i + 1]);
- }
-
- if (!_options.TryGetValue("-i", out string? value))
- {
- throw new ArgumentException("Please provide pascal file name with option '-i' at least!");
- }
-
- _sourceFile = new FileInfo(Path.Combine(Environment.CurrentDirectory, value));
-
- if (!_sourceFile.Exists)
- {
- throw new InvalidOperationException("Source file not exists!");
- }
- }
-
- public async Task Compile()
- {
- using StreamReader source = _sourceFile.OpenText();
- await using StreamWriter output = GetOutputFile().CreateText();
-
- await output.WriteAsync("""
- #include
- int main()
- {
- printf("%d", 3);
- return 0;
- }
- """);
- }
-
- private FileInfo GetOutputFile()
- {
- return new FileInfo(Path.Combine(_sourceFile.DirectoryName!,
- Path.GetFileNameWithoutExtension(_sourceFile.Name)) + ".c");
- }
-}
diff --git a/Canon.Console/Extensions/RootCommandExtensions.cs b/Canon.Console/Extensions/RootCommandExtensions.cs
new file mode 100644
index 0000000..3df4b27
--- /dev/null
+++ b/Canon.Console/Extensions/RootCommandExtensions.cs
@@ -0,0 +1,48 @@
+using System.CommandLine;
+using Canon.Console.Models;
+using Canon.Console.Services;
+using Canon.Core.Abstractions;
+using Canon.Core.LexicalParser;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Hosting;
+using Microsoft.Extensions.Logging;
+
+namespace Canon.Console.Extensions;
+
+public static class RootCommandExtensions
+{
+ public static void SetCompile(this RootCommand rootCommand)
+ {
+ Option sourceFilenameOption = new("--input", "The source pascal filename")
+ {
+ IsRequired = true
+ };
+ sourceFilenameOption.AddAlias("-i");
+
+ rootCommand.AddOption(sourceFilenameOption);
+
+ rootCommand.SetHandler(async (context) =>
+ {
+ string? sourceFilename = context.ParseResult.GetValueForOption(sourceFilenameOption);
+ if (sourceFilename is null)
+ {
+ System.Console.WriteLine("Error: please provide source filename with option '-i'.");
+ return;
+ }
+
+ HostApplicationBuilder builder = Host.CreateApplicationBuilder();
+
+ builder.Logging.ClearProviders();
+ builder.Logging.Services.AddSingleton();
+
+ builder.Services.AddSingleton(
+ _ => new CompilerOption { SourceFilename = sourceFilename });
+ builder.Services.AddTransient();
+ builder.Services.AddSingleton(_ => GeneratedGrammarParser.Instance);
+ builder.Services.AddHostedService();
+
+ using IHost host = builder.Build();
+ await host.RunAsync();
+ });
+ }
+}
diff --git a/Canon.Console/Models/CompilerOption.cs b/Canon.Console/Models/CompilerOption.cs
new file mode 100644
index 0000000..58cc157
--- /dev/null
+++ b/Canon.Console/Models/CompilerOption.cs
@@ -0,0 +1,6 @@
+namespace Canon.Console.Models;
+
+public class CompilerOption
+{
+ public required string SourceFilename { get; set; }
+}
diff --git a/Canon.Console/Program.cs b/Canon.Console/Program.cs
index 7bc7245..c0b98ed 100644
--- a/Canon.Console/Program.cs
+++ b/Canon.Console/Program.cs
@@ -1,4 +1,7 @@
-using Canon.Console;
+using System.CommandLine;
+using Canon.Console.Extensions;
-Compiler compiler = new(args);
-await compiler.Compile();
+RootCommand rootCommand = new("Canon Pascal Compiler (PASCC).");
+rootCommand.SetCompile();
+
+await rootCommand.InvokeAsync(args);
diff --git a/Canon.Console/Services/Compiler.cs b/Canon.Console/Services/Compiler.cs
new file mode 100644
index 0000000..594f43d
--- /dev/null
+++ b/Canon.Console/Services/Compiler.cs
@@ -0,0 +1,64 @@
+using Canon.Console.Models;
+using Canon.Core.Abstractions;
+using Canon.Core.CodeGenerators;
+using Canon.Core.LexicalParser;
+using Canon.Core.SyntaxNodes;
+using Microsoft.Extensions.Hosting;
+using Microsoft.Extensions.Logging;
+
+namespace Canon.Console.Services;
+
+public class Compiler(
+ CompilerOption compilerOption,
+ ILexer lexer,
+ IGrammarParser grammarParser,
+ IHostApplicationLifetime applicationLifetime,
+ ILogger logger) : IHostedService
+{
+ public async Task StartAsync(CancellationToken cancellationToken)
+ {
+ IEnumerable tokens = lexer.Tokenize(await CreateSourceReader());
+ ProgramStruct root = grammarParser.Analyse(tokens);
+
+ CCodeBuilder builder = new();
+ root.GenerateCCode(builder);
+
+ await WriteToOutputFile(builder.Build());
+ applicationLifetime.StopApplication();
+ }
+
+ public Task StopAsync(CancellationToken cancellationToken)
+ {
+ return Task.CompletedTask;
+ }
+
+ private async Task CreateSourceReader()
+ {
+ if (!Path.IsPathRooted(compilerOption.SourceFilename))
+ {
+ compilerOption.SourceFilename = Path.Combine(Environment.CurrentDirectory, compilerOption.SourceFilename);
+ }
+
+ logger.LogDebug("Select source file: '{}'.", compilerOption.SourceFilename);
+
+ FileInfo sourceFile = new(compilerOption.SourceFilename);
+ using StreamReader reader = sourceFile.OpenText();
+
+ return new StringSourceReader(await reader.ReadToEndAsync());
+ }
+
+ private async Task WriteToOutputFile(string compiledCode)
+ {
+ FileInfo outputFile = new(Path.Combine(Environment.CurrentDirectory,
+ Path.GetFileNameWithoutExtension(compilerOption.SourceFilename) + ".c"));
+ logger.LogDebug("Select output file: '{}'.", outputFile.Name);
+
+ if (outputFile.Exists)
+ {
+ logger.LogWarning("Rewrite output file : '{}'", outputFile.Name);
+ }
+
+ await using StreamWriter writer = outputFile.CreateText();
+ await writer.WriteAsync(compiledCode);
+ }
+}
diff --git a/Canon.Console/Services/CompilerLogger.cs b/Canon.Console/Services/CompilerLogger.cs
new file mode 100644
index 0000000..4bca27c
--- /dev/null
+++ b/Canon.Console/Services/CompilerLogger.cs
@@ -0,0 +1,114 @@
+using System.Runtime.Versioning;
+using Microsoft.Extensions.Logging;
+using Microsoft.Extensions.Options;
+
+namespace Canon.Console.Services;
+
+///
+/// 编译器日志配置类
+///
+public sealed class CompilerLoggerConfiguration
+{
+ ///
+ /// 配置各个等级日志的输出颜色
+ ///
+ public Dictionary LogLevelColorMap { get; } = new()
+ {
+ { LogLevel.Critical, ConsoleColor.Red },
+ { LogLevel.Error, ConsoleColor.Red },
+ { LogLevel.Warning, ConsoleColor.Yellow },
+ { LogLevel.Information, ConsoleColor.Green },
+ { LogLevel.Debug, ConsoleColor.Gray }
+ };
+}
+
+///
+/// 空日志记录器
+/// 不输出任何内容
+///
+public sealed class EmptyLogger : ILogger
+{
+ public bool IsEnabled(LogLevel _) => false;
+
+ public IDisposable BeginScope(TState state) where TState : notnull => default!;
+
+ public void Log(LogLevel logLevel, EventId eventId, TState state, Exception? exception,
+ Func formatter)
+ {
+ }
+}
+
+///
+/// 编译器日志记录器
+///
+/// 获得编译器日志记录器配置对象
+public sealed class CompilerLogger(Func getCurrentConfiguration) : ILogger
+{
+ public IDisposable BeginScope(TState state) where TState : notnull => default!;
+
+ public bool IsEnabled(LogLevel logLevel)
+ {
+ return getCurrentConfiguration().LogLevelColorMap.ContainsKey(logLevel);
+ }
+
+ public void Log(LogLevel logLevel, EventId eventId, TState state, Exception? exception,
+ Func formatter)
+ {
+ if (!IsEnabled(logLevel))
+ {
+ return;
+ }
+
+ CompilerLoggerConfiguration configuration = getCurrentConfiguration();
+ ConsoleColor originalColor = System.Console.ForegroundColor;
+
+ System.Console.ForegroundColor = configuration.LogLevelColorMap[logLevel];
+ System.Console.Write($"{FormatLogLevel(logLevel)}: ");
+
+ System.Console.ForegroundColor = originalColor;
+ System.Console.WriteLine(formatter(state, exception));
+ }
+
+ private static string FormatLogLevel(LogLevel logLevel)
+ {
+ switch (logLevel)
+ {
+ case LogLevel.Debug:
+ return "dbg";
+ case LogLevel.Information:
+ return "info";
+ case LogLevel.Warning:
+ return "warn";
+ case LogLevel.Error:
+ return "error";
+ case LogLevel.Critical:
+ return "critical";
+ default:
+ return "log";
+ }
+ }
+}
+
+[UnsupportedOSPlatform("browser")]
+public sealed class CompilerLoggerProvider(IOptions options) : ILoggerProvider
+{
+ private readonly ILogger _logger = new CompilerLogger(() => options.Value);
+ private readonly ILogger _emptyLogger = new EmptyLogger();
+
+ public ILogger CreateLogger(string categoryName)
+ {
+ // 只显示编译器中的日志信息
+ if (categoryName.StartsWith("Canon"))
+ {
+ return _logger;
+ }
+ else
+ {
+ return _emptyLogger;
+ }
+ }
+
+ public void Dispose()
+ {
+ }
+}
diff --git a/Canon.Console/Services/GeneratedParser.g.cs b/Canon.Console/Services/GeneratedParser.g.cs
new file mode 100644
index 0000000..a77fabd
--- /dev/null
+++ b/Canon.Console/Services/GeneratedParser.g.cs
@@ -0,0 +1,662 @@
+#nullable enable
+using Canon.Core.Abstractions;
+using Canon.Core.GrammarParser;
+using Canon.Core.Enums;
+namespace Canon.Console.Services;
+
+public class GeneratedTransformer : ITransformer
+{
+ private IDictionary _shiftPointers;
+
+ public string Name { get; }
+
+ public IDictionary ReduceTable { get; }
+
+ public IDictionary ShiftTable { get; }
+
+ public GeneratedTransformer(Dictionary shiftTable,
+ Dictionary reduceTable, string name)
+ {
+ ReduceTable = reduceTable;
+ ShiftTable = new Dictionary();
+ _shiftPointers = shiftTable;
+ Name = name;
+ }
+
+ public GeneratedTransformer()
+ {
+ ReduceTable = new Dictionary();
+ ShiftTable = new Dictionary();
+ _shiftPointers = new Dictionary();
+ Name = Guid.NewGuid().ToString();
+ }
+
+ public void ConstructShiftTable(Dictionary transformers)
+ {
+ foreach (KeyValuePair pair in _shiftPointers)
+ {
+ ShiftTable.Add(pair.Key, transformers[pair.Value]);
+ }
+ }
+
+ public override bool Equals(object? obj)
+ {
+ if (obj is not GeneratedTransformer other)
+ {
+ return false;
+ }
+
+ return Name == other.Name;
+ }
+
+ public override int GetHashCode() => Name.GetHashCode();
+}
+public class GeneratedGrammarParser : IGrammarParser
+{
+ private static readonly Dictionary s_transformers = new()
+ {
+ { "90611b1a-2bce-4802-bf73-921489b4be5a", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.ProgramStruct), "6be8c03f-a355-4fad-b232-4ac88c518577"}, { new NonTerminator(NonTerminatorType.ProgramHead), "50607043-8a34-45f9-abb6-9ce02660d80e"}, { new Terminator(KeywordType.Program), "3d957beb-2526-437d-905c-ff4aac1228c7"},}, new Dictionary{ }, "90611b1a-2bce-4802-bf73-921489b4be5a") },
+ { "6be8c03f-a355-4fad-b232-4ac88c518577", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { Terminator.EndTerminator, new ReduceInformation(1, new NonTerminator(NonTerminatorType.StartNonTerminator))}, }, "6be8c03f-a355-4fad-b232-4ac88c518577") },
+ { "50607043-8a34-45f9-abb6-9ce02660d80e", new GeneratedTransformer(new Dictionary{ { new Terminator(DelimiterType.Semicolon), "e00f3ef2-1336-41d2-a155-e0bb8c8dec47"},}, new Dictionary{ }, "50607043-8a34-45f9-abb6-9ce02660d80e") },
+ { "3d957beb-2526-437d-905c-ff4aac1228c7", new GeneratedTransformer(new Dictionary{ { Terminator.IdentifierTerminator, "7cec190a-2432-4b18-9a39-fd3c8a3bc0c6"},}, new Dictionary{ }, "3d957beb-2526-437d-905c-ff4aac1228c7") },
+ { "e00f3ef2-1336-41d2-a155-e0bb8c8dec47", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.ProgramBody), "46c87e04-af93-429e-bfc5-6b948ad82cba"}, { new NonTerminator(NonTerminatorType.ConstDeclarations), "a37aaf60-3b03-4a2c-b031-116da8e63e77"}, { new Terminator(KeywordType.Const), "8126a781-8bd8-4d56-aec5-7dc524eace28"},}, new Dictionary{ { new Terminator(KeywordType.Begin), new ReduceInformation(0, new NonTerminator(NonTerminatorType.ConstDeclarations))}, { new Terminator(KeywordType.Procedure), new ReduceInformation(0, new NonTerminator(NonTerminatorType.ConstDeclarations))}, { new Terminator(KeywordType.Function), new ReduceInformation(0, new NonTerminator(NonTerminatorType.ConstDeclarations))}, { new Terminator(KeywordType.Var), new ReduceInformation(0, new NonTerminator(NonTerminatorType.ConstDeclarations))}, }, "e00f3ef2-1336-41d2-a155-e0bb8c8dec47") },
+ { "7cec190a-2432-4b18-9a39-fd3c8a3bc0c6", new GeneratedTransformer(new Dictionary{ { new Terminator(DelimiterType.LeftParenthesis), "d6f9c3aa-36c9-43a0-b565-0db933dd564c"},}, new Dictionary{ { new Terminator(DelimiterType.Semicolon), new ReduceInformation(2, new NonTerminator(NonTerminatorType.ProgramHead))}, }, "7cec190a-2432-4b18-9a39-fd3c8a3bc0c6") },
+ { "46c87e04-af93-429e-bfc5-6b948ad82cba", new GeneratedTransformer(new Dictionary{ { new Terminator(DelimiterType.Period), "06db7283-d00c-46a9-92b1-72159776d643"},}, new Dictionary{ }, "46c87e04-af93-429e-bfc5-6b948ad82cba") },
+ { "a37aaf60-3b03-4a2c-b031-116da8e63e77", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.VarDeclarations), "dfad2b5d-d6dd-402e-a38d-4f218be5055c"}, { new Terminator(KeywordType.Var), "cd5fd0ce-d67f-4c63-b18c-d85c2aed6516"},}, new Dictionary{ { new Terminator(KeywordType.Begin), new ReduceInformation(0, new NonTerminator(NonTerminatorType.VarDeclarations))}, { new Terminator(KeywordType.Procedure), new ReduceInformation(0, new NonTerminator(NonTerminatorType.VarDeclarations))}, { new Terminator(KeywordType.Function), new ReduceInformation(0, new NonTerminator(NonTerminatorType.VarDeclarations))}, }, "a37aaf60-3b03-4a2c-b031-116da8e63e77") },
+ { "8126a781-8bd8-4d56-aec5-7dc524eace28", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.ConstDeclaration), "828705d0-e9e0-42b1-9a68-5f6d1a6f7244"}, { Terminator.IdentifierTerminator, "cfa3eddb-b879-495a-888c-a15e593a83de"},}, new Dictionary{ }, "8126a781-8bd8-4d56-aec5-7dc524eace28") },
+ { "d6f9c3aa-36c9-43a0-b565-0db933dd564c", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.IdentifierList), "7a396ddc-0e4e-4b99-993a-4456e49c2a0c"}, { Terminator.IdentifierTerminator, "2ca04cb7-9ef9-4c74-938e-f2f02d9f8081"},}, new Dictionary{ }, "d6f9c3aa-36c9-43a0-b565-0db933dd564c") },
+ { "06db7283-d00c-46a9-92b1-72159776d643", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { Terminator.EndTerminator, new ReduceInformation(4, new NonTerminator(NonTerminatorType.ProgramStruct))}, }, "06db7283-d00c-46a9-92b1-72159776d643") },
+ { "dfad2b5d-d6dd-402e-a38d-4f218be5055c", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.SubprogramDeclarations), "7d4e8132-5e7a-443a-b07d-788ba8841721"},}, new Dictionary{ { new Terminator(KeywordType.Begin), new ReduceInformation(0, new NonTerminator(NonTerminatorType.SubprogramDeclarations))}, { new Terminator(KeywordType.Procedure), new ReduceInformation(0, new NonTerminator(NonTerminatorType.SubprogramDeclarations))}, { new Terminator(KeywordType.Function), new ReduceInformation(0, new NonTerminator(NonTerminatorType.SubprogramDeclarations))}, }, "dfad2b5d-d6dd-402e-a38d-4f218be5055c") },
+ { "cd5fd0ce-d67f-4c63-b18c-d85c2aed6516", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.VarDeclaration), "73478f18-c844-416d-83a8-b1c5f2e01a44"}, { new NonTerminator(NonTerminatorType.IdentifierList), "3ad3df67-5b8e-4f8b-b8fa-02f49a07974f"}, { Terminator.IdentifierTerminator, "c5b02395-6a16-42ea-b32a-eb56cf6039ee"},}, new Dictionary{ }, "cd5fd0ce-d67f-4c63-b18c-d85c2aed6516") },
+ { "828705d0-e9e0-42b1-9a68-5f6d1a6f7244", new GeneratedTransformer(new Dictionary{ { new Terminator(DelimiterType.Semicolon), "9a324ab4-c38c-48f2-b876-da77ce734741"},}, new Dictionary{ }, "828705d0-e9e0-42b1-9a68-5f6d1a6f7244") },
+ { "cfa3eddb-b879-495a-888c-a15e593a83de", new GeneratedTransformer(new Dictionary{ { new Terminator(OperatorType.Equal), "e1c5f38e-9775-4f46-9752-0245bd26c319"},}, new Dictionary{ }, "cfa3eddb-b879-495a-888c-a15e593a83de") },
+ { "7a396ddc-0e4e-4b99-993a-4456e49c2a0c", new GeneratedTransformer(new Dictionary{ { new Terminator(DelimiterType.RightParenthesis), "88c4eeba-96b5-4406-a268-28143fc11b91"}, { new Terminator(DelimiterType.Comma), "a224ba55-a1c8-44cb-921f-0b22f63a8720"},}, new Dictionary{ }, "7a396ddc-0e4e-4b99-993a-4456e49c2a0c") },
+ { "2ca04cb7-9ef9-4c74-938e-f2f02d9f8081", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { new Terminator(DelimiterType.RightParenthesis), new ReduceInformation(1, new NonTerminator(NonTerminatorType.IdentifierList))}, { new Terminator(DelimiterType.Comma), new ReduceInformation(1, new NonTerminator(NonTerminatorType.IdentifierList))}, }, "2ca04cb7-9ef9-4c74-938e-f2f02d9f8081") },
+ { "7d4e8132-5e7a-443a-b07d-788ba8841721", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.CompoundStatement), "ded17b85-4f75-4f12-83c0-7251b61b0575"}, { new Terminator(KeywordType.Begin), "cf0fb073-670e-41ef-9ba0-f3574263f83c"}, { new NonTerminator(NonTerminatorType.Subprogram), "6720686e-c18d-42db-886d-0ea15a025e4e"}, { new NonTerminator(NonTerminatorType.SubprogramHead), "ec009498-d7cb-4a74-bf2b-fe58c33a939b"}, { new Terminator(KeywordType.Procedure), "74e4a795-28da-4e76-bc1e-df2d8dd0d469"}, { new Terminator(KeywordType.Function), "d79bb6b4-0d63-426e-bbe1-337bf2ea0331"},}, new Dictionary{ }, "7d4e8132-5e7a-443a-b07d-788ba8841721") },
+ { "73478f18-c844-416d-83a8-b1c5f2e01a44", new GeneratedTransformer(new Dictionary{ { new Terminator(DelimiterType.Semicolon), "9d062b29-5a3c-487a-9aff-2c7b68f5dddd"},}, new Dictionary{ }, "73478f18-c844-416d-83a8-b1c5f2e01a44") },
+ { "3ad3df67-5b8e-4f8b-b8fa-02f49a07974f", new GeneratedTransformer(new Dictionary{ { new Terminator(DelimiterType.Colon), "e3cbbc60-cd76-475b-8563-5cb7910dc73e"}, { new Terminator(DelimiterType.Comma), "8f8c7ec2-f815-4e9d-a81c-75a35dd98773"},}, new Dictionary{ }, "3ad3df67-5b8e-4f8b-b8fa-02f49a07974f") },
+ { "c5b02395-6a16-42ea-b32a-eb56cf6039ee", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { new Terminator(DelimiterType.Colon), new ReduceInformation(1, new NonTerminator(NonTerminatorType.IdentifierList))}, { new Terminator(DelimiterType.Comma), new ReduceInformation(1, new NonTerminator(NonTerminatorType.IdentifierList))}, }, "c5b02395-6a16-42ea-b32a-eb56cf6039ee") },
+ { "9a324ab4-c38c-48f2-b876-da77ce734741", new GeneratedTransformer(new Dictionary{ { Terminator.IdentifierTerminator, "f6d55570-682a-478f-8c35-7f80be5ee590"},}, new Dictionary{ { new Terminator(KeywordType.Begin), new ReduceInformation(3, new NonTerminator(NonTerminatorType.ConstDeclarations))}, { new Terminator(KeywordType.Procedure), new ReduceInformation(3, new NonTerminator(NonTerminatorType.ConstDeclarations))}, { new Terminator(KeywordType.Function), new ReduceInformation(3, new NonTerminator(NonTerminatorType.ConstDeclarations))}, { new Terminator(KeywordType.Var), new ReduceInformation(3, new NonTerminator(NonTerminatorType.ConstDeclarations))}, }, "9a324ab4-c38c-48f2-b876-da77ce734741") },
+ { "e1c5f38e-9775-4f46-9752-0245bd26c319", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.ConstValue), "f511e9af-2608-420a-95ca-4229f7e0221d"}, { new Terminator(OperatorType.Plus), "325cf5df-ceeb-4714-9a59-609e0c70f5ec"}, { new Terminator(OperatorType.Minus), "c677ac55-ad97-463f-a5f7-fd780dd8c6c4"}, { Terminator.NumberTerminator, "901a4fc6-d7b1-4270-ba99-0270931d821a"}, { Terminator.CharacterTerminator, "fd059355-14ca-4c3a-b2b6-433d81782f6f"},}, new Dictionary{ }, "e1c5f38e-9775-4f46-9752-0245bd26c319") },
+ { "88c4eeba-96b5-4406-a268-28143fc11b91", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { new Terminator(DelimiterType.Semicolon), new ReduceInformation(5, new NonTerminator(NonTerminatorType.ProgramHead))}, }, "88c4eeba-96b5-4406-a268-28143fc11b91") },
+ { "a224ba55-a1c8-44cb-921f-0b22f63a8720", new GeneratedTransformer(new Dictionary{ { Terminator.IdentifierTerminator, "5d19b81a-25de-4dba-a3b2-906d1fe4be7f"},}, new Dictionary{ }, "a224ba55-a1c8-44cb-921f-0b22f63a8720") },
+ { "ded17b85-4f75-4f12-83c0-7251b61b0575", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { new Terminator(DelimiterType.Period), new ReduceInformation(4, new NonTerminator(NonTerminatorType.ProgramBody))}, }, "ded17b85-4f75-4f12-83c0-7251b61b0575") },
+ { "cf0fb073-670e-41ef-9ba0-f3574263f83c", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.StatementList), "16a69e4e-245c-4274-95eb-b8a455a844c0"}, { new NonTerminator(NonTerminatorType.Statement), "7ec830cd-22ff-4a49-ad34-2c6648ddd368"}, { new NonTerminator(NonTerminatorType.Variable), "0917a51c-0f6b-4995-9b71-a70bfae21876"}, { Terminator.IdentifierTerminator, "d6aa7d6a-3de5-40c0-8676-31a5db27f2b0"}, { new NonTerminator(NonTerminatorType.ProcedureCall), "4abbc50c-c8c4-4d30-9cc7-d95432a4e52a"}, { new NonTerminator(NonTerminatorType.CompoundStatement), "7f34a249-48c2-43b5-ad57-2c6ce9d6fccc"}, { new Terminator(KeywordType.If), "4ced18e3-005a-425d-93ff-95f555f6c0b0"}, { new Terminator(KeywordType.For), "06bd10fc-30bb-44eb-aa64-356c9ce074ee"}, { new Terminator(KeywordType.Begin), "2718db4f-527a-418c-9c29-cc188ac8ff73"},}, new Dictionary{ { new Terminator(KeywordType.End), new ReduceInformation(0, new NonTerminator(NonTerminatorType.Statement))}, { new Terminator(DelimiterType.Semicolon), new ReduceInformation(0, new NonTerminator(NonTerminatorType.Statement))}, }, "cf0fb073-670e-41ef-9ba0-f3574263f83c") },
+ { "6720686e-c18d-42db-886d-0ea15a025e4e", new GeneratedTransformer(new Dictionary{ { new Terminator(DelimiterType.Semicolon), "e31b7a9c-5115-47a1-9d6a-53eb4adbc5f1"},}, new Dictionary{ }, "6720686e-c18d-42db-886d-0ea15a025e4e") },
+ { "ec009498-d7cb-4a74-bf2b-fe58c33a939b", new GeneratedTransformer(new Dictionary{ { new Terminator(DelimiterType.Semicolon), "6bc7265d-8f24-40dd-a2f8-374b5add33ff"},}, new Dictionary{ }, "ec009498-d7cb-4a74-bf2b-fe58c33a939b") },
+ { "74e4a795-28da-4e76-bc1e-df2d8dd0d469", new GeneratedTransformer(new Dictionary{ { Terminator.IdentifierTerminator, "8cf97192-1d35-4d8c-8133-447952742fc0"},}, new Dictionary{ }, "74e4a795-28da-4e76-bc1e-df2d8dd0d469") },
+ { "d79bb6b4-0d63-426e-bbe1-337bf2ea0331", new GeneratedTransformer(new Dictionary{ { Terminator.IdentifierTerminator, "5c8f1189-0625-450c-9468-bf65664a0b98"},}, new Dictionary{ }, "d79bb6b4-0d63-426e-bbe1-337bf2ea0331") },
+ { "9d062b29-5a3c-487a-9aff-2c7b68f5dddd", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.IdentifierList), "11d34202-306d-49bd-949b-40294e9d988f"}, { Terminator.IdentifierTerminator, "c5b02395-6a16-42ea-b32a-eb56cf6039ee"},}, new Dictionary{ { new Terminator(KeywordType.Begin), new ReduceInformation(3, new NonTerminator(NonTerminatorType.VarDeclarations))}, { new Terminator(KeywordType.Procedure), new ReduceInformation(3, new NonTerminator(NonTerminatorType.VarDeclarations))}, { new Terminator(KeywordType.Function), new ReduceInformation(3, new NonTerminator(NonTerminatorType.VarDeclarations))}, }, "9d062b29-5a3c-487a-9aff-2c7b68f5dddd") },
+ { "e3cbbc60-cd76-475b-8563-5cb7910dc73e", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.Type), "07e663cb-1741-49db-9287-cf1fd3f7d031"}, { new NonTerminator(NonTerminatorType.BasicType), "86ffd448-1ced-4f55-ae5c-0cce2ea6fd67"}, { new Terminator(KeywordType.Array), "b6c5ee15-27d5-4b60-8599-fb38f382e3ae"}, { new Terminator(KeywordType.Integer), "ed80790b-88ef-4371-b0e7-81e94e5fac45"}, { new Terminator(KeywordType.Real), "7388243b-8ed7-4285-8409-382eea2bf0ac"}, { new Terminator(KeywordType.Boolean), "f8beec53-4b1a-49ba-b0a2-ca9d0a59f346"}, { new Terminator(KeywordType.Character), "84689f95-8766-49ca-bbc4-f5cb0b102e39"},}, new Dictionary{ }, "e3cbbc60-cd76-475b-8563-5cb7910dc73e") },
+ { "8f8c7ec2-f815-4e9d-a81c-75a35dd98773", new GeneratedTransformer(new Dictionary{ { Terminator.IdentifierTerminator, "c686f6c5-a093-4cf6-af71-228d5c95931a"},}, new Dictionary{ }, "8f8c7ec2-f815-4e9d-a81c-75a35dd98773") },
+ { "f6d55570-682a-478f-8c35-7f80be5ee590", new GeneratedTransformer(new Dictionary{ { new Terminator(OperatorType.Equal), "4827a01a-055a-4429-9483-010a027a695d"},}, new Dictionary{ }, "f6d55570-682a-478f-8c35-7f80be5ee590") },
+ { "f511e9af-2608-420a-95ca-4229f7e0221d", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { new Terminator(DelimiterType.Semicolon), new ReduceInformation(3, new NonTerminator(NonTerminatorType.ConstDeclaration))}, }, "f511e9af-2608-420a-95ca-4229f7e0221d") },
+ { "325cf5df-ceeb-4714-9a59-609e0c70f5ec", new GeneratedTransformer(new Dictionary{ { Terminator.NumberTerminator, "9cc6eb66-2d6c-46b1-89c4-da347ddc59a6"},}, new Dictionary{ }, "325cf5df-ceeb-4714-9a59-609e0c70f5ec") },
+ { "c677ac55-ad97-463f-a5f7-fd780dd8c6c4", new GeneratedTransformer(new Dictionary{ { Terminator.NumberTerminator, "1d0afc81-54fe-4e3d-88d3-de5fbf47196c"},}, new Dictionary{ }, "c677ac55-ad97-463f-a5f7-fd780dd8c6c4") },
+ { "901a4fc6-d7b1-4270-ba99-0270931d821a", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { new Terminator(DelimiterType.Semicolon), new ReduceInformation(1, new NonTerminator(NonTerminatorType.ConstValue))}, }, "901a4fc6-d7b1-4270-ba99-0270931d821a") },
+ { "fd059355-14ca-4c3a-b2b6-433d81782f6f", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { new Terminator(DelimiterType.Semicolon), new ReduceInformation(1, new NonTerminator(NonTerminatorType.ConstValue))}, }, "fd059355-14ca-4c3a-b2b6-433d81782f6f") },
+ { "5d19b81a-25de-4dba-a3b2-906d1fe4be7f", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { new Terminator(DelimiterType.RightParenthesis), new ReduceInformation(3, new NonTerminator(NonTerminatorType.IdentifierList))}, { new Terminator(DelimiterType.Comma), new ReduceInformation(3, new NonTerminator(NonTerminatorType.IdentifierList))}, }, "5d19b81a-25de-4dba-a3b2-906d1fe4be7f") },
+ { "16a69e4e-245c-4274-95eb-b8a455a844c0", new GeneratedTransformer(new Dictionary{ { new Terminator(KeywordType.End), "ce745382-21ef-442e-b9c6-76b08750a304"}, { new Terminator(DelimiterType.Semicolon), "6539c4c8-777a-4559-bee6-f6d854880735"},}, new Dictionary{ }, "16a69e4e-245c-4274-95eb-b8a455a844c0") },
+ { "7ec830cd-22ff-4a49-ad34-2c6648ddd368", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { new Terminator(KeywordType.End), new ReduceInformation(1, new NonTerminator(NonTerminatorType.StatementList))}, { new Terminator(DelimiterType.Semicolon), new ReduceInformation(1, new NonTerminator(NonTerminatorType.StatementList))}, }, "7ec830cd-22ff-4a49-ad34-2c6648ddd368") },
+ { "0917a51c-0f6b-4995-9b71-a70bfae21876", new GeneratedTransformer(new Dictionary{ { new Terminator(OperatorType.Assign), "28d647c9-8b2f-4fed-92f3-08082abc67ff"},}, new Dictionary{ }, "0917a51c-0f6b-4995-9b71-a70bfae21876") },
+ { "d6aa7d6a-3de5-40c0-8676-31a5db27f2b0", new GeneratedTransformer(new Dictionary{ { new Terminator(OperatorType.Assign), "5ee1ae03-547a-448c-a32d-4dd063ac8436"}, { new NonTerminator(NonTerminatorType.IdVarPart), "965e64cf-6440-47a2-849e-2868c33658a1"}, { new Terminator(DelimiterType.LeftSquareBracket), "e550324e-63e6-47ef-be0f-4c83c10933c8"}, { new Terminator(DelimiterType.LeftParenthesis), "bd4bcb7b-223a-4ee5-9101-adb2f7091bfd"},}, new Dictionary{ { new Terminator(OperatorType.Assign), new ReduceInformation(0, new NonTerminator(NonTerminatorType.IdVarPart))}, { new Terminator(KeywordType.End), new ReduceInformation(1, new NonTerminator(NonTerminatorType.ProcedureCall))}, { new Terminator(DelimiterType.Semicolon), new ReduceInformation(1, new NonTerminator(NonTerminatorType.ProcedureCall))}, }, "d6aa7d6a-3de5-40c0-8676-31a5db27f2b0") },
+ { "4abbc50c-c8c4-4d30-9cc7-d95432a4e52a", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { new Terminator(KeywordType.End), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Statement))}, { new Terminator(DelimiterType.Semicolon), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Statement))}, }, "4abbc50c-c8c4-4d30-9cc7-d95432a4e52a") },
+ { "7f34a249-48c2-43b5-ad57-2c6ce9d6fccc", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { new Terminator(KeywordType.End), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Statement))}, { new Terminator(DelimiterType.Semicolon), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Statement))}, }, "7f34a249-48c2-43b5-ad57-2c6ce9d6fccc") },
+ { "4ced18e3-005a-425d-93ff-95f555f6c0b0", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.Expression), "a2529961-57ff-46eb-b15b-530d1bf858c7"}, { new NonTerminator(NonTerminatorType.SimpleExpression), "50b109dd-887c-4c05-8dcd-aeb93f1123e4"}, { new NonTerminator(NonTerminatorType.Term), "97581c2e-d208-4adc-9fab-ade5a2117761"}, { new NonTerminator(NonTerminatorType.Factor), "9276cbd1-6198-4aeb-84f6-b6fc682d0742"}, { Terminator.NumberTerminator, "93b819b9-1ca7-4290-97c5-59e1a3cb43f3"}, { new NonTerminator(NonTerminatorType.Variable), "201eceee-4e28-4853-b659-2d8d88b432d7"}, { new Terminator(DelimiterType.LeftParenthesis), "3ef73351-4928-4749-86ef-5788bf2a6588"}, { Terminator.IdentifierTerminator, "5a702cad-386e-49ee-aeb0-2b499a1c6d06"}, { new Terminator(KeywordType.Not), "86f108c6-0588-4301-998d-85cb15b55fb1"}, { new Terminator(OperatorType.Minus), "d4bff7f5-6548-4552-8615-16b1d197f9ae"},}, new Dictionary{ }, "4ced18e3-005a-425d-93ff-95f555f6c0b0") },
+ { "06bd10fc-30bb-44eb-aa64-356c9ce074ee", new GeneratedTransformer(new Dictionary{ { Terminator.IdentifierTerminator, "6188362c-562c-4105-b854-454880bae64a"},}, new Dictionary{ }, "06bd10fc-30bb-44eb-aa64-356c9ce074ee") },
+ { "2718db4f-527a-418c-9c29-cc188ac8ff73", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.StatementList), "16e478c8-6f2f-4184-8b55-aa53cb28a42f"}, { new NonTerminator(NonTerminatorType.Statement), "7ec830cd-22ff-4a49-ad34-2c6648ddd368"}, { new NonTerminator(NonTerminatorType.Variable), "0917a51c-0f6b-4995-9b71-a70bfae21876"}, { Terminator.IdentifierTerminator, "d6aa7d6a-3de5-40c0-8676-31a5db27f2b0"}, { new NonTerminator(NonTerminatorType.ProcedureCall), "4abbc50c-c8c4-4d30-9cc7-d95432a4e52a"}, { new NonTerminator(NonTerminatorType.CompoundStatement), "7f34a249-48c2-43b5-ad57-2c6ce9d6fccc"}, { new Terminator(KeywordType.If), "4ced18e3-005a-425d-93ff-95f555f6c0b0"}, { new Terminator(KeywordType.For), "06bd10fc-30bb-44eb-aa64-356c9ce074ee"}, { new Terminator(KeywordType.Begin), "2718db4f-527a-418c-9c29-cc188ac8ff73"},}, new Dictionary{ { new Terminator(KeywordType.End), new ReduceInformation(0, new NonTerminator(NonTerminatorType.Statement))}, { new Terminator(DelimiterType.Semicolon), new ReduceInformation(0, new NonTerminator(NonTerminatorType.Statement))}, }, "2718db4f-527a-418c-9c29-cc188ac8ff73") },
+ { "e31b7a9c-5115-47a1-9d6a-53eb4adbc5f1", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { new Terminator(KeywordType.Begin), new ReduceInformation(3, new NonTerminator(NonTerminatorType.SubprogramDeclarations))}, { new Terminator(KeywordType.Procedure), new ReduceInformation(3, new NonTerminator(NonTerminatorType.SubprogramDeclarations))}, { new Terminator(KeywordType.Function), new ReduceInformation(3, new NonTerminator(NonTerminatorType.SubprogramDeclarations))}, }, "e31b7a9c-5115-47a1-9d6a-53eb4adbc5f1") },
+ { "6bc7265d-8f24-40dd-a2f8-374b5add33ff", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.SubprogramBody), "f21fab16-071e-4eeb-b728-32bf0f091873"}, { new NonTerminator(NonTerminatorType.ConstDeclarations), "0f7f50f5-b9f1-43ee-b07b-ba82140439dd"}, { new Terminator(KeywordType.Const), "74958f5d-76db-4639-9129-124910f851a6"},}, new Dictionary{ { new Terminator(KeywordType.Begin), new ReduceInformation(0, new NonTerminator(NonTerminatorType.ConstDeclarations))}, { new Terminator(KeywordType.Var), new ReduceInformation(0, new NonTerminator(NonTerminatorType.ConstDeclarations))}, }, "6bc7265d-8f24-40dd-a2f8-374b5add33ff") },
+ { "8cf97192-1d35-4d8c-8133-447952742fc0", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.FormalParameter), "2cd2216b-310b-4413-89ea-098fc3a1d1ff"}, { new Terminator(DelimiterType.LeftParenthesis), "d9b56418-af5c-4c92-8227-99611aaab5de"},}, new Dictionary{ { new Terminator(DelimiterType.Semicolon), new ReduceInformation(0, new NonTerminator(NonTerminatorType.FormalParameter))}, }, "8cf97192-1d35-4d8c-8133-447952742fc0") },
+ { "5c8f1189-0625-450c-9468-bf65664a0b98", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.FormalParameter), "4869b016-0bac-40f3-adae-a3a111c74d78"}, { new Terminator(DelimiterType.LeftParenthesis), "14a16101-1ee0-4169-bc2c-68c26d291bb2"},}, new Dictionary{ { new Terminator(DelimiterType.Colon), new ReduceInformation(0, new NonTerminator(NonTerminatorType.FormalParameter))}, }, "5c8f1189-0625-450c-9468-bf65664a0b98") },
+ { "11d34202-306d-49bd-949b-40294e9d988f", new GeneratedTransformer(new Dictionary{ { new Terminator(DelimiterType.Colon), "9ee48dbd-6884-476e-9b77-fb8be644b10d"}, { new Terminator(DelimiterType.Comma), "8f8c7ec2-f815-4e9d-a81c-75a35dd98773"},}, new Dictionary{ }, "11d34202-306d-49bd-949b-40294e9d988f") },
+ { "07e663cb-1741-49db-9287-cf1fd3f7d031", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { new Terminator(DelimiterType.Semicolon), new ReduceInformation(3, new NonTerminator(NonTerminatorType.VarDeclaration))}, }, "07e663cb-1741-49db-9287-cf1fd3f7d031") },
+ { "86ffd448-1ced-4f55-ae5c-0cce2ea6fd67", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { new Terminator(DelimiterType.Semicolon), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Type))}, }, "86ffd448-1ced-4f55-ae5c-0cce2ea6fd67") },
+ { "b6c5ee15-27d5-4b60-8599-fb38f382e3ae", new GeneratedTransformer(new Dictionary{ { new Terminator(DelimiterType.LeftSquareBracket), "9c99f02f-b909-4b55-a8f6-e276b54ae8ec"},}, new Dictionary{ }, "b6c5ee15-27d5-4b60-8599-fb38f382e3ae") },
+ { "ed80790b-88ef-4371-b0e7-81e94e5fac45", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { new Terminator(DelimiterType.Semicolon), new ReduceInformation(1, new NonTerminator(NonTerminatorType.BasicType))}, }, "ed80790b-88ef-4371-b0e7-81e94e5fac45") },
+ { "7388243b-8ed7-4285-8409-382eea2bf0ac", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { new Terminator(DelimiterType.Semicolon), new ReduceInformation(1, new NonTerminator(NonTerminatorType.BasicType))}, }, "7388243b-8ed7-4285-8409-382eea2bf0ac") },
+ { "f8beec53-4b1a-49ba-b0a2-ca9d0a59f346", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { new Terminator(DelimiterType.Semicolon), new ReduceInformation(1, new NonTerminator(NonTerminatorType.BasicType))}, }, "f8beec53-4b1a-49ba-b0a2-ca9d0a59f346") },
+ { "84689f95-8766-49ca-bbc4-f5cb0b102e39", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { new Terminator(DelimiterType.Semicolon), new ReduceInformation(1, new NonTerminator(NonTerminatorType.BasicType))}, }, "84689f95-8766-49ca-bbc4-f5cb0b102e39") },
+ { "c686f6c5-a093-4cf6-af71-228d5c95931a", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { new Terminator(DelimiterType.Colon), new ReduceInformation(3, new NonTerminator(NonTerminatorType.IdentifierList))}, { new Terminator(DelimiterType.Comma), new ReduceInformation(3, new NonTerminator(NonTerminatorType.IdentifierList))}, }, "c686f6c5-a093-4cf6-af71-228d5c95931a") },
+ { "4827a01a-055a-4429-9483-010a027a695d", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.ConstValue), "d7577a94-6ad3-4bd3-a9da-9dca78bd2a2e"}, { new Terminator(OperatorType.Plus), "325cf5df-ceeb-4714-9a59-609e0c70f5ec"}, { new Terminator(OperatorType.Minus), "c677ac55-ad97-463f-a5f7-fd780dd8c6c4"}, { Terminator.NumberTerminator, "901a4fc6-d7b1-4270-ba99-0270931d821a"}, { Terminator.CharacterTerminator, "fd059355-14ca-4c3a-b2b6-433d81782f6f"},}, new Dictionary{ }, "4827a01a-055a-4429-9483-010a027a695d") },
+ { "9cc6eb66-2d6c-46b1-89c4-da347ddc59a6", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { new Terminator(DelimiterType.Semicolon), new ReduceInformation(2, new NonTerminator(NonTerminatorType.ConstValue))}, }, "9cc6eb66-2d6c-46b1-89c4-da347ddc59a6") },
+ { "1d0afc81-54fe-4e3d-88d3-de5fbf47196c", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { new Terminator(DelimiterType.Semicolon), new ReduceInformation(2, new NonTerminator(NonTerminatorType.ConstValue))}, }, "1d0afc81-54fe-4e3d-88d3-de5fbf47196c") },
+ { "ce745382-21ef-442e-b9c6-76b08750a304", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { new Terminator(DelimiterType.Period), new ReduceInformation(3, new NonTerminator(NonTerminatorType.CompoundStatement))}, }, "ce745382-21ef-442e-b9c6-76b08750a304") },
+ { "6539c4c8-777a-4559-bee6-f6d854880735", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.Statement), "db28850c-320c-46d6-9d6e-3ff20118f291"}, { new NonTerminator(NonTerminatorType.Variable), "0917a51c-0f6b-4995-9b71-a70bfae21876"}, { Terminator.IdentifierTerminator, "d6aa7d6a-3de5-40c0-8676-31a5db27f2b0"}, { new NonTerminator(NonTerminatorType.ProcedureCall), "4abbc50c-c8c4-4d30-9cc7-d95432a4e52a"}, { new NonTerminator(NonTerminatorType.CompoundStatement), "7f34a249-48c2-43b5-ad57-2c6ce9d6fccc"}, { new Terminator(KeywordType.If), "4ced18e3-005a-425d-93ff-95f555f6c0b0"}, { new Terminator(KeywordType.For), "06bd10fc-30bb-44eb-aa64-356c9ce074ee"}, { new Terminator(KeywordType.Begin), "2718db4f-527a-418c-9c29-cc188ac8ff73"},}, new Dictionary{ { new Terminator(KeywordType.End), new ReduceInformation(0, new NonTerminator(NonTerminatorType.Statement))}, { new Terminator(DelimiterType.Semicolon), new ReduceInformation(0, new NonTerminator(NonTerminatorType.Statement))}, }, "6539c4c8-777a-4559-bee6-f6d854880735") },
+ { "28d647c9-8b2f-4fed-92f3-08082abc67ff", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.Expression), "6ee074ba-4fa8-44c8-9081-ae14431e45d2"}, { new NonTerminator(NonTerminatorType.SimpleExpression), "619e203f-159d-4f1c-868e-36b4f560b847"}, { new NonTerminator(NonTerminatorType.Term), "fbcde07f-eb4d-47b6-b018-c813066d4d75"}, { new NonTerminator(NonTerminatorType.Factor), "84a646ba-32b8-4e33-ab78-6bff90f8a404"}, { Terminator.NumberTerminator, "d23fe1d4-8542-4cea-bb8b-ad7762c6debb"}, { new NonTerminator(NonTerminatorType.Variable), "5d4779cd-0879-4c4c-a569-b0f33b676958"}, { new Terminator(DelimiterType.LeftParenthesis), "c9c8b9f7-5111-4fd5-beb5-d0030e8dc24a"}, { Terminator.IdentifierTerminator, "55e820e5-353c-47c2-b6b8-939b1a62618e"}, { new Terminator(KeywordType.Not), "2fe20549-306e-42d8-b61e-95ac9d9388a3"}, { new Terminator(OperatorType.Minus), "89086f71-9aef-4de8-b3d4-c0927cd6cdda"},}, new Dictionary{ }, "28d647c9-8b2f-4fed-92f3-08082abc67ff") },
+ { "5ee1ae03-547a-448c-a32d-4dd063ac8436", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.Expression), "8cde9266-21eb-463c-8d62-f8d1cdfe3091"}, { new NonTerminator(NonTerminatorType.SimpleExpression), "619e203f-159d-4f1c-868e-36b4f560b847"}, { new NonTerminator(NonTerminatorType.Term), "fbcde07f-eb4d-47b6-b018-c813066d4d75"}, { new NonTerminator(NonTerminatorType.Factor), "84a646ba-32b8-4e33-ab78-6bff90f8a404"}, { Terminator.NumberTerminator, "d23fe1d4-8542-4cea-bb8b-ad7762c6debb"}, { new NonTerminator(NonTerminatorType.Variable), "5d4779cd-0879-4c4c-a569-b0f33b676958"}, { new Terminator(DelimiterType.LeftParenthesis), "c9c8b9f7-5111-4fd5-beb5-d0030e8dc24a"}, { Terminator.IdentifierTerminator, "55e820e5-353c-47c2-b6b8-939b1a62618e"}, { new Terminator(KeywordType.Not), "2fe20549-306e-42d8-b61e-95ac9d9388a3"}, { new Terminator(OperatorType.Minus), "89086f71-9aef-4de8-b3d4-c0927cd6cdda"},}, new Dictionary{ }, "5ee1ae03-547a-448c-a32d-4dd063ac8436") },
+ { "965e64cf-6440-47a2-849e-2868c33658a1", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { new Terminator(OperatorType.Assign), new ReduceInformation(2, new NonTerminator(NonTerminatorType.Variable))}, }, "965e64cf-6440-47a2-849e-2868c33658a1") },
+ { "e550324e-63e6-47ef-be0f-4c83c10933c8", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.ExpressionList), "6b23c687-5d0f-4aa3-b469-d74953965eba"}, { new NonTerminator(NonTerminatorType.Expression), "60377190-18c7-4991-b320-4fd8443987bb"}, { new NonTerminator(NonTerminatorType.SimpleExpression), "08ecf76a-ceed-46ea-ac03-444efc640a89"}, { new NonTerminator(NonTerminatorType.Term), "288abaa4-40f6-4d16-b023-96815851dc13"}, { new NonTerminator(NonTerminatorType.Factor), "b0107e15-0526-414e-a98f-dfefdb6e55cd"}, { Terminator.NumberTerminator, "bf99b129-0c44-445f-880d-bf9e6106cf77"}, { new NonTerminator(NonTerminatorType.Variable), "6ecab451-234e-4f30-b34a-444ced34e95f"}, { new Terminator(DelimiterType.LeftParenthesis), "973a3492-2749-48fd-b226-4a224615f310"}, { Terminator.IdentifierTerminator, "ef53ba15-d58e-42d8-8e7a-496a78662e7e"}, { new Terminator(KeywordType.Not), "30f9f334-028f-4c9e-8fa7-d00e71c02f7a"}, { new Terminator(OperatorType.Minus), "43bfef6e-27a6-4ed5-9181-944c0c0869db"},}, new Dictionary{ }, "e550324e-63e6-47ef-be0f-4c83c10933c8") },
+ { "bd4bcb7b-223a-4ee5-9101-adb2f7091bfd", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.ExpressionList), "9dee67d8-2aab-4c02-a675-e43cc4ec147e"}, { new NonTerminator(NonTerminatorType.Expression), "4deb0928-e0b2-46ad-b36d-6db5892538d3"}, { new NonTerminator(NonTerminatorType.SimpleExpression), "5c8951f9-34e6-4f48-ba21-c9d794f68704"}, { new NonTerminator(NonTerminatorType.Term), "b5dff012-7224-404c-be00-e05d8ecddad8"}, { new NonTerminator(NonTerminatorType.Factor), "cd7425f7-d1ab-4718-9b02-2736198de4ee"}, { Terminator.NumberTerminator, "82d93635-2453-4516-acc4-24c86c98ac12"}, { new NonTerminator(NonTerminatorType.Variable), "71eda53f-2674-4c70-aa3b-88ba5fe22e84"}, { new Terminator(DelimiterType.LeftParenthesis), "d54afc8c-616a-4817-8f09-a030d5f9cafc"}, { Terminator.IdentifierTerminator, "830c5311-98d9-4b2e-bbb8-dc489f2e47a8"}, { new Terminator(KeywordType.Not), "a78fbe54-cc31-4fdf-a7ec-5c6c7e338446"}, { new Terminator(OperatorType.Minus), "041ba0db-1aec-4fb5-ab79-e036dc670fc7"},}, new Dictionary{ }, "bd4bcb7b-223a-4ee5-9101-adb2f7091bfd") },
+ { "a2529961-57ff-46eb-b15b-530d1bf858c7", new GeneratedTransformer(new Dictionary{ { new Terminator(KeywordType.Then), "6899845a-b146-4818-ae33-c56fa3c9d75d"},}, new Dictionary{ }, "a2529961-57ff-46eb-b15b-530d1bf858c7") },
+ { "50b109dd-887c-4c05-8dcd-aeb93f1123e4", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.RelationOperator), "cc78b9cf-0c32-4b9c-8f29-3276c7523fe2"}, { new Terminator(OperatorType.Equal), "e60f0a44-0071-48cd-9938-5e1f4ebc1750"}, { new Terminator(OperatorType.NotEqual), "bff81bfb-5d76-4d37-ac47-0f8131be9179"}, { new Terminator(OperatorType.Less), "b74c6061-fc5a-421c-b2ba-b08541ad104b"}, { new Terminator(OperatorType.LessEqual), "a1dc7077-7d4e-49a2-9b3f-eb7a1e50f7a3"}, { new Terminator(OperatorType.Greater), "df1da848-76b4-4f80-8032-2c5f6b51d257"}, { new Terminator(OperatorType.GreaterEqual), "d41fbe91-c8fc-4777-8ae9-153d60b07a0a"}, { new NonTerminator(NonTerminatorType.AddOperator), "9a38c895-99d2-4b15-9084-4d27803fd3d9"}, { new Terminator(OperatorType.Plus), "e1972b4b-6669-4585-b56e-954352b788bf"}, { new Terminator(OperatorType.Minus), "4fb07dba-bf26-4347-a306-1bb7ba903590"}, { new Terminator(KeywordType.Or), "0c2471fb-6af7-45bd-8a04-98ada7a266c7"},}, new Dictionary{ { new Terminator(KeywordType.Then), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Expression))}, }, "50b109dd-887c-4c05-8dcd-aeb93f1123e4") },
+ { "97581c2e-d208-4adc-9fab-ade5a2117761", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.MultiplyOperator), "5006ef3a-a58f-4d87-bfab-6dbff29db55f"}, { new Terminator(OperatorType.Multiply), "6920b693-65be-42ae-ac8b-33b45029671c"}, { new Terminator(OperatorType.Divide), "6d2a3b1a-5afd-463a-a8d0-0a0dc109eaaa"}, { new Terminator(KeywordType.Divide), "d63dc45c-9909-4e6d-bb6c-46feb9e31fb1"}, { new Terminator(KeywordType.Mod), "38a02d24-b6a3-44ee-8a9c-ee71205f82ed"}, { new Terminator(KeywordType.And), "2882f7ca-a974-4527-a642-468bc3be3037"},}, new Dictionary{ { new Terminator(KeywordType.Then), new ReduceInformation(1, new NonTerminator(NonTerminatorType.SimpleExpression))}, { new Terminator(OperatorType.Equal), new ReduceInformation(1, new NonTerminator(NonTerminatorType.SimpleExpression))}, { new Terminator(OperatorType.NotEqual), new ReduceInformation(1, new NonTerminator(NonTerminatorType.SimpleExpression))}, { new Terminator(OperatorType.Less), new ReduceInformation(1, new NonTerminator(NonTerminatorType.SimpleExpression))}, { new Terminator(OperatorType.LessEqual), new ReduceInformation(1, new NonTerminator(NonTerminatorType.SimpleExpression))}, { new Terminator(OperatorType.Greater), new ReduceInformation(1, new NonTerminator(NonTerminatorType.SimpleExpression))}, { new Terminator(OperatorType.GreaterEqual), new ReduceInformation(1, new NonTerminator(NonTerminatorType.SimpleExpression))}, { new Terminator(OperatorType.Plus), new ReduceInformation(1, new NonTerminator(NonTerminatorType.SimpleExpression))}, { new Terminator(OperatorType.Minus), new ReduceInformation(1, new NonTerminator(NonTerminatorType.SimpleExpression))}, { new Terminator(KeywordType.Or), new ReduceInformation(1, new NonTerminator(NonTerminatorType.SimpleExpression))}, }, "97581c2e-d208-4adc-9fab-ade5a2117761") },
+ { "9276cbd1-6198-4aeb-84f6-b6fc682d0742", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { new Terminator(KeywordType.Then), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Term))}, { new Terminator(OperatorType.Equal), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Term))}, { new Terminator(OperatorType.NotEqual), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Term))}, { new Terminator(OperatorType.Less), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Term))}, { new Terminator(OperatorType.LessEqual), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Term))}, { new Terminator(OperatorType.Greater), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Term))}, { new Terminator(OperatorType.GreaterEqual), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Term))}, { new Terminator(OperatorType.Multiply), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Term))}, { new Terminator(OperatorType.Divide), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Term))}, { new Terminator(KeywordType.Divide), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Term))}, { new Terminator(KeywordType.Mod), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Term))}, { new Terminator(KeywordType.And), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Term))}, { new Terminator(OperatorType.Plus), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Term))}, { new Terminator(OperatorType.Minus), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Term))}, { new Terminator(KeywordType.Or), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Term))}, }, "9276cbd1-6198-4aeb-84f6-b6fc682d0742") },
+ { "93b819b9-1ca7-4290-97c5-59e1a3cb43f3", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { new Terminator(KeywordType.Then), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.Equal), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.NotEqual), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.Less), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.LessEqual), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.Greater), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.GreaterEqual), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.Multiply), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.Divide), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(KeywordType.Divide), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(KeywordType.Mod), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(KeywordType.And), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.Plus), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.Minus), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(KeywordType.Or), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, }, "93b819b9-1ca7-4290-97c5-59e1a3cb43f3") },
+ { "201eceee-4e28-4853-b659-2d8d88b432d7", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { new Terminator(KeywordType.Then), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.Equal), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.NotEqual), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.Less), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.LessEqual), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.Greater), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.GreaterEqual), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.Multiply), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.Divide), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(KeywordType.Divide), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(KeywordType.Mod), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(KeywordType.And), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.Plus), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.Minus), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(KeywordType.Or), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, }, "201eceee-4e28-4853-b659-2d8d88b432d7") },
+ { "3ef73351-4928-4749-86ef-5788bf2a6588", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.Expression), "ae758e7d-a9fb-4ef2-a555-87c66fa5d48a"}, { new NonTerminator(NonTerminatorType.SimpleExpression), "8b3df006-7bad-45fc-8f6e-37150dd4a845"}, { new NonTerminator(NonTerminatorType.Term), "1c76a2a5-f5ba-485f-bea3-ee69def688d1"}, { new NonTerminator(NonTerminatorType.Factor), "f5b4dfe6-b493-4cf7-87f6-90a82667de84"}, { Terminator.NumberTerminator, "a7a80208-7348-4366-bc61-cac584c9e04a"}, { new NonTerminator(NonTerminatorType.Variable), "5ace0fc6-1154-458f-9dba-28b9f6160ce6"}, { new Terminator(DelimiterType.LeftParenthesis), "94c79094-9186-4861-a631-4dc359b90b39"}, { Terminator.IdentifierTerminator, "859c1708-4168-4083-a2de-7e704d473d03"}, { new Terminator(KeywordType.Not), "544263d9-48f5-4069-a3ea-0808185827ea"}, { new Terminator(OperatorType.Minus), "7492c66c-0393-4775-a03b-65a74bbbaba8"},}, new Dictionary{ }, "3ef73351-4928-4749-86ef-5788bf2a6588") },
+ { "5a702cad-386e-49ee-aeb0-2b499a1c6d06", new GeneratedTransformer(new Dictionary{ { new Terminator(DelimiterType.LeftParenthesis), "a9033df0-172c-406b-9676-88e3991f4ac2"}, { new NonTerminator(NonTerminatorType.IdVarPart), "01f91c61-a2f3-4604-96f9-d16a2b5a61e2"}, { new Terminator(DelimiterType.LeftSquareBracket), "34c7163b-37de-471d-8d79-403b9e3b5dc6"},}, new Dictionary{ { new Terminator(KeywordType.Then), new ReduceInformation(0, new NonTerminator(NonTerminatorType.IdVarPart))}, { new Terminator(OperatorType.Equal), new ReduceInformation(0, new NonTerminator(NonTerminatorType.IdVarPart))}, { new Terminator(OperatorType.NotEqual), new ReduceInformation(0, new NonTerminator(NonTerminatorType.IdVarPart))}, { new Terminator(OperatorType.Less), new ReduceInformation(0, new NonTerminator(NonTerminatorType.IdVarPart))}, { new Terminator(OperatorType.LessEqual), new ReduceInformation(0, new NonTerminator(NonTerminatorType.IdVarPart))}, { new Terminator(OperatorType.Greater), new ReduceInformation(0, new NonTerminator(NonTerminatorType.IdVarPart))}, { new Terminator(OperatorType.GreaterEqual), new ReduceInformation(0, new NonTerminator(NonTerminatorType.IdVarPart))}, { new Terminator(OperatorType.Multiply), new ReduceInformation(0, new NonTerminator(NonTerminatorType.IdVarPart))}, { new Terminator(OperatorType.Divide), new ReduceInformation(0, new NonTerminator(NonTerminatorType.IdVarPart))}, { new Terminator(KeywordType.Divide), new ReduceInformation(0, new NonTerminator(NonTerminatorType.IdVarPart))}, { new Terminator(KeywordType.Mod), new ReduceInformation(0, new NonTerminator(NonTerminatorType.IdVarPart))}, { new Terminator(KeywordType.And), new ReduceInformation(0, new NonTerminator(NonTerminatorType.IdVarPart))}, { new Terminator(OperatorType.Plus), new ReduceInformation(0, new NonTerminator(NonTerminatorType.IdVarPart))}, { new Terminator(OperatorType.Minus), new ReduceInformation(0, new NonTerminator(NonTerminatorType.IdVarPart))}, { new Terminator(KeywordType.Or), new ReduceInformation(0, new NonTerminator(NonTerminatorType.IdVarPart))}, }, "5a702cad-386e-49ee-aeb0-2b499a1c6d06") },
+ { "86f108c6-0588-4301-998d-85cb15b55fb1", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.Factor), "9457c3fe-2b83-4ff8-a881-8cb38a00620a"}, { Terminator.NumberTerminator, "93b819b9-1ca7-4290-97c5-59e1a3cb43f3"}, { new NonTerminator(NonTerminatorType.Variable), "201eceee-4e28-4853-b659-2d8d88b432d7"}, { new Terminator(DelimiterType.LeftParenthesis), "3ef73351-4928-4749-86ef-5788bf2a6588"}, { Terminator.IdentifierTerminator, "5a702cad-386e-49ee-aeb0-2b499a1c6d06"}, { new Terminator(KeywordType.Not), "86f108c6-0588-4301-998d-85cb15b55fb1"}, { new Terminator(OperatorType.Minus), "d4bff7f5-6548-4552-8615-16b1d197f9ae"},}, new Dictionary{ }, "86f108c6-0588-4301-998d-85cb15b55fb1") },
+ { "d4bff7f5-6548-4552-8615-16b1d197f9ae", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.Factor), "3d3e8e9b-b8d8-462b-ae2f-dc9c2fcd5453"}, { Terminator.NumberTerminator, "93b819b9-1ca7-4290-97c5-59e1a3cb43f3"}, { new NonTerminator(NonTerminatorType.Variable), "201eceee-4e28-4853-b659-2d8d88b432d7"}, { new Terminator(DelimiterType.LeftParenthesis), "3ef73351-4928-4749-86ef-5788bf2a6588"}, { Terminator.IdentifierTerminator, "5a702cad-386e-49ee-aeb0-2b499a1c6d06"}, { new Terminator(KeywordType.Not), "86f108c6-0588-4301-998d-85cb15b55fb1"}, { new Terminator(OperatorType.Minus), "d4bff7f5-6548-4552-8615-16b1d197f9ae"},}, new Dictionary{ }, "d4bff7f5-6548-4552-8615-16b1d197f9ae") },
+ { "6188362c-562c-4105-b854-454880bae64a", new GeneratedTransformer(new Dictionary{ { new Terminator(OperatorType.Assign), "54e1784e-d187-4184-9c51-5497f3b0d0eb"},}, new Dictionary{ }, "6188362c-562c-4105-b854-454880bae64a") },
+ { "16e478c8-6f2f-4184-8b55-aa53cb28a42f", new GeneratedTransformer(new Dictionary{ { new Terminator(KeywordType.End), "ffdaf087-bb81-4dc5-b07c-b42529c6a7b4"}, { new Terminator(DelimiterType.Semicolon), "6539c4c8-777a-4559-bee6-f6d854880735"},}, new Dictionary{ }, "16e478c8-6f2f-4184-8b55-aa53cb28a42f") },
+ { "f21fab16-071e-4eeb-b728-32bf0f091873", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { new Terminator(DelimiterType.Semicolon), new ReduceInformation(3, new NonTerminator(NonTerminatorType.Subprogram))}, }, "f21fab16-071e-4eeb-b728-32bf0f091873") },
+ { "0f7f50f5-b9f1-43ee-b07b-ba82140439dd", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.VarDeclarations), "018af930-9833-4c09-96db-7181bc3ee0bf"}, { new Terminator(KeywordType.Var), "08c8b919-8b5e-4147-980b-1e7a7cc040c3"},}, new Dictionary{ { new Terminator(KeywordType.Begin), new ReduceInformation(0, new NonTerminator(NonTerminatorType.VarDeclarations))}, }, "0f7f50f5-b9f1-43ee-b07b-ba82140439dd") },
+ { "74958f5d-76db-4639-9129-124910f851a6", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.ConstDeclaration), "e372c27d-cca1-418b-8bea-ce178748ad62"}, { Terminator.IdentifierTerminator, "cfa3eddb-b879-495a-888c-a15e593a83de"},}, new Dictionary{ }, "74958f5d-76db-4639-9129-124910f851a6") },
+ { "2cd2216b-310b-4413-89ea-098fc3a1d1ff", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { new Terminator(DelimiterType.Semicolon), new ReduceInformation(3, new NonTerminator(NonTerminatorType.SubprogramHead))}, }, "2cd2216b-310b-4413-89ea-098fc3a1d1ff") },
+ { "d9b56418-af5c-4c92-8227-99611aaab5de", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.ParameterList), "6888e160-c100-44c5-9d68-e7023478f941"}, { new NonTerminator(NonTerminatorType.Parameter), "8b0b00b8-c4dc-402f-899c-a7cc29dbd171"}, { new NonTerminator(NonTerminatorType.VarParameter), "6a7f478b-7211-41a2-b7d5-b6526056fbc2"}, { new NonTerminator(NonTerminatorType.ValueParameter), "5111c4a1-3ed8-496b-9cb6-2371c39683f5"}, { new Terminator(KeywordType.Var), "e28a067a-3740-40f5-b3c8-4fea7d514add"}, { new NonTerminator(NonTerminatorType.IdentifierList), "37a29538-98f5-4309-93af-5b6825ab5170"}, { Terminator.IdentifierTerminator, "c5b02395-6a16-42ea-b32a-eb56cf6039ee"},}, new Dictionary{ }, "d9b56418-af5c-4c92-8227-99611aaab5de") },
+ { "4869b016-0bac-40f3-adae-a3a111c74d78", new GeneratedTransformer(new Dictionary{ { new Terminator(DelimiterType.Colon), "4551fd3e-0602-4903-9e62-5bc95c51def2"},}, new Dictionary{ }, "4869b016-0bac-40f3-adae-a3a111c74d78") },
+ { "14a16101-1ee0-4169-bc2c-68c26d291bb2", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.ParameterList), "b1e82fe8-9616-4049-9bf3-225e7f5fb4a0"}, { new NonTerminator(NonTerminatorType.Parameter), "8b0b00b8-c4dc-402f-899c-a7cc29dbd171"}, { new NonTerminator(NonTerminatorType.VarParameter), "6a7f478b-7211-41a2-b7d5-b6526056fbc2"}, { new NonTerminator(NonTerminatorType.ValueParameter), "5111c4a1-3ed8-496b-9cb6-2371c39683f5"}, { new Terminator(KeywordType.Var), "e28a067a-3740-40f5-b3c8-4fea7d514add"}, { new NonTerminator(NonTerminatorType.IdentifierList), "37a29538-98f5-4309-93af-5b6825ab5170"}, { Terminator.IdentifierTerminator, "c5b02395-6a16-42ea-b32a-eb56cf6039ee"},}, new Dictionary{ }, "14a16101-1ee0-4169-bc2c-68c26d291bb2") },
+ { "9ee48dbd-6884-476e-9b77-fb8be644b10d", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.Type), "d61399c7-941b-40e8-bedd-a04cacb0a8b0"}, { new NonTerminator(NonTerminatorType.BasicType), "86ffd448-1ced-4f55-ae5c-0cce2ea6fd67"}, { new Terminator(KeywordType.Array), "b6c5ee15-27d5-4b60-8599-fb38f382e3ae"}, { new Terminator(KeywordType.Integer), "ed80790b-88ef-4371-b0e7-81e94e5fac45"}, { new Terminator(KeywordType.Real), "7388243b-8ed7-4285-8409-382eea2bf0ac"}, { new Terminator(KeywordType.Boolean), "f8beec53-4b1a-49ba-b0a2-ca9d0a59f346"}, { new Terminator(KeywordType.Character), "84689f95-8766-49ca-bbc4-f5cb0b102e39"},}, new Dictionary{ }, "9ee48dbd-6884-476e-9b77-fb8be644b10d") },
+ { "9c99f02f-b909-4b55-a8f6-e276b54ae8ec", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.Period), "2a923053-f405-441d-a303-6846a1fc0ca4"}, { Terminator.NumberTerminator, "1971081c-4eb1-4c86-996b-7369b868a7aa"},}, new Dictionary{ }, "9c99f02f-b909-4b55-a8f6-e276b54ae8ec") },
+ { "d7577a94-6ad3-4bd3-a9da-9dca78bd2a2e", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { new Terminator(DelimiterType.Semicolon), new ReduceInformation(5, new NonTerminator(NonTerminatorType.ConstDeclaration))}, }, "d7577a94-6ad3-4bd3-a9da-9dca78bd2a2e") },
+ { "db28850c-320c-46d6-9d6e-3ff20118f291", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { new Terminator(KeywordType.End), new ReduceInformation(3, new NonTerminator(NonTerminatorType.StatementList))}, { new Terminator(DelimiterType.Semicolon), new ReduceInformation(3, new NonTerminator(NonTerminatorType.StatementList))}, }, "db28850c-320c-46d6-9d6e-3ff20118f291") },
+ { "6ee074ba-4fa8-44c8-9081-ae14431e45d2", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { new Terminator(KeywordType.End), new ReduceInformation(3, new NonTerminator(NonTerminatorType.Statement))}, { new Terminator(DelimiterType.Semicolon), new ReduceInformation(3, new NonTerminator(NonTerminatorType.Statement))}, }, "6ee074ba-4fa8-44c8-9081-ae14431e45d2") },
+ { "619e203f-159d-4f1c-868e-36b4f560b847", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.RelationOperator), "72a7c8b5-9daf-463e-891e-8c1010976888"}, { new Terminator(OperatorType.Equal), "e60f0a44-0071-48cd-9938-5e1f4ebc1750"}, { new Terminator(OperatorType.NotEqual), "bff81bfb-5d76-4d37-ac47-0f8131be9179"}, { new Terminator(OperatorType.Less), "b74c6061-fc5a-421c-b2ba-b08541ad104b"}, { new Terminator(OperatorType.LessEqual), "a1dc7077-7d4e-49a2-9b3f-eb7a1e50f7a3"}, { new Terminator(OperatorType.Greater), "df1da848-76b4-4f80-8032-2c5f6b51d257"}, { new Terminator(OperatorType.GreaterEqual), "d41fbe91-c8fc-4777-8ae9-153d60b07a0a"}, { new NonTerminator(NonTerminatorType.AddOperator), "cb3d8334-df7a-465c-bf9d-c3e69ccd4c3b"}, { new Terminator(OperatorType.Plus), "e1972b4b-6669-4585-b56e-954352b788bf"}, { new Terminator(OperatorType.Minus), "4fb07dba-bf26-4347-a306-1bb7ba903590"}, { new Terminator(KeywordType.Or), "0c2471fb-6af7-45bd-8a04-98ada7a266c7"},}, new Dictionary{ { new Terminator(KeywordType.End), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Expression))}, { new Terminator(DelimiterType.Semicolon), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Expression))}, }, "619e203f-159d-4f1c-868e-36b4f560b847") },
+ { "fbcde07f-eb4d-47b6-b018-c813066d4d75", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.MultiplyOperator), "f54f341f-5053-4d91-a494-d5bacd33fb9d"}, { new Terminator(OperatorType.Multiply), "6920b693-65be-42ae-ac8b-33b45029671c"}, { new Terminator(OperatorType.Divide), "6d2a3b1a-5afd-463a-a8d0-0a0dc109eaaa"}, { new Terminator(KeywordType.Divide), "d63dc45c-9909-4e6d-bb6c-46feb9e31fb1"}, { new Terminator(KeywordType.Mod), "38a02d24-b6a3-44ee-8a9c-ee71205f82ed"}, { new Terminator(KeywordType.And), "2882f7ca-a974-4527-a642-468bc3be3037"},}, new Dictionary{ { new Terminator(KeywordType.End), new ReduceInformation(1, new NonTerminator(NonTerminatorType.SimpleExpression))}, { new Terminator(OperatorType.Equal), new ReduceInformation(1, new NonTerminator(NonTerminatorType.SimpleExpression))}, { new Terminator(OperatorType.NotEqual), new ReduceInformation(1, new NonTerminator(NonTerminatorType.SimpleExpression))}, { new Terminator(OperatorType.Less), new ReduceInformation(1, new NonTerminator(NonTerminatorType.SimpleExpression))}, { new Terminator(OperatorType.LessEqual), new ReduceInformation(1, new NonTerminator(NonTerminatorType.SimpleExpression))}, { new Terminator(OperatorType.Greater), new ReduceInformation(1, new NonTerminator(NonTerminatorType.SimpleExpression))}, { new Terminator(OperatorType.GreaterEqual), new ReduceInformation(1, new NonTerminator(NonTerminatorType.SimpleExpression))}, { new Terminator(OperatorType.Plus), new ReduceInformation(1, new NonTerminator(NonTerminatorType.SimpleExpression))}, { new Terminator(OperatorType.Minus), new ReduceInformation(1, new NonTerminator(NonTerminatorType.SimpleExpression))}, { new Terminator(KeywordType.Or), new ReduceInformation(1, new NonTerminator(NonTerminatorType.SimpleExpression))}, { new Terminator(DelimiterType.Semicolon), new ReduceInformation(1, new NonTerminator(NonTerminatorType.SimpleExpression))}, }, "fbcde07f-eb4d-47b6-b018-c813066d4d75") },
+ { "84a646ba-32b8-4e33-ab78-6bff90f8a404", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { new Terminator(KeywordType.End), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Term))}, { new Terminator(OperatorType.Equal), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Term))}, { new Terminator(OperatorType.NotEqual), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Term))}, { new Terminator(OperatorType.Less), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Term))}, { new Terminator(OperatorType.LessEqual), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Term))}, { new Terminator(OperatorType.Greater), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Term))}, { new Terminator(OperatorType.GreaterEqual), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Term))}, { new Terminator(OperatorType.Multiply), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Term))}, { new Terminator(OperatorType.Divide), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Term))}, { new Terminator(KeywordType.Divide), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Term))}, { new Terminator(KeywordType.Mod), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Term))}, { new Terminator(KeywordType.And), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Term))}, { new Terminator(OperatorType.Plus), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Term))}, { new Terminator(OperatorType.Minus), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Term))}, { new Terminator(KeywordType.Or), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Term))}, { new Terminator(DelimiterType.Semicolon), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Term))}, }, "84a646ba-32b8-4e33-ab78-6bff90f8a404") },
+ { "d23fe1d4-8542-4cea-bb8b-ad7762c6debb", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { new Terminator(KeywordType.End), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.Equal), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.NotEqual), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.Less), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.LessEqual), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.Greater), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.GreaterEqual), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.Multiply), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.Divide), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(KeywordType.Divide), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(KeywordType.Mod), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(KeywordType.And), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.Plus), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.Minus), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(KeywordType.Or), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(DelimiterType.Semicolon), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, }, "d23fe1d4-8542-4cea-bb8b-ad7762c6debb") },
+ { "5d4779cd-0879-4c4c-a569-b0f33b676958", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { new Terminator(KeywordType.End), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.Equal), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.NotEqual), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.Less), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.LessEqual), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.Greater), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.GreaterEqual), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.Multiply), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.Divide), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(KeywordType.Divide), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(KeywordType.Mod), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(KeywordType.And), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.Plus), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(OperatorType.Minus), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(KeywordType.Or), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, { new Terminator(DelimiterType.Semicolon), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Factor))}, }, "5d4779cd-0879-4c4c-a569-b0f33b676958") },
+ { "c9c8b9f7-5111-4fd5-beb5-d0030e8dc24a", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.Expression), "78a86961-7bc0-433f-8e8e-100734f9b4d8"}, { new NonTerminator(NonTerminatorType.SimpleExpression), "8b3df006-7bad-45fc-8f6e-37150dd4a845"}, { new NonTerminator(NonTerminatorType.Term), "1c76a2a5-f5ba-485f-bea3-ee69def688d1"}, { new NonTerminator(NonTerminatorType.Factor), "f5b4dfe6-b493-4cf7-87f6-90a82667de84"}, { Terminator.NumberTerminator, "a7a80208-7348-4366-bc61-cac584c9e04a"}, { new NonTerminator(NonTerminatorType.Variable), "5ace0fc6-1154-458f-9dba-28b9f6160ce6"}, { new Terminator(DelimiterType.LeftParenthesis), "94c79094-9186-4861-a631-4dc359b90b39"}, { Terminator.IdentifierTerminator, "859c1708-4168-4083-a2de-7e704d473d03"}, { new Terminator(KeywordType.Not), "544263d9-48f5-4069-a3ea-0808185827ea"}, { new Terminator(OperatorType.Minus), "7492c66c-0393-4775-a03b-65a74bbbaba8"},}, new Dictionary{ }, "c9c8b9f7-5111-4fd5-beb5-d0030e8dc24a") },
+ { "55e820e5-353c-47c2-b6b8-939b1a62618e", new GeneratedTransformer(new Dictionary{ { new Terminator(DelimiterType.LeftParenthesis), "d7837f56-0eeb-4ec9-abc0-4b333d86dded"}, { new NonTerminator(NonTerminatorType.IdVarPart), "320bbf1d-85cd-4ec1-9175-a75bb460d26e"}, { new Terminator(DelimiterType.LeftSquareBracket), "6149c95f-dddb-4c4e-b39e-a8aab89b332b"},}, new Dictionary{ { new Terminator(KeywordType.End), new ReduceInformation(0, new NonTerminator(NonTerminatorType.IdVarPart))}, { new Terminator(OperatorType.Equal), new ReduceInformation(0, new NonTerminator(NonTerminatorType.IdVarPart))}, { new Terminator(OperatorType.NotEqual), new ReduceInformation(0, new NonTerminator(NonTerminatorType.IdVarPart))}, { new Terminator(OperatorType.Less), new ReduceInformation(0, new NonTerminator(NonTerminatorType.IdVarPart))}, { new Terminator(OperatorType.LessEqual), new ReduceInformation(0, new NonTerminator(NonTerminatorType.IdVarPart))}, { new Terminator(OperatorType.Greater), new ReduceInformation(0, new NonTerminator(NonTerminatorType.IdVarPart))}, { new Terminator(OperatorType.GreaterEqual), new ReduceInformation(0, new NonTerminator(NonTerminatorType.IdVarPart))}, { new Terminator(OperatorType.Multiply), new ReduceInformation(0, new NonTerminator(NonTerminatorType.IdVarPart))}, { new Terminator(OperatorType.Divide), new ReduceInformation(0, new NonTerminator(NonTerminatorType.IdVarPart))}, { new Terminator(KeywordType.Divide), new ReduceInformation(0, new NonTerminator(NonTerminatorType.IdVarPart))}, { new Terminator(KeywordType.Mod), new ReduceInformation(0, new NonTerminator(NonTerminatorType.IdVarPart))}, { new Terminator(KeywordType.And), new ReduceInformation(0, new NonTerminator(NonTerminatorType.IdVarPart))}, { new Terminator(OperatorType.Plus), new ReduceInformation(0, new NonTerminator(NonTerminatorType.IdVarPart))}, { new Terminator(OperatorType.Minus), new ReduceInformation(0, new NonTerminator(NonTerminatorType.IdVarPart))}, { new Terminator(KeywordType.Or), new ReduceInformation(0, new NonTerminator(NonTerminatorType.IdVarPart))}, { new Terminator(DelimiterType.Semicolon), new ReduceInformation(0, new NonTerminator(NonTerminatorType.IdVarPart))}, }, "55e820e5-353c-47c2-b6b8-939b1a62618e") },
+ { "2fe20549-306e-42d8-b61e-95ac9d9388a3", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.Factor), "f14ff22f-d36c-482e-a39a-c5306b0e821c"}, { Terminator.NumberTerminator, "d23fe1d4-8542-4cea-bb8b-ad7762c6debb"}, { new NonTerminator(NonTerminatorType.Variable), "5d4779cd-0879-4c4c-a569-b0f33b676958"}, { new Terminator(DelimiterType.LeftParenthesis), "c9c8b9f7-5111-4fd5-beb5-d0030e8dc24a"}, { Terminator.IdentifierTerminator, "55e820e5-353c-47c2-b6b8-939b1a62618e"}, { new Terminator(KeywordType.Not), "2fe20549-306e-42d8-b61e-95ac9d9388a3"}, { new Terminator(OperatorType.Minus), "89086f71-9aef-4de8-b3d4-c0927cd6cdda"},}, new Dictionary{ }, "2fe20549-306e-42d8-b61e-95ac9d9388a3") },
+ { "89086f71-9aef-4de8-b3d4-c0927cd6cdda", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.Factor), "0d0bd6c0-bafc-4115-8a4f-5b49e4e0c0fc"}, { Terminator.NumberTerminator, "d23fe1d4-8542-4cea-bb8b-ad7762c6debb"}, { new NonTerminator(NonTerminatorType.Variable), "5d4779cd-0879-4c4c-a569-b0f33b676958"}, { new Terminator(DelimiterType.LeftParenthesis), "c9c8b9f7-5111-4fd5-beb5-d0030e8dc24a"}, { Terminator.IdentifierTerminator, "55e820e5-353c-47c2-b6b8-939b1a62618e"}, { new Terminator(KeywordType.Not), "2fe20549-306e-42d8-b61e-95ac9d9388a3"}, { new Terminator(OperatorType.Minus), "89086f71-9aef-4de8-b3d4-c0927cd6cdda"},}, new Dictionary{ }, "89086f71-9aef-4de8-b3d4-c0927cd6cdda") },
+ { "8cde9266-21eb-463c-8d62-f8d1cdfe3091", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { new Terminator(KeywordType.End), new ReduceInformation(3, new NonTerminator(NonTerminatorType.Statement))}, { new Terminator(DelimiterType.Semicolon), new ReduceInformation(3, new NonTerminator(NonTerminatorType.Statement))}, }, "8cde9266-21eb-463c-8d62-f8d1cdfe3091") },
+ { "6b23c687-5d0f-4aa3-b469-d74953965eba", new GeneratedTransformer(new Dictionary{ { new Terminator(DelimiterType.RightSquareBracket), "21418940-a961-452a-9eec-a5d9757dab29"}, { new Terminator(DelimiterType.Comma), "5a4cd270-a7b0-4914-ab2a-0e17937d72ce"},}, new Dictionary{ }, "6b23c687-5d0f-4aa3-b469-d74953965eba") },
+ { "60377190-18c7-4991-b320-4fd8443987bb", new GeneratedTransformer(new Dictionary{}, new Dictionary{ { new Terminator(DelimiterType.RightSquareBracket), new ReduceInformation(1, new NonTerminator(NonTerminatorType.ExpressionList))}, { new Terminator(DelimiterType.Comma), new ReduceInformation(1, new NonTerminator(NonTerminatorType.ExpressionList))}, }, "60377190-18c7-4991-b320-4fd8443987bb") },
+ { "08ecf76a-ceed-46ea-ac03-444efc640a89", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.RelationOperator), "105e094b-a7b1-4d71-8d24-3ca532152fbd"}, { new Terminator(OperatorType.Equal), "e60f0a44-0071-48cd-9938-5e1f4ebc1750"}, { new Terminator(OperatorType.NotEqual), "bff81bfb-5d76-4d37-ac47-0f8131be9179"}, { new Terminator(OperatorType.Less), "b74c6061-fc5a-421c-b2ba-b08541ad104b"}, { new Terminator(OperatorType.LessEqual), "a1dc7077-7d4e-49a2-9b3f-eb7a1e50f7a3"}, { new Terminator(OperatorType.Greater), "df1da848-76b4-4f80-8032-2c5f6b51d257"}, { new Terminator(OperatorType.GreaterEqual), "d41fbe91-c8fc-4777-8ae9-153d60b07a0a"}, { new NonTerminator(NonTerminatorType.AddOperator), "a3494fed-7a61-4eb3-9104-daacbe411d10"}, { new Terminator(OperatorType.Plus), "e1972b4b-6669-4585-b56e-954352b788bf"}, { new Terminator(OperatorType.Minus), "4fb07dba-bf26-4347-a306-1bb7ba903590"}, { new Terminator(KeywordType.Or), "0c2471fb-6af7-45bd-8a04-98ada7a266c7"},}, new Dictionary{ { new Terminator(DelimiterType.RightSquareBracket), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Expression))}, { new Terminator(DelimiterType.Comma), new ReduceInformation(1, new NonTerminator(NonTerminatorType.Expression))}, }, "08ecf76a-ceed-46ea-ac03-444efc640a89") },
+ { "288abaa4-40f6-4d16-b023-96815851dc13", new GeneratedTransformer(new Dictionary{ { new NonTerminator(NonTerminatorType.MultiplyOperator), "4aa8465a-5d02-4525-9106-965aac2e2de8"}, { new Terminator(OperatorType.Multiply), "6920b693-65be-42ae-ac8b-33b45029671c"}, { new Terminator(OperatorType.Divide), "6d2a3b1a-5afd-463a-a8d0-0a0dc109eaaa"}, { new Terminator(KeywordType.Divide), "d63dc45c-9909-4e6d-bb6c-46feb9e31fb1"}, { new Terminator(KeywordType.Mod), "38a02d24-b6a3-44ee-8a9c-ee71205f82ed"}, { new Terminator(KeywordType.And), "2882f7ca-a974-4527-a642-468bc3be3037"},}, new Dictionary{ { new Terminator(DelimiterType.RightSquareBracket), new ReduceInformation(1, new NonTerminator(NonTerminatorType.SimpleExpression))}, { new Terminator(OperatorType.Equal), new ReduceInformation(1, new NonTerminator(NonTerminatorType.SimpleExpression))}, { new Terminator(OperatorType.NotEqual), new ReduceInformation(1, new NonTerminator(NonTerminatorType.SimpleExpression))}, { new Terminator(OperatorType.Less), new ReduceInformation(1, new NonTerminator(NonTerminatorType.SimpleExpression))}, { new Terminator(OperatorType.LessEqual), new ReduceInformation(1, new NonTerminator(NonTerminatorType.SimpleExpression))}, { new Terminator(OperatorType.Greater), new ReduceInformation(1, new NonTerminator(NonTerminatorType.SimpleExpression))}, { new Terminator(OperatorType.GreaterEqual), new ReduceInformation(1, new NonTerminator(NonTerminatorType.SimpleExpression))}, { new Terminator(OperatorType.Plus), new ReduceInformation(1, new NonTerminator(NonTerminatorType.SimpleExpression))}, { new Terminator(OperatorType.Minus), new ReduceInformation(1, new NonTerminator(NonTerminatorType.SimpleExpression))}, { new Terminator(KeywordType.Or), new ReduceInformation(1, new NonTerminator(NonTerminatorType.SimpleExpression))}, { new Terminator(DelimiterType.Comma), new ReduceInformation(1, new NonTerminator(NonTerminatorType.SimpleExpression))}, }, "288abaa4-40f6-4d16-b023-96815851dc13") },
+ { "b0107e15-0526-414e-a98f-dfefdb6e55cd", new GeneratedTransformer(new Dictionary