Пример #1
0
        public Expression CreateCallSiteBinder(ResolveContext ec, Arguments args)
        {
            Arguments binder_args = new Arguments(4);

            MemberAccess ns;

            if (ec.Module.PredefinedTypes.IsPlayScriptAotMode)
            {
                ns = new QualifiedAliasMember(QualifiedAliasMember.GlobalAlias, "PlayScript", loc);
            }
            else
            {
                ns = new MemberAccess(new MemberAccess(
                                          new QualifiedAliasMember(QualifiedAliasMember.GlobalAlias, "System", loc), "Linq", loc), "Expressions", loc);
            }

            var flags = ec.HasSet(ResolveContext.Options.CheckedScope) ? CSharpBinderFlags.CheckedContext : 0;

            binder_args.Add(new Argument(new BinderFlags(flags, this)));
            binder_args.Add(new Argument(new MemberAccess(new MemberAccess(ns, "ExpressionType", loc), name, loc)));
            binder_args.Add(new Argument(new TypeOf(ec.CurrentType, loc)));
            binder_args.Add(new Argument(new ImplicitlyTypedArrayCreation(args.CreateDynamicBinderArguments(ec), loc)));

            return(new Invocation(GetBinder("UnaryOperation", loc), binder_args));
        }
Пример #2
0
 public virtual object Visit(QualifiedAliasMember qualifiedAliasMember)
 {
     return(null);
 }
			public override object Visit (QualifiedAliasMember qualifiedAliasMember)
			{
				var result = new MemberType ();
				result.Target = new SimpleType (qualifiedAliasMember.alias, Convert (qualifiedAliasMember.Location));
				result.IsDoubleColon = true;
				var location = LocationsBag.GetLocations (qualifiedAliasMember);
				if (location != null && location.Count > 0)
					result.AddChild (new CSharpTokenNode (Convert (location [0]), Roles.DoubleColon), Roles.DoubleColon);

				result.AddChild (Identifier.Create (qualifiedAliasMember.Name, location != null && location.Count > 1 ? Convert (location [1]) : TextLocation.Empty), Roles.Identifier);
				return  new TypeReferenceExpression () { Type = result };
			}
Пример #4
0
void case_478()
#line 3568 "cs-parser.jay"
{
		var lt1 = (LocatedToken) yyVals[-2+yyTop];
		var lt2 = (LocatedToken) yyVals[-1+yyTop];

		yyVal = new QualifiedAliasMember (lt1.Value, lt2.Value, (int) yyVals[0+yyTop], lt1.Location);
		lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
	  }
Пример #5
0
void case_477()
#line 3560 "cs-parser.jay"
{
		var lt1 = (LocatedToken) yyVals[-2+yyTop];
		var lt2 = (LocatedToken) yyVals[-1+yyTop];

		yyVal = new QualifiedAliasMember (lt1.Value, lt2.Value, (TypeArguments) yyVals[0+yyTop], lt1.Location);
		lbag.AddLocation (yyVal, savedLocation, GetLocation (yyVals[-1+yyTop]));
	  }
Пример #6
0
		public virtual object Visit (QualifiedAliasMember qualifiedAliasMember)
		{
			return null;
		}
Пример #7
0
void case_532()
#line 3832 "cs-parser.jay"
{
		var lt1 = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
		var lt2 = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
		var qam = new QualifiedAliasMember (lt1.Value, lt2.Value, (int) yyVals[0+yyTop], lt1.Location);
		yyVal = qam;
		lbag.AddLocation (qam.TypeArguments, Lexer.GetGenericDimensionLocations ());
		lbag.AddLocation (yyVal, savedLocation, GetLocation (yyVals[-1+yyTop]));
	  }