/// <summary> /// Adds compiler feature abstraction to all attribute annotations of a class member declaration /// </summary> /// <param name="member">The member declaration</param> private static void AddCompilerAbstractionToAttributes(ClassMemberDeclaration member) { foreach (ConditionalAttributeAnnotation annotation in member.AttributeAnnotations) { AddCompilerAbstraction(annotation); } }
public override void TypeCheck() { foreach (var ClassMemberDeclaration in ClassMemberDeclarations) { ClassMemberDeclaration.TypeCheck(); } }
public override void ResolveNames(LexicalScope ls) { ls.SymbolTable.Add(GetName(), this); LexicalScope = new LexicalScope(ls); foreach (var ClassMemberDeclaration in ClassMemberDeclarations) { ClassMemberDeclaration.ResolveNames(LexicalScope); } }
public override void GenCode(ref string output) { output += Environment.NewLine + ".class"; foreach (var modifier in ClassModifiers) { output += $" {modifier.ToString().ToLower()}"; } output += $" {this.Identifier.Name}" + Environment.NewLine + "{"; foreach (var ClassMemberDeclaration in ClassMemberDeclarations) { ClassMemberDeclaration.GenCode(ref output); } output += Environment.NewLine + "}"; }