_Core/Lang/Integration/Plugins.cs
(开头部分) 27KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ComLib.Lang.Extensions;
namespace ComLib.Lang
{
/// <summary>
/// Stores all the combinators.
/// </summary>
public class Plugins
{
// e.g.
// [ "monday" ] = [ DayPlugin ]
// [ "$IdToken" ] = [ LinqPlugin, ]
private IDictionary<string, List<ILangPlugin>> _sysStmtPlugins = new Dictionary<string, List<ILangPlugin>>();
private IDictionary<string, List<ILangPlugin>> _expPlugins = new Dictionary<string, List<ILangPlugin>>();
private IDictionary<string, List<ILangPlugin>> _tokPlugins = new Dictionary<string, List<ILangPlugin>>();
private IDictionary<string, List<ILangPlugin>> _lexPlugins = new Dictionary<string, List<ILangPlugin>>();
private IDictionary<string, List<ILangPlugin>> _postfixPlugins = new Dictionary<string, List<ILangPlugin>>();
private IDictionary<string, List<ILangPlugin>> _stmtPlugins = new Dictionary<string, List<ILangPlugin>>();
private IDictionary<string, List<ILangPlugin>> _expStmtPlugins = new Dictionary<string, List<ILangPlugin>>();
private int _totalExpPlugins = 0;
private bool _hasLiteralCombinators = false;
private bool _hasTokenPlugins = false;
private bool _hasPostfixPlugins = false;
private IExprPlugin _lastMatchedExp;
private ITokenPlugin _lastMatchedTok;
private ILexPlugin _lastMatchedLex;
private IStmtPlugin _lastMatchedSysStmt;
private IExprBasePlugin _lastMatchedExtStmt;
private IDictionary<string, ILangPlugin> _sysMap;
private IDictionary<string, ILangPlugin> _extMap;
private IDictionary<string, object> _pluginSettings;
private IList<IDisposable> _disposablePlugins;
/// <summary>
/// Initialize plugins.
/// </summary>
public Plugins()
{
_sysMap = new Dictionary<string, ILangPlugin>();
_extMap = new Dictionary<string, ILangPlugin>();
_pluginSettings = new Dictionary<string, object>();
}
/// <summary>
/// Initialize
/// </summary>
public void Init()
{
// System plugins ( basic features - loops, if etc )
_sysMap["Break"] = new BreakPlugin();
_sysMap["Continue"] = new ContinuePlugin();
后面还有 694 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
