Gambas Documentation
Application Repository
Code Snippets
Compilation & Installation from source code
Components
Controls pictures
Deprecated components
Developer Documentation
Development Environment Documentation
Documents
About The Best Formula In The World
Architecture details
Benchmarks
Books
By Reference Argument Passing
Compatibility between versions
Creating And Using Libraries
Database Datatype Mapping
Database Request Quoting
Date & time management
Dates and calendars
DBus and Gambas
Differences Between Shell And Exec
Differences From Visual Basic
Distributions & Operating Systems
Drag & Drop
DrawingArea Internal Behaviour
External functions datatype mapping
Frequently Asked Questions
Gambas Farm Server Protocol
Gambas Mailing List Netiquette
Gambas Markdown Syntax
Gambas Naming Conventions
Gambas Object Model
Gambas Scripting
Gambas Server Pages
Gambas Unit Testing
Gambas Wiki Markup Syntax
Getting Started With Gambas
Hall Of Fame
Housekeeping, cleaning up
Image Management In Gambas
Including Help Comments in Source Code
Installation from binary packages
Interpreter limits
Introduction
Just In Time Compiler
Just In Time Compiler (old version)
License
Localisation and Internationalization
Mailing Lists & Forums
Naming Conventions
Network Programming
ODBC Component Documentation
PCRE Pattern Syntax
Porting from Gambas 2 to Gambas 3
Previous News
Project Directory Structure
Release Notes
Reporting a problem, a bug or a crash
Rich Text Syntax
Screenshots
Text highlighting definition file syntax
The Program has stopped unexpectedly by raising signal #11
Variable Naming Convention
WebPage Syntax
Web site home page
What Is Gambas?
Window & Form Management
Window Activation & Deactivation
Window Life Cycle
XML APIs
Error Messages
Gambas Playground
How To's
Language Index
Language Overviews
Last Changes
Lexicon
README
Search the wiki
To Do
Topics
Tutorials
Wiki License
Wiki Manual

Interpreter limits

That table lists the Gambas interpreter limits.

Note that some limits are immutable, i.e. they cannot be changed without rewriting the interpreter. And some limits can be changed, i.e. it is just a matter of changing the value of the constant in a source file and recompiling the interpreter.

Limit Value Can be changed?
Maximum number of parameters for a function 63 No
Maximum number of parameters for a subroutine 63 Maybe up to 127
Maximum number of parameters for an operator 63 No
Maximum level of expression imbrication 255 Yes
Maximum number of syntax patterns in an expression 1023 No
Maximum length of a symbol 255 No
Maximum number of constants in the same class 65536 No
Maximum number of static or dynamic symbols in the same class 2048 No
Maximum number of functions in the same class 2048 No
Maximum number of different classes used in the same class 2048 No
Maximum number of extern declarations in the same class 256 No
Maximum number of events declarations in the same class 254 No
Maximum number of unknown class symbols in the same class 65536 No
Maximum number of array declarations in the same class 32768 No
Maximum number of local variables in a function 127 No
Maximum level of control structures imbrication 32 Yes
Maximum number of dimensions in an array 8 Yes
Maximum level of controls imbrication in a form 32 Yes
Maximum number of possible comparisons in one CASE instruction 32 Yes
Maximum number of breakpoints 255 Yes
Maximum level of class inheritance 16 Yes
Maximum length of an error message 511 Yes
Maximum number of fields in a structure 255 Yes