.com Solutions Inc. - Logo  
services header buttons
.
FmPro Migration bullet item 7b FmPro Upgrade bullet item 7b FmPro Development
.
.
.
. .

Email a Friend

Bookmark This Page


..

. .


 


 

 

...
.

BASIC to LiveCode Conversion Service - Header graphic

The BASIC to LiveCode Conversion Feature has been introduced in FmPro Migrator Platinum Edition 5.46.

Top 10 Features

black bulletProcessing of a wide variety of BASIC syntax source files from multiple BASIC IDEs.
(Including, but not limited to: Visual Basic, VBScript, VBA, PowerBasic, ZBASIC/FutureBasic and RealBasic.)
black bulletQuickly process files within all subdirectories of a selected source directory.
black bulletConverted files are saved as .irev files or individual cards within a new LiveCode stack file.
black bulletSave many hours of manual retyping, performing the initial code conversion within seconds.
black bulletSupported statements include: DIM,LET, FOR/NEXT/LOOP/WHILE, SELECT/CASE, FUNCTION/SUB definitions and many more.
black bulletCommon functions are remapped into LiveCode code: Trim(),Len(),Exit,Inc/Dec,LCase(),UCase(),XOr and many more
black bulletSub/Functions are converted into LiveCode "on HandlerName/function FunctionName" definitions closed with "end HandlerName/FunctionName"
black bulletSELECT CASE code is converted into LiveCode code with "break" statements added to close each CASE block.
black bulletCode indenting is maintained for most statements within the generated LiveCode code.
black bulletConvert older single-platform BASIC code into multi-platform LiveCode projects deployable on desktop, server, web and mobile platforms.

 

BASIC to LiveCode Window screenshot

Description

The BASIC to LiveCode Conversion Service included with FmPro Migrator Platinum Edition saves LiveCode developers many hours of tedious and error-prone work converting BASIC files into LiveCode code. FmPro Migrator Platinum Edition efficiently traverses all subdirectories of any specified source directory, locating and converting all of the files it has found with the specified file extension (.bas, .vba, .vbs or .txt). The converted files are either saved as folders and .irev files or as individual cards within a new LiveCode stack file.

BASIC to LiveCode Conversion Service Pricing

FmPro Migrator Platinum Edition includes a BASIC to LiveCode License Key (Unlimited Script Quantity - 1 Year Duration)

Also...

 

The BASIC to LiveCode Conversion Service is available as a separate service for a fixed price of $250 (Unlimited Quantity).


hline image

The features and benefits of using the BASIC to LiveCode Conversion Service include:

black bulletWide Range of BASIC Compilers Supported - The BASIC to LiveCode Conversion Service includes support for a wide variety of BASIC compilers and interpreters. The list of officially supported versions of BASIC include: Microsoft Visual Basic, VBScript, VBA, PowerBasic, ZBASIC/FutureBasic and RealBasic. File from unsupported compilers will still benefit from the conversion of the of the most commonly used BASIC keywords.

black bulletHigh Performance Processing - Performing manual processing of even the most common BASIC keywords for a large project could take days or even weeks of work. FmPro Migrator reduces this initial conversion phase for most projects to just a few seconds of processing time. All conversion projects will require manual work in order to reconcile differences between development environments. But using an automated process for the initial conversion phase of the project means that LiveCode developers can immediately start work on the remaining project development tasks. FmPro Migrator also provides a quick overview of the size of the conversion effort. Within a few seconds you will know how many files and lines of code are involved in your entire project.

black bulletSwitch to LiveCode for Multi-Platform Compatibility - Many BASIC development environments were designed only for single-platform deployment. The LiveCode development platform makes it possible to reuse code across the web, desktop (Mac, PC or Linux) server and mobile platforms. A great example of the deployment options available with the LiveCode development platform is the revLet implemented on this very web page. The demo revLet incorporates exactly the same BASIC to LiveCode conversion code as the FmPro Migrator desktop application. FmPro Migrator supports server implementations by converting files into .irev text files, and supports Web (revLet) and desktop development by generating LiveCode stacks containing the converted code.

black bulletAn Economical Learning Tool - Are you new to the LiveCode platform? Do you have thousands of lines of BASIC code scattered in dozens of different project directories? The BASIC to LiveCode Conversion feature is an indispensable tool which can help you quickly get up to speed converting your existing code to the LiveCode platform.

LiveCode developed revLets provide unique marketing opportunities to showcase product functionality via Web 2.0 feature rich web applications. You can paste in your own BASIC code into the revLet displayed above and instantly see the results. Notice that fields are scrollable vertically and horizontally, and summary results are displayed in a normally invisible label at the lower part of the revLet window, just as you might implement within a desktop app. Images, fields, buttons and text labels are precisely positioned within the revLet, without requiring nested HTML tables or complex browser-specific CSS style sheets.

black bulletPrivate/Public Subroutine and Function Conversion - BASIC Subroutines and Functions are converted into handlers and functions within the converted LiveCode code. Private Subroutines become private commands, and public Subroutines become regular handlers. The End Sub/End Function keywords are converted into End <Sub/Function Name> to complete each Subroutine or Function. The ByVal keyword has been replaced with the @ symbol, which passes the variable by reference into the handler.

Private Sub List1_DragDrop(ByVal Source As String, X As Single)
     If Source = "*****" then ' Beep if string found
         Beep
     End If
     Return Trim(Source) ' Return trimmed value
End Sub

Public Sub Command1_Click()
     dim Payment as single
     dim LoanIRate as single
     dim LoanDuration as integer
     dim LoanAmount as integer

     If IsNumeric(Amount.Txt) Then
          LoanAmount = Amount.Text
     Else
          MsgBox "Please enter a valid amount"
     End If
End Sub

Private command List1_DragDrop @Source X
     If Source =
"*****" then -- Beep if string found
          Beep
     End If
     Return char 1 to -1 of (Source) -- Return trimmed value
end List1_DragDrop

on Command1_mouseUp
     local Payment
     local LoanIRate
     local LoanDuration
     local LoanAmount

     If isNumber(Amount.Txt) Then
          put Amount.Text into LoanAmount
     Else
          answer "Please enter a valid amount"
     End If
end
Command1_mouseUp

 

BASIC Code
LiveCode Code

black bulletCode Comments and Indenting - Comments and most code indenting will be passed thru into the the commented LiveCode code unchanged in order to improve readability as well as documentation. Variable definitions are modified to remove size info, and BASIC variable name suffix characters are removed for assignment and definition statements.

' Data Reduction Program +++++ Module #1 +++++
' By David Simpson 12/8/85
' Copyright (c) 1985
LIBRARY "ToolLib"

Program.Name1$ = "Sentry D.R.(old) 618-000"

DIM D$(135) : REM variable which will contain one line of text
DIM C$(25) : REM bad sizes,bad id code to be sent to error message.
DIM File1$(256) :REM used for " FMT" -- input data file
DIM File2$(256) :REM used for ".SN" -- list of sn file
DIM File3$(256) :REM used for ".DEV" -- number of devices file
Page.Count% = 1 : REM count the number of pages of data
Line.Count% = 0
Page.Width2% = 8 : REM number of columns of data across page
Page.Width% = 81
Page.Length% = 64
Max.Sn% = 1000 : REM maximum devices which can be processed
Buffer.Size% = 3750 : REM number of sn of data read in by calc
Max.Parameters% = 75 : REM the maximum number of parameters
Max.Sizes% = 50 : REM the maximum number of measurements
DIM Update.Running.Status%(5500) : ' picture of window #3 for screen refreshing

 

-- Data Reduction Program +++++ Module #1 +++++
-- By David Simpson 12/8/85
-- Copyright (c) 1985
library stack "ToolLib"

put "Sentry D.R.(old) 618-000" into Program.Name1


local D -- REM variable which will contain one line of text
local
C -- REM bad sizes,bad id code to be sent to error message.

local File1 -- REM used for " FMT" -- input data file
local
File2 -- REM used for ".SN" -- list of sn file

local File3 -- REM used for ".DEV" -- number of devices file
put 1 into Page.Count -- REM count the number of pages of data
put
0 into Line.Count
put 8 into Page.Width2 -- REM number of columns of data across page
put 81 into Page.Width
put
64 into Page.Length

put
1000 into Max.Sn -- REM maximum devices which can be processed

put
3750 into Buffer.Size -- REM number of sn data read in by calc

put
75 into Max.Parameters -- REM the maximum number of parameters

put
50 into Max.Sizes -- REM the maximum number of measurements

local
Update_Running_Status -- -- picture of window #3 for screen refreshing

 

BASIC Code
LiveCode Code

black bulletSELECT/CASE Conversion - SELECT/CASE statements are converted into switch/case statements in LiveCode. The CASE ELSE keywords become the default CASE condition and a break keyword is added at the end of each CASE block. Once again, the ByVal keyword has been replaced with the @ symbol, which passes the variable by reference into the handler.

SUB SetFifoTrigger(BYVAL port AS INTEGER, BYVAL level AS INTEGER) PUBLIC
     SELECT CASE level
     CASE 1
          level = "&H1F" ' 1 byte
     CASE 4
          level = "&H4F" ' 4 bytes
     CASE 8
          level = "&H8F" ' 8 bytes
     CASE 14
          level = "&HCF" ' 14 bytes
     CASE ELSE
          level = "&H00" ' disable FIFOs
     END SELECT
END SUB

 

on SetFifoTrigger @port @level
    
switch level
     CASE
1
          put "&H1F" into level -- 1 byte
     break
     CASE 4
          put "&H4F" into level -- 4 bytes
     break
     CASE 8
          put "&H8F" into level -- 8 bytes
     break
     CASE 14
          put "&HCF" into level -- 14 bytes
     break
     default
          put "&H00" into level -- disable FIFOs
     break
     end switch

end SetFifoTrigger

BASIC Code
LiveCode Code
black bulletLoop Conversion - FOR/NEXT, WHILE and LOOP statements are converted into the simplified repeat/end repeat keywords used in LiveCode.

flag1% = 0 ' flag to enable WHILE statement
IF Num.To.Override% > 0 THEN flag1%=1
' do not remove devices which are overridden (control unit devices)
WHILE flag1%=1
     FOR b% = 1 TO Devices%
          FOR C% = 1 TO Num.To.Override%
               ' make sure that overridden devices are not removed
               IF Sn.List%(b%) = Override.List%(C%) THEN Fail.Flags2%(b%) = 2
          NEXT C%
     NEXT b%
     flag1% = 0 ' disable WHILE statement
WEND

put 0 into flag1 -- flag to enable WHILE statement
IF Num.To.Override > 0 THEN flag1=1
-- do not remove devices which are overridden (control unit devices)repeat while flag1=1
    
repeat with b = 1 TO Devices
     
     repeat with C = 1 TO Num.To.Override
          
-- make sure that overridden devices are not removed
          
IF Sn.List(b) = Override.List(C) THEN Fail.Flags2(b) = 2
          
end repeat
     
end repeat
     
put 0 into flag1 -- disable WHILE statement
end repeat

BASIC Code
LiveCode Code

black bulletVariable Renaming - BASIC variables are modified to remove the data type suffix characters including $, % and # characters. For variables on the left hand side of the assignment operator and DIM statements the variable names are also checked against the list of LiveCode keywords, and renamed by adding an underscore character suffix if a name conflict has been found. REDIM statements are commented out, because a REDIM statement can either clear a BASIC array or resize the array. Variable assignments involving arrays (single or multi-dimensional) are converted into LiveCode arrays using square brackets instead of parenthesis.

Public Const pi As Double = 3.141592
Dim Names$(1 to 16) As String
global MyArray%(20)
static IntArray%(10) As Integer
ReDim DynArray(UserCount)
ReDim Matrix(9, 9, 9)
dim Payment as single
dim LoanIRate as single
dim LoanDuration as integer
dim LoanAmount as integer
DIM Stack%(15,2) : REM pseudo-stack
Stack%(15,2) = 12345
T1$ = Temperatures.Item("Atlanta")
LoanDuration = Nothing

constant pi_ = 3.141592
local Names
global MyArray
global IntArray
-- ReDim DynArray(UserCount)
-- ReDim Matrix(9, 9, 9)
local Payment
local LoanIRate
local LoanDuration
local LoanAmount
local Stack_ -- REM pseudo-stack
put 12345 into Stack_[15,2]
put Temperatures.Item("Atlanta") into T1
put empty into LoanDuration  

BASIC Code
LiveCode Code


 

BASIC to LiveCode Function & Keyword Conversions

Some functions and keywords match so closely in functionality that a simple search & replace can be done on the code to perform the conversion. Some of these conversions are listed in this table.

BASIC Function LiveCode Function
ASC() charToNum()
CHR$() charToNum()
Date() the short date of
DEBUG.PRINT put [output goes to message box in Rev IDE]
DEC() subtract 1 from ()
DECODEBASE64() base64Decode()
DECODEURL() URLDecode()
ENCODEBASE64() base64Encode()
ENCODEURL() URLEncode()
EXIT SUB Exit
FN ANNUITY#() annuity()
INC() add 1 to ()
INCR() add 1 to ()
ISNUMERIC() isNumber()
LCASE() toLower()
LEN() length()
LENB() length()
LOWERCASE() toLower()
LTRIM() char 1 to -1 of ()
MSGBOX answer
NIL empty
NOTHING empty
SQR() sqrt()
SUB CLICK() on mouseUp
SUB DBLCLICK() on mouseDoubleUp
TRIM() char 1 to -1 of ()
UCASE() toUpper()
UCASE$() toUpper()
UCASE$$() toUpper()
UPPERCASE() toUpper()
VAL() value()
VBCR return
VBCRLF CRLF
VBLF LF
WEND end repeat
XELSE else
XOR bitXor
   
   

Demo Mode

Due to the complexity associated with any code conversion project, it is recommended that a small test project be completed prior to starting the full conversion project. By default, FmPro Migrator Platinum Edition will process 5 scripts in demo mode without requiring a license key. There is also additional information in the FmPro Migrator BASIC to LiveCode Conversion Manual (PDF).

Requirements

Requirements:
FmPro Migrator Platinum Edition - FmPro Migrator Platinum Edition includes the BASIC to LiveCode Service licence key providing unlimited usage of this feature throughout the duration of the license key.

LiveCode IDE

 

hline image

.

 

. .

.

. .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

email link

Home | Products | Services | Downloads | Order | Support | Contact

Legal Notices

.
.   .
.
Home Products Services Downloads Order Support Contact