/// <summary> /// Parses all fields, keywords, etc. from the disassembled output /// </summary> public void Parse() { using (ActionScriptReader acr = new ActionScriptReader(new FileStream(File, FileMode.Open))) { string kw = acr.ReadString(); if (kw == "class " || kw == "class") { ClassKeyword = new ClassKeyword(acr); } } }
public void 类关键字() { ClassKeyword classKeyword = ClassKeyword.Abstract; var output = EnumCache.GetClassKeyword(classKeyword); Assert.Equal("abstract", output); output = EnumCache.GetValue(classKeyword); Assert.Equal("abstract", output); }
/// <summary> /// <paramref name="access"/> <paramref name="modifiers"/> <paramref name="keyword"/> <paramref name="className"/> [: <paramref name="baseNames"/>] /// { /// </summary> /// <param name="access">Access modifiers</param> /// <param name="modifiers">class modifiers</param> /// <param name="keyword">class, record or struct</param> /// <param name="className">Class name</param> /// <param name="baseNames">Base class and/or interface names.</param> public void StartClass(AccessModifiers access, ClassModifiers modifiers, ClassKeyword keyword, string className, params string[]? baseNames) { WriteIndent(); _writer.Write($"{access.ToCode()} {modifiers.ToCode()} {keyword.ToCode()} {className}"); if (baseNames is not null && baseNames.Length > 0) _writer.Write($" : {String.Join(", ", baseNames)}"); _writer.WriteLine(); WriteIndent(); _writer.WriteLine("{"); IncrementIndent(); }
/// <summary> /// 获取 <see cref="ClassKeyword"/> 枚举代表的信息 /// </summary> /// <param name="value">枚举</param> /// <returns>类修饰符</returns> public static string GetClassKeyword(ClassKeyword value) { return(_ClassKeyWork.Value[value]); }
public static string ToCode(this ClassKeyword keyword) => keyword.ToString().ToLowerInvariant();
public Class(string name, ClassKeyword keyword) { Name = name; Keyword = keyword; }
/// <summary> /// 类的修饰符关键字,如 static,sealed /// </summary> /// <param name="keyword"></param> /// <returns></returns> public virtual TBuilder WithKeyword(ClassKeyword keyword) { _typeState.Keyword = EnumCache.GetValue(keyword); return(_TBuilder); }
public void Test() { ClassKeyword classKeyword = ClassKeyword.Abstract; Assert.Equal(ClassKeyword.Abstract, classKeyword); }
/// <summary> /// 类的修饰符关键字,如 static,sealed /// </summary> /// <param name="keyword"></param> /// <returns></returns> public virtual TBuilder WithKeyword(ClassKeyword keyword) { _class.Keyword = RoslynHelper.GetName(keyword); return(_TBuilder); }