public bool MightNeedLocalsDictionary() { NameExpr nameExpr = target as NameExpr; if (nameExpr == null) { return(false); } if (args.Length == 0) { if (nameExpr.name == LocalsName) { return(true); } if (nameExpr.name == VarsName) { return(true); } if (nameExpr.name == DirName) { return(true); } return(false); } else if (args.Length == 1) { if (nameExpr.name == EvalName) { return(true); } } return(false); }
private static Name makeName(Expr param) { NameExpr ne = param as NameExpr; if (ne == null) { return(EncodeTupleParamName((TupleExpr)param)); } else { return(ne.name); } }
private static void AppendTupleParamNames(StringBuilder sb, TupleExpr param) { for (int i = 0; i < param.items.Length; i++) { NameExpr ne = param.items[i] as NameExpr; if (ne != null) { sb.Append('!'); sb.Append(ne.name.GetString()); } else { // nested tuple AppendTupleParamNames(sb, param.items[i] as TupleExpr); } } }
// NameExpr public override bool Walk(NameExpr node) { ScopeStatement.Binding binding; if (bindings.TryGetValue(node.name, out binding)) { int index = binding.Index * 2; node.defined = bits.Get(index); if (!node.defined) { binding.UninitializedUse(); } if (!bits.Get(index + 1)) { // Found an unbound use of the name => need to initialize to Uninitialized binding.UnassignedUse(); } } return(true); }
public override bool Walk(NameExpr node) { binder.Deleted(node.name); return(false); }
// NameExpr public override bool Walk(NameExpr node) { Reference(node.name); return(true); }
public virtual void PostWalk(NameExpr node) { }
// NameExpr public virtual bool Walk(NameExpr node) { return(false); }
// NameExpr public virtual bool Walk(NameExpr node) { return(true); }
public override bool Walk(NameExpr node) { fc.Define(node.name); return(false); }
public override void PostWalk(NameExpr node) { }