# Method CompilerEnvironment()->PikeCompiler()->create()

Method create

  `CompilerEnvironment.PikeCompiler CompilerEnvironment.PikeCompiler(`string`|`void` `source`, `CompilationHandler`|`void` `handler`, `int`|`void` `major`, `int`|`void` `minor`, `program`|`void` `target`, `object`|`void` `placeholder`)`

Description

  Create a PikeCompiler object for a source string.

  This function takes a piece of Pike code as a string and initializes a compiler object accordingly.

Parameter `source`

  Source code to compile.

Parameter `handler`

  The optional argument `handler` is used to specify an alternative error handler. If it is not specified the current master object at compile time will be used.

Parameter `major`
Parameter `minor`

  The optional arguments `major` and `minor` are used to tell the compiler to attempt to be compatible with Pike `major`.`minor`.

Parameter `target`

  __empty_program() program to fill in. The virgin program returned by __empty_program() will be modified and returned by compile() on success.

Parameter `placeholder`

  __null_program() placeholder object to fill in. The object will be modified into an instance of the resulting program on successfull compile. Note that lfun::create() in the program will be called without any arguments.

Note

  Note that `source` must contain the complete source for a program. It is not possible to compile a single expression or statement.

  Also note that no preprocessing is performed. To preprocess the program you can use compile_string() or call the preprocessor manually by calling cpp().

Note

  Note that all references to `target` and `placeholder` should removed if compile() failes. On failure the `placeholder` object will be destructed.

See also

  compile_string(), compile_file(), cpp(), master(), CompilationHandler