Identifiers (Names), Case Sensitivity

Identifiers and case sensitivity

There is no direct limitation of the maximum identifier ("name") length.

Identifiers may include letters (A-Z, a-z), digits (0-9) and the following special characters: _ ~ $ .

Identifiers must not start with a digit and must not contain any spaces.

Tibbo BASIC compiler is case insensitive. ABC , abc , and Abc refer to the same identifier. This is in line with the BASIC tradition.

Tibbo C compiler is case sensitive. ABC , abc , and Abc are three different identifiers. This is in accordance with the ANSI C standard.

The linker is case insensitive, it sees everything in lowercase. To the linker, ABC , abc , and Abc refer to the same identifier abc .

The parser is case-sensitive both in Tibbo BASIC and Tibbo C. Even within a BASIC file, the parser will assume that ABC and abc as two separate entities.

In practical terms, case sensitivity of C and case in sensitivity of the linker means that in C...

• ... You can define local variables X and x (in the same local scope) without any problem.

• ... You cannot define global variables Y and y or functions FUNC() and func() — this won't work because of the linker.

Basing on the above, I recommend you to avoid using the "CamelCase" style in identifiers. The style preferred by Tibbo is my_counter_1 , not MyCounter1 .

For constants we use all-uppercase names such as CONST_MAX_COUNTER .

The system will work well for pure BASIC, pure C, and BASIC+C projects.

I also propose that you do not start variable and procedure names with on_ . This prefix is reserved for event handlers.

For example, on_sys_init is the event handler for the ON_SYS_INIT event of the system (sys. ) object.