Beispiel #1
0
 /// <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);
        }
Beispiel #3
0
 /// <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();
 }
Beispiel #4
0
 /// <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();
Beispiel #6
0
 public Class(string name, ClassKeyword keyword)
 {
     Name    = name;
     Keyword = keyword;
 }
Beispiel #7
0
 /// <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);
        }
Beispiel #9
0
 /// <summary>
 /// 类的修饰符关键字,如 static,sealed
 /// </summary>
 /// <param name="keyword"></param>
 /// <returns></returns>
 public virtual TBuilder WithKeyword(ClassKeyword keyword)
 {
     _class.Keyword = RoslynHelper.GetName(keyword);
     return(_TBuilder);
 }