public ModuleDefinition(LexicalScope /*!*/ definedScope, ConstantVariable /*!*/ qualifiedName, Body /*!*/ body, SourceSpan location) : base(definedScope, body, location) { ContractUtils.RequiresNotNull(qualifiedName, "qualifiedName"); _qualifiedName = qualifiedName; }
public ClassDefinition(LexicalScope /*!*/ definedScope, ConstantVariable /*!*/ name, Expression superClass, Body /*!*/ body, SourceSpan location) : base(definedScope, name, body, location) { ContractUtils.RequiresNotNull(name, "name"); _superClass = superClass; }
public ClassDefinition(LexicalScope/*!*/ definedScope, ConstantVariable/*!*/ name, Expression superClass, Body/*!*/ body, SourceSpan location) : base(definedScope, name, body, location) { ContractUtils.RequiresNotNull(name, "name"); _superClass = superClass; }
public ModuleDefinition(LexicalScope/*!*/ definedScope, ConstantVariable/*!*/ qualifiedName, Body/*!*/ body, SourceSpan location) : base(definedScope, body, location) { ContractUtils.RequiresNotNull(qualifiedName, "qualifiedName"); _qualifiedName = qualifiedName; }
internal protected virtual void Walk(ConstantVariable /*!*/ node) { if (Enter(node)) { if (node.Qualifier != null) { node.Qualifier.Walk(this); } } Exit(node); }
private MSA.Expression /*!*/ TransformRead(AstGenerator /*!*/ gen, int opKind) { ConstantVariable constantQualifier = _qualifier as ConstantVariable; if (constantQualifier != null) { ConstantVariable constant; List <string> names = new List <string>(); names.Add(Name); do { names.Add(constantQualifier.Name); constant = constantQualifier; constantQualifier = constantQualifier.Qualifier as ConstantVariable; } while (constantQualifier != null); if (constant.Qualifier != null) { // {expr}::A::B return(constant.MakeExpressionQualifiedRead(gen, opKind, names.ToReverseArray())); } else { // A::B return(MakeCachedRead(gen, opKind, constant.IsGlobal, true, Ast.Constant(names.ToReverseArray()))); } } else if (_qualifier != null) { // {expr}::A return(MakeExpressionQualifiedRead(gen, opKind, new[] { Name })); } else { // A // ::A return(MakeCachedRead(gen, opKind, IsGlobal, false, Ast.Constant(Name))); } }
/*!*/ private static string BuildName(string prefix, ConstantVariable/*!*/ constant) { var reversed = new List<string>(); ConstantVariable constantQualifier; while (true) { reversed.Add(constant.Name); constantQualifier = constant.Qualifier as ConstantVariable; if (constantQualifier == null) { break; } constant = constantQualifier; } // A::B // ::A::B // <expr>::A::B if (!constant.IsGlobal) { if (constant.IsBound) { reversed.Add("<object>"); } else if (prefix != null) { reversed.Add(prefix); } } return String.Join("::", Enumerable.Reverse(reversed)); }
protected ModuleDefinition(LexicalScope/*!*/ definedScope, Body/*!*/ body, SourceSpan location) : base(definedScope, body, location) { _qualifiedName = null; }
public virtual void Exit(ConstantVariable/*!*/ node) { }
public virtual bool Enter(ConstantVariable/*!*/ node) { return true; }
/// <summary> /// Gets the fully qualified name (e.g. System.Windows.Forms.Form) /// </summary> public static string GetQualifiedName(ConstantVariable variable) { StringBuilder name = new StringBuilder(); while (variable != null) { name.Insert(0, variable.Name); variable = variable.Qualifier as ConstantVariable; if (variable != null) { name.Insert(0, '.'); } } return name.ToString(); }
public virtual void Exit(ConstantVariable /*!*/ node) { }
public virtual bool Enter(ConstantVariable /*!*/ node) { return(true); }
string GetFullyQualifiedName(ConstantVariable variable) { StringBuilder name = new StringBuilder(); bool firstName = true; while (variable != null) { if (!firstName) { name.Insert(0, '.'); } name.Insert(0, variable.Name); variable = variable.Qualifier as ConstantVariable; firstName = false; } return name.ToString(); }
protected ModuleDefinition(LexicalScope /*!*/ definedScope, Body /*!*/ body, SourceSpan location) : base(definedScope, body, location) { _qualifiedName = null; }