MIAMEX 15: Call into BASIC compiler

Updated January 2014

xcall MIAMEX, MX_COMPIL, filename, switches {,defbuf, vcpattern, status}

MX_COMPIL is used to implement the A-Shell command programs COMPIL.LIT, OCMPIL.LIT, PRE.LIT and OPRE.LIT, by calling into the A-Shell BASIC compiler which is coded in C. See the documentation on COMPIL for more information about the switches and variations of COMPIL.

filename  (String)  [in]

is the DevPPN file specification or host pathname of the program to be compiled. The compiler itself will default the extension to BAS if necessary.

defbuf  (String)  [in]

contains one or more "define sym = value" statements (corresponding to /C:sym=value command line switches). Each statement must be terminated with chr(10). String values must be quoted. For example, the defbuf equivalent of the command line:

compil prog/x:2/c:MODE=1/c:PLATFORM$=Win

would be:

defbuf = "define MODE = 1" + chr(10) + "PLATFORM$ = ""Win"""+ chr(10)

vcpattern  (String)  [in]

contains the pattern specified in /VC:pattern

status  (Num)  [out]

returns 0 if the compile succeeds, else failure.

switches  (Num)  [in]

is a bitmap of switch values as listed below:

Symbol

Value

Corresponding COMPIL.LIT switch or variation

 

COMPIL_A

&h00000001

/A, use 24-bit instead of 16-bit transfer addresses

 

COMPIL_M

&h00000002

/M, treat first instance of unmapped variable as an error

 

COMPIL_O

&h00000004

/O, omit line numbers from compiled program

 

COMPIL_13

&h00000008

Act as OCMPIL instead of COMPIL

 

COMPIL_S

&h00000010

/S, silent output – omit ++include lines

 

COMPIL_N

&h00000020

/N, omit phase two compilation statistics

 

COMPIL_X1

&h00000040

/X:1, act as COMPLP – BASIC Plus mode

 

COMPIL_D

&h00000080

/D, limited d/BASIC support

 

COMPIL_X2

&h00000100

/X:2, A-Shell extensions

 

COMPIL_V1

&h00000200

/V:1, BASIC 1.4a compatibility

 

COMPIL_T

&h00000400

/T, Trace – output source while compiling

 

COMPIL_I

&h00000800

/I, assume old ISAM in ambiguous OPEN statements

 

COMPIL_AV

&h00001000

/AV, handle &gt65K variable space

 

COMPIL_B

&h00002000

/B, output errors to prog.lst

 

COMPIL_MX

&h00004000

/MX, like /M but complain for every occurrence of each unmapped variable

 

COMPIL_X3

&h00020000

/RC, RUN compatibility

 

COMPIL_DBG

&h00080000

/LF, generate lsx (list) file

 

COMPIL_RC

&h00100000

/CI, case insensitive

 

COMPIL_G

&h00200000

/C:sym=value

 

COMPIL_LSM

&h00400000

/IEEE

 

COMPIL_LF

&h00800000

/VC:pattern

 

COMPIL_CI

&h01000000

/LI 

 

COMPIL_C

&h02000000

/P, preprocess for named parameter support

 

COMPIL_IEEE

&h08000000

/CTAGS

 

COMPIL_VC

&h10000000

/XTAGS

 

COMPIL_LI

&h20000000

/PX

 

COMPIL_P

&h40000000

/IGOO

 

COMPIL_CTAGS

&h80000000

(-l applies only to compil.exe)

 

COMPIL_XTAGS

&h100000000

/NOTRC

 

COMPIL_PX

&h200000000

/F1

 

Definition File: ashinc:compil.def

 

History

2014 January, A-Shell 6.1.1371:  Add support for /P.

2010 March, A-Shell 5.1.1177:  Add status parameter.