Table of Contents
Introduction
BaCon usage and parameters
General syntax
Mathematics, variables
Equations
The BETWEEN keyword
Indexed arrays
Declaration of static arrays
Declaration of dynamic arrays
Dimensions
Passing arrays to functions or subs
Returning arrays from functions
Associative arrays
Declaration
Relations, lookups, keys
Basic logic programming
Records
Declaration
Arrays of records
Passing records to functions or subs
Returning records from functions
Strings by value or by reference
ASCII, Unicode, UTF8
Binary trees
Creating and linking to libraries created with BaCon
Step 1: create a library
Step 2: compile the library
Step 3: copy library to a system path
Step 4: update linker cache
Step 5: demonstration program
Step 6: compile and link
Remarks
Creating internationalization files
Step 1: create program
Step 2: compile program
Step 3: create catalog file
Step 4: add translations
Step 5: create object file
Step 6: install
Step 7: setup Unix environment
Networking
TCP
UDP
BROADCAST
MULTICAST
SCTP
TLS secured network connections
Ramdisks and memory streams
Delimited strings
Regular expressions
Error trapping, error catching and debugging
Notes on transcompiling
Using the ASCII editor
Support for GUI programming
Enabling GUI functions
Defining the GUI
Setting properties
Entering the mainloop
Defining helper functions
Using native functions
Overview of BaCon statements and functions
ABS
ACCEPT
ACOS
ADDRESS
ALARM
ALIAS
ALIGN$
AMOUNT
AND
APPEND
APPEND$
ARGUMENT$
ASC
ASIN
ATN
ATN2
B64DEC$
B64ENC$
BAPPEND
BASENAME$
BIN$
BIT
BLOAD
BREAK
BSAVE
BYTELEN
CA$
CALL
CATCH
CEIL
CERTIFICATE
CHANGE$
CHANGEDIR
CHOP$
CHR$
CIPHER$
CL$
CLASS
CLEAR
CLOSE
CMDLINE
CN$
COIL$
COLLAPSE$
COLLECT
COLOR
COLUMNS
CONCAT$
CONST
CONTINUE
COPY
COS
COUNT
CR$
CURDIR$
CURSOR
CUT$
DATA
DAY
DEC
DECLARE
DECR
DEF FN
DEG
DEL$
DELETE
DELIM$
DIRNAME$
DLE$
DO
DOTIMES
EL$
END
ENDFILE
ENUM
EPRINT
EQ
EQUAL
ERR$
ERROR
ESCAPE$
EVAL
EVEN
EXCHANGE$
EXEC$
EXIT
EXP
EXPLODE$
EXTRACT$
FALSE
FILEEXISTS
FILELEN
FILETIME
FILETYPE
FILL$
FIND
FIRST$
FLATTEN$
FLOOR
FOR
FORK
FP
FREE
FUNCTION
GETBYTE
GETENVIRON$
GETFILE
GETKEY
GETLINE
GETPEER$
GETX / GETY
GLOBAL
GOSUB
GOTO
GOTOXY
GUIDEFINE
GUIEVENT$
GUIFN
GUIGET
GUISET
GUIWIDGET
HASDELIM
HASH
HEAD$
HEX$
HOST$
HOSTNAME$
HOUR
IF
IIF / IIF$
IMPORT
INBETWEEN$
INCLUDE
INCR
INDEX
INDEX$
INPUT
INSERT$
INSTR
INSTRREV
INTL$
INVERT
ISASCII
ISFALSE
ISKEY
ISTOKEN
ISTRUE
ISUTF8
JOIN
LABEL
LAST$
LCASE$
LEFT$
LEN
LET
LINENO
LOAD$
LOCAL
LOG
LOOKUP
LOOP
LOOP$
MAKEDIR
MAP
MATCH
MAX / MAX$
MAXNUM
MAXRANDOM
ME$
MEMCHECK
MEMORY
MEMREWIND
MEMTELL
MERGE$
MID$
MIN / MIN$
MINUTE
MOD
MONTH
MONTH$
MYPID
NE
NL$
NNTL$
NOT
NOW
NRKEYS
OBTAIN$
ODD
ON
OPEN
OPTION
OR
OS$
OUTBETWEEN$
PARSE
PEEK
PI
POKE
POW
PRAGMA
PRINT
PROPER$
PROTO
PULL
PUSH
PUTBYTE
PUTLINE
RAD
RANDOM
READ
READLN
REALPATH$
REAP
RECEIVE
RECORD
REDIM
REGEX
REGLEN
RELATE
REM
RENAME
REPEAT
REPLACE$
RESIZE
RESTORE
RESUME
RETURN
RETVAL
REV$
REVERSE$
REWIND
RIGHT$
RIP$
RND
ROL
ROR
ROTATE$
ROUND
ROWS
RUN
RUN$
SAVE
SCREEN
SCROLL
SEARCH
SECOND
SEED
SEEK
SELECT
SEND
SETENVIRON
SETSERIAL
SGN
SIGNAL
SIN
SIZEOF
SLEEP
SORT
SORT$
SOURCE$
SP
SPC$
SPLIT
SQR
STOP
STR$
SUB
SUM / SUMF
SWAP
SYSTEM
TAB$
TAIL$
TALLY
TAN
TELL
TEXTDOMAIN
TIMER
TIMEVALUE
TOASCII$
TOKEN$
TRACE
TRAP
TREE
TRUE
TYPE
TYPEOF$
UBOUND
UCASE$
UCS
ULEN
UNESCAPE$
UNFLATTEN$
UNIQ$
USEC
USEH
UTF8$
VAL
VAR
VERIFY
VERSION$
WAIT
WALK$
WEEK
WEEKDAY$
WHERE
WHILE
WITH
WRITELN
YEAR
Appendix A: Runtime error codes
Appendix B: standard POSIX variables
Appendix C: reserved keywords and functions
Appendix D: details on string optimization in BaCon
Different binary layout
Hash table
Pointer swap
Memory pool
Static character pointers
Using a pre-buffer