static KeywordManager() { Default = new KeywordManager(); Default.RegisterKeyword("package", TokenType.PackageKeyword, KeywordCategory.Other); Default.RegisterKeyword("using", TokenType.UsingKeyword, KeywordCategory.Other); Default.RegisterKeyword("struct", TokenType.StructKeyword, KeywordCategory.Other); Default.RegisterKeyword("about", TokenType.AboutKeyword, KeywordCategory.Other); Default.RegisterKeyword("var", TokenType.VarKeyword, KeywordCategory.Other); Default.RegisterKeyword("obsolete", TokenType.ObsoleteKeyword, KeywordCategory.Other); Default.RegisterKeyword("public", TokenType.PublicKeyword, KeywordCategory.StructModifier); Default.RegisterKeyword("internal", TokenType.InternalKeyword, KeywordCategory.StructModifier); Default.RegisterKeyword("private", TokenType.PrivateKeyword, KeywordCategory.StructModifier); Default.RegisterKeyword("protected", TokenType.ProtectedKeyword, KeywordCategory.StructModifier); Default.RegisterKeyword("final", TokenType.FinalKeyword, KeywordCategory.StructModifier); Default.RegisterKeyword("ref", TokenType.RefKeyword, KeywordCategory.StructModifier); Default.RegisterKeyword("boolean", TokenType.BooleanKeyword, KeywordCategory.TypeKeyword); Default.RegisterKeyword("uint8", TokenType.UInt8Keyword, KeywordCategory.TypeKeyword); Default.RegisterKeyword("int8", TokenType.Int8Keyword, KeywordCategory.TypeKeyword); Default.RegisterKeyword("uint16", TokenType.UInt16Keyword, KeywordCategory.TypeKeyword); Default.RegisterKeyword("int16", TokenType.Int16Keyword, KeywordCategory.TypeKeyword); Default.RegisterKeyword("uint32", TokenType.UInt32Keyword, KeywordCategory.TypeKeyword); Default.RegisterKeyword("int32", TokenType.Int32Keyword, KeywordCategory.TypeKeyword); Default.RegisterKeyword("uint64", TokenType.UInt64Keyword, KeywordCategory.TypeKeyword); Default.RegisterKeyword("int64", TokenType.Int64Keyword, KeywordCategory.TypeKeyword); Default.RegisterKeyword("float32", TokenType.Float32Keyoword, KeywordCategory.TypeKeyword); Default.RegisterKeyword("float64", TokenType.Float64Keyword, KeywordCategory.TypeKeyword); Default.RegisterKeyword("float128", TokenType.Float128Keyword, KeywordCategory.TypeKeyword); Default.RegisterKeyword("char", TokenType.CharKeyword, KeywordCategory.TypeKeyword); Default.RegisterKeyword("string", TokenType.StringKeyword, KeywordCategory.TypeKeyword); Default.RegisterKeyword("nuint", TokenType.NUIntKeyword, KeywordCategory.TypeKeyword); Default.RegisterKeyword("nint", TokenType.NIntKeyword, KeywordCategory.TypeKeyword); Default.RegisterKeyword("vuint", TokenType.VUIntKeyword, KeywordCategory.TypeKeyword); Default.RegisterKeyword("vint", TokenType.VIntKeyword, KeywordCategory.TypeKeyword); }
/// <summary> /// 初始化Compiler /// </summary> /// <param name="errorWriter"></param> /// <param name="keywordManager"></param> public Compiler(ErrorWriter errorWriter, KeywordManager keywordManager) { m_ErrorWriter = errorWriter ?? throw new ArgumentNullException(nameof(errorWriter)); m_KeywordManager = keywordManager ?? throw new ArgumentNullException(nameof(keywordManager)); m_SyncObj = new object(); }
/// <summary> /// 初始化Scanner /// </summary> /// <param name="writer">错误编写器</param> /// <param name="manager">关键字管理器</param> public Scanner(ErrorWriter writer, KeywordManager manager) { m_KeywordManager = manager; m_Writer = writer; m_StrBuilder = new StringBuilder(); }
/// <summary> /// 初始化 Parser /// </summary> /// <param name="writer">错误编写器</param> /// <param name="keywordManager">关键字管理器</param> public Parser(ErrorWriter writer, KeywordManager keywordManager) { m_KeywordManager = keywordManager; m_Writer = writer; }