Example #1
0
		/// <summary>
		/// Emits library function that can be inlined.
		/// </summary>
		private PhpTypeCode EmitInlinedFunctionCall(CodeGenerator/*!*/ codeGenerator)
		{
			switch (inlined)
			{
				case InlinedFunction.CreateFunction:
					{
						PhpFunction php_function = (PhpFunction)routine;

						// define builders (not defined earlier as the lambda function it is not in the tables):
						php_function.DefineBuilders();

						// LOAD PhpFunction.DeclareLamda(context,<delegate>);
						codeGenerator.EmitDeclareLamdaFunction(php_function.ArgLessInfo);

						// bake (not baked later as the lambda function it is not in the tables):
						php_function.Bake();

						return PhpTypeCode.String;
					}

				default:
					Debug.Fail("Unimplemented inlined function.");
					return PhpTypeCode.Invalid;
			}
		}