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


C# Variant.ChangeSign方法代码示例

本文整理汇总了C#中Kirikiri.Tjs2.Variant.ChangeSign方法的典型用法代码示例。如果您正苦于以下问题:C# Variant.ChangeSign方法的具体用法?C# Variant.ChangeSign怎么用?C# Variant.ChangeSign使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Kirikiri.Tjs2.Variant的用法示例。


在下文中一共展示了Variant.ChangeSign方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: MakeNP1

        /// <exception cref="Kirikiri.Tjs2.VariantException"></exception>
        public virtual ExprNode MakeNP1(int opecode, ExprNode node1)
        {
            // 定数の最适化
            if (node1 != null && node1.GetOpecode() == Token.T_CONSTVAL)
            {
                ExprNode ret = null;
                switch (opecode)
                {
                    case Token.T_EXCRAMATION:
                    {
                        ret = MakeConstValNode(node1.GetValue().GetNotValue());
                        break;
                    }

                    case Token.T_TILDE:
                    {
                        ret = MakeConstValNode(node1.GetValue().GetBitNotValue());
                        break;
                    }

                    case Token.T_SHARP:
                    {
                        Variant val = new Variant(node1.GetValue());
                        CharacterCodeOf(val);
                        ret = MakeConstValNode(val);
                        break;
                    }

                    case Token.T_DOLLAR:
                    {
                        Variant val = new Variant(node1.GetValue());
                        CharacterCodeFrom(val);
                        ret = MakeConstValNode(val);
                        break;
                    }

                    case Token.T_UPLUS:
                    {
                        Variant val = new Variant(node1.GetValue());
                        val.ToNumber();
                        ret = MakeConstValNode(val);
                        break;
                    }

                    case Token.T_UMINUS:
                    {
                        Variant val = new Variant(node1.GetValue());
                        val.ChangeSign();
                        ret = MakeConstValNode(val);
                        break;
                    }

                    case Token.T_INT:
                    {
                        Variant val = new Variant(node1.GetValue());
                        val.ToInteger();
                        ret = MakeConstValNode(val);
                        break;
                    }

                    case Token.T_REAL:
                    {
                        Variant val = new Variant(node1.GetValue());
                        val.ToReal();
                        ret = MakeConstValNode(val);
                        break;
                    }

                    case Token.T_STRING:
                    {
                        Variant val = new Variant(node1.GetValue());
                        val.ToString();
                        ret = MakeConstValNode(val);
                        break;
                    }

                    case Token.T_OCTET:
                    {
                        Variant val = new Variant(node1.GetValue());
                        val.ToOctet();
                        ret = MakeConstValNode(val);
                        break;
                    }
                }
                // swtich
                if (ret != null)
                {
                    node1.Clear();
                    return ret;
                }
            }
            ExprNode node = new ExprNode();
            mNodeToDeleteVector.AddItem(node);
            node.SetOpecode(opecode);
            node.SetPosition(GetLexPos());
            node.Add(node1);
            return node;
        }
开发者ID:fantasydr,项目名称:krkr-cs,代码行数:99,代码来源:InterCodeGenerator.cs


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