当前位置: 首页>>代码示例>>C#>>正文


C# Ast.MemberReferenceExpression类代码示例

本文整理汇总了C#中Boo.Lang.Compiler.Ast.MemberReferenceExpression的典型用法代码示例。如果您正苦于以下问题:C# MemberReferenceExpression类的具体用法?C# MemberReferenceExpression怎么用?C# MemberReferenceExpression使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


MemberReferenceExpression类属于Boo.Lang.Compiler.Ast命名空间,在下文中一共展示了MemberReferenceExpression类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: MakeReferenceExpression

		B.ReferenceExpression MakeReferenceExpression(string fullName)
		{
			string[] parts = fullName.Split('.');
			B.ReferenceExpression r = new B.ReferenceExpression(lastLexicalInfo, parts[0]);
			for (int i = 1; i < parts.Length; i++)
				r = new B.MemberReferenceExpression(lastLexicalInfo, r, parts[i]);
			return r;
		}
开发者ID:kingjiang,项目名称:SharpDevelopLite,代码行数:8,代码来源:ConvertVisitorExpressions.cs

示例2: OnMemberReferenceExpression

 public override void OnMemberReferenceExpression(MemberReferenceExpression node)
 {
     Write("MemberReferenceExpression(");
     BeginNode();
     WriteIndented("Target: "); Visit(node.Target); Write(", "); WriteLine();
     WriteIndented("Name: "); WriteString(node.Name);
     EndNode();
 }
开发者ID:stuman08,项目名称:boo,代码行数:8,代码来源:TreePrinterVisitor.cs

示例3: WrapStatementsInBlockIfNeeded

 public override void WrapStatementsInBlockIfNeeded(MemberReferenceExpression node, IUpdateCollector<LexicalInfo> updateCollector)
 {
     if (!this.IsInsideBlock(node))
     {
         Statement statement = BooExtensions.FindRootStatement(node);
         updateCollector.Insert(BooExtensions.SourcePosition(BooExtensions.FindExpressionRoot(statement)), "{ ", node.get_LexicalInfo(), null).InclusiveRange = false;
         updateCollector.Insert(new SourcePosition(statement.get_EndSourceLocation().get_Line(), statement.get_EndSourceLocation().get_Column() + 1), " }", node.get_LexicalInfo(), null);
     }
 }
开发者ID:CarlosHBC,项目名称:UnityDecompiled,代码行数:9,代码来源:UnityScriptLanguageTraits.cs

示例4: OnMemberReferenceExpression

        /// <summary>
        /// Called when we encounters a member reference expression
        /// </summary>
        /// <param name="node">The node.</param>
        public override void OnMemberReferenceExpression(MemberReferenceExpression node)
        {
            if (this.ShouldTransformNodeName(node))
            {
                this.TransformNodeName(node);
            }

            base.OnMemberReferenceExpression(node);
        }
开发者ID:modulexcite,项目名称:Argh,代码行数:13,代码来源:CapitalisationCompilerStep.cs

示例5: FixCondition

		private Expression FixCondition(Expression condition)
		{
			if (IsTryGetParameterInvocation(condition) == false)
				return condition;

			var isNull =
				new MemberReferenceExpression(condition, "_IsIgnoreNullReferencingNotNullObject_");
			return isNull;
		}
开发者ID:rambo-returns,项目名称:MonoRail,代码行数:9,代码来源:FixTryGetParameterConditionalChecks.cs

示例6: OnReferenceExpression

 public override void OnReferenceExpression(ReferenceExpression node) {
     if (node.Name[0] == '_')
     {
         var result = new MemberReferenceExpression(node.LexicalInfo);
         result.Name = node.Name.Substring(1);
         result.Target = instance.CloneNode();
         ReplaceCurrentNode(result);
     }
 }
开发者ID:JulianBirch,项目名称:Solution-Transform,代码行数:9,代码来源:WithMacro.cs

示例7: OnMemberReferenceExpression

		override public void OnMemberReferenceExpression(MemberReferenceExpression node)
		{
			var tern = ProcessTargets(node);
			if (tern != null)
			{
				ReplaceCurrentNode(tern);
				return;
			}
			base.OnMemberReferenceExpression(node);
		}
开发者ID:Rfvgyhn,项目名称:boo,代码行数:10,代码来源:SafeAccessOperator.cs

示例8: OnMemberReferenceExpression

 public override void OnMemberReferenceExpression(MemberReferenceExpression node)
 {
     if (LookingFor(node))
     {
         Found(node);
     }
     else
     {
         base.OnMemberReferenceExpression(node);
     }
 }
开发者ID:paveltimofeev,项目名称:documentation,代码行数:11,代码来源:ReferenceFinder.cs

示例9: OnMemberReferenceExpression

        public override void OnMemberReferenceExpression(MemberReferenceExpression node)
        {
            var name = node.ToString();

            if (name.StartsWith("@"))
            {
                ReplaceWithComponentReference(node, name);
                return;
            }

            base.OnMemberReferenceExpression(node);
        }
开发者ID:oz-systems,项目名称:rhino-commons,代码行数:12,代码来源:TransformUnknownReferences.cs

示例10: CreateReferenceExpression

 public static ReferenceExpression CreateReferenceExpression(string fullname)
 {
     string[] parts = fullname.Split('.');
     ReferenceExpression expression = new ReferenceExpression(parts[0]);
     expression.IsSynthetic = true;
     for (int i=1; i<parts.Length; ++i)
     {
         expression = new MemberReferenceExpression(expression, parts[i]);
         expression.IsSynthetic = true;
     }
     return expression;
 }
开发者ID:w4x,项目名称:boolangstudio,代码行数:12,代码来源:AstUtil.cs

示例11: ExpandImpl

        protected override Statement ExpandImpl(MacroStatement macro){
            if (macro.Arguments.Count == 0)
            {
                Context.Errors.Add(new CompilerError(macro.LexicalInfo,
                                                     "call macro requires at least one reference or string attribute for action name"));
            }
            var basis = new ReferenceExpression("Html");
            var method = new MemberReferenceExpression(basis, "RenderAction");
            var call = new MethodInvocationExpression(method);
            int i = 0;
            var result = new Block();
            foreach (Expression argument in macro.Arguments){
                i++;
                Expression exp = argument;
                if (!(exp is HashLiteralExpression)){
//action and contrller parameters
                    if (!(exp is NullLiteralExpression)){
                        exp = new StringLiteralExpression(argument.ToCodeString());
                    }
                    call.Arguments.Add(exp);
                }
                else{
                    string name = "__rd";
                    result.Add(
                        new DeclarationStatement(
                            new Declaration(name, null),
                            new MethodInvocationExpression(AstUtil.CreateReferenceExpression("RouteValueDictionary"))
                            )
                        );
                    var dict = argument as HashLiteralExpression;
                    foreach (ExpressionPair item in dict.Items){
                        result.Add(
                            new MethodInvocationExpression(
                                AstUtil.CreateReferenceExpression(name + ".Add"),
                                item.First,
                                item.Second
                                )
                            );
                    }
                    if (i == 2){
                        call.Arguments.Add(new NullLiteralExpression());
                    }
                    call.Arguments.Add(AstUtil.CreateReferenceExpression(name));
                }
            }
            result.Add(call);
            return result;
        }
开发者ID:Qorpent,项目名称:comdiv.oldcore,代码行数:48,代码来源:CallMacro.cs

示例12: FixCondition

        private Expression FixCondition(Expression condition){
            if (IsTryGetParameterInvocation(condition) == false){
                return condition;
            }

            string name = ((ReferenceExpression) condition).Name.Substring(1);
            condition = new MethodInvocationExpression(
                new MemberReferenceExpression(new SuperLiteralExpression(), "TryGetParameter"),
                new StringLiteralExpression(name)
                );

            var isNull =
                new MemberReferenceExpression(condition, "_IsIgnoreNullReferencingNotNullObject_");

            return isNull;
        }
开发者ID:Qorpent,项目名称:comdiv.oldcore,代码行数:16,代码来源:FixTryGetParameterConditionalChecks.cs

示例13: LeaveMemberReferenceExpression

    	public override void LeaveMemberReferenceExpression(MemberReferenceExpression node)
    	{
    		var property = node.Entity as IProperty;
    		if (property == null || node.IsTargetOfAssignment())
    			return;

    		var getter = CodeBuilder.CreatePropertyGet(node.Target, property);

    		// preserve duck typing...
    		if (property.IsDuckTyped)
    			ReplaceCurrentNode(
    				CodeBuilder.CreateCast(
    					TypeSystemServices.DuckType, getter));
    		else
    			ReplaceCurrentNode(getter);
    	}
开发者ID:0xb1dd1e,项目名称:boo,代码行数:16,代码来源:ExpandPropertiesAndEvents.cs

示例14: OnMemberReferenceExpression

        public override void OnMemberReferenceExpression(MemberReferenceExpression node)
        {
            ReferenceExpression reference = node.Target as ReferenceExpression;

            if (reference != null && reference.Name.StartsWith("@"))
            {
                _component = reference;
            }
            else
            {
                _component = AstUtil.CreateMethodInvocationExpression(
                    AstUtil.CreateReferenceExpression(typeof(ComponentReference).FullName),
                    node.Target
                    );
            }

            _method = new StringLiteralExpression(node.Name);
            _found = true;
        }
开发者ID:JackWangCUMT,项目名称:rhino-tools,代码行数:19,代码来源:ComponentMethodVisitor.cs

示例15: AddResolvedNamedArgumentToEval

        protected override void AddResolvedNamedArgumentToEval(MethodInvocationExpression eval, ExpressionPair pair, ReferenceExpression instance)
        {
            if (!TypeSystemServices.IsQuackBuiltin(pair.First))
            {
                base.AddResolvedNamedArgumentToEval(eval, pair, instance);
                return;
            }

            MemberReferenceExpression memberRef = new MemberReferenceExpression(
                pair.First.LexicalInfo,
                instance.CloneNode(),
                ((ReferenceExpression)pair.First).Name);
            BindQuack(memberRef);

            eval.Arguments.Add(
                CodeBuilder.CreateAssignment(
                    pair.First.LexicalInfo,
                    memberRef,
                    pair.Second));
        }
开发者ID:Bombadil77,项目名称:boo,代码行数:20,代码来源:ProcessMethodBodiesWithDuckTyping.cs


注:本文中的Boo.Lang.Compiler.Ast.MemberReferenceExpression类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。