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


C# Function.AddChild方法代码示例

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


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

示例1: funcDef

	public Function funcDef()
	{
		EnterRule_funcDef();
		EnterRule("funcDef", 10);
		TraceIn("funcDef", 10);
		Function funcDecl = default(Function);


		IToken identifier15 = default(IToken);
		List<Variable> parameterList16 = default(List<Variable>);
		IType type17 = default(IType);
		List<Variable> variableDef18 = default(List<Variable>);
		Body body19 = default(Body);


		    		funcDecl = new Function();
		    	
		try { DebugEnterRule(GrammarFileName, "funcDef");
		DebugLocation(182, 5);
		try
		{
			// D:\\projects\\repository\\ifmo\\Компиляторы\\PascalCompiler\\PascalCompiler\\Grammar\\Pascal.g:187:6: ( FUNCTION identifier ( LPAREN parameterList RPAREN )? COLON type SEMI ( variableDef )? body SEMI )
			DebugEnterAlt(1);
			// D:\\projects\\repository\\ifmo\\Компиляторы\\PascalCompiler\\PascalCompiler\\Grammar\\Pascal.g:187:8: FUNCTION identifier ( LPAREN parameterList RPAREN )? COLON type SEMI ( variableDef )? body SEMI
			{
			DebugLocation(187, 8);
			Match(input,FUNCTION,Follow._FUNCTION_in_funcDef565); 
			DebugLocation(188, 7);
			PushFollow(Follow._identifier_in_funcDef573);
			identifier15=identifier();
			PopFollow();

			DebugLocation(189, 7);

			    			funcDecl.SetName(identifier15);
			    		
			DebugLocation(192, 7);
			// D:\\projects\\repository\\ifmo\\Компиляторы\\PascalCompiler\\PascalCompiler\\Grammar\\Pascal.g:192:7: ( LPAREN parameterList RPAREN )?
			int alt8=2;
			try { DebugEnterSubRule(8);
			try { DebugEnterDecision(8, false);
			int LA8_0 = input.LA(1);

			if ((LA8_0==LPAREN))
			{
				alt8 = 1;
			}
			} finally { DebugExitDecision(8); }
			switch (alt8)
			{
			case 1:
				DebugEnterAlt(1);
				// D:\\projects\\repository\\ifmo\\Компиляторы\\PascalCompiler\\PascalCompiler\\Grammar\\Pascal.g:192:9: LPAREN parameterList RPAREN
				{
				DebugLocation(192, 9);
				Match(input,LPAREN,Follow._LPAREN_in_funcDef591); 
				DebugLocation(193, 7);
				PushFollow(Follow._parameterList_in_funcDef600);
				parameterList16=parameterList();
				PopFollow();

				DebugLocation(194, 7);

				    			foreach(var pr in parameterList16)
				    			{
				    				funcDecl.AddChild(pr);
				    			}
				    		
				DebugLocation(200, 7);
				Match(input,RPAREN,Follow._RPAREN_in_funcDef616); 

				}
				break;

			}
			} finally { DebugExitSubRule(8); }

			DebugLocation(200, 17);
			Match(input,COLON,Follow._COLON_in_funcDef621); 
			DebugLocation(201, 7);
			PushFollow(Follow._type_in_funcDef629);
			type17=type();
			PopFollow();

			DebugLocation(202, 7);

			    			funcDecl.SetReturnType(type17);	
			    		
			DebugLocation(205, 7);
			Match(input,SEMI,Follow._SEMI_in_funcDef645); 
			DebugLocation(206, 7);
			// D:\\projects\\repository\\ifmo\\Компиляторы\\PascalCompiler\\PascalCompiler\\Grammar\\Pascal.g:206:7: ( variableDef )?
			int alt9=2;
			try { DebugEnterSubRule(9);
			try { DebugEnterDecision(9, false);
			int LA9_0 = input.LA(1);

			if ((LA9_0==VAR))
			{
				alt9 = 1;
//.........这里部分代码省略.........
开发者ID:BooMWax,项目名称:ifmo,代码行数:101,代码来源:PascalParser.cs


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