Show/Hide Toolbars

XSharp

This dialect shares the features of "All Non Core Dialects"

The compiler and runtime have the following "special" behavior when compiling for the "FoxPro" dialect.

Compiler

Allows 4 letter abbreviations of some older keywords

Allows "&&" as same line comment characters, just like "//"

Allows the DOT ('.') operator to call Instance methods

The '@' operator is only used to pass variables by reference.

Allows ENDFOR instead of NEXT and FOR EACH instead of FOREACH

The '=' operator will NOT generate a warning when used as assignment operator

Adds several keywords such as THIS (as alias for SELF)

Adds support for CursorName.FieldName syntax

Adds support for M.VariableName syntax

Adds the DIMENSION statement syntax

Adds the LPARAMETERS statement

Adds the TEXT .. ENDTEXT statement

Adds the \\ and \\\ statement

Adds the "= <Expression>" command

Adds the FoxPro specific DEFINE CLASS syntax to define classes, including the use of FUNCTION and PROCEDURE to define methods inside a class and the use of the _ACCESS and _ASSIGN suffixes on the names of these functions and procedures to declare access/assign methods

Procedures may return values and are therefore just like Functions

Allows code before the first entity in a source file. This will be compiled into a function with the same name as the PRG file

Adds support for the DoDefault() pseudo function

When compiled with /fox1 then the compiler assumes that all classes inherit from the Custom class and will generate special code when declaring classes with the DEFINE CLASS syntax.

The NIL keyword in FoxPro has the property 'unitialized' but a value of FALSE.

Runtime

The default RDD in the FoxPro dialect is DBFVFP

The MemoWrit() function adds an extra ^Z character to the end of file. MemoRead() removes this character when it finds it.

The DBF() function returns the full name of the file

The _MRelease() function does not clear the memory variables but completely releases them

New memory variables are always filled with a value of FALSE

When comparing an initialized USUAL value with an unitialized value then in the FoxPro dialect an error will be generated.
The other dialects will simply return FALSE.