Files
harbour-core/harbour/doc/en/hvm.txt
2000-03-07 17:50:36 +00:00

367 lines
9.0 KiB
Plaintext

/*
* $Id$
*/
/*
* The following parts are Copyright of the individual authors.
* www - http://www.harbour-project.org
*
* Copyright 1999 Chen Kedem <niki@actcom.co.il>
* Documentation for: CLIPINIT(), __SETHELPK()
*
* Copyright 1999 Ryszard Glab <rglab@imid.med.pl>
* Documentation for: DO()
*
* See doc/license.txt for licensing terms.
*
*/
/* $DOC$
* $FUNCNAME$
* PROCNAME()
* $CATEGORY$
* Misc
* $ONELINER$
* Gets the name of the current function on the stack
* $SYNTAX$
* PROCNAME( <nLevel> ) --> <cProcName>
* $ARGUMENTS$
* <nLevel> is the function level required.
* $RETURNS$
* Return the name of the function that it is being executed.
* $DESCRIPTION$
* This function look at the top of the stack and gets the current
* executed function if no arguments are passed. Otherwise it returns
* the name of the function or procedure at <nLevel>.
* $EXAMPLES$
* See Test
* $TESTS$
* This test will show the functions and procedures in stack
* before executing it.
* function Test()
* LOCAL n := 1
* while !Empty( ProcName( n ) )
* ? ProcName( n++ )
* end do
* return nil
* $STATUS$
* R
* $COMPLIANCE$
* PROCNAME() is fully CA-Clipper compliant.
* $SEEALSO$
* PROCLINE(),PROCFILE()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* PROCLINE()
* $CATEGORY$
* Misc
* $ONELINER$
* Gets the line number of the current function on the stack
* $SYNTAX$
* PROCLINE( <nLevel> ) --> <nLine>
* $ARGUMENTS$
* <nLevel> is the function level required.
* $RETURNS$
* Return the line number of the function that it is being executed.
* $DESCRIPTION$
* This function look at the top of the stack and gets the current
* line number of executed function if no arguments are passed.
* Otherwise it returns the line number of the function or procedure
* at <nLevel>.
* $EXAMPLES$
* See Test
* $TESTS$
* function Test()
* ? ProcLine( 0 )
* ? ProcName( 2 )
* return nil
* $STATUS$
* R
* $COMPLIANCE$
* PROCLINE() is fully CA-Clipper compliant.
* $SEEALSO$
* PROCNAME(),PROCFILE()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* PROCFILE()
* $CATEGORY$
* Misc
* $ONELINER$
* This function allways returns an empty string.
* $SYNTAX$
* PROCFILE( <xExp> ) --> <cEmptyString>
* $ARGUMENTS$
* <xExp> is any valid type.
* $RETURNS$
* Return and empty string
* $DESCRIPTION$
* This function is added to the RTL for full compatibility. It allways
* returns an empty string.
* $EXAMPLES$
* ? ProcFile()
* $TESTS$
* function Test()
* ? ProcFile()
* ? ProcFile( NIL )
* ? ProcFile( 2 )
* return nil
* $STATUS$
* R
* $COMPLIANCE$
* PROCFILE() is fully CA-Clipper compliant.
* $SEEALSO$
* PROCNAME(),PROCLINE()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* HB_PVALUE()
* $CATEGORY$
* Parameter Checks
* $ONELINER$
* Retrieves the value of an argument.
* $SYNTAX$
* HB_PVALUE( <nArg> ) --> <xExp>
* $ARGUMENTS$
* A number that indicates the argument to check.
* $RETURNS$
* Returns the value stored by an argument.
* $DESCRIPTION$
* This function is useful to check the value stored in an argument.
* $EXAMPLES$
* See Test
* $TESTS$
* function Test( nValue, cString )
* if PCount() == 2
* ? hb_PValue( 1 ), nValue
* ? hb_PValue( 2 ), cString
* endif
* return nil
* $STATUS$
* R
* $COMPLIANCE$
* HB_PVALUE() is a new function and hence not CA-Clipper compliant.
* $SEEALSO$
* PCOUNT()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* PCOUNT()
* $CATEGORY$
* Parameter Checks
* $ONELINER$
* Retrieves the number of arguments passed to a function.
* $SYNTAX$
* PCOUNT() --> <nArgs>
* $ARGUMENTS$
* None
* $RETURNS$
* Returns a number that indicates the number of arguments
* passed to a function or procedure.
* $DESCRIPTION$
* This function is useful to check if a function or procedure
* has received the required number of arguments.
* $EXAMPLES$
* See Test
* $TESTS$
* function Test( xExp )
* if PCount() == 0
* ? "This function needs a parameter"
* else
* ? xExp
* endif
* return nil
* $STATUS$
* R
* $COMPLIANCE$
* PCOUNT() is fully CA-Clipper compliant.
* $SEEALSO$
* HB_PVALUE()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* __QUIT()
* $CATEGORY$
* Events
* $ONELINER$
* Terminates an application.
* $SYNTAX$
* __QUIT() --> NIL
* $ARGUMENTS$
* None
* $RETURNS$
* NIL
* $DESCRIPTION$
* This function terminates the current application and returns
* to the system.
* $EXAMPLES$
* See Test
* $TESTS$
* function EndApp( lYesNo )
* if lYesNo
* __Quit()
* endif
* return nil
* $STATUS$
* R
* $COMPLIANCE$
* __QUIT() is fully CA-Clipper compliant.
* $SEEALSO$
* QUIT
* $END$
*/
/* $DOC$
* $FUNCNAME$
* CLIPINIT()
* $CATEGORY$
* Internal
* $ONELINER$
* Initialize various Harbour sub-systems
* $SYNTAX$
* CLIPINIT() --> NIL
* $ARGUMENTS$
* none.
* $RETURNS$
* CLIPINIT() always return NIL.
* $DESCRIPTION$
* CLIPINIT() is one of the pre-defined INIT PROCEDURE and is executed
* at program startup. It declare an empty MEMVAR PUBLIC array called
* GetList that is going to be used by the Get system, It activate the
* default error handler, and (at least for the moment) call the
* function that set the default help key.
* $STATUS$
* R
* $COMPLIANCE$
* It is said that CLIPINIT() should not call that function that set
* the default help key since CA-Clipper do it in some other place.
* $PLATFORMS$
* $FILES$
* $SEEALSO$
* INIT PROCEDURE
* $END$
*/
/* $DOC$
* $FUNCNAME$
* __SetHelpK()
* $CATEGORY$
* Internal
* $ONELINER$
* Set F1 as the default help key
* $SYNTAX$
* __SetHelpK() --> NIL
* $ARGUMENTS$
* none.
* $RETURNS$
* __SetHelpK() always return NIL.
* $DESCRIPTION$
* Set F1 to execute a function called HELP if such a function is
* linked into the program.
* $STATUS$
* R
* $COMPLIANCE$
* __SetHelpK() works exactly like CA-Clipper's __SetHelpK()
* $SEEALSO$
* __XHelp(),SET KEY,SETKEY()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* BREAK()
* $CATEGORY$
* Error recovery
* $ONELINER$
* Exits from a BEGIN SEQUENCE block
* $SYNTAX$
* BREAK( <xExp> ) --> NIL
* $ARGUMENTS$
* <xExp> is any valid expression. It is always required.
* If do not want to pass any argument, just use NIL.
* $RETURNS$
* NIL
* $DESCRIPTION$
* This function passes control to the RECOVER statement in a
* BEGIN SEQUENCE block.
* $EXAMPLES$
* Break( NIL )
* $STATUS$
* R
* $COMPLIANCE$
* BREAK() is fully CA-Clipper compliant.
* $SEEALSO$
* BEGIN SEQUENCE
* $END$
*/
/* $DOC$
* $FUNCNAME$
* DO()
* $CATEGORY$
* Utility
* $ONELINER$
* Calls a procedure or a function
* $SYNTAX$
* DO( <xFuncProc> [, <xArguments...>] )
* $ARGUMENTS$
* <xFuncProc> = Either a string with a function/procedure name to be called
* or a codeblock to evaluate
* <xArguments> = arguments passed to a called function/procedure or to
* a codeblock
* $RETURNS$
* A value that was returned from called function
* $DESCRIPTION$
* This function can be called either by the harbour compiler or by user.
* The compiler always passes the item of IT_SYMBOL type that stores the
* name of procedure specified in DO <proc> WITH ... statement.
* If called procedure/function doesn't exist then the runtime error
* is generated.
* This function can be used as replacement of macro operator.
* It is also used internally to implement DO <proc> WITH <args...>
* In this case <xFuncProc> is of type HB_SYMB
* $EXAMPLES$
* cbCode ={|x| MyFunc( x )}
* DO( cbCode, 1 )
*
* cFunction := "MyFunc"
* xRetVal :=DO( cFunction, 2 )
*
* Old style (slower):
* DO &cFunction WITH 3
*
* $END$
*/
/* $DOC$
* $FUNCNAME$
* __VMVARLGET()
* $CATEGORY$
* Variable management
* $ONELINER$
* Retrive a local variable from a procedure level
* $SYNTAX$
* __VMVARLGET( <nProcLevel>, <nLocal> )
* $ARGUMENTS$
* <nProcLevel> Is the procedure level, same as used in ProcName()
* and ProcLine(), from which a local variable containts is going to
* be retrieved.
* <nLocal> Is the index of the local variable to retrieve.
* $RETURNS$
* The containts of a specific local variable
* $DESCRIPTION$
* This function is used from the debugger
* $END$
*/