Toolkit for Conversion from Thoroughbred®

Prepass Program Conversions

To facilitate the conversion of programs, the PxPlus conversion utilities include a prepass that can be used to make most common changes to you application code.

The prepass itself is controlled by two files:

 

prepass.sys

This file contains the system supplied prepass rules that have been found to work on all Thoroughbred® programs.

 

prepass.usr

This file can be tailored by the user to perform custom prepass conversions based on their specific application needs.

File Format

The format of the conversion lines is:

oldval->newval
oldvar=>newvar

Where:

 

oldval/var

The text that will be scanned for

 

newval/var

The value that will be inserted instead

If the separator is ->, the replacement is a simple pure text replacement; that is, all occurrences of oldval will become newval.

If the separator is =>, the replacement will only replace a variable whose name is oldvar with newvar. The convertor assures the value is a variable by testing the characters before and after the value to make sure it is one of the following:

" ; : , + / - * ^ ( ) [ ] = "

To allow for function name recognition, if the last character is one of the above, then the value will be considered a variable.

In addition, when replacing variables, the number of quotes preceding the value must be even thus assuring that the text does not appear in a string.

The Variable assignment (=>) can also be used for logical statements or other such replacements where the contents is not part of a longer text, thus in many cases, it is preferable over ->.

A line starting with an exclamation mark ("!") is considered a comment line and is ignored by the prepass processor.

Current System prepass.sys

The following is a Feb. 2006 listing of prepass.sys:

'CN'=>'C1'
'CO'=>'C0'
!
! Escape On/Off
ESCON=>SETESC ENABLE
ESCOFF=>SETESC DISABLE
!
! INF Functions
!
INF(3,2)=>WHO
INF(4,=>ENV(
!
! Tbred functions/Variables provided in Function.def
!
CPP(=>FN%CPP$(
FST(=>FN%FST$(
NEA(=>FN%NEA(
DTN(=>FN%DTN(
NTD(=>FN%NTD$(
NMV(=>FN%NMV(
CDS(=>FN%CDS(
XFD(=>FN%XFD$(
!
STL(=>LEN(
!
CDS=>FN%CDS$
CDN=>FN%CDN
!
! WIN Functions
!
!WIN(GET SCREEN)=>FN%WIN$("GET SCREEN")
!WIN(GET TEXT)=>FN%WIN$("GET TEXT")
WIN(GET CURSOR)=>$00$+MID(FIB(0),85,1)+$00$+MID(FIB(0),86,1)
!WIN(GET LIST)=>FN%WIN$("GET LIST")
!
! Date string loaded in Function.def
!
DATESTRINGS=>%DATE_STRING$
!
INPUT EDT=>INPUT EDIT
DROP ALL=>CALL "*conv.tbd/utils;drop_all"
!
DELETE 00001,65534->DELETE 00001,65000

 

 

 

Thoroughbred® is a registered trademark of Thoroughbred Software International, Inc.