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


C# ITree.GetChild方法代码示例

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


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

示例1: Assign

        public void Assign(ITree node)
        {
            string var_name = node.GetChild(0).ToString();
            ITree node_to_solve = node.GetChild(1);

            _varStorage[var_name].Assign(Solve(node_to_solve));
        }
开发者ID:greenflame,项目名称:vsu_compiler,代码行数:7,代码来源:Interpreter.cs

示例2: WalkInit

        private static MethodTree WalkInit(ITree initNode)
        {
            Debug.Assert(initNode.Type == (int)JavaNodeType.FOR_INIT);

            if (initNode.ChildCount == 0)
            {
                return null;
            }

            var child = initNode.GetChild(0);

            var exprs = new MethodTree();
            if (child.Type == (int)JavaNodeType.VAR_DECLARATION)
            {
                new VarDeclarationTranslator(child).Walk().ForEach(exprs.Add);
            }
            else
            {

                for (var i = 0; i < initNode.ChildCount; i++)
                {
                    exprs.Add(new ExpressionTranslator(initNode.GetChild(i)).Walk());
                }

            }
            return exprs;
        }
开发者ID:will14smith,项目名称:JavaCompiler,代码行数:27,代码来源:ForTranslator.cs

示例3: Parse

 public static Statement Parse(ITree tree)
 {
     if (tree.Text == "FUNCCALL")
     {
         Expression exp = tree.ParseExpr();
         return new ExprStatement(exp);
     }
     else if (tree.Text == "IF")
     {
         Expression cond = tree.GetChild("IF_CONDITION").GetOnlyChild().ParseExpr();
         ITree actionTree = tree.GetChild("IF_ACTION");
         Statement action = actionTree.ParseStmtList();
         return new IfStatement(cond, action);
     }
     else if (tree.Text == "ASSIGNMENT")
     {
         Expression variable = tree.GetChild(0).ParseExpr();
         Expression value = tree.GetChild(1).ParseExpr();
         Statement assignment = new AssignmentStatement(variable, value);
         return assignment;
     }
     else if (tree.Text == "Return")
     {
         Expression exp = tree.GetOnlyChild().ParseExpr();
         return new ReturnStatement(exp);
     }
     else
     {
         throw new InvalidGameException(tree.FileCoords() + " - Ivalid statement: " + tree.Text);
     }
 }
开发者ID:hgabor,项目名称:boardgame,代码行数:31,代码来源:Statement.cs

示例4: GetName

        private static string GetName(ITree tree)
        {
            if((JavaNodeType)tree.Type == JavaNodeType.DOT)
            {
                return GetName(tree.GetChild(0)) + "." + GetName(tree.GetChild(1));
            }

            return tree.Text;
        }
开发者ID:will14smith,项目名称:JavaCompiler,代码行数:9,代码来源:ProgramTranslator.cs

示例5: ConstantExpression

		public ConstantExpression(ITree tree)
		{
			var val = tree.GetChild(0).Text;
			var node = tree.GetChild(1);
			if (val.StartsWith("#"))
			{
				Value = new StyleColor(val);
			}
			else
			{
				Value = new StyleNumber(Convert.ToDecimal(val), node != null ? node.Text : "");
			}
		}
开发者ID:erikvanbrakel,项目名称:less.net,代码行数:13,代码来源:ConstantExpression.cs

示例6: ParseVariable

		private StyleVariable ParseVariable(ITree tree)
		{
			var name = tree.GetChild(0).Text;
			var variable = new StyleVariable { Name = name };
			switch (tree.GetChild(1).Text)
			{
				case "LITERAL":
					variable.Value = new LiteralExpression(tree.GetChild(1));
					break;
				default:
					variable.Value = ParseExpression(tree.GetChild(1).GetChild(0));
					break;
			}
			return variable;
		}
开发者ID:erikvanbrakel,项目名称:less.net,代码行数:15,代码来源:LessDocumentLoader.cs

示例7: ConvertNode

        private static Method.Parameter ConvertNode(ITree node)
        {
            var parameter = new Method.Parameter();

            // modifiers
            parameter.Modifiers.AddRange(new LocalModifierListTranslator(node.GetChild(0)).Walk());

            // type
            parameter.Type = new TypeTranslator(node.GetChild(1)).Walk();

            // name
            parameter.Name = new IdentifierTranslator(node.GetChild(2)).Walk();

            return parameter;
        }
开发者ID:will14smith,项目名称:JavaCompiler,代码行数:15,代码来源:MethodParameterTranslator.cs

示例8: getStringSubTree

        private static string getStringSubTree(ITree node, string indent, bool root)
        {
            if (node == null)
                return "";

            string result = indent;
            if (!root)
            {
                if (node.ChildIndex < node.Parent.ChildCount - 1)
                {
                    result += MiddleNodeChar + " ";
                    indent += ConnectChar + " ";
                }
                else
                {
                    result += LastNodeChar + " ";
                    indent += "  ";
                }
            }
            result += node + "\n";
            for (int i = 0; i < node.ChildCount; i++)
                result += getStringSubTree(node.GetChild(i), indent, false);

            return result;
        }
开发者ID:tony-karandeev,项目名称:SimpleC,代码行数:25,代码来源:AstNodePrinter.cs

示例9: CreateFromAntlrAst

 public static new SetType CreateFromAntlrAst(ITree tree)
 {
     SetType ret = DefaultBackend.Instance.Factory.CreateSetType();
     if (tree.ChildCount>0)
         SequenceOrSetType.CreateFromAntlrAst(ret, tree.GetChild(0));
     return ret;
 }
开发者ID:kia92798,项目名称:tinyasn1,代码行数:7,代码来源:Set.cs

示例10: Block

 public void Block(ITree node)
 {
     for (int i = 0; i < node.ChildCount; i++)
     {
         Execute(node.GetChild(i));
     }
 }
开发者ID:greenflame,项目名称:vsu_compiler,代码行数:7,代码来源:Interpreter.cs

示例11: LiteralExpression

		public LiteralExpression(ITree tree)
		{
			for(int i = 0; i<tree.ChildCount;i++)
			{
				value += tree.GetChild(i).Text;
			}
		}
开发者ID:erikvanbrakel,项目名称:less.net,代码行数:7,代码来源:StyleExpression.cs

示例12: CreateFromAntlrAst

        //^(SEQUENCE_OF_TYPE (SIMPLIFIED_SIZE_CONSTRAINT $sz)? $gen? identifier? type)
        public static new SequenceOfType CreateFromAntlrAst(ITree tree)
        {
            SequenceOfType ret = DefaultBackend.Instance.Factory.CreateSequenceOfType();
            for (int i = 0; i < tree.ChildCount; i++)
            {
                ITree child = tree.GetChild(i);
                switch (child.Type)
                {
                    case asn1Parser.SIMPLIFIED_SIZE_CONSTRAINT:
                    case asn1Parser.CONSTRAINT:
                        ret.m_AntlrConstraints.Add(child);
                        break;
                    case asn1Parser.LID:
                        ret.m_xmlVarName = child.Text;
                        break;
                    case asn1Parser.TYPE_DEF:
                        ret.m_type = Asn1Type.CreateFromAntlrAst(child);
                        break;
                    default:
                        throw new Exception("Unkown child: " + child.Text + " for node: " + tree.Text);
                }
            }

            return ret;
        }
开发者ID:kia92798,项目名称:tinyasn1,代码行数:26,代码来源:SequenceOf.cs

示例13: ExecuteNode

        private double ExecuteNode(ITree node)
        {
#if false
            switch (node.Type)
            {
                case AstNodeType.INTEGER:
                    return ((NumAstNode)node).Value;

#if (false)
                case AstNodeType.VAR:
                    VarDescr varDescr = ((VarDefAstNode)node).VarDescr;
                    if (varDescr.Initialized)
                        return varDescr.Value;
                    else
                        throw new ParserBaseException(string.Format("Значение {0} не определено", varDescr.Name));
#endif

                case AstNodeType.ADD:
                    return ExecuteNode(node.GetChild(0)) + ExecuteNode(node.GetChild(1));

                case AstNodeType.SUB:
                    return ExecuteNode(node.GetChild(0)) - ExecuteNode(node.GetChild(1));

                case AstNodeType.MUL:
                    return ExecuteNode(node.GetChild(0)) * ExecuteNode(node.GetChild(1));

                case AstNodeType.DIV:
                    return ExecuteNode(node.GetChild(0)) * ExecuteNode(node.GetChild(1));

                case AstNodeType.ASSIGN:
                    break;
                
                case AstNodeType.FUNC_CALL:
					Console.WriteLine(ExecuteNode(node.GetChild(0)));
                    break;

                case AstNodeType.PROGRAM:
                    for (int i = 0; i < node.ChildCount; i++)
                        ExecuteNode(node.GetChild(i));
                    break;

                default:
                    throw new IntepreterException("Неизвестный тип узла AST-дерева");
            }
#endif
            return 0;
        }
开发者ID:chursin-andrey,项目名称:CCompiler,代码行数:47,代码来源:SemanticChecker.cs

示例14: WalkCond

        private static TranslateNode WalkCond(ITree condNode)
        {
            Debug.Assert(condNode.Type == (int)JavaNodeType.FOR_CONDITION);

            return condNode.ChildCount == 1
                ? new TranslationTranslator(condNode.GetChild(0)).Walk()
                : null;
        }
开发者ID:will14smith,项目名称:JavaCompiler,代码行数:8,代码来源:ForTranslator.cs

示例15: LanguageString

        public LanguageString(ITree lidString)
        {
            if (lidString.Type != BlaiseParser.LID_STRING)
            {
                //TODO
                throw new InvalidOperationException("Parsed tree node was not a multilingual string");
            }

            if (lidString.ChildCount > 0)
            {
                this.value = lidString.GetChild(0).Text.Trim(trim);
                if (lidString.ChildCount > 1)
                {
                    this.language = lidString.GetChild(1).Text;
                }
            }
        }
开发者ID:Colectica,项目名称:MetadataConverters,代码行数:17,代码来源:LanguageString.cs


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