| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874 |
- Strict
- NoDebug
- Rem
- bbdoc: BASIC/BlitzMax runtime
- End Rem
- Module BRL.Blitz
- ModuleInfo "Version: 1.17"
- ModuleInfo "Author: Mark Sibly"
- ModuleInfo "License: zlib/libpng"
- ModuleInfo "Copyright: Blitz Research Ltd"
- ModuleInfo "Modserver: BRL"
- ModuleInfo "History: 1.17 Release"
- ModuleInfo "History: Added kludges for Lion llvm"
- ModuleInfo "History: Removed Nan/Inf"
- ModuleInfo "History: 1.16 Release"
- ModuleInfo "History: String.Find now converts start index <0 to 0"
- ModuleInfo "History: 1.15 Release"
- ModuleInfo "History: Changed ReadStdin so it can handle any length input"
- ModuleInfo "History: 1.14 Release"
- ModuleInfo "History: Fixed leak in WriteStdout and WriteStderr"
- ModuleInfo "History: 1.13 Release"
- ModuleInfo "History: Added LibStartUp stub"
- ModuleInfo "History: 1.12 Release"
- ModuleInfo "History: Added GCSuspend and GCResume"
- ModuleInfo "History: 1.11 Release"
- ModuleInfo "History: Added experimental dll support"
- ModuleInfo "History: 1.10 Release"
- ModuleInfo "History: Added Nan and Inf keyword docs"
- ModuleInfo "History: 1.09 Release"
- ModuleInfo "History: BCC extern CString fix"
- ModuleInfo "History: 1.08 Release"
- ModuleInfo "History: Removed printf from 'Throw'"
- ModuleInfo "History: 1.07 Release"
- ModuleInfo "History: Added AppTitle$ global var"
- ModuleInfo "History: 1.06 Release"
- ModuleInfo "History: Restored ReadData"
- ModuleInfo "History: 1.05 Release"
- ModuleInfo "History: Lotsa little tidyups"
- ModuleInfo "History: 1.04 Release"
- ModuleInfo "History: Fixed C Compiler warnings"
- Import "blitz_app.c"
- Import "blitz_types.c"
- Import "blitz_cclib.c"
- Import "blitz_memory.c"
- Import "blitz_module.c"
- Import "blitz_object.c"
- Import "blitz_string.c"
- Import "blitz_array.c"
- Import "blitz_handle.c"
- Import "blitz_debug.c"
- Import "blitz_incbin.c"
- Import "blitz_thread.c"
- Import "blitz_ex.c"
- Import "blitz_gc.c"
- ?Threaded
- Import "blitz_gc_ms.c"
- ?Not Threaded
- Import "blitz_gc_rc.c"
- ?
- ?Win32X86
- Import "blitz_ex.win32.x86.s"
- Import "blitz_gc.win32.x86.s"
- Import "blitz_ftoi.win32.x86.s"
- ?LinuxX86
- Import "blitz_ex.linux.x86.s"
- Import "blitz_gc.linux.x86.s"
- Import "blitz_ftoi.linux.x86.s"
- ?MacosX86
- Import "blitz_ex.macos.x86.s"
- Import "blitz_gc.macos.x86.s"
- Import "blitz_ftoi.macos.x86.s"
- ?MacosPPC
- Import "blitz_ex.macos.ppc.s"
- Import "blitz_gc.macos.ppc.s"
- ?
- Extern
- Global OnDebugStop()="bbOnDebugStop"
- Global OnDebugLog( message$ )="bbOnDebugLog"
- End Extern
- Type TBlitzException
- End Type
- Type TNullObjectException Extends TBlitzException
- Method ToString$()
- Return "Attempt to access field or method of Null object"
- End Method
- End Type
- Type TNullMethodException Extends TBlitzException
- Method ToString$()
- Return "Attempt to call abstract method"
- End Method
- End Type
- Type TNullFunctionException Extends TBlitzException
- Method ToString$()
- Return "Attempt to call uninitialized function pointer"
- End Method
- End Type
- Type TArrayBoundsException Extends TBlitzException
- Method ToString$()
- Return "Attempt to index array element beyond array length"
- End Method
- End Type
- Type TOutOfDataException Extends TBlitzException
- Method ToString$()
- Return "Attempt to read beyond end of data"
- End Method
- End Type
- Type TRuntimeException Extends TBlitzException
- Field error$
- Method ToString$()
- Return error
- End Method
- Function Create:TRuntimeException( error$ )
- Local t:TRuntimeException=New TRuntimeException
- t.error=error
- Return t
- End Function
- End Type
- Function NullObjectError()
- Throw New TNullObjectException
- End Function
- Function NullMethodError()
- Throw New TNullMethodException
- End Function
- Function NullFunctionError()
- Throw New TNullFunctionException
- End Function
- Function ArrayBoundsError()
- Throw New TArrayBoundsException
- End Function
- Function OutOfDataError()
- Throw New TOutOfDataException
- End Function
- Rem
- bbdoc: Generate a runtime error
- about: Throws a TRuntimeException.
- End Rem
- Function RuntimeError( message$ )
- Throw TRuntimeException.Create( message )
- End Function
- Rem
- bbdoc: Stop program execution and enter debugger
- about: If there is no debugger present, this command is ignored.
- end rem
- Function DebugStop()
- OnDebugStop
- End Function
- Rem
- bbdoc: Write a string to debug log
- about: If there is no debugger present, this command is ignored.
- end rem
- Function DebugLog( message$ )
- OnDebugLog message
- End Function
- Extern
- Rem
- bbdoc: Application directory
- about: The #AppDir global variable contains the fully qualified directory of the currently
- executing application. An application's initial current directory is also set to #AppDir
- when an application starts.
- End Rem
- Global AppDir$="bbAppDir"
- Rem
- bbdoc: Application file name
- about: The #AppFile global variable contains the fully qualified file name of the currently
- executing application.
- End Rem
- Global AppFile$="bbAppFile"
- Rem
- bbdoc: Application title
- about: The #AppTitle global variable is used by various commands when a
- default application title is required - for example, when opening simple
- windows or requesters.<br>
- <br>
- Initially, #AppTitle is set the value "BlitzMax Application". However, you may change
- #AppTitle at any time with a simple assignment.
- End Rem
- Global AppTitle$="bbAppTitle"
- Rem
- bbdoc: Arguments passed to the application at startup
- about: The #AppArgs global array contains the command line parameters sent to an application
- when it was started. The first element of #AppArgs always contains the name of the
- application. However, the format of the name may change depending on how the application
- was launched. Use #AppDir or #AppFile for consistent information about the applications name
- or directory.
- End Rem
- Global AppArgs$[]="bbAppArgs"
- Rem
- bbdoc: Directory from which application was launched
- about: The #LaunchDir global variable contains the current directory at the time the
- application was launched. This is mostly of use to command line tools which may need to
- access the 'shell' current directory as opposed to the application directory.
- End Rem
- Global LaunchDir$="bbLaunchDir"
- Rem
- bbdoc: Add a function to be called when the program ends
- about: #OnEnd allows you to specify a function to be called when the program ends. OnEnd functions are called
- in the reverse order to that in which they were added.
- end rem
- Function OnEnd( fun() )="bbOnEnd"
- Rem
- bbdoc: Read a string from stdin
- returns: A string read from stdin. The newline terminator, if any, is included in the returned string.
- end rem
- Function ReadStdin$()="bbReadStdin"
- Rem
- bbdoc: Write a string to stdout
- about: Writes @str to stdout and flushes stdout.
- end rem
- Function WriteStdout( str$ )="bbWriteStdout"
- Rem
- bbdoc: Write a string to stderr
- about: Writes @str to stderr and flushes stderr.
- end rem
- Function WriteStderr( str$ )="bbWriteStderr"
- Rem
- bbdoc: Wait for a given number of milliseconds
- about:
- #Delay suspends program execution for at least @millis milliseconds.<br>
- <br>
- A millisecond is one thousandth of a second.
- End Rem
- Function Delay( millis )="bbDelay"
- Rem
- bbdoc: Get millisecond counter
- returns: Milliseconds since computer turned on.
- about:
- #MilliSecs returns the number of milliseconds elapsed since the computer
- was turned on.<br>
- <br>
- A millisecond is one thousandth of a second.
- End Rem
- Function MilliSecs()="bbMilliSecs"
- Rem
- bbdoc: Allocate memory
- returns: A new block of memory @size bytes long
- End Rem
- Function MemAlloc:Byte Ptr( size )="bbMemAlloc"
- Rem
- bbdoc: Free allocated memory
- about: The memory specified by @mem must have been previously allocated by #MemAlloc or #MemExtend.
- End Rem
- Function MemFree( mem:Byte Ptr )="bbMemFree"
- Rem
- bbdoc: Extend a block of memory
- returns: A new block of memory @new_size bytes long
- about: An existing block of memory specified by @mem and @size is copied into a new block
- of memory @new_size bytes long. The existing block is released and the new block is returned.
- end rem
- Function MemExtend:Byte Ptr( mem:Byte Ptr,size,new_size )="bbMemExtend"
- Rem
- bbdoc: Clear a block of memory to 0
- end rem
- Function MemClear( mem:Byte Ptr,size )="bbMemClear"
- Rem
- bbdoc: Copy a non-overlapping block of memory
- end rem
- Function MemCopy( dst:Byte Ptr,src:Byte Ptr,size )="bbMemCopy"
- Rem
- bbdoc: Copy a potentially overlapping block of memory
- end rem
- Function MemMove( dst:Byte Ptr,src:Byte Ptr,size )="bbMemMove"
- Rem
- bbdoc: Set garbage collector mode
- about:
- @mode can be one of the following:<br>
- 1 : automatic GC - memory will be automatically garbage collected<br>
- 2 : manual GC - no memory will be collected until a call to GCCollect is made<br>
- <br>
- The default GC mode is automatic GC.
- End Rem
- Function GCSetMode( mode )="bbGCSetMode"
- Rem
- bbdoc: Suspend garbage collector
- about:
- #GCSuspend temporarily suspends the garbage collector. No garbage
- collection will be performed following a call to #GCSuspend.<br>
- <br>
- Use #GCResume to resume the garbage collector. Note that #GCSuspend
- and #GCResume 'nest', meaning that each call to #GCSuspend must be
- matched by a call to #GCResume.
- End Rem
- Function GCSuspend()="bbGCSuspend"
- Rem
- bbdoc: Resume garbage collector
- about:
- #GCResume resumes garbage collection following a call to #GCSuspend.<br>
- <br>
- See #GCSuspend for more details.
- End Rem
- Function GCResume()="bbGCResume"
- Rem
- bbdoc: Run garbage collector
- returns: The amount of memory, in bytes, collected.
- about:
- This function will have no effect if the garbage collector has been
- suspended due to #GCSuspend.
- End Rem
- Function GCCollect()="bbGCCollect"
- Rem
- bbdoc: Memory allocated by application
- returns: The amount of memory, in bytes, currently allocated by the application
- about:
- This function only returns 'managed memory'. This includes all objects, strings and
- arrays in use by the application.
- End Rem
- Function GCMemAlloced()="bbGCMemAlloced"
- Rem
- bbdoc: Private: do not use
- End Rem
- Function GCEnter()="bbGCEnter"
- Rem
- bbdoc: Private: do not use
- End Rem
- Function GCLeave()="bbGCLeave"
- Rem
- bbdoc: Convert object to integer handle
- returns: An integer object handle
- about:
- After converting an object to an integer handle, you must later
- release it using the #Release command.
- End Rem
- Function HandleFromObject( obj:Object )="bbHandleFromObject"
- Rem
- bbdoc: Convert integer handle to object
- returns: The object associated with the integer handle
- End Rem
- Function HandleToObject:Object( handle )="bbHandleToObject"
- End Extern
- 'BlitzMax keyword definitions
- Rem
- bbdoc: Set strict mode
- about:
- See the <a href=../../../../doc/bmxlang/compatibility.html>BlitzMax Language Reference</a> for more information on Strict mode programming.
- keyword: "Strict"
- End Rem
- Rem
- bbdoc: Set SuperStrict mode
- keyword: "SuperStrict"
- End Rem
- Rem
- bbdoc: End program execution
- keyword: "End"
- End Rem
- Rem
- bbdoc: Begin a remark block
- keyword: "Rem"
- End Rem
- Rem
- bbdoc: End a remark block
- keyword: "EndRem"
- End Rem
- Rem
- bbdoc: Constant integer of value 1
- keyword: "True"
- End Rem
- Rem
- bbdoc: Constant integer of value 0
- keyword: "False"
- End Rem
- Rem
- bbdoc: Constant Pi value: 3.1415926535897932384626433832795
- keyword: "Pi"
- End Rem
- Rem
- bbdoc: Get Default Null value
- keyword: "Null"
- End Rem
- Rem
- bbdoc: Unsigned 8 bit integer Type
- keyword: "Byte"
- End Rem
- Rem
- bbdoc: Unsigned 16 bit integer Type
- keyword: "Short"
- End Rem
- Rem
- bbdoc: Signed 32 bit integer Type
- keyword: "Int"
- End Rem
- Rem
- bbdoc: Signed 64 bit integer Type
- keyword: "Long"
- End Rem
- Rem
- bbdoc: 32 bit Floating point Type
- keyword: "Float"
- End Rem
- Rem
- bbdoc: 64 bit floating point Type
- keyword: "Double"
- End Rem
- Rem
- bbdoc: String Type
- keyword: "String"
- End Rem
- Rem
- bbdoc: Object Type
- keyword: "Object"
- End Rem
- Rem
- bbdoc: Composite Type specifier for 'by reference' types
- keyword: "Var"
- End Rem
- Rem
- bbdoc: Composite Type specifier for pointer types
- keyword: "Ptr"
- End Rem
- Rem
- bbdoc: Begin a conditional block.
- keyword: "If"
- End Rem
- Rem
- bbdoc: Optional separator between the condition and associated code in an If statement.
- keyword: "Then"
- End Rem
- Rem
- bbdoc: Else provides the ability For an If Then construct to execute a second block of code when the If condition is False.
- keyword: "Else"
- End Rem
- Rem
- bbdoc: ElseIf provides the ability to test and execute a section of code if the initial condition failed.
- keyword: "ElseIf"
- End Rem
- Rem
- bbdoc: Marks the End of an If Then block.
- keyword: "EndIf"
- End Rem
- Rem
- bbdoc: Marks the start of a loop that uses an iterator to execute a section of code repeatedly.
- keyword: "For"
- End Rem
- Rem
- bbdoc: Followed by a constant which is used to calculate when to exit a For..Next loop.
- keyword: "To"
- End Rem
- Rem
- bbdoc: Specifies an optional constant that is used to increment the For iterator.
- keyword: "Step"
- End Rem
- Rem
- bbdoc: End a For block
- keyword: "Next"
- End Rem
- Rem
- bbdoc: Iterate through an array or collection
- keyword: "EachIn"
- End Rem
- Rem
- bbdoc: Execute a block of code While a condition is True
- keyword: "While"
- End Rem
- Rem
- bbdoc: End a While block
- keyword: "Wend"
- End Rem
- Rem
- bbdoc: End a While block
- keyword: "EndWhile"
- End Rem
- Rem
- bbdoc: Execute a block of code Until a termination condition is met, or Forever
- keyword: "Repeat"
- End Rem
- Rem
- bbdoc: Conditionally continue a Repeat block
- keyword: "Until"
- End Rem
- Rem
- bbdoc: Continue a Repeat block Forever
- keyword: "Forever"
- End Rem
- Rem
- bbdoc: Begin a Select block
- keyword: "Select"
- End Rem
- Rem
- bbdoc: End a Select block
- keyword: "EndSelect"
- End Rem
- Rem
- bbdoc: Conditional code inside a Select block
- keyword: "Case"
- End Rem
- Rem
- bbdoc: Default code inside a Select block
- keyword: "Default"
- End Rem
- Rem
- bbdoc: Exit enclosing loop
- keyword: "Exit"
- End Rem
- Rem
- bbdoc: Continue execution of enclosing loop
- keyword: "Continue"
- End Rem
- Rem
- bbdoc: Declare a constant
- keyword: "Const"
- End Rem
- Rem
- bbdoc: Declare a Local variable
- keyword: "Local"
- End Rem
- Rem
- bbdoc: Declare a Global variable
- keyword: "Global"
- End Rem
- Rem
- bbdoc: Declare a Field variable
- keyword: "Field"
- End Rem
- Rem
- bbdoc: Begin a Function declaration
- keyword: "Function"
- End Rem
- Rem
- bbdoc: End a Function declaration
- keyword: "EndFunction"
- End Rem
- Rem
- bbdoc: Return from a Function
- keyword: "Return"
- End Rem
- Rem
- bbdoc: Begin a user defined Type declaration
- keyword: "Type"
- End Rem
- Rem
- bbdoc: End a user defined Type declaration
- keyword: "EndType"
- End Rem
- Rem
- bbdoc: Specify user defined Type supertype
- keyword: "Extends"
- End Rem
- Rem
- bbdoc: Begin a Method declaration
- keyword: "Method"
- End Rem
- Rem
- bbdoc: End a Method declaration
- keyword: "EndMethod"
- End Rem
- Rem
- bbdoc: Denote a Type or Method as Abstract
- keyword: "Abstract"
- End Rem
- Rem
- bbdoc: Denote a Type or Method as Final
- keyword: "Final"
- End Rem
- Rem
- bbdoc: Create an instance of a user defined Type
- keyword: "New"
- End Rem
- Rem
- bbdoc: Reference to this Method's Object instance
- keyword: "Self"
- End Rem
- Rem
- bbdoc: Reference to the Super Type Object instance
- keyword: "Super"
- End Rem
- Rem
- bbdoc: Reserved for future expansion
- keyword: "Delete"
- End Rem
- Rem
- bbdoc: Release an integer Object handle
- keyword: "Release"
- End Rem
- Rem
- bbdoc: Public makes a Constant, Global variable or Function accessible from outside the current source file (Default)
- keyword: "Public"
- End Rem
- Rem
- bbdoc: Private makes a Constant, Global variable or Function only accessible from within the current source file
- keyword: "Private"
- End Rem
- Rem
- bbdoc: Extern marks the beginning of an external list of Function declarations
- keyword: "Extern"
- End Rem
- Rem
- bbdoc: EndExtern marks the End of an Extern section
- keyword: "EndExtern"
- End Rem
- Rem
- bbdoc: Declare Module scope and identifier
- about:
- See the <a href=../../../../doc/bmxlang/modules.html>BlitzMax Language Reference</a> for more information on BlitzMax Modules.
- keyword: "Module"
- End Rem
- Rem
- bbdoc: Define Module properties
- keyword: "ModuleInfo"
- End Rem
- Rem
- bbdoc: Embed a data file
- keyword: "Incbin"
- End Rem
- Rem
- bbdoc: Get start address of embedded data file
- keyword: "IncbinPtr"
- End Rem
- Rem
- bbdoc: Get length of embedded data file
- keyword: "IncbinLen"
- End Rem
- Rem
- bbdoc: Include effectively 'inserts' the specified file into the file being compiled.
- keyword: "Include"
- End Rem
- Rem
- bbdoc: Framework builds the BlitzMax application with only the Module specified rather than all modules installed.
- keyword: "Framework"
- End Rem
- Rem
- bbdoc: Import declarations from a Module or source file
- keyword: "Import"
- End Rem
- Rem
- bbdoc: Throw a RuntimeError if a condition is False
- keyword: "Assert"
- End Rem
- Rem
- bbdoc: Transfer program flow to specified label
- keyword: "Goto"
- End Rem
- Rem
- bbdoc: Begin declaration of a Try block
- keyword: "Try"
- End Rem
- Rem
- bbdoc: End declaration of a Try block
- keyword: "EndTry"
- End Rem
- Rem
- bbdoc: Catch an exception Object in a Try block
- keyword: "Catch"
- End Rem
- Rem
- bbdoc: Throw an exception Object to the enclosing Try block
- keyword: "Throw"
- End Rem
- Rem
- bbdoc: Define class BASIC style data
- keyword: "DefData"
- End Rem
- Rem
- bbdoc: Read classic BASIC style data
- keyword: "ReadData"
- End Rem
- Rem
- bbdoc: Restore classic BASIC style data
- keyword: "RestoreData"
- End Rem
- Rem
- bbdoc: Conditional 'And' binary operator
- keyword: "And"
- End Rem
- Rem
- bbdoc: Conditional 'Or' binary operator
- keyword: "Or"
- End Rem
- Rem
- bbdoc: Conditional 'Not' binary operator
- keyword: "Not"
- End Rem
- Rem
- bbdoc: Bitwise 'Shift left' binary operator
- keyword: "Shl"
- End Rem
- Rem
- bbdoc: Bitwise 'Shift right' binary operator
- keyword: "Shr"
- End Rem
- Rem
- bbdoc: Bitwise 'Shift arithmetic right' binary operator
- keyword: "Sar"
- End Rem
- Rem
- bbdoc: Number of characters in a String or elements in an array
- keyword: "Len"
- End Rem
- Rem
- bbdoc: Numeric 'absolute value' unary operator
- keyword: "Abs"
- End Rem
- Rem
- bbdoc: Numeric 'modulus' or 'remainder' binary operator
- keyword: "Mod"
- End Rem
- Rem
- bbdoc: Numeric 'sign' unary operator
- keyword: "Sgn"
- End Rem
- Rem
- bbdoc: Numeric 'minimum' builtin function
- returns: The lesser of the two numeric arguments
- keyword: "Min"
- End Rem
- Rem
- bbdoc: Numeric 'maximum' builtin function
- returns: The larger of the two numeric arguments
- keyword: "Max"
- End Rem
- Rem
- bbdoc: Find the address of a variable
- keyword: "Varptr"
- End Rem
- Rem
- bbdoc: Size, in bytes, occupied by a variable, string, array or object
- keyword: "SizeOf"
- End Rem
- Rem
- bbdoc: Get character value of the first character of a string
- keyword: "Asc"
- End Rem
- Rem
- bbdoc: Create a string of length 1 with a character code
- keyword: "Chr"
- End Rem
|