mirror of
https://github.com/RevCurtisP/C02.git
synced 2024-10-14 06:23:44 +00:00
55 lines
1.8 KiB
Plaintext
55 lines
1.8 KiB
Plaintext
C02 for C programmers
|
|
|
|
TYPES
|
|
|
|
C02 only supports one data type: unsigned char.
|
|
|
|
POINTERS
|
|
|
|
C02 does not support pointer type variables or parameters. However, the
|
|
address-of operator may be used in function calls and the inline
|
|
statement.
|
|
|
|
DIRECTIVES
|
|
|
|
C02 does not use a preprocessor. All directives are directly processed
|
|
by the compiler. C02 supports the directives #include and #pragma. The
|
|
directive #define is currently unimplemented and generates an error.
|
|
The #if, #else, and #endif directives are not recognized by C02.
|
|
|
|
CONSTANTS
|
|
|
|
The syntax of the const keyword in C02 differs from that use in standard C.
|
|
In C02, all constant names are prefixed with a # symbol.
|
|
|
|
ENUMERATION
|
|
|
|
The syntax of an enum statement in C02 is similar to standard C, except
|
|
that no type name is specified and values may not be explicitly assigned
|
|
to the enumerated constants.
|
|
|
|
DECLARATIONS
|
|
|
|
Variable and function names may be no more than six characters in length.
|
|
Multiple variable declarations separated by commas are allowed.
|
|
|
|
A variable in a declaration may be initialized by following it with an
|
|
equal sign and a constant, however this declaration is done at compile
|
|
time, so no re-initialization will occur during code execution.
|
|
|
|
Array declarations using bracket syntax specify the upper bound, rather
|
|
than the array size. Therefore, the array will be allocated with one more
|
|
element than the specified number.
|
|
|
|
EXPRESSIONS
|
|
|
|
C02 supports the addition, subtraction, bitwise-and, bitwise-or, and
|
|
exclusive-or operators. The multiplication, division, and binary shift
|
|
operators are not supported. These can be implemented through functions.
|
|
|
|
STATEMENTS
|
|
|
|
Instead of the switch statement, C02 uses the select statement. The
|
|
select statement works almost identically to the switch statement except
|
|
that case blocks do not fall through.
|