• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C# Ast.Expression类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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

示例1: IsLogicalCondition

 public static bool IsLogicalCondition(Expression node)
 {
     Node condition = node;
     while (IsLogicalExpression(condition.ParentNode))
         condition = condition.ParentNode;
     return IsConditionOfConditionalStatement(condition);
 }
开发者ID:neonux,项目名称:boo,代码行数:7,代码来源:InjectImplicitBooleanConversions.cs


示例2: ComparisonFor

 public static Expression ComparisonFor(Expression local, IEnumerable<Expression> expressions)
 {
     BinaryExpression expression;
     IEnumerator<Expression> enumerator = expressions.GetEnumerator();
     if (!enumerator.MoveNext())
     {
         throw new AssertionFailedException("e.MoveNext()");
     }
     BinaryExpression expression1 = expression = new BinaryExpression(LexicalInfo.Empty);
     expression.set_Operator(11);
     expression.set_Left(Expression.Lift(local));
     expression.set_Right(Expression.Lift(enumerator.Current));
     Expression expression2 = expression;
     while (enumerator.MoveNext())
     {
         BinaryExpression expression3;
         BinaryExpression expression4;
         BinaryExpression expression11 = expression4 = new BinaryExpression(LexicalInfo.Empty);
         expression4.set_Operator(0x1c);
         expression4.set_Left(Expression.Lift(expression2));
         BinaryExpression expression12 = expression3 = new BinaryExpression(LexicalInfo.Empty);
         expression3.set_Operator(11);
         expression3.set_Left(Expression.Lift(local));
         expression3.set_Right(Expression.Lift(enumerator.Current));
         expression4.set_Right(expression3);
         expression2 = expression4;
     }
     return expression2;
 }
开发者ID:CarlosHBC,项目名称:UnityDecompiled,代码行数:29,代码来源:SwitchMacroModule.cs


示例3: Slice

 public Slice(LexicalInfo lexicalInfo, Expression begin, Expression end, Expression step)
     : base(lexicalInfo)
 {
     this.Begin = begin;
     this.End = end;
     this.Step = step;
 }
开发者ID:w4x,项目名称:boolangstudio,代码行数:7,代码来源:Slice.cs


示例4: ExplicitBooleanContext

        private Expression ExplicitBooleanContext(Expression expression)
        {
            var type = GetExpressionType(expression);
            if (type == TypeSystemServices.BoolType)
            {
            return expression;
            }

            // happening
            //Trace.Assert(!TypeSystemServices.IsError(expression), "shouldn't have error boolean expression.");

            if (TypeSystemServices.IsNumber(type) || type.IsEnum)
            {
            return CodeBuilder.CreateBoundBinaryExpression(
                TypeSystemServices.BoolType,
                BinaryOperatorType.Equality,
                expression,
                CodeBuilder.CreateIntegerLiteral(0));
            }
            else if (TypeSystemServices.IsReferenceType(type))
            {
            return CodeBuilder.CreateBoundBinaryExpression(
                TypeSystemServices.BoolType,
                BinaryOperatorType.Equality,
                expression,
                CodeBuilder.CreateNullLiteral());
            }

            return expression;
        }
开发者ID:jagt,项目名称:us2cs,代码行数:30,代码来源:InjectExplicitBooleanConversion.cs


示例5: BinaryExpression

 public BinaryExpression(LexicalInfo lexicalInfoProvider, BinaryOperatorType operator_, Expression left, Expression right)
     : base(lexicalInfoProvider)
 {
     this.Operator = operator_;
     this.Left = left;
     this.Right = right;
 }
开发者ID:w4x,项目名称:boolangstudio,代码行数:7,代码来源:BinaryExpression.cs


示例6: PropagateChanges

 public override void PropagateChanges(MethodInvocationExpression eval, List chain)
 {
     ExpressionCollection expressions = new ExpressionCollection();
     foreach (object local1 in chain.Reversed)
     {
         if (!(local1 is ProcessAssignmentsToSpecialMembers.ChainItem))
         {
         }
         ProcessAssignmentsToSpecialMembers.ChainItem item = (ProcessAssignmentsToSpecialMembers.ChainItem) RuntimeServices.Coerce(local1, typeof(ProcessAssignmentsToSpecialMembers.ChainItem));
         if (item.Container is MethodInvocationExpression)
         {
             break;
         }
         if (item.Container is SlicingExpression)
         {
             SlicingExpression expression = item.Container;
             Expression[] expressionArray1 = new Expression[] { expression.get_Target().CloneNode(), expression.get_Indices().get_Item(0).get_Begin().CloneNode(), this.get_CodeBuilder().CreateReference(item.Local) };
             expressions.Add(this.CreateConstructorInvocation(this._sliceValueTypeChangeConstructor, expressionArray1));
             break;
         }
         MemberReferenceExpression container = item.Container;
         Expression[] args = new Expression[] { container.get_Target().CloneNode(), this.get_CodeBuilder().CreateStringLiteral(container.get_Name()), this.get_CodeBuilder().CreateReference(item.Local) };
         expressions.Add(this.CreateConstructorInvocation(this._valueTypeChangeConstructor, args));
     }
     MethodInvocationExpression expression3 = this.get_CodeBuilder().CreateMethodInvocation(this._propagateChanges);
     IArrayType type = this._valueTypeChangeType.MakeArrayType(1);
     expression3.get_Arguments().Add(this.get_CodeBuilder().CreateArray(type, expressions));
     eval.get_Arguments().Add(expression3);
 }
开发者ID:CarlosHBC,项目名称:UnityDecompiled,代码行数:29,代码来源:ProcessAssignmentToDuckMembers.cs


示例7: IfStatement

 public IfStatement(LexicalInfo token, Expression condition, Block trueBlock, Block falseBlock)
     : base(token)
 {
     this.Condition = condition;
     this.TrueBlock = trueBlock;
     this.FalseBlock = falseBlock;
 }
开发者ID:w4x,项目名称:boolangstudio,代码行数:7,代码来源:IfStatement.cs


示例8: Reify

 public Expression Reify(Expression node)
 {
     if (ShouldReify())
     {
         RunExpansionIterations();
     }
     return node;
 }
开发者ID:boo-lang,项目名称:boo,代码行数:8,代码来源:MacroAndAttributeExpansion.cs


示例9: IsTryGetParameterInvocation

        private static bool IsTryGetParameterInvocation(Expression condition)
        {
            var expression = condition as ReferenceExpression;
            if (expression == null)
                return false;

            return expression.Name.StartsWith("?");
        }
开发者ID:JonKruger,项目名称:MvcContrib,代码行数:8,代码来源:FixTryGetParameterConditionalChecks.cs


示例10: CreateMethodInvocationExpression

 public static MethodInvocationExpression CreateMethodInvocationExpression(LexicalInfo li, Expression target, Expression arg)
 {
     MethodInvocationExpression mie = new MethodInvocationExpression(li);
     mie.Target = (Expression)target.Clone();
     mie.Arguments.Add((Expression)arg.Clone());
     mie.IsSynthetic = true;
     return mie;
 }
开发者ID:w4x,项目名称:boolangstudio,代码行数:8,代码来源:AstUtil.cs


示例11: 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


示例12: IsSpecialMemberTarget

		protected override bool IsSpecialMemberTarget(Expression container)
		{
			if (container.NodeType == NodeType.UnaryExpression)
			{
				UnaryExpression ue = container as UnaryExpression;
				if (ue.Operator == UnaryOperatorType.Indirection)
					return false; //indirected value type, no need to process it specially
			}
			return null != container.ExpressionType && container.ExpressionType.IsValueType;
		}
开发者ID:0xb1dd1e,项目名称:boo,代码行数:10,代码来源:ProcessAssignmentsToValueTypeMembers.cs


示例13: when

		public static Expression when(Expression expression)
		{
			BlockExpression right = new BlockExpression();
			right.Body.Add(new ReturnStatement(expression));
			return new BinaryExpression(
				BinaryOperatorType.Assign,
				new ReferenceExpression("condition"),
				right
			);
		}
开发者ID:JackWangCUMT,项目名称:rhino-dsl,代码行数:10,代码来源:BaseScheduler.cs


示例14: IsTryGetParameterInvocation

		private static bool IsTryGetParameterInvocation(Expression condition)
		{
			var mie = condition as MethodInvocationExpression;
			if (mie == null)
				return false;
			var expression = mie.Target as ReferenceExpression;
			if (expression == null)
				return false;
			return expression.Name == "TryGetParameter";
		}
开发者ID:rambo-returns,项目名称:MonoRail,代码行数:10,代码来源:FixTryGetParameterConditionalChecks.cs


示例15: when

		public static Expression when(Expression expression, Expression action)
		{
			BlockExpression condition = new BlockExpression();
			condition.Body.Add(new ReturnStatement(expression));
			return new MethodInvocationExpression(
				new ReferenceExpression("When"),
				condition,
				action
			);
		}
开发者ID:JackWangCUMT,项目名称:rhino-dsl,代码行数:10,代码来源:BaseOrderActionsDSL.cs


示例16: RegisterExtension

        protected static void RegisterExtension(MacroStatement macro, Expression extension)
        {
            var extenstions = macro[ExtensionsKey] as List<Expression>;
            if (extenstions == null)
            {
                extenstions = new List<Expression>();
                macro[ExtensionsKey] = extenstions;
            }

            extenstions.Add(extension);
        }
开发者ID:oz-systems,项目名称:rhino-commons,代码行数:11,代码来源:AbstractBinsorMacro.cs


示例17: ParameterNameFrom

		private static string ParameterNameFrom(Expression target)
		{
			switch (target.NodeType)
			{
				case NodeType.ReferenceExpression:
					return ((ReferenceExpression) target).Name;
				case NodeType.SelfLiteralExpression:
					return "self";
			}
			throw new ArgumentException(target.ToCodeString());
		}
开发者ID:0xb1dd1e,项目名称:boo,代码行数:11,代码来源:ParameterDeclaration.cs


示例18: Lift

		public static ParameterDeclaration Lift(Expression e)
		{
			if (e == null) return null;
			switch (e.NodeType)
			{
				case NodeType.TryCastExpression:
					return Lift((TryCastExpression)e);
				case NodeType.ReferenceExpression:
					return Lift((ReferenceExpression)e);
			}
			throw new NotImplementedException(e.ToCodeString());
		}
开发者ID:0xb1dd1e,项目名称:boo,代码行数:12,代码来源:ParameterDeclaration.cs


示例19: when

 public static Statement when(Expression expression)
 {
     var body = new Block(expression.LexicalInfo);
     body.Add(new ReturnStatement(expression));
     var result = new BlockExpression(body);
     result.Parameters.Add(
         new ParameterDeclaration("order",
                                  CurrentContext.CodeBuilder.CreateTypeReference(typeof(Order))));
     result.Parameters.Add(
         new ParameterDeclaration("customer",
                                  CurrentContext.CodeBuilder.CreateTypeReference(typeof(Customer))));
     return new ReturnStatement(result);
 }
开发者ID:JackWangCUMT,项目名称:rhino-tools,代码行数:13,代码来源:GlobalMethods.cs


示例20: IsCompoundAssignment

        public static bool IsCompoundAssignment(Expression expression,
												out ArrayLiteralExpression assignments)
        {
            assignments = expression as ArrayLiteralExpression;

            if (assignments != null)
            {
                BinaryExpression assignment;
                return (assignments.Items.Count > 1 &&
                        IsAssignment(assignments.Items[1], out assignment));
            }

            return false;
        }
开发者ID:oz-systems,项目名称:rhino-commons,代码行数:14,代码来源:MacroHelper.cs



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# Ast.ExpressionCollection类代码示例发布时间:2022-05-24
下一篇:
C# Ast.Event类代码示例发布时间:2022-05-24
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap